--- target language
Tg. Object ::= [Fun] ;
FVal. Fun ::= Id "=" Val ;
terminator Fun ";" ;
VRec. Val ::= "[" [Val] "]" ;
VPro. Val ::= "(" Val "." Val ")" ;
VTok. Val ::= String ;
VArg. Val ::= "$" Integer ;
VPar. Val ::= Integer ;
VCat. Val ::= "(" Val Val ")" ;
terminator Val "," ;
token Id (letter | '_') (letter | digit | '_' | '\'')* ;