diff options
Diffstat (limited to 'lex/syntax.ml')
-rw-r--r-- | lex/syntax.ml | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/lex/syntax.ml b/lex/syntax.ml new file mode 100644 index 0000000000..f692e6f625 --- /dev/null +++ b/lex/syntax.ml @@ -0,0 +1,26 @@ +(* The shallow abstract syntax *) + +type location = + Location of int * int + +type regular_expression = + Epsilon + | Characters of char list + | Sequence of regular_expression * regular_expression + | Alternative of regular_expression * regular_expression + | Repetition of regular_expression + +type lexer_definition = + Lexdef of location * (string * (regular_expression * location) list) list + +(* Representation of automata *) + +type automata = + Perform of int + | Shift of automata_trans * automata_move array +and automata_trans = + No_remember + | Remember of int +and automata_move = + Backtrack + | Goto of int |