Пример #1
0
 private void VisitUnaryOperator(AmlParserNode operand,
                                 AmlParser.Target target, StackIRNode stackNode)
 {
     if (IsNullTarget(target))
     {
         operand.Accept(this);
         result.Add(stackNode);
     }
     else
     {
         target.Accept(this);
         operand.Accept(this);
         result.Add(stackNode);
         result.Add(new Store());
     }
 }
Пример #2
0
 private void VisitBinaryOperator(AmlParserNode left, AmlParserNode right,
                                  AmlParser.Target target, StackIRNode stackNode)
 {
     if (IsNullTarget(target))
     {
         right.Accept(this);
         left.Accept(this);
         result.Add(stackNode);
     }
     else
     {
         target.Accept(this);
         right.Accept(this);
         left.Accept(this);
         result.Add(stackNode);
         result.Add(new Store());
     }
 }
Пример #3
0
 public void Add(StackIRNode node)
 {
     list.Add(node);
 }