let regexp we_have = "we" utf8_blank+ "have"
let regexp let_rec = "let" utf8_blank+ "rec"
let regexp let_corec = "let" utf8_blank+ "corec"
+let regexp nlet_rec = "nlet" utf8_blank+ "rec"
+let regexp nlet_corec = "nlet" utf8_blank+ "corec"
let regexp ident_decoration = '\'' | '?' | '`'
let regexp ident_cont = ident_letter | xml_digit | '_'
let regexp ident = ident_letter ident_cont* ident_decoration*
[ "sub"; "sup";
"below"; "above";
"over"; "atop"; "frac";
- "sqrt"; "root"
+ "sqrt"; "root"; "mstyle" ; "mpadded"; "maction"
+
]
let level1_keywords =
"break";
"list0"; "list1"; "sep";
"opt";
- "term"; "ident"; "number"; "mstyle" ; "mpadded"
+ "term"; "ident"; "number";
] @ level1_layouts
let level2_meta_keywords =
List.iter
(fun (ligature, symbol) -> Hashtbl.add ligatures ligature symbol)
[ ("->", <:unicode<to>>); ("=>", <:unicode<Rightarrow>>);
- ("<=", <:unicode<leq>>); (">=", <:unicode<geq>>);
- ("<>", <:unicode<neq>>); (":=", <:unicode<def>>);
- ("==", <:unicode<equiv>>);
+ (":=", <:unicode<def>>);
]
let regexp uri_step = [ 'a' - 'z' 'A' - 'Z' '0' - '9' '_' '-' ''' ]+
lexer
| let_rec -> return lexbuf ("LETREC","")
| let_corec -> return lexbuf ("LETCOREC","")
+ | nlet_rec -> return lexbuf ("NLETREC","")
+ | nlet_corec -> return lexbuf ("NLETCOREC","")
| we_proved -> return lexbuf ("WEPROVED","")
| we_have -> return lexbuf ("WEHAVE","")
| utf8_blank+ -> ligatures_token level2_ast_token lexbuf