This repository was archived by the owner on Nov 30, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 24
Expand file tree
/
Copy pathprimops.ml
More file actions
33 lines (25 loc) 路 1.38 KB
/
Copy pathprimops.ml
File metadata and controls
33 lines (25 loc) 路 1.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
module StringSet = Set.Make(String)
let atom_ops = List.fold_left (fun s k -> StringSet.add k s)
StringSet.empty
[ "bool?"; "int?"; "dbl?"; "ar?" ]
let arith_ops = List.fold_left (fun s k -> StringSet.add k s)
StringSet.empty
[ "+"; "-"; "*"; "/"; "%"; "^" ]
let logical_ops = List.fold_left (fun s k -> StringSet.add k s)
StringSet.empty
[ "and"; "or"; "not" ]
let cmp_ops = List.fold_left (fun s k -> StringSet.add k s)
StringSet.empty
[ "<"; ">"; "<="; ">="; "=" ]
let array_ops = List.fold_left (fun s k -> StringSet.add k s)
StringSet.empty
[ "first"; "rest"; "cons"; "length" ]
let string_ops = List.fold_left (fun s k -> StringSet.add k s)
StringSet.empty
[ "str-split"; "str-join"; "str-length" ]
let cf_ops = List.fold_left (fun s k -> StringSet.add k s)
StringSet.empty
[ "if"; "when"; "dotimes" ]
let binding_ops = List.fold_left (fun s k -> StringSet.add k s)
StringSet.empty
[ "let"; "def" ]