Here is an example of a small compiler description with Coco/R:
COMPILER Demo
CHARACTERS
letter = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrtsuvwxyz".
digit = "0123456789".
EOL = '\t'.
TOKENS
ident = letter {letter | digit}.
number = digit {digit}.
COMMENTS FROM "/*" TO "*/" NESTED
IGNORE EOL
PRODUCTIONS
Demo = Statement {";" Statement}.
(*------------------------------------------------------------------------------------*)
Statement (. string x; int y; .)
= Ident "=" Number (. CodeGen.Assign(x, y); .)
.
(*------------------------------------------------------------------------------------*)
Ident
= ident (. x = t.val; .)
.
(*------------------------------------------------------------------------------------*)
Number
= number (. n = Convert.ToInt32(t.val); .)
.
END Demo.