Exemple #1
0
        internal Token NextToken(int id)
        {
            Token token = NextToken();

            if (token.Id == id)
            {
                if (_errorRecovery > 0)
                {
                    _errorRecovery--;
                }
                return(token);
            }
            else
            {
                var list = new ArrayList(1)
                {
                    _tokenizer.GetPatternDescription(id)
                };
                throw new ParseException(
                          ParseException.ErrorType.UNEXPECTED_TOKEN,
                          token.ToShortString(),
                          list,
                          token.StartLine,
                          token.StartColumn);
            }
        }
            public string ToString(Tokenizer tokenizer)
            {
                StringBuilder buffer = new StringBuilder();

                if (tokenizer == null)
                {
                    buffer.Append(_tokens.ToString());
                }
                else
                {
                    buffer.Append("[");
                    for (int i = 0; i < _tokens.Count; i++)
                    {
                        var id  = (int)_tokens[i];
                        var str = tokenizer.GetPatternDescription(id);
                        if (i > 0)
                        {
                            buffer.Append(" ");
                        }
                        buffer.Append(str);
                    }
                    buffer.Append("]");
                }
                if (_repeat)
                {
                    buffer.Append(" *");
                }
                return(buffer.ToString());
            }