diff options
author | Adrian Thurston <thurston@colm.net> | 2019-09-09 10:19:58 -0600 |
---|---|---|
committer | Adrian Thurston <thurston@colm.net> | 2019-09-09 10:19:58 -0600 |
commit | fff52cd5a567ec541cd487b9fee2d89bf9b6f6eb (patch) | |
tree | 046a3f0f457343f7c99bf096863daf023a085051 /test/colm.d/ragelambig1.lm | |
parent | 2d8e9c3f5c0417d6237c945c50f92bf8d28b32d5 (diff) | |
download | colm-fff52cd5a567ec541cd487b9fee2d89bf9b6f6eb.tar.gz |
base (aapl, colm, ragel) test cases building
Diffstat (limited to 'test/colm.d/ragelambig1.lm')
-rw-r--r-- | test/colm.d/ragelambig1.lm | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/test/colm.d/ragelambig1.lm b/test/colm.d/ragelambig1.lm new file mode 100644 index 00000000..1e98bcf6 --- /dev/null +++ b/test/colm.d/ragelambig1.lm @@ -0,0 +1,71 @@ +lex + ignore /[\t\n ]+/ + literal `^ `| `- `, `: `! `? `. + literal `( `) `{ `} `* `& `+ + + literal `-- `:> `:>> `<: `-> `** + + token word /[a-zA-Z_][a-zA-Z0-9_]*/ + token uint /[0-9]+/ +end + + +def start + [expression] + { + print( xml( lhs ) ) + } + +def expression + [expression `| term] +| [expression `& term] +| [expression `- term] +| [expression `-- term] +| [term] + +def term + [term factor_with_rep] + { + if match lhs [term `- uint] + reject + } +| [term `. factor_with_rep] +| [term `:> factor_with_rep] +| [term `:>> factor_with_rep] +| [term `<: factor_with_rep] +| [factor_with_rep] + +def factor_with_rep + [factor_with_rep `*] +| [factor_with_rep `**] +| [factor_with_rep `?] +| [factor_with_rep `+] +| [factor_with_rep `{ factor_rep_num `}] +| [factor_with_rep `{ `, factor_rep_num `}] +| [factor_with_rep `{ factor_rep_num `, `}] +| [factor_with_rep `{ factor_rep_num `, factor_rep_num `}] +| [factor_with_neg] + +def factor_rep_num [uint] + +def factor_with_neg + [`! factor_with_neg] +| [`^ factor_with_neg] +| [factor] + +def factor + [alphabet_num] +| [word] +| [`( expression `)] + +def alphabet_num + [uint] +| [`- uint] + +parse start[ stdin ] + +print( '\n' ) +##### IN ##### +1 - 1 +##### EXP ##### +<start><expression><expression><term><factor_with_rep><factor_with_neg><factor><alphabet_num><uint>1</uint></alphabet_num></factor></factor_with_neg></factor_with_rep></term></expression><_literal_0007>-</_literal_0007><term><factor_with_rep><factor_with_neg><factor><alphabet_num><uint>1</uint></alphabet_num></factor></factor_with_neg></factor_with_rep></term></expression></start> |