# Grammar Design

> Expert skill for formal grammar design including disambiguation, precedence, and validation

- Skill: `a5c-ai/grammar-design` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add a5c-ai/grammar-design`
- Raw SKILL.md: https://api.skillmd.com/api/skills/a5c-ai/grammar-design/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: a5c-ai (https://skillmd.com/u/a5c-ai)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/a5c-ai/grammar-design

---


# Grammar Design Skill

## Overview

Expert skill for formal grammar design including disambiguation, precedence, and validation.

## Capabilities

- Write EBNF/BNF grammar specifications
- Design unambiguous grammars
- Handle operator precedence and associativity
- Analyze grammar conflicts
- Design grammar for specific parser classes (LL, LR, PEG)
- Document grammar with examples
- Design syntax for common language constructs
- Handle grammar evolution and backwards compatibility

## Target Processes

- language-grammar-design.js
- lexer-implementation.js
- parser-development.js

## Dependencies

Parsing theory literature (Dragon Book, Parsing Techniques)

## Usage Guidelines

1. **Notation**: Use standard EBNF notation for grammar specifications
2. **Disambiguation**: Make grammars unambiguous or document precedence rules
3. **Parser Class**: Design grammar to fit target parser class (LL(k), LALR, PEG)
4. **Examples**: Include examples for all grammar rules
5. **Evolution**: Plan for backwards-compatible grammar evolution

## Output Schema

```json
{
  "type": "object",
  "properties": {
    "notation": {
      "type": "string",
      "enum": ["ebnf", "bnf", "peg", "antlr"]
    },
    "parserClass": {
      "type": "string",
      "enum": ["ll1", "llk", "lalr", "glr", "peg"]
    },
    "productionCount": { "type": "integer" },
    "conflicts": {
      "type": "array",
      "items": { "type": "string" }
    },
    "generatedFiles": {
      "type": "array",
      "items": { "type": "string" }
    }
  }
}
```

