aboutsummaryrefslogtreecommitdiffstats
path: root/examples/OCaml-Kaleidoscope/Chapter7/token.ml
diff options
context:
space:
mode:
Diffstat (limited to 'examples/OCaml-Kaleidoscope/Chapter7/token.ml')
-rw-r--r--examples/OCaml-Kaleidoscope/Chapter7/token.ml25
1 files changed, 25 insertions, 0 deletions
diff --git a/examples/OCaml-Kaleidoscope/Chapter7/token.ml b/examples/OCaml-Kaleidoscope/Chapter7/token.ml
new file mode 100644
index 0000000..1489f0b
--- /dev/null
+++ b/examples/OCaml-Kaleidoscope/Chapter7/token.ml
@@ -0,0 +1,25 @@
+(*===----------------------------------------------------------------------===
+ * Lexer Tokens
+ *===----------------------------------------------------------------------===*)
+
+(* The lexer returns these 'Kwd' if it is an unknown character, otherwise one of
+ * these others for known things. *)
+type token =
+ (* commands *)
+ | Def | Extern
+
+ (* primary *)
+ | Ident of string | Number of float
+
+ (* unknown *)
+ | Kwd of char
+
+ (* control *)
+ | If | Then | Else
+ | For | In
+
+ (* operators *)
+ | Binary | Unary
+
+ (* var definition *)
+ | Var