Exemplo n.º 1
0
 void Action(out Action act)
 {
     act = null; Expression exp = null; Variable v = null;
     if (la.kind == 3)
     {
         Get();
         InAction inAct = new InAction(t.val);
         if (la.kind == 10)
         {
             Get();
             Expect(3);
             v = new Variable(t.val); SetPos(v, t); inAct.AddVariable(v);
             while (la.kind == 11)
             {
                 Get();
                 Expect(3);
                 v = new Variable(t.val); SetPos(v, t); inAct.AddVariable(v);
             }
             Expect(12);
         }
         act = inAct;
     }
     else if (la.kind == 5)
     {
         Get();
         OutAction outAct = new OutAction(t.val);
         if (la.kind == 10)
         {
             Get();
             ArithmeticExpression(out exp);
             outAct.AddExpression(exp);
             while (la.kind == 11)
             {
                 Get();
                 ArithmeticExpression(out exp);
                 outAct.AddExpression(exp);
             }
             Expect(12);
         }
         act = outAct;
     }
     else if (la.kind == 6)
     {
         MethodCall(out exp, true);
         act = new Call((MethodCallExpression)exp);
     }
     else
     {
         SynErr(43);
     }
 }