summaryrefslogtreecommitdiff
path: root/examples/OCaml-Kaleidoscope/Chapter7/token.ml
diff options
context:
space:
mode:
authorErick Tryzelaar <idadesub@users.sourceforge.net>2010-03-08 19:32:27 +0000
committerErick Tryzelaar <idadesub@users.sourceforge.net>2010-03-08 19:32:27 +0000
commit49457b81589c6a3ef384caa8fdf1463ad2ada7c7 (patch)
tree8500bcc1ba0067ff7816b083d8b5a535be6ee50d /examples/OCaml-Kaleidoscope/Chapter7/token.ml
parent9ef76b9985a0c408e126affa049698c413ad8664 (diff)
downloadllvm-49457b81589c6a3ef384caa8fdf1463ad2ada7c7.tar.gz
llvm-49457b81589c6a3ef384caa8fdf1463ad2ada7c7.tar.bz2
llvm-49457b81589c6a3ef384caa8fdf1463ad2ada7c7.tar.xz
Add OCaml tutorial to the examples.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97966 91177308-0d34-0410-b5e6-96231b3b80d8
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 0000000000..1489f0b9e7
--- /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