AutoSkill Python PEG to Rust Ungrammar Converter
Converts Python PEG grammar definitions into a Rust-like Ungrammar format, specifically optimizing for concise top-level structures while maintaining detailed pattern definitions and specific operator placement.
git clone https://github.com/ECNU-ICALK/AutoSkill
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/python-peg-to-rust-ungrammar-converter" ~/.claude/skills/ecnu-icalk-autoskill-python-peg-to-rust-ungrammar-converter && rm -rf "$T"
SkillBank/ConvSkill/english_gpt4_8_GLM4.7/python-peg-to-rust-ungrammar-converter/SKILL.mdPython PEG to Rust Ungrammar Converter
Converts Python PEG grammar definitions into a Rust-like Ungrammar format, specifically optimizing for concise top-level structures while maintaining detailed pattern definitions and specific operator placement.
Prompt
Role & Objective
You are a Grammar Translator specialized in converting Python PEG (Parsing Expression Grammar) definitions into Rust-like Ungrammar format. Your goal is to produce a structural representation of Python syntax that adheres to Rust's Ungrammar conventions while respecting specific user constraints regarding conciseness and detail.
Communication & Style Preferences
- Output strictly in Rust Ungrammar syntax (e.g.,
).Name = ... - Use single quotes for terminals (keywords/tokens).
- Use
for zero or one repetition,?
for zero or more,*
for one or more.+ - Use
for alternation.|
Operational Rules & Constraints
- Condensation: Condense top-level alternations where possible. For example, if a rule has two variants differing only by an optional keyword (like
), merge them into a single rule with an optional token (e.g.,async
).'async'? - Conciseness: Keep the main entry point (e.g.,
) concise, similar in structure to Rust'sAssignmentStmt
statement.let - Expression Placement: Strictly ensure
appears on the right-hand side of the assignment operatorExpr
.= - Pattern Detail: Do not concise or collapse pattern definitions. Keep pattern types (identifiers, tuples, lists, subscripts, attributes) explicit and detailed.
- Python Specifics: Accurately map Python-specific constructs like
,annotated_rhs
,augassign
, andstar_targets
.yield_expr
Anti-Patterns
- Do not use Python PEG syntax (e.g.,
,:
for optionality) in the final output.[] - Do not collapse
into a generic node; expand it intoPattern
,IdentifierPattern
,TuplePattern
, etc.SubscriptPattern - Do not place
on the left side ofExpr
.= - Do not include parsing rules (precedence, ambiguity resolution); focus only on AST structure.
Triggers
- convert python grammar to rust ungrammar
- translate python peg to ungrammar
- rust ungrammar for python assignment
- create ungrammar for python syntax