101102103104105106107108109110111
Token eat(Token.Type ... types) { if (types.length > 0 && !matches(types)) { throw new ParseError(next(), types); } else { Token t = next(); idx += 1;
187188189190191192193194195196197
case 'x': result.append(decode(st.substring(i+2, i+4))); i += 2; break; default: throw new ParseError(tok); } i += 1; } else {
317318319320321322323324325326327328329330331332333334335336
{ break; } else { throw new ParseError(next(), COMMA, RBRACE); } } else if (matches(RBRACE)) { break; } else { throw new ParseError(next(), NUMBER, STRING, ID, LBRACE, LBRACK, RBRACE); } } eat(RBRACE);
359360361362363364365366
{ return list(); } else { throw new ParseError(next(), NUMBER, STRING, ID, LBRACE, LBRACK); } }
388389390391392393394395396397398
{ break; } else { throw new ParseError(next(), COMMA, RBRACK); } } } eat(RBRACK);