 
Navigation 
Synopsis The concrete syntax of Func.
Examples
module demo::lang::Func::Func lexical Ident = [azAZ][azAZ09]* !>> [azAZ09]; lexical Natural = [09]+ !>> [09]; lexical LAYOUT = [\t\n\r\ ]; layout LAYOUTLIST = LAYOUT* !>> [\t\n\r\ ] ; start syntax Prog = prog: Func* ; syntax Func = func: Ident name "(" {Ident ","}* ")" "=" Exp; syntax Exp = let: "let" {Binding ","}* "in" Exp "end"  cond: "if" Exp "then" Exp "else" Exp "end"  bracket "(" Exp ")"  var: Ident  nat: Natural  call: Ident "(" {Exp ","}* ")"  address: "&" Ident > deref: "*" Exp > nonassoc ( left mul: Exp "*" Exp  nonassoc div: Exp "/" Exp ) > left ( left add: Exp "+" Exp  left sub: Exp "" Exp ) > nonassoc ( nonassoc gt: Exp "\>" Exp  nonassoc lt: Exp "\<" Exp  nonassoc geq: Exp "\>=" Exp  nonassoc leq: Exp "\<=" Exp ) > right assign: Exp ":=" Exp > right seq: Exp ";" Exp; syntax Binding = binding: Ident "=" Exp;The concrete syntax of Func uses many features of Rascal's syntax definitions. Some notes:
