Beispiel #1
0
            /// <summary>
            /// Creates a new IOInstruction.
            /// </summary>
            public override Node ExitIo(Production node)
            {
                ArrayList     values = GetChildValues(node);
                IOInstruction i      = new IOInstruction();

                switch (node[0].Id)
                {
                case (int)PicoConstants.IN: i.Type = IOTypes.In; break;

                case (int)PicoConstants.OUT: i.Type = IOTypes.Out; break;
                }
                i.Address   = Assembler.NextInstructionAddress;
                i.Argument1 = (Argument)values[0];
                if (values.Count == 2)
                {
                    i.Argument2 = (Argument)values[1];
                }
                i.Line      = node.StartLine;
                i.Column    = node.StartColumn;
                i.Assembler = Assembler;
                Assembler.Instructions.Add(i);
                return(node);
            }
Beispiel #2
0
 /// <summary>
 /// Creates a new IOInstruction.
 /// </summary>
 public override Node ExitIo(Production node)
 {
     ArrayList values = GetChildValues(node);
     IOInstruction i = new IOInstruction();
     switch (node[0].Id)
     {
         case (int)PicoConstants.IN: i.Type = IOTypes.In; break;
         case (int)PicoConstants.OUT: i.Type = IOTypes.Out; break;
     }
     i.Address = Assembler.NextInstructionAddress;
     i.Argument1 = (Argument)values[0];
     if (values.Count == 2) i.Argument2 = (Argument)values[1];
     i.Line = node.StartLine;
     i.Column = node.StartColumn;
     i.Assembler = Assembler;
     Assembler.Instructions.Add(i);
     return node;
 }