!7 sS input = [[ RULE WasLAB (("was|warum")&&("ist|bedeutet|heißt|soll|meint|nenn(t|en|st)")&&("lab")) )) ]]; sS rules = [[ RULE <id> ( <exp> ) = rule // bracketing combines top and bottom ( <exp> ) = expX // primitive expressions are also at top level <quoted> = expX // now come the lower levels <expX> = exp3 <exp3> = exp2 <exp2> & & <exp3> = exp2 <exp2> = exp1 <exp1> | | <exp2> = exp1 // lowest level <exp1> = exp ]]; p { O parsed = parseBottomUp(input, rules); print(call(parsed, "prettierAnalysis")); }