summaryrefslogtreecommitdiff
path: root/src/lexer2.mll
diff options
context:
space:
mode:
Diffstat (limited to 'src/lexer2.mll')
-rw-r--r--src/lexer2.mll6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/lexer2.mll b/src/lexer2.mll
index 40e7eec6..a8dbaaf3 100644
--- a/src/lexer2.mll
+++ b/src/lexer2.mll
@@ -121,6 +121,7 @@ let kw_table =
("in", (fun x -> In));
("inc", (fun _ -> Inc));
("let", (fun x -> Let_));
+ ("record", (fun _ -> Record));
("Int", (fun x -> Int));
("Order", (fun x -> Order));
("pure", (fun x -> Pure));
@@ -142,6 +143,7 @@ let kw_table =
("until", (fun _ -> Until));
("while", (fun _ -> While));
("do", (fun _ -> Do));
+ ("mutual", (fun _ -> Mutual));
("barr", (fun x -> Barr));
("depend", (fun x -> Depend));
@@ -169,7 +171,7 @@ let binarydigit = ['0'-'1']
let hexdigit = ['0'-'9''A'-'F''a'-'f']
let alphanum = letter|digit
let startident = letter|'_'
-let ident = alphanum|['_''\'']
+let ident = alphanum|['_''\'''#']
let tyvar_start = '\''
let oper_char = ['!''$''%''&''*''+''-''.''/'':''<''=''>''@''^''|']
let operator = (oper_char+ ('_' ident)?)
@@ -200,6 +202,8 @@ rule token = parse
| ";" { Semi }
| "*" { (Star(r"*")) }
| "_" { Under }
+ | "[|" { LsquareBar }
+ | "|]" { RsquareBar }
| "{|" { LcurlyBar }
| "|}" { RcurlyBar }
| "|" { Bar }