示例#1
0
        private ProcNameRaw ParseProcName()
        {
            ProcNameRaw procName = new ProcNameRaw();

            while (tape.HasCurrent)
            {
                if (tape.Current.IsKind(TokenKindSymbol.LBS))
                {
                    var bck = ParseProcBracket();
                    if (bck != null)
                    {
                        procName.NameTerms.Add(bck);
                    }
                }
                else if (tape.Current.IsKind(TokenKindKeyword.Ident))
                {
                    ProcNameRaw.NameText pt = new ProcNameRaw.NameText();
                    pt.TextToken = (LexTokenText)tape.Current;
                    procName.NameTerms.Add(pt);
                    tape.MoveNext();
                }
                else if (tape.Current.IsKind(TokenKindSymbol.Colon))
                {
                    break;
                }
                else
                {
                    tape.error("错误的过程名称");
                    break;
                }
            }
            return(procName);
        }
示例#2
0
 public MethodName(ProcMethod methodAST, ProcNameRaw nameRaw)
 {
     MethodAST = methodAST;
     NameRaw   = nameRaw;
     NameParts = new List <object>();
 }