summaryrefslogtreecommitdiff
path: root/test/ignore4.lm
diff options
context:
space:
mode:
Diffstat (limited to 'test/ignore4.lm')
-rw-r--r--test/ignore4.lm74
1 files changed, 74 insertions, 0 deletions
diff --git a/test/ignore4.lm b/test/ignore4.lm
new file mode 100644
index 0000000..cdd94b3
--- /dev/null
+++ b/test/ignore4.lm
@@ -0,0 +1,74 @@
+##### LM #####
+namespace hash
+
+ lex
+ literal `define `include
+ token NL /'\n'/ -ni
+
+ token id /[a-zA-Z_][a-zA-Z_0-9]*/
+ token number /[0-9]+/
+ token string /'"' ( [^"\\] | '\\' any )* '"'/
+
+ ignore /[ \t]+/
+
+ end
+
+ def hash
+ [`define id number NL]
+ | [`include string NL]
+
+end # hash
+
+namespace lang
+
+ lex
+ ignore /space+/
+ literal `* `( `) `; `#
+ token id /[a-zA-Z_][a-zA-Z_0-9]*/
+ token number /[0-9]+/
+ end
+
+ def item
+ [id]
+ | [`( item* `)]
+
+ def statement
+ [item* `;]
+ | [`# hash::hash]
+
+ def start
+ [statement*]
+
+end # lang
+
+parse Input: lang::start[ stdin ]
+
+if ! Input
+ print( error '\n' )
+else {
+ #print( Input.tree '\n' )
+ for H: lang::statement in Input {
+ require H [ lang::`# hash::hash ]
+ print( '--' H '==\n' )
+ }
+}
+##### IN #####
+
+hello;
+
+#include "input1"
+
+#include "input2"
+
+#include "input3"
+
+there;
+##### EXP #####
+--#include "input1"
+==
+--
+#include "input2"
+==
+--
+#include "input3"
+==