Skip to content

Commit 47af1fb

Browse files
committed
println nightmare
1 parent c6d5978 commit 47af1fb

20 files changed

+7156
-146449
lines changed

ARTGeneratedParser.java

Lines changed: 4024 additions & 3687 deletions
Large diffs are not rendered by default.

ExtToInt.art

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
statement ::= seq^^ | assign^^ | compassign^^ | if^^ | while^^ | for^^ | print^^ | init^^ | paint^^ | translate^^ | rotate^^ | scale^^
1+
statement ::= seq^^ | assign^^ | compassign^^ | if^^ | while^^ | for^^ | println^^ | init^^ | paint^^ | translate^^ | rotate^^ | scale^^
22

33
seq ::= statement statement
44
assign ::= ID '='^ relExpr ';'^
@@ -9,7 +9,8 @@ if ::=
99
while ::= 'while'^ '('^ relExpr ')'^ '{'^ statement '}'^
1010
for ::= 'for'^ '('^ statement relExpr ';'^ statement ')'^ '{'^ statement '}'^
1111

12-
print ::= 'print'^ '('^ relExpr ')'^ ';'^
12+
println ::= 'println'^ '('^ printlnElem^ ')'^ ';'^
13+
printlnElem ::= relExpr | relExpr ','^ printlnElem
1314
init ::= 'init'^ '('^ INTEGER ','^ INTEGER ')'^ ';'^
1415
paint ::= 'paint'^ '('^ ')'^ ';'^
1516
translate ::= deref '.translate'^ '('^ REAL ','^ REAL ','^ REAL ')'^ ';'^
@@ -28,11 +29,12 @@ or ::= relExpr '||'^ relExpr
2829
not ::= '!'^ relExpr
2930
xor ::= relExpr '^'^ relExpr
3031

31-
subExpr ::= operand^^ | sub^^ | add^^ | mul^^ | div^^ | neg^^ | exp^^ | '('^ subExpr^^ ')'^
32+
subExpr ::= operand^^ | sub^^ | add^^ | mul^^ | div^^ | mod^^ | neg^^ | exp^^ | '('^ subExpr^^ ')'^
3233
sub ::= subExpr '-'^ operand
3334
add ::= subExpr '+'^ operand
3435
mul ::= subExpr '*'^ operand
3536
div ::= subExpr '/'^ operand
37+
mod ::= subExpr '%'^ operand
3638
neg ::= '-'^ operand
3739
exp ::= subExpr '**'^ operand
3840

ValueUserPlugin.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@ void Shout(String msg) {
4949
}
5050

