The figure below contains a complete and working grammar file example for a simple arithmetic language.
%header%
GRAMMARTYPE = "LL"
DESCRIPTION = "A grammar for a simple arithmetic language."
AUTHOR = "Per Cederberg, <per at percederberg dot net>"
VERSION = "1.0"
DATE = "10 June 2003"
LICENSE = "Permission is granted to copy this document verbatim in any
medium, provided that this copyright notice is left intact."
COPYRIGHT = "Copyright (c) 2003 Per Cederberg. All rights reserved."
%tokens%
ADD = "+"
SUB = "-"
MUL = "*"
DIV = "/"
LEFT_PAREN = "("
RIGHT_PAREN = ")"
NUMBER = <<[0-9]+>>
IDENTIFIER = <<[a-z]>>
WHITESPACE = <<[ \t\n\r]+>> %ignore%
%productions%
Expression = Term [ExpressionTail] ;
ExpressionTail = "+" Expression
| "-" Expression ;
Term = Factor [TermTail] ;
TermTail = "*" Term
| "/" Term ;
Factor = Atom
| "(" Expression ")" ;
Atom = NUMBER
| IDENTIFIER ;
Figure 1. A grammar for a simple arithmetic language.