sort-rules
Reorder ANTLR4 grammar rules using alphabetical, type, dependency, or usage strategies to clean up messy files, group related rules, and improve readability.
Instructions
Reorder rules in a grammar according to various sorting strategies.
When to use:
Clean up messy grammar files
Organize rules logically
Improve readability and maintenance
Group related rules together
Sorting Strategies:
alphabetical (default)
Sorts parser rules alphabetically
Then sorts lexer rules alphabetically
Most common for general organization
type
Groups by rule type
parser_first: true (default) - parser rules first
parser_first: false - lexer rules first
dependency
Orders rules based on relationship to anchor rule
Requires anchor_rule option
Order: dependencies → anchor → dependents → rest
Useful for understanding rule relationships
usage
Most-referenced rules first
Helps identify "core" rules
Useful for understanding grammar structure
Example - Alphabetical: strategy: "alphabetical"
Example - Dependency-based: strategy: "dependency" anchor_rule: "expression"
Example - Type-based: strategy: "type" parser_first: false // Lexer rules first
Features:
Preserves multi-line rule formatting
Maintains blank lines after rules
Preserves header (grammar declaration, imports, options)
Handles all rule types (parser, lexer, fragment)
Returns:
Reordered grammar
Statistics (total rules, strategy used)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| strategy | No | Sorting strategy: alphabetical (default), type, dependency, or usage | |
| from_file | No | Optional: path to a grammar file to read. Required if using write_to_file. | |
| anchor_rule | No | For dependency strategy: the rule to use as anchor (rules used by this rule come first) | |
| parser_first | No | For type strategy: if true (default), parser rules come before lexer rules | |
| write_to_file | No | If true, writes modified grammar back to from_file (requires from_file to be set) | |
| grammar_content | No | The ANTLR4 grammar file content |