Exemple #1
0
        public override void AcceptEmitter(AsmEmitter asm)
        {
            Game g     = Game.GetInstance();
            int  strId = g.GetStringId(msg);

            asm.WritePrintLn(strId, msg);
        }
Exemple #2
0
 //applies the operator and leaves
 //the result on the stack
 public void AcceptEmitter(AsmEmitter asm)
 {
     if (opType == Opr.EQ)
     {
         asm.WriteEqTest();
     }
     else if (opType == Opr.NEQ)
     {
         asm.WriteNeqTest();
     }
     else if (opType == Opr.GT)
     {
         asm.WriteGtTest();
     }
     else if (opType == Opr.LT)
     {
         asm.WriteLtTest();
     }
     else if (opType == Opr.AND)
     {
         asm.WriteAndTest();
     }
     else if (opType == Opr.OR)
     {
         asm.WriteOrTest();
     }
 }
Exemple #3
0
 public override void AcceptEmitter(AsmEmitter asm)
 {
     foreach (Statement s in statements)
     {
         s.AcceptEmitter(asm);
     }
 }
Exemple #4
0
        public void AcceptEmitter(AsmEmitter asm)
        {
            //write the expression
            lhs.AcceptEmitter(asm);
            rhs.AcceptEmitter(asm);

            //apply operator and leave result on stack
            op.AcceptEmitter(asm);
        }
Exemple #5
0
        public override void AcceptEmitter(AsmEmitter asm)
        {
            Game g = Game.GetInstance();
            int  o = g.GetObjectId(obj);

            asm.WriteConstant(o);

            rhs.AcceptEmitter(asm);  //push value

            asm.WriteSetAttr(attr);
        }
Exemple #6
0
        public override void AcceptEmitter(AsmEmitter asm)
        {
            string label = asm.GetNextLabel();


            if (elseNode == null)
            {                                //just an 'if' statement
                expr.AcceptEmitter(asm);     //leaves result on stack
                asm.WriteJumpOnFalse(label); //pull it and jump
                body.AcceptEmitter(asm);
                asm.WriteLabel(label);
            }
            else if (elseNode != null)
            {
                string outLabel = asm.GetNextLabel();
                asm.WriteJumpOnFalse(label); //pull it and jump
                body.AcceptEmitter(asm);
                asm.WriteJump(outLabel);     //jump out
                asm.WriteLabel(label);
                elseNode.AcceptEmitter(asm);
                asm.WriteLabel(outLabel);
            }
        }
Exemple #7
0
 public override void AcceptEmitter(AsmEmitter asm)
 {
     asm.WriteMove();
 }
Exemple #8
0
 public virtual void AcceptEmitter(AsmEmitter asm)
 {
 }
Exemple #9
0
 public void AcceptEmitter(AsmEmitter asm)
 {
     asm.WriteConstant(val);
 }
Exemple #10
0
 public override void AcceptEmitter(AsmEmitter asm)
 {
     val.AcceptEmitter(asm); //push rhs
     asm.WriteAddToVar(varName);
 }
Exemple #11
0
 public override void AcceptEmitter(AsmEmitter asm)
 {
     rhs.AcceptEmitter(asm);  //push rhs
     asm.WriteSetVar(varName);
 }
Exemple #12
0
 public abstract void AcceptEmitter(AsmEmitter asm);