Пример #1
0
 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",
         };
     }
 }
Пример #2
0
        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);
        }
Пример #3
0
 public void Failback(TokenItem token)
 {
     _idx -= token.TokenString.Length;
 }