internal void ParseMethod(Token tok) { Advance(); //past 'method Token nameToken = CurrentToken; Advance(); //past name // ExpertDef parent = (ExpertDef)CurrentNode; TaskDef methodDef = parent.CreateTaskDef(nameToken, AstNodeKind.TaskDef); // ParseTrigger(methodDef); ParseProperties(methodDef); // if (CurrentToken == null) { return; } //else PushTaskDef(methodDef); PushNode(methodDef.ProcedureDef); do { CreateState(CurrentList); ParseMethodItem(methodDef); PopState(); } while (Advance()); PopNode(); PopTaskDef(); }
internal void ParseExpert(Token tok) { Advance();//past expert Token name = CurrentToken; Advance();//past name // Token baseName = TokenInstance.CSharp.EXPERT; if (CurrentToken.Kind == TokenKind.RoundList) { TokenList tokList = CurrentList; if (tokList.Count != 0) { baseName = tokList[0]; } Advance();//past base name } // ExpertDef def = new ExpertDef(name, baseName); CurrentNode.AddChild(def); ParseLines(def); }