@@ -7,6 +7,66 @@ Parser and interpreter for the While programming language
77
88** usage
99
10+ *** example
11+
12+ #+begin_src shell
13+ felix in ~/git-repos/hub/while on main λ stack run
14+
15+ = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
16+
17+ [READING .WHILE FILE] "./examples/simple.while"
18+ [MetaToken {getLineNumber = 1, getToken = VarToken {getVarName = "x_1"}},
19+ MetaToken {getLineNumber = 1, getToken = AssignToken},
20+ MetaToken {getLineNumber = 1, getToken = ConstToken {getConstInt = 10}},
21+ MetaToken {getLineNumber = 1, getToken = SemicolonToken},
22+ MetaToken {getLineNumber = 2, getToken = VarToken {getVarName = "x_2"}},
23+ MetaToken {getLineNumber = 2, getToken = AssignToken},
24+ MetaToken {getLineNumber = 2, getToken = ConstToken {getConstInt = 0}},
25+ MetaToken {getLineNumber = 2, getToken = SemicolonToken},
26+ MetaToken {getLineNumber = 4, getToken = WhileToken},
27+ MetaToken {getLineNumber = 4, getToken = VarToken {getVarName = "x_1"}},
28+ MetaToken {getLineNumber = 4, getToken = NotEqualToken},
29+ MetaToken {getLineNumber = 4, getToken = ConstToken {getConstInt = 0}},
30+ MetaToken {getLineNumber = 4, getToken = DoToken},
31+ MetaToken {getLineNumber = 5, getToken = VarToken {getVarName = "x_1"}},
32+ MetaToken {getLineNumber = 5, getToken = AssignToken},
33+ MetaToken {getLineNumber = 5, getToken = VarToken {getVarName = "x_1"}},
34+ MetaToken {getLineNumber = 5, getToken = MinusToken},
35+ MetaToken {getLineNumber = 5, getToken = ConstToken {getConstInt = 1}},
36+ MetaToken {getLineNumber = 5, getToken = SemicolonToken},
37+ MetaToken {getLineNumber = 6, getToken = LoopToken},
38+ MetaToken {getLineNumber = 6, getToken = VarToken {getVarName = "x_1"}},
39+ MetaToken {getLineNumber = 6, getToken = DoToken},
40+ MetaToken {getLineNumber = 6, getToken = VarToken {getVarName = "x_2"}},
41+ MetaToken {getLineNumber = 6, getToken = AssignToken},
42+ MetaToken {getLineNumber = 6, getToken = VarToken {getVarName = "x_2"}},
43+ MetaToken {getLineNumber = 6, getToken = PlusToken},
44+ MetaToken {getLineNumber = 6, getToken = VarToken {getVarName = "x_1"}},
45+ MetaToken {getLineNumber = 6, getToken = EndToken},
46+ MetaToken {getLineNumber = 7, getToken = EndToken}]
47+
48+ = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
49+
50+ Sequential
51+ (Assignment "x_1" (Constant {getConst = 10}))
52+ (Sequential
53+ (Assignment "x_2" (Constant {getConst = 0}))
54+ (While
55+ (Neq (Variable {getVar = "x_1"}) (Constant {getConst = 0}))
56+ (Sequential
57+ (Assignment "x_1" (Subtract (Variable {getVar = "x_1"}) (Constant {getConst = 1})))
58+ (Loop
59+ (Variable {getVar = "x_1"})
60+ (Assignment "x_2" (Add (Variable {getVar = "x_2"}) (Variable {getVar = "x_1"})))))))
61+
62+ = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
63+
64+ [OUTPUT]:
65+ [("x_2",285),("x_1",0)]
66+
67+ = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
68+ #+end_src
69+
1070*** compile
1171
1272#+begin_src shell
0 commit comments