summaryrefslogtreecommitdiff
path: root/test/backtrack1.lm
diff options
context:
space:
mode:
Diffstat (limited to 'test/backtrack1.lm')
-rw-r--r--test/backtrack1.lm29
1 files changed, 29 insertions, 0 deletions
diff --git a/test/backtrack1.lm b/test/backtrack1.lm
new file mode 100644
index 0000000..76f3705
--- /dev/null
+++ b/test/backtrack1.lm
@@ -0,0 +1,29 @@
+##### LM #####
+# Token names.
+
+lex
+ literal `+ `*
+ token number /[0-9]+/
+ ignore ws / [ \t\n]+ /
+end
+
+def F
+ [number `+]
+| [number]
+| [F `* number]
+
+def E
+ [E `+ F]
+| [F]
+
+def start
+ [E]
+
+parse S: start[ stdin ]
+R: start = match S ~ 9 + 9
+print_xml( R )
+print( '\n' )
+##### IN #####
+9 + 9
+##### EXP #####
+<start><E><E><F><number>9</number></F></E><_literal_0001>+</_literal_0001><F><number>9</number></F></E></start>