public BoolConstantAstNode(bool val) { Value = val; if (val) { Token = new TokenItem { KeyWord = KeyWords.True, Type = TokenType.Keyword, TokenString = "true", }; } else { Token = new TokenItem { KeyWord = KeyWords.False, Type = TokenType.Keyword, TokenString = "false", }; } }
public TokenItem NextToken() { while (_idx < _input.Length && ( _input[_idx] == ' ' || _input[_idx] == ' ' || _input[_idx] == '\t' || _input[_idx] == '\n')) { _idx++; } if (_idx >= _input.Length) { _errors.Add(new TokenizeError() { Start = _idx, Length = 0, Type = TokenizeErrorType.IndexOutOfRange }); return(null); } TokenItem token = ReadOperator() ?? ReadLiteral(); return(token); }
public void Failback(TokenItem token) { _idx -= token.TokenString.Length; }