Jeremy Siek 3 vuotta sitten
vanhempi
commit
cdbd146dde
1 muutettua tiedostoa jossa 10 lisäystä ja 7 poistoa
  1. 10 7
      book.tex

+ 10 - 7
book.tex

@@ -2062,21 +2062,24 @@ class InterpPvar:
       case Call(Name('input_int'), []):
         return int(input())            
 
-  def interp_stmt(self, s, env):
-    match s:
+  def interp_stmts(self, ss, env):
+    if len(ss) == 0:
+      return
+    match ss[0]:
       case Assign([lhs], value):
         env[lhs.id] = self.interp_exp(value, env)
+        return self.interp_stmts(ss[1:], env)
       case Expr(Call(Name('print'), [arg])):
-        print(self.interp_exp(arg, env))
+        print(self.interp_exp(arg, env), end='')
+        return self.interp_stmts(ss[1:], env)
       case Expr(value):
         self.interp_exp(value, env)
+        return self.interp_stmts(ss[1:], env)
 
-  def interp_Pvar(self, p):
+  def interp_P(self, p):
     match p:
       case Module(body):
-        env = {}
-        for s in body:
-          self.interp_stmt(s, env)
+        self.interp_stmts(body, {})
 \end{lstlisting}
 \fi}
 \caption{Interpreter for the \LangVar{} language.}