Reference / Cheat Sheet


This page is the compact reminder for grammar authors, reviewers, and implementers. Use it when you already know the model and need the exact rules quickly.

Fast rule of thumb: exact phrases, exact delimiters, exact macro names, and only one repetition operator.

Core symbols

  • UPPERCASE WORDS — exact keyword phrases.
  • parameterName — value capture.
  • [ ... ] — optional group.
  • { ... } — required group.
  • | — alternatives inside the current group.
  • ... — repetition suffix on the immediately preceding node.
  • ${macroName} — canonical macro reference.
  • <macroName> — legacy macro reference when preserved for compatibility.
  • ., ;, ,, : and similar punctuation — literal delimiters.

Runtime rules

  • Keywords match user input case-insensitively.
  • Macro names match the registry case-sensitively.
  • Parameters consume one WORD or STRING token unless repetition or macro expansion says otherwise.
  • Quoted values bind their normalized semantic value without outer quotes.
  • Repeated matching must preserve the rest of the grammar. It cannot swallow later clauses.
  • Full-input matching is required for success.
  • The first fully matching registered command wins.

Binding rules

  • Captures are ordered as (name, context, value).
  • Exact keyword phrases matter for clause detection and after-style context filters.
  • Repeated field binding ends with the last matching value.
  • Repeated method binding is invoked once per capture, in encounter order.
  • Clause fields are false when absent and true when present.

Invalid definition checklist

  • No empty groups.
  • No empty alternatives.
  • No empty macro names.
  • No unmatched brackets or braces.
  • No repetition operator without a preceding node.
  • No binding metadata that points to a parameter or phrase not present in the grammar.

Authoring checklist

  • Use uppercase only for real literal keywords.
  • Quote values that contain spaces or significant punctuation.
  • Prefer readable multi-word clause phrases such as WITH AGE or DRY RUN.
  • Order alternatives intentionally.
  • Use macros only for dynamic vocabularies.
  • Write negative tests for incomplete input, wrong delimiters, unclosed strings, and bad macro values.

Canonical examples

PING ;
CREATE USER username [ PASSWORD password ] ;
PROCESS { FILE file_path | DIRECTORY dir_path } ;
GRANT ACCESS TO target_user ... ;
EXECUTE ${available_tasks} ON target_name ;
SET DATE day . month . year ;

Page map

Current product links