diff options
Diffstat (limited to 'test/context3.lm')
-rw-r--r-- | test/context3.lm | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/test/context3.lm b/test/context3.lm new file mode 100644 index 0000000..f990837 --- /dev/null +++ b/test/context3.lm @@ -0,0 +1,47 @@ +##### LM ##### +context ctx + + i: int + j: int + k: int + + lex + ignore /space+/ + literal `* `( `) + token id /[a-zA-Z_]+/ + end + + def foo [id] + + int f() + { + i = i + 1 + } + + def item + [id] + | [foo] + | [`( item* `)] + { + i = 0 + f() + f() + f() + print( i '\n' ) + } + + + def start + [item*] + +end # ctx + +CTX: ctx = cons ctx [] +parse Input: ctx::start( CTX ) [stdin] +print( Input ) + +##### IN ##### +a b c ( d ) e f +##### EXP ##### +3 +a b c ( d ) e f |