Skip to content

Commit 5250815

Browse files
committed
Fixed bugs
1 parent fe76ddd commit 5250815

File tree

1 file changed

+5
-8
lines changed

1 file changed

+5
-8
lines changed

src/resources/Intepreter.pl

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
%:- use_rendering(svgtree).
2-
keyWords(X):- member(X,[for,if,then, while, endif, else, endfor, endwhile,do, true, false, list,isEmpty, pushFirst,
3-
pushLast,popFirst, popLast, print, begin, end, var]),write(X),write(" is a keyword. It cannot be initialized."),nl,abort.
42
endLine --> [;].
53
equal --> [=].
64
var --> [var].
75
begin --> [begin].
86
end --> [end].
97

108
digit(X) --> [X], {number(X)} .
11-
identifier(t_id(X)) --> [X],{atom(X), keyWords(X)}.
9+
identifier(t_id(X)) --> [X],{atom(X), X\=true, X\=false}.
1210
anystring(t_string(X)) --> [X],{atom(X)}.
1311

1412
program(t_program(X)) --> block(X).
@@ -31,13 +29,12 @@
3129
*/
3230
commandList(t_commandList(X,Y)) --> commandI(X),endLine,commandList(Y).
3331
commandList(t_commandList(X)) --> commandI(X),endLine.
34-
commandI(X) --> print(X).
32+
commandI(X) --> display(X).
3533
commandI(X) --> commandInitialize(X).
3634
commandI(X) --> ifEval(X).
3735
commandI(X) --> forEval(X).
3836
commandI(X) --> whileEval(X).
3937
commandI(X) --> ternaryEval(X).
40-
commandI(X) --> block(X).
4138
commandI(X) --> list_push(X).
4239
commandI(X) --> list_pop(X).
4340
commandI(X) --> list_isEmpty(X).
@@ -126,7 +123,7 @@
126123
factor(X) --> booleanI(X).
127124
factor(X) -->['"'], anystring(X),['"'].
128125

129-
print(t_print(X)) --> [print],['('],expr(X),[')'].
126+
display(t_display(X)) --> [print],['('],expr(X),[')'].
130127

131128

132129
/*--------------------------------------Program Evaluation--------------------------------------*/
@@ -149,7 +146,7 @@
149146
eval_commandI(t_commandInitialize(X,Y),EnvIn,EnvOut) :- eval_id(X,EnvIn,EnvIn,_Val1),eval_Identity(X,Id),
150147
eval_expr(Y, EnvIn, Env1, Val) ,update(Id,Val,Env1, EnvOut).
151148

152-
eval_commandI(t_print(X),EnvIn,EnvOut) :- eval_expr(X, EnvIn,EnvOut, Val),write(Val),nl.
149+
eval_commandI(t_display(X),EnvIn,EnvOut) :- eval_expr(X, EnvIn,EnvOut, Val),write(Val),nl.
153150

154151
% Evaluation Logic for IF loop and If-then-else-----------------------------------------------------------------------
155152
eval_commandI(t_ifEval(X,Y),EnvIn,EnvOut):- eval_bool(X,EnvIn,EnvOut1,true),
@@ -225,7 +222,7 @@
225222
eval_commandI(t_list_isempty_assign(t_id(X),t_id(Y)),EnvIn,EnvOut) :- lookup(X,EnvIn,Val), length(Val,Val1),Val1 > 0,
226223
update(Y,false,EnvIn,EnvOut).
227224

228-
eval_commandI(X,Env,NewEnv):-eval_block(X,Env,NewEnv).
225+
229226

230227
eval_commandIFor(t_commandInitialize(t_id(X),Y),EnvIn,EnvOut) :-eval_expr(Y, EnvIn, Env1, Val),
231228
update(X,Val,Env1, EnvOut).

0 commit comments

Comments
 (0)