public ILangErrorToken(Source source, ILangErrorCode error, char current) : base(source) { TokenType = "error"; Value = error; Text = current.ToString(); }
public void ParseList(Token token, ref ICodeNode parent, ILangTokenType terminator, ILangErrorCode error) { // As long as we are parseing neither endToken or terminating token // do this while (!(token is EndOfFileToken) && (token.TokenType.ToString() != terminator.ToString())) { ICodeNode statementNode = Parse(token); parent.AddChild(statementNode); // token have been moved; get the latest token = CurrentToken(); if (token.TokenType == "semicolon") { token = NextToken(); // move beyond the statement separator. } else if (token.TokenType == "identifier") { ErrorHandler.Singleton.Flag(token, "missing_semicolon", this); } else if (token.TokenType != terminator) { ErrorHandler.Singleton.Flag(token, "unexpected_token", this); token = NextToken(); } } if (token.TokenType == terminator) { token = NextToken(); } else { ErrorHandler.Singleton.Flag(token, error, this); } }