FnText parseFnText() { FnText textterm = new FnText(); textterm.TextToken = CurrentToken; MoveNext(); return(textterm); }
FnName parseFnName() { FnName fname = new FnName(); var curline = CurrentToken.Line; while (CurrentToken.Kind != TokenKind.EOF && curline == CurrentToken.Line) { if (CurrentKind == TokenKind.LBS) { FnBracket arg = parseFnMuArg(); if (arg != null) { fname.NameTerms.Add(arg); } } else if (CurrentKind == TokenKind.Ident) { FnText textt = parseFnText(); if (textt != null) { fname.NameTerms.Add(textt); } } else if (CurrentKind == TokenKind.AssignTo) { if (fname.NameTerms == null || fname.NameTerms.Count == 0) { error("过程没有名称"); MoveNext(); } else { MoveNext(); if (/*CurrentToken.IsAtomData()||*/ CurrentKind == TokenKind.Ident) { fname.RetToken = CurrentToken; MoveNext(); } else { error("错误的过程结果"); MoveNext(); } } } else { error("错误的过程名称"); MoveNext(); } } return(fname); }