diff options
Diffstat (limited to 'test/ignore4.lm')
-rw-r--r-- | test/ignore4.lm | 74 |
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" +== |