ATMLWorkBench.model.Verb.Parse C# (CSharp) Method

Parse() public static method

public static Parse ( List &statements, int &index ) : Verb
statements List
index int
return Verb
        public static Verb Parse(ref List<String> statements, ref int index)
        {
            Verb verb = null;
            String statement = statements[index].Trim();
            int idx = statement.IndexOf(" ");//--- Find first space
            if( idx != -1 )
            {
                String lineNo = statement.Substring(0, idx);
                String command = statement.Substring(idx).Trim();
                String[] parts = command.Split(',');
                String verbName = parts[0].Trim();
                if( "DEFINE" == verbName )
                    verb = new Define(ref statements, ref index);
                else if( "END" == verbName )
                    verb = new End(ref statements, ref index);
                else if( "DECLARE" == verbName )
                    verb = new Declare(ref statements, ref index);
                else if( "REQUIRE" == verbName )
                    verb = new Require(ref statements, ref index);
                else if( "APPLY" == verbName )
                    verb = new Signal(ref statements, ref index);
                else
                    verb = new Verb(ref statements, ref index);
                verb.LineNo = lineNo;
            }
            return verb;
        }

Usage Example

示例#1
0
        public Define(ref List <String> statements, ref int index)
            : base(ref statements, ref index)
        {
            if (parts.Count() < 3)
            {
                throw new Exception("Invalid Define Statement");
            }
            if (parts[2].StartsWith("EXT"))
            {
                isModule = true;
                Name     = parts[3];
            }
            else if (parts[2].StartsWith("PROC"))
            {
                Name = parts[2];
            }
            Verb verb = Verb.Parse(ref statements, ref index);;

            while (!(verb is End && verb.Name.Equals(this.Name)))
            {
                Children.Add(verb);
                verb = Verb.Parse(ref statements, ref index);
            }
            Children.Add(verb); //Add the end verb
        }