Exemplo n.º 1
0
 private void AnalyProcDesc()
 {
     CallDesc = new ZMethodCall();
     ArgExps  = new List <Exp>();
     foreach (var item in this.Elements)
     {
         //if (this.Elements[0].ToString().StartsWith("战场参数的绘图器"))
         //{
         //    Console.WriteLine(this.ToString());
         //}
         if (item is ExpProcNamePart)
         {
             ExpProcNamePart namePartExp = item as ExpProcNamePart;
             CallDesc.Add(namePartExp.PartName);
         }
         else if (item is ExpBracket)
         {
             ExpBracket   bracketExp   = item as ExpBracket;
             ZBracketCall zbracketDesc = bracketExp.GetCallDesc();
             CallDesc.Add(zbracketDesc);
             ArgExps.AddRange(bracketExp.GetSubExps());
         }
         else
         {
             throw new CCException();
         }
     }
 }
Exemplo n.º 2
0
        private Exp SearchSubject( )
        {
            Exp SubjectExp = Elements[0];

            if (SubjectExp is ExpProcNamePart)
            {
                return(null);
            }
            else if (SubjectExp is ExpNameValue)
            {
                return(null);
            }
            else
            {
                while (SubjectExp is ExpBracket)
                {
                    ExpBracket expBracket = SubjectExp as ExpBracket;
                    if (expBracket.Count == 1)
                    {
                        SubjectExp = expBracket.GetSubExps()[0];
                    }
                    else
                    {
                        throw new CCException();
                    }
                }
                ZMethodCall    tailDesc       = CallDesc.CreateTail();
                List <Exp>     argExps        = ListHelper.GetSubs <Exp>(ArgExps, 1);
                ExpCallSubject expCallSubject = new ExpCallSubject(this.ExpContext, SubjectExp, tailDesc, this.SrcExp, argExps);
                return(expCallSubject);
            }
        }