diff options
author | Adrian Thurston <thurston@colm.net> | 2020-05-11 09:36:38 +0300 |
---|---|---|
committer | Adrian Thurston <thurston@colm.net> | 2020-05-11 09:36:38 +0300 |
commit | e9d02062b2e588ca22efcd68e8bf1586c0b88a31 (patch) | |
tree | 13323a6e41138917c66992d2b81805070f73570f | |
parent | 0f4125989c9824502d719d91294afdbc8ef8ff2c (diff) | |
download | colm-e9d02062b2e588ca22efcd68e8bf1586c0b88a31.tar.gz |
added production redefinition tests
-rw-r--r-- | test/colm.d/Makefile.am | 7 | ||||
-rw-r--r-- | test/colm.d/redef1.lm | 29 | ||||
-rw-r--r-- | test/colm.d/redef2.lm | 30 | ||||
-rw-r--r-- | test/colm.d/redef3.lm | 30 | ||||
-rw-r--r-- | test/colm.d/redef4.lm | 24 | ||||
-rw-r--r-- | test/colm.d/redef5.lm | 27 |
6 files changed, 146 insertions, 1 deletions
diff --git a/test/colm.d/Makefile.am b/test/colm.d/Makefile.am index 08e40121..e2a4c911 100644 --- a/test/colm.d/Makefile.am +++ b/test/colm.d/Makefile.am @@ -175,7 +175,12 @@ EXTRA_DIST = \ streamseq1b.in \ streamseq1c.in \ travs2.in \ - include1a.lmi + include1a.lmi \ + redef1.lm \ + redef2.lm \ + redef3.lm \ + redef4.lm \ + redef5.lm gentests: gentests.sh Makefile @$(top_srcdir)/sedsubst $< $@ -w,+x $(SED_SUBST) diff --git a/test/colm.d/redef1.lm b/test/colm.d/redef1.lm new file mode 100644 index 00000000..6923a4d3 --- /dev/null +++ b/test/colm.d/redef1.lm @@ -0,0 +1,29 @@ +lex + token ident /[a-z]+/ + ignore /[ \t\n]+/ +end + +def main + [ident] + +redef main + [ident ident] + +parse Main: main[stdin] + +if Main + print [Main] +else + print "parse error +##### IN ##### +a +##### EXP ##### +parse error +##### IN ##### +a b +##### EXP ##### +a b +##### IN ##### +a b c +##### EXP ##### +parse error diff --git a/test/colm.d/redef2.lm b/test/colm.d/redef2.lm new file mode 100644 index 00000000..3d44bb47 --- /dev/null +++ b/test/colm.d/redef2.lm @@ -0,0 +1,30 @@ +lex + token ident /[a-z]+/ + ignore /[ \t\n]+/ +end + +def main + [ident] + +redef main + [...] +| [ident ident] + +parse Main: main[stdin] + +if Main + print [Main] +else + print "parse error +##### IN ##### +a +##### EXP ##### +a +##### IN ##### +a b +##### EXP ##### +a b +##### IN ##### +a b c +##### EXP ##### +parse error diff --git a/test/colm.d/redef3.lm b/test/colm.d/redef3.lm new file mode 100644 index 00000000..e8013018 --- /dev/null +++ b/test/colm.d/redef3.lm @@ -0,0 +1,30 @@ +lex + token ident /[a-z]+/ + ignore /[ \t\n]+/ +end + +def main + [ident] + +redef main + [ident ident] +| [...] + +parse Main: main[stdin] + +if Main + print [Main] +else + print "parse error +##### IN ##### +a +##### EXP ##### +a +##### IN ##### +a b +##### EXP ##### +a b +##### IN ##### +a b c +##### EXP ##### +parse error diff --git a/test/colm.d/redef4.lm b/test/colm.d/redef4.lm new file mode 100644 index 00000000..c88df267 --- /dev/null +++ b/test/colm.d/redef4.lm @@ -0,0 +1,24 @@ +lex + token ident /[a-z]+/ + ignore /[ \t\n]+/ +end + +token alt_ident /[a-z]+/ + +def main + [ident] + +redef main + [...] +| [alt_ident] + +parse Main: main[stdin] +if Main { + AI: alt_ident = alt_ident in Main + if AI + print "found [^AI] +} + +##### IN ##### +a +##### EXP ##### diff --git a/test/colm.d/redef5.lm b/test/colm.d/redef5.lm new file mode 100644 index 00000000..aa19d3f5 --- /dev/null +++ b/test/colm.d/redef5.lm @@ -0,0 +1,27 @@ +lex + token ident /[a-z]+/ + ignore /[ \t\n]+/ +end + +lex + token alt_ident /[a-z]+/ + ignore /[ \t\n]+/ +end + +def main + [ident] + +redef main + [alt_ident] +| [...] + +parse Main: main[stdin] +if Main { + AI: alt_ident = alt_ident in Main + if AI + print "found alt [^AI] +} +##### IN ##### +a +##### EXP ##### +found alt a |