Axiom.Runtime.AbstractInstruction.NumberOfArguments C# (CSharp) Method

NumberOfArguments() public abstract method

public abstract NumberOfArguments ( ) : int
return int
        public abstract int NumberOfArguments();

Usage Example

Ejemplo n.º 1
0
 private static void WriteXmlInstructionArguments(XmlTextWriter xmltw, AbstractInstruction cinst)
 {
     switch (cinst.NumberOfArguments())
     {
         case 0:
             xmltw.WriteStartElement(cinst.Name());
             xmltw.WriteEndElement();
             break;
         case 1:
             xmltw.WriteStartElement(cinst.Name());
             xmltw.WriteAttributeString("arg1", cinst.ToString().Split(new char[] { ' ' })[1]);
             xmltw.WriteEndElement();
             break;
         case 2:
             xmltw.WriteStartElement(cinst.Name());
             if (cinst.Name() == "put_structure")
             {
                 string args = cinst.ToString().Split(new char[] { ' ' })[1];
                 xmltw.WriteAttributeString("arg1", args.Split(new char[] { ',' })[0]);
                 xmltw.WriteAttributeString("arg2", args.Split(new char[] { ',' })[1]);
                 xmltw.WriteEndElement();
             }
             else
             {
                 if (cinst.ToString().IndexOf('"') != -1)
                 {
                     // put_constant "Hello, World", X0
                     string instStr = cinst.ToString();
                     string arg1 = instStr.Substring(instStr.IndexOf('"'), instStr.LastIndexOf('"') - instStr.IndexOf('"') + 1);
                     string arg2 = instStr.Substring(instStr.LastIndexOf('"') + 2);
                     xmltw.WriteAttributeString("arg1", arg1);
                     xmltw.WriteAttributeString("arg2", arg2);
                     xmltw.WriteEndElement();
                 }
                 else if (cinst.ToString().IndexOf('\'') != -1)
                 {
                     // put_constant 'Hello, World', X0
                     string instStr = cinst.ToString();
                     string arg1 = instStr.Substring(instStr.IndexOf('\''), instStr.LastIndexOf('\'') - instStr.IndexOf('\'') + 1);
                     string arg2 = instStr.Substring(instStr.LastIndexOf('\'') + 2);
                     xmltw.WriteAttributeString("arg1", arg1);
                     xmltw.WriteAttributeString("arg2", arg2);
                     xmltw.WriteEndElement();
                 }
                 else
                 {
                     string args = cinst.ToString().Split(new char[] { ' ' })[1];
                     xmltw.WriteAttributeString("arg1", args.Split(new char[] { ',' })[0]);
                     xmltw.WriteAttributeString("arg2", args.Split(new char[] { ',' })[1]);
                     xmltw.WriteEndElement();
                 }
             }
             break;
     }
 }