public SupportingComTerminalExpression(List<TokenReader> tokenList)
 {
     FillSupportComNounList();
     FillSupportComVerbList();
     this.State = null;
     this.TokenList = tokenList;
     for (int i = 0; i < tokenList.Count; i++)
     {
         for (int j = 0; j < supportComNounList.Count; j++)
         {
             if (tokenList.ElementAt(i).Token == supportComNounList.ElementAt(j))
             {
                 Noun = new NounScriptTerminalExpression(supportComNounList.ElementAt(j));
                 //State = Noun.Name;
                 break;
             }
         }
     }
     for (int i = 0; i < tokenList.Count; i++)
     {
         for (int j = 0; j < supportComVerbList.Count; j++)
         {
             if (tokenList.ElementAt(i).Token == supportComVerbList.ElementAt(j))
             {
                 Verb = new VerbScriptCommandExpression(supportComVerbList.ElementAt(j));
                 //State = Verb.Name;
                 break;
             }
         }
     }
 }
        public MainComTerminalExpression(List<TokenReader> tokenList)
        {
            FillNounList();
            FillVerbList();
            this.State = null;
            this.TokenList = tokenList;
            this.ParameterList = new List<ParamTerminalExpression>();
            for (int i = 0; i < tokenList.Count; i++)
            {
                for(int j = 0; j < nounList.Count; j++)
                {
                    if(tokenList.ElementAt(i).Token==nounList.ElementAt(j))
                    {
                        string s = nounList.ElementAt(j);
                        StringBuilder sb = new StringBuilder(s);
                        sb[0] = char.ToUpper(sb[0]);
                        Noun = new NounScriptTerminalExpression(sb.ToString());
                        //State = Noun.Name;
                        break;
                    }
                }
                for (int k = 0; k < verbList.Count; k++)
                {
                    if (tokenList.ElementAt(i).Token == verbList.ElementAt(k))
                    {
                        string s = verbList.ElementAt(k);
                        StringBuilder sb = new StringBuilder(s);
                        sb[0] = char.ToUpper(sb[0]);
                        Verb = new VerbScriptCommandExpression(sb.ToString());
                        //State = Verb.Name;
                        break;
                    }
                }
            }
            for (int i = 0; i < tokenList.Count; i++)
            {
                if(tokenList.ElementAt(i).Token=="-" && tokenList.ElementAt(i-1).Token==" ")
                {
                    ParamTerminalExpression parameter = new ParamTerminalExpression(tokenList.ElementAt(i + 1).Token, tokenList.ElementAt(i + 3).Token);
                    ParameterList.Add(parameter);
                }
            }
            //this.MainParser = parser;
            //for (int i = 0; i < parser.TokenList.Count; i++)
            //{
            //    if (parser.TokenList.ElementAt(i).Token == "get" || parser.TokenList.ElementAt(i).Token == "set")
            //    {
            //        this.Verb = new VerbScriptCommandExpression(parser.TokenList.ElementAt(i).Token);
            //    }

            //    if (parser.TokenList.ElementAt(i).Token == "process" || parser.TokenList.ElementAt(i).Token == "volume")
            //    {
            //        this.Noun = new NounScriptTerminalExpression(parser.TokenList.ElementAt(i).Token);
            //    }
            //}
        }