5151
void Print(String msg) {
52-
System.out.println(ANSI_CYAN + msg + ANSI_RESET);
52+
System.out.print(ANSI_CYAN + msg + ANSI_RESET);
5353
}
54-
54+
5555
@Override
5656
public Value user(Value... args) throws ARTException {
5757
switch (args[0].value().toString()) {
@@ -67,6 +67,9 @@ public Value user(Value... args) throws ARTException {
6767
case "print":
6868
Print(args[1].value().toString());
6969
return new __done();
70+
case "printNewLineChar":
71+
Print("\n");
72+
return new __done();
7073
case "translate": {
7174
int solidId = (int) args[1].value();
7275
double x = (double) args[2].value();

artSpecification.art

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,17 @@
3939
-divRightInt _n |> _ _E2, _sig -> _I2, _sigP --- div(_n, _E2), _sig -> div(_n, _I2), _sigP
4040
-divRightReal _n |> _ _E2, _sig -> _I2, _sigP --- div(_n, _E2), _sig -> div(_n, _I2), _sigP
4141
-divLeft _E1, _sig -> _I1, _sigP --- div(_E1, _E2), _sig -> div(_I1, _E2), _sigP
42-
(* constructor print *)
43-
-printStr _s |> _ --- print(_s), _sig -> __user("print", _s), _sig
44-
-printInt _n |> _ --- print(_n), _sig -> __user("print", _n), _sig
45-
-printReal _n |> _ --- print(_n), _sig -> __user("print", _n), _sig
46-
-printBool _b |> _ --- print(_b), _sig -> __user("print", _b), _sig
47-
-printResolve _E, _sig -> _I, _sigP --- print(_E), _sig -> print(_I), _sigP
42+
(* constructor println *)
43+
-printlnSingleStr _s |> _ --- println(_s), _sig -> seq(__user("print", _s), __user("printNewLineChar")), _sig
44+
-printlnSingleInt _n |> _ --- println(_n), _sig -> seq(__user("print", _n), __user("printNewLineChar")), _sig
45+
-printlnSingleReal _n |> _ --- println(_n), _sig -> seq(__user("print", _n), __user("printNewLineChar")), _sig
46+
-printlnSingleBool _b |> _ --- println(_b), _sig -> seq(__user("print", _b), __user("printNewLineChar")), _sig
47+
-printlnMultiStr _s |> _ --- println(_s, _E), _sig -> seq(__user("print", _s), _E), _sig
48+
-printlnMultiInt _n |> _ --- println(_n, _E), _sig -> seq(__user("print", _n), _E), _sig
49+
-printlnMultiReal _n |> _ --- println(_n, _E), _sig -> seq(__user("print", _n), _E), _sig
50+
-printlnMultiBool _b |> _ --- println(_b, _E), _sig -> seq(__user("print", _b), _E), _sig
51+
-printlnResolve _E1, _sig -> _I1, _sigP --- println(_E1, _E2), _sig -> println(_I1, _E2), _sigP
52+
-printlnResolve _E, _sig -> _I, _sigP --- println(_E), _sig -> println(_I), _sigP
4853
(* constructor mod *)
4954
-modInt _n1 |> _ _n2 |> _ --- mod(_n1, _n2), _sig -> __mod(_n1, _n2), _sig
5055
-modRightInt _n |> _ _E2, _sig -> _I2, _sigP --- mod(_n, _E2), _sig -> mod(_n, _I2), _sigP
@@ -59,6 +64,17 @@
5964
-negInt _n |> _ --- neg(_n), _sig -> __neg(_n), _sig
6065
-negReal _n |> _ --- neg(_n), _sig -> __neg(_n), _sig
6166
-negResolve _E, _sig -> _I, _sigP --- neg(_E), _sig -> __neg(_I), _sigP
67+
(* constructor printlnElem *)
68+
-printlnElemStr _s |> _ --- printlnElem(_s, _E), _sig -> seq(__user("print", " "), seq(__user("print", _s), _E)), _sig
69+
-printlnElemInt _n |> _ --- printlnElem(_n, _E), _sig -> seq(__user("print", " "), seq(__user("print", _n), _E)), _sig
70+
-printlnElemReal _n |> _ --- printlnElem(_n, _E), _sig -> seq(__user("print", " "), seq(__user("print", _n), _E)), _sig
71+
-printlnElemBool _b |> _ --- printlnElem(_b, _E), _sig -> seq(__user("print", " "), seq(__user("print", _b), _E)), _sig
72+
-printlnElemLast _s |> _ --- printlnElem(_s), _sig -> seq(seq(__user("print", " "), __user("print", _s)), __user("printNewLineChar")), _sig
73+
-printlnElemLastInt _n |> _ --- printlnElem(_n), _sig -> seq(seq(__user("print", " "), __user("print", _n)), __user("printNewLineChar")), _sig
74+
-printlnElemLastReal _n |> _ --- printlnElem(_n), _sig -> seq(seq(__user("print", " "), __user("print", _n)), __user("printNewLineChar")), _sig
75+
-printlnElemLastBool _b |> _ --- printlnElem(_b), _sig -> seq(seq(__user("print", " "), __user("print", _b)), __user("printNewLineChar")), _sig
76+
-printlnElemLastResolve _E, _sig -> _I, _sigP --- printlnElem(_E), _sig -> printlnElem(_I), _sigP
77+
-printlnElemResolve _E1, _sig -> _I1, _sigP --- printlnElem(_E1, _E2), _sig -> printlnElem(_I1, _E2), _sigP
6278
(* constructor gt *)
6379
-gtInt _n1 |> _ _n2 |> _ --- gt(_n1, _n2), _sig -> __gt(_n1, _n2), _sig
6480
-gtReal _n1 |> _ _n2 |> _ --- gt(_n1, _n2), _sig -> __gt(_n1, _n2), _sig

artSpecification.tex

Lines changed: 100 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -195,32 +195,62 @@
195195
\end{equation}
196196

197197
\begin{equation}
198-
\tag*{[\artConstructor{\sf printStr}]}
199-
\begin{split}\frac{ \artVariable{s}\triangleright \artSpecial{string}(\_) }{\langle\, \artConstructor{\sf print}(\artVariable{s}), \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artVariable{s}), \artVariable{$\sigma$}\,\rangle }
198+
\tag*{[\artConstructor{\sf printlnSingleStr}]}
199+
\begin{split}\frac{ \artVariable{s}\triangleright \artSpecial{string}(\_) }{\langle\, \artConstructor{\sf println}(\artVariable{s}), \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artConstructor{\sf seq}(\artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artVariable{s})\ \artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{printNewLineChar}))), \artVariable{$\sigma$}\,\rangle }
200200
\end{split}
201201
\end{equation}
202202

