forked from artagnon/rhine-ml
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ast.mli
41 lines (34 loc) · 836 Bytes
/
ast.mli
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
34
35
36
37
38
39
40
41
type atom =
Symbol of string
| Int of int
| Bool of bool
| Double of float
| Char of char
| String of string
| RestArgs of string
| Nil
type restplaceholder =
RestVar of string
| RestNil
type sexpr =
Atom of atom
| SQuote of sexpr
| Unquote of sexpr
| List of sexpr list
| Vector of sexpr list
| Defn of string * string list * restplaceholder * sexpr list
| Defmacro of string * string list * restplaceholder * sexpr list
| Def of string * sexpr
| Call of string * sexpr list
| AnonCall of sexpr list
type prog =
Prog of sexpr list
type proto =
Prototype of string * string array * restplaceholder
type func =
Function of proto * sexpr list
type macro =
Macro of string array * sexpr list
type parsedtlform =
ParsedFunction of Llvm.llvalue * bool
| ParsedMacro