Babysitter Parser Generator
Expert skill for parser generation and implementation using LL, LR, LALR, PEG, and Pratt parsing techniques
install
source · Clone the upstream repo
git clone https://github.com/a5c-ai/babysitter
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/a5c-ai/babysitter "$T" && mkdir -p ~/.claude/skills && cp -r "$T/library/specializations/programming-languages/skills/parser-generator" ~/.claude/skills/a5c-ai-babysitter-parser-generator && rm -rf "$T"
manifest:
library/specializations/programming-languages/skills/parser-generator/SKILL.mdsource content
Parser Generator Skill
Overview
Expert skill for parser generation and implementation using LL, LR, LALR, PEG, and Pratt parsing techniques.
Capabilities
- Generate parsers from grammar specifications (ANTLR, Bison, tree-sitter)
- Implement recursive descent parsers with predictive parsing
- Implement Pratt parsers for expression handling
- Generate LALR/GLR parse tables
- Implement PEG parsers with packrat memoization
- Handle grammar conflicts (shift-reduce, reduce-reduce)
- Generate concrete syntax trees (CST) and AST transformations
- Implement operator precedence parsing
Target Processes
- parser-development.js
- language-grammar-design.js
- ast-design.js
- lsp-server-implementation.js
Dependencies
- ANTLR4
- tree-sitter
- Bison/Yacc
Usage Guidelines
- Grammar Analysis: Analyze grammar class requirements (LL(k), LALR, etc.) before selecting parser type
- Conflict Resolution: Document and resolve all shift-reduce/reduce-reduce conflicts explicitly
- Error Recovery: Implement synchronization points for robust error recovery
- AST Construction: Design AST node types before implementing production actions
- Expression Parsing: Use Pratt parsing for complex expression precedence handling
Output Schema
{ "type": "object", "properties": { "parserType": { "type": "string", "enum": ["recursive-descent", "pratt", "lalr", "glr", "peg", "ll"] }, "grammarClass": { "type": "string" }, "conflicts": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string" }, "resolution": { "type": "string" } } } }, "generatedFiles": { "type": "array", "items": { "type": "string" } } } }