203203
\begin{equation}
204-
\tag*{[\artConstructor{\sf printInt}]}
205-
\begin{split}\frac{ \artVariable{n}\triangleright \artSpecial{int32}(\_) }{\langle\, \artConstructor{\sf print}(\artVariable{n}), \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artVariable{n}), \artVariable{$\sigma$}\,\rangle }
204+
\tag*{[\artConstructor{\sf printlnSingleInt}]}
205+
\begin{split}\frac{ \artVariable{n}\triangleright \artSpecial{int32}(\_) }{\langle\, \artConstructor{\sf println}(\artVariable{n}), \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artConstructor{\sf seq}(\artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artVariable{n})\ \artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{printNewLineChar}))), \artVariable{$\sigma$}\,\rangle }
206206
\end{split}
207207
\end{equation}
208208

209209
\begin{equation}
210-
\tag*{[\artConstructor{\sf printReal}]}
211-
\begin{split}\frac{ \artVariable{n}\triangleright \artSpecial{real64}(\_) }{\langle\, \artConstructor{\sf print}(\artVariable{n}), \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artVariable{n}), \artVariable{$\sigma$}\,\rangle }
210+
\tag*{[\artConstructor{\sf printlnSingleReal}]}
211+
\begin{split}\frac{ \artVariable{n}\triangleright \artSpecial{real64}(\_) }{\langle\, \artConstructor{\sf println}(\artVariable{n}), \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artConstructor{\sf seq}(\artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artVariable{n})\ \artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{printNewLineChar}))), \artVariable{$\sigma$}\,\rangle }
212212
\end{split}
213213
\end{equation}
214214

215215
\begin{equation}
216-
\tag*{[\artConstructor{\sf printBool}]}
217-
\begin{split}\frac{ \artVariable{b}\triangleright \artSpecial{bool}(\_) }{\langle\, \artConstructor{\sf print}(\artVariable{b}), \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artVariable{b}), \artVariable{$\sigma$}\,\rangle }
216+
\tag*{[\artConstructor{\sf printlnSingleBool}]}
217+
\begin{split}\frac{ \artVariable{b}\triangleright \artSpecial{bool}(\_) }{\langle\, \artConstructor{\sf println}(\artVariable{b}), \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artConstructor{\sf seq}(\artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artVariable{b})\ \artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{printNewLineChar}))), \artVariable{$\sigma$}\,\rangle }
218218
\end{split}
219219
\end{equation}
220220

