PropertyAST parseStaticProperty(CodePostion parentPostion) { PropertyAST ast = new PropertyAST(); if (CurrentKind != TokenKind.Ident) { error("不是正确的名称"); } else { ast.TypeToken = CurrentToken; } MoveNext(); match(TokenKind.Colon); if (CurrentKind != TokenKind.Ident) { error("不是正确的变量名称"); } else { ast.NameToken = CurrentToken; } MoveNext(); if (CurrentKind == TokenKind.Assign) { MoveNext(); Exp exp = parseExp(); ast.ValueExp = exp; } matchSemiOrNewLine();//match(TokenKind.Semi); return(ast); }
List <Token> parseAgreementBlock(CodePostion parentPostion) { List <Token> list = new List <Token>(); while (CurrentToken.Kind != TokenKind.EOF && CurrentToken.Col > parentPostion.Col) { Token temp = parseEnumItem(); if (temp != null) { list.Add(temp); } } return(list); }
BlockStmt parseBlock(CodePostion parentPostion, int deep) { //report("parseBlock()"); BlockStmt blockStmt = new BlockStmt(); List <Stmt> arr = new List <Stmt>(); while (CurrentToken.Kind != TokenKind.EOF && CurrentToken.Col > parentPostion.Col) { Stmt temp = parseStmt(deep + 1); if (temp != null) { blockStmt.Add(temp); } } return(blockStmt); }
Stmt parseIf(int deep) { IfStmt ifStmt = new IfStmt(); IfStmt.IfTrueStmt ifPart = parseTruePart(deep); ifStmt.Parts.Add(ifPart); while (CurrentToken.Kind == TokenKind.ELSEIF) { IfStmt.IfTrueStmt elseifPart = parseTruePart(deep); ifStmt.Parts.Add(elseifPart); } if (CurrentToken.Kind == TokenKind.ELSE) { CodePostion pos = CurrentToken.Postion; MoveNext(); ifStmt.ElsePart = parseBlock(pos, deep); } return(ifStmt); }
public TKTContentModel(string content, CodePostion postion) { this.Content = content; this.Postion = postion; }
public void errorf(CodePostion postion, string msgFormat, params string[] msgParams) { string msg = string.Format(msgFormat, msgParams); error(postion, msg); }
protected void error(CodePostion postion, string msg) { Messager.Error(postion.Line, postion.Col, /*this.GetType().Name + ":" + */ msg); TrueAnalyed = false; }