aboutsummaryrefslogtreecommitdiff
path: root/src/common.mli
diff options
context:
space:
mode:
authorpacien2018-04-29 20:24:38 +0200
committerpacien2018-04-29 20:24:38 +0200
commit0647f37eebbefb8446fc8abfc533a23952fbb8be (patch)
treefc9d69f32bd6c04de27c3795f6d54ed150bd4958 /src/common.mli
parent80d7f0f204aacefa768d34f6db30108cb430cede (diff)
downloadurm-0647f37eebbefb8446fc8abfc533a23952fbb8be.tar.gz
Move sources to dedicated directory
Diffstat (limited to 'src/common.mli')
-rw-r--r--src/common.mli47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/common.mli b/src/common.mli
new file mode 100644
index 0000000..4fa838d
--- /dev/null
+++ b/src/common.mli
@@ -0,0 +1,47 @@
1(*
2 * UPEM / L3 / Functional programming / Project: URM
3 * Pacien TRAN-GIRARD, Adam NAILI
4 *)
5
6type line = int
7type label = string
8type regidx = int
9type regval = int
10type reg = Reg of regidx * regval
11
12type urmcmd =
13 | URMCopy of regidx * regidx
14 | URMJump of regidx * regidx * line
15 | URMSucc of regidx
16 | URMZero of regidx
17
18type eurmcmd =
19 | Add of regidx * regidx
20 | Comment of string
21 | Copy of regidx * regidx
22 | Dec of regidx
23 | EqPredicate of regidx * regidx * label
24 | GEqPredicate of regidx * regidx * label
25 | GTPredicate of regidx * regidx * label
26 | Goto of label
27 | Inc of regidx
28 | Label of label
29 | LEqPredicate of regidx * regidx * label
30 | LTPredicate of regidx * regidx * label
31 | Mult of regidx * regidx
32 | Quit
33 | Sub of regidx * regidx
34 | Zero of regidx
35 | ZeroPredicate of regidx * label
36
37type instptr = InstPtr of (line * urmcmd) list * (line * urmcmd) list
38
39type urm = {
40 instptr : instptr;
41 regs : reg list
42}
43
44type state = { todo : int }
45
46exception Syntax_error
47