CEDARScript Editor (Python)
CEDARScript Editor (Python)
is a CEDARScript runtime
for interpreting CEDARScript
scripts and performing code analysis and modification operations on a codebase.
CEDARScript enables offloading low-level code syntax and structure concerns, such as indentation and line counting,
from the LLMs.
The CEDARScript runtime bears the brunt of file editing by locating the exact line numbers and characters to change,
which indentation levels to apply to each line and so on, allowing the CEDARScript commands to focus instead on
higher levels of abstraction, like identifier names, line markers, relative indentations and positions
(AFTER
, BEFORE
, INSIDE
a function, its BODY
, at the TOP
or BOTTOM
of it...).
It acts as an intermediary between the LLM and the codebase, handling the low-level details of code
manipulation and allowing the AI to focus on higher-level tasks.
What is CEDARScript?
CEDARScript (Concise Examination, Development, And Refactoring Script)
is a domain-specific language that aims to improve how AI coding assistants interact with codebases and communicate
their code modification intentions.
It provides a standardized way to express complex code modification and analysis operations, making it easier for
AI-assisted development tools to understand and execute these tasks.
Features
- Given a
CEDARScript
script and a base directory, executes the script commands on files inside the base directory; - Return results in
XML
format for easier parsing and processing by LLM systems
Installation
You can install CEDARScript
Editor using pip:
pip install cedarscript-editor
Usage
Here's a quick example of how to use CEDARScript
Editor:
from cedarscript_editor import CEDARScriptEdior
parser = CEDARScriptEdior()
code = """
CREATE FILE "example.py"
UPDATE FILE "example.py"
INSERT AT END OF FILE
CONTENT
print("Hello, World!")
END CONTENT
END UPDATE
"""
commands, errors = parser.parse_script(code)
if errors:
for error in errors:
print(f"Error: {error}")
else:
for command in commands:
print(f"Parsed command: {command}")
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License.