/** Reads a quoted or unquoted string and returns it. */ public String readString() { skipWhitespace(true); char c = peekChar(); return c == '"' || c == '\'' ? readQuotedString() : readWord(); }
/** Reads a reserved tags and names list like "reserved 10, 12 to 14, 'foo';". */ private ReservedElement readReserved(Location location, String documentation) { ImmutableList.Builder<Object> valuesBuilder = ImmutableList.builder(); while (true) { char c = reader.peekChar(); if (c == '"' || c == '\'') { valuesBuilder.add(reader.readQuotedString()); } else { int tagStart = reader.readInt(); c = reader.peekChar(); if (c != ',' && c != ';') { if (!reader.readWord().equals("to")) { throw reader.unexpected("expected ',', ';', or 'to'"); } int tagEnd = reader.readInt(); valuesBuilder.add(Range.closed(tagStart, tagEnd)); } else { valuesBuilder.add(tagStart); } } c = reader.readChar(); if (c == ';') break; if (c != ',') throw reader.unexpected("expected ',' or ';'"); } ImmutableList<Object> values = valuesBuilder.build(); if (values.isEmpty()) { throw reader.unexpected("'reserved' must have at least one field name or tag"); } return ReservedElement.create(location, documentation, values); }
public ProfileFileElement read() { String label = reader.readWord(); if (!label.equals("syntax")) throw reader.unexpected("expected 'syntax'"); reader.require('='); String syntaxString = reader.readQuotedString(); if (!syntaxString.equals("wire2")) throw reader.unexpected("expected 'wire2'"); reader.require(';'); while (true) { String documentation = reader.readDocumentation(); if (reader.exhausted()) { return fileBuilder.packageName(packageName) .imports(imports.build()) .typeConfigs(typeConfigs.build()) .build(); } readDeclaration(documentation); } }
location, "'syntax' element must be the first declaration in a file"); String syntaxString = reader.readQuotedString(); try { syntax = ProtoFile.Syntax.get(syntaxString);
/** Reads a quoted or unquoted string and returns it. */ public String readString() { skipWhitespace(true); char c = peekChar(); return c == '"' || c == '\'' ? readQuotedString() : readWord(); }
/** Reads a reserved tags and names list like "reserved 10, 12 to 14, 'foo';". */ private ReservedElement readReserved(Location location, String documentation) { ImmutableList.Builder<Object> valuesBuilder = ImmutableList.builder(); while (true) { char c = reader.peekChar(); if (c == '"' || c == '\'') { valuesBuilder.add(reader.readQuotedString()); } else { int tagStart = reader.readInt(); c = reader.peekChar(); if (c != ',' && c != ';') { if (!reader.readWord().equals("to")) { throw reader.unexpected("expected ',', ';', or 'to'"); } int tagEnd = reader.readInt(); valuesBuilder.add(Range.closed(tagStart, tagEnd)); } else { valuesBuilder.add(tagStart); } } c = reader.readChar(); if (c == ';') break; if (c != ',') throw reader.unexpected("expected ',' or ';'"); } ImmutableList<Object> values = valuesBuilder.build(); if (values.isEmpty()) { throw reader.unexpected("'reserved' must have at least one field name or tag"); } return ReservedElement.create(location, documentation, values); }
public AbstractProfileFileElement read() { String label = reader.readWord(); if (!"syntax".equals(label)) { throw reader.unexpected("expected 'syntax'"); } reader.require('='); String syntaxString = reader.readQuotedString(); if (!"wire2".equals(syntaxString)) { throw reader.unexpected("expected 'wire2'"); } reader.require(';'); while (true) { String documentation = reader.readDocumentation(); if (reader.exhausted()) { return fileBuilder.packageName(packageName) .imports(imports.build()) .typeConfigs(typeConfigs.build()) .build(); } readDeclaration(documentation); } }
location, "'syntax' element must be the first declaration in a file"); String syntaxString = reader.readQuotedString(); try { syntax = ProtoFile.Syntax.get(syntaxString);