221221
\begin{equation}
222-
\tag*{[\artConstructor{\sf printResolve}]}
223-
\begin{split}\frac{\langle\, \artVariable{E}, \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artVariable{I}, \artVariable{$\sigma$\/$^\prime$}\,\rangle }{\langle\, \artConstructor{\sf print}(\artVariable{E}), \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artConstructor{\sf print}(\artVariable{I}), \artVariable{$\sigma$\/$^\prime$}\,\rangle }
222+
\tag*{[\artConstructor{\sf printlnMultiStr}]}
223+
\begin{split}\frac{ \artVariable{s}\triangleright \artSpecial{string}(\_) }{\langle\, \artConstructor{\sf println}(\artVariable{s}\ \artVariable{E}), \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artConstructor{\sf seq}(\artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artVariable{s})\ \artVariable{E}), \artVariable{$\sigma$}\,\rangle }
224+
\end{split}
225+
\end{equation}
226+
227+
\begin{equation}
228+
\tag*{[\artConstructor{\sf printlnMultiInt}]}
229+
\begin{split}\frac{ \artVariable{n}\triangleright \artSpecial{int32}(\_) }{\langle\, \artConstructor{\sf println}(\artVariable{n}\ \artVariable{E}), \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artConstructor{\sf seq}(\artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artVariable{n})\ \artVariable{E}), \artVariable{$\sigma$}\,\rangle }
230+
\end{split}
231+
\end{equation}
232+
233+
\begin{equation}
234+
\tag*{[\artConstructor{\sf printlnMultiReal}]}
235+
\begin{split}\frac{ \artVariable{n}\triangleright \artSpecial{real64}(\_) }{\langle\, \artConstructor{\sf println}(\artVariable{n}\ \artVariable{E}), \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artConstructor{\sf seq}(\artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artVariable{n})\ \artVariable{E}), \artVariable{$\sigma$}\,\rangle }
236+
\end{split}
237+
\end{equation}
238+
239+
\begin{equation}
240+
\tag*{[\artConstructor{\sf printlnMultiBool}]}
241+
\begin{split}\frac{ \artVariable{b}\triangleright \artSpecial{bool}(\_) }{\langle\, \artConstructor{\sf println}(\artVariable{b}\ \artVariable{E}), \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artConstructor{\sf seq}(\artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artVariable{b})\ \artVariable{E}), \artVariable{$\sigma$}\,\rangle }
242+
\end{split}
243+
\end{equation}
244+
245+
\begin{equation}
246+
\tag*{[\artConstructor{\sf printlnResolve}]}
247+
\begin{split}\frac{\langle\, \artVariable{E$_{1}$}, \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artVariable{I$_{1}$}, \artVariable{$\sigma$\/$^\prime$}\,\rangle }{\langle\, \artConstructor{\sf println}(\artVariable{E$_{1}$}\ \artVariable{E$_{2}$}), \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artConstructor{\sf println}(\artVariable{I$_{1}$}\ \artVariable{E$_{2}$}), \artVariable{$\sigma$\/$^\prime$}\,\rangle }
248+
\end{split}
249+
\end{equation}
250+
251+
\begin{equation}
252+
\tag*{[\artConstructor{\sf printlnResolve}]}
253+
\begin{split}\frac{\langle\, \artVariable{E}, \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artVariable{I}, \artVariable{$\sigma$\/$^\prime$}\,\rangle }{\langle\, \artConstructor{\sf println}(\artVariable{E}), \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artConstructor{\sf println}(\artVariable{I}), \artVariable{$\sigma$\/$^\prime$}\,\rangle }
224254
\end{split}
225255
\end{equation}
226256

@@ -290,6 +320,66 @@
290320
\end{split}
291321
\end{equation}
292322

323+
\begin{equation}
324+
\tag*{[\artConstructor{\sf printlnElemStr}]}
325+
\begin{split}\frac{ \artVariable{s}\triangleright \artSpecial{string}(\_) }{\langle\, \artConstructor{\sf printlnElem}(\artVariable{s}\ \artVariable{E}), \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artConstructor{\sf seq}(\artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artSpecial{string}(\artCaseInsensitiveLiteral{ }))\ \artConstructor{\sf seq}(\artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artVariable{s})\ \artVariable{E})), \artVariable{$\sigma$}\,\rangle }
326+
\end{split}
327+
\end{equation}
328+
329+
\begin{equation}
330+
\tag*{[\artConstructor{\sf printlnElemInt}]}
331+
\begin{split}\frac{ \artVariable{n}\triangleright \artSpecial{int32}(\_) }{\langle\, \artConstructor{\sf printlnElem}(\artVariable{n}\ \artVariable{E}), \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artConstructor{\sf seq}(\artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artSpecial{string}(\artCaseInsensitiveLiteral{ }))\ \artConstructor{\sf seq}(\artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artVariable{n})\ \artVariable{E})), \artVariable{$\sigma$}\,\rangle }
332+
\end{split}
333+
\end{equation}
334+
335+
\begin{equation}
336+
\tag*{[\artConstructor{\sf printlnElemReal}]}
337+
\begin{split}\frac{ \artVariable{n}\triangleright \artSpecial{real64}(\_) }{\langle\, \artConstructor{\sf printlnElem}(\artVariable{n}\ \artVariable{E}), \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artConstructor{\sf seq}(\artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artSpecial{string}(\artCaseInsensitiveLiteral{ }))\ \artConstructor{\sf seq}(\artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artVariable{n})\ \artVariable{E})), \artVariable{$\sigma$}\,\rangle }
338+
\end{split}
339+
\end{equation}
340+
341+
\begin{equation}
342+
\tag*{[\artConstructor{\sf printlnElemBool}]}
343+
\begin{split}\frac{ \artVariable{b}\triangleright \artSpecial{bool}(\_) }{\langle\, \artConstructor{\sf printlnElem}(\artVariable{b}\ \artVariable{E}), \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artConstructor{\sf seq}(\artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artSpecial{string}(\artCaseInsensitiveLiteral{ }))\ \artConstructor{\sf seq}(\artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artVariable{b})\ \artVariable{E})), \artVariable{$\sigma$}\,\rangle }
344+
\end{split}
345+
\end{equation}
346+
347+
\begin{equation}
348+
\tag*{[\artConstructor{\sf printlnElemLast}]}
349+
\begin{split}\frac{ \artVariable{s}\triangleright \artSpecial{string}(\_) }{\langle\, \artConstructor{\sf printlnElem}(\artVariable{s}), \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artConstructor{\sf seq}(\artConstructor{\sf seq}(\artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artSpecial{string}(\artCaseInsensitiveLiteral{ }))\ \artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artVariable{s}))\ \artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{printNewLineChar}))), \artVariable{$\sigma$}\,\rangle }
350+
\end{split}
351+
\end{equation}
352+
353+
\begin{equation}
354+
\tag*{[\artConstructor{\sf printlnElemLastInt}]}
355+
\begin{split}\frac{ \artVariable{n}\triangleright \artSpecial{int32}(\_) }{\langle\, \artConstructor{\sf printlnElem}(\artVariable{n}), \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artConstructor{\sf seq}(\artConstructor{\sf seq}(\artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artSpecial{string}(\artCaseInsensitiveLiteral{ }))\ \artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artVariable{n}))\ \artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{printNewLineChar}))), \artVariable{$\sigma$}\,\rangle }
356+
\end{split}
357+
\end{equation}
358+
359+
\begin{equation}
360+
\tag*{[\artConstructor{\sf printlnElemLastReal}]}
361+
\begin{split}\frac{ \artVariable{n}\triangleright \artSpecial{real64}(\_) }{\langle\, \artConstructor{\sf printlnElem}(\artVariable{n}), \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artConstructor{\sf seq}(\artConstructor{\sf seq}(\artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artSpecial{string}(\artCaseInsensitiveLiteral{ }))\ \artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artVariable{n}))\ \artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{printNewLineChar}))), \artVariable{$\sigma$}\,\rangle }
362+
\end{split}
363+
\end{equation}
364+
365+
\begin{equation}
366+
\tag*{[\artConstructor{\sf printlnElemLastBool}]}
367+
\begin{split}\frac{ \artVariable{b}\triangleright \artSpecial{bool}(\_) }{\langle\, \artConstructor{\sf printlnElem}(\artVariable{b}), \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artConstructor{\sf seq}(\artConstructor{\sf seq}(\artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artSpecial{string}(\artCaseInsensitiveLiteral{ }))\ \artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{print})\ \artVariable{b}))\ \artSpecial{user}(\artSpecial{string}(\artCaseInsensitiveLiteral{printNewLineChar}))), \artVariable{$\sigma$}\,\rangle }
368+
\end{split}
369+
\end{equation}
370+
371+
\begin{equation}
372+
\tag*{[\artConstructor{\sf printlnElemLastResolve}]}
373+
\begin{split}\frac{\langle\, \artVariable{E}, \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artVariable{I}, \artVariable{$\sigma$\/$^\prime$}\,\rangle }{\langle\, \artConstructor{\sf printlnElem}(\artVariable{E}), \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artConstructor{\sf printlnElem}(\artVariable{I}), \artVariable{$\sigma$\/$^\prime$}\,\rangle }
374+
\end{split}
375+
\end{equation}
376+
377+
\begin{equation}
378+
\tag*{[\artConstructor{\sf printlnElemResolve}]}
379+
\begin{split}\frac{\langle\, \artVariable{E$_{1}$}, \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artVariable{I$_{1}$}, \artVariable{$\sigma$\/$^\prime$}\,\rangle }{\langle\, \artConstructor{\sf printlnElem}(\artVariable{E$_{1}$}\ \artVariable{E$_{2}$}), \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artConstructor{\sf printlnElem}(\artVariable{I$_{1}$}\ \artVariable{E$_{2}$}), \artVariable{$\sigma$\/$^\prime$}\,\rangle }
380+
\end{split}
381+
\end{equation}
382+
293383
\begin{equation}
294384
\tag*{[\artConstructor{\sf gtInt}]}
295385
\begin{split}\frac{ \artVariable{n$_{1}$}\triangleright \artSpecial{int32}(\_) \quad \artVariable{n$_{2}$}\triangleright \artSpecial{int32}(\_) }{\langle\, \artConstructor{\sf gt}(\artVariable{n$_{1}$}\ \artVariable{n$_{2}$}), \artVariable{$\sigma$}\,\rangle \rightarrow \langle\, \artSpecial{gt}(\artVariable{n$_{1}$}\ \artVariable{n$_{2}$}), \artVariable{$\sigma$}\,\rangle }

dev.sh

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,25 @@
11
#!/bin/bash
22

3-
./buildPlugin.sh && ./artfx.sh
3+
# Parse
4+
java -cp ".:art.jar" uk.ac.rhul.cs.csle.art.v3.ARTV3 ExtToInt.art
5+
javac -Xlint -cp ".:art.jar" ARTGeneratedParser.java ARTGeneratedLexer.java
6+
output=$(java -cp ".:art.jar" ARTTest $1.str +phaseAG +showAll)
7+
8+
if echo "$output" | grep -q '** Reject'; then
9+
echo "$output"
10+
exit 1
11+
fi
12+
13+
echo "$output"
14+
15+
file1_contents=$(cat eSOSRules.art)
16+
file2_contents=$(cat term.txt)
17+
temp_file=$(mktemp)
18+
echo "$file1_contents !trace 1 !try $file2_contents, __map" > "$temp_file"
19+
20+
# Build plugin
21+
javac --add-modules javafx.controls -cp "art.jar:guava-31.1-jre.jar" ValueUserPlugin.java
22+
23+
java -Dprism.forceGPU=true --add-modules javafx.controls -cp ".:art.jar:guava-31.1-jre.jar" uk.ac.rhul.cs.csle.art.ARTFX "$temp_file" 2>/dev/null
24+
25+
rm "$temp_file"

0 commit comments

Comments
 (0)