public void eatVersionNumber() { Token tok = tokenStream.next(); assert tok.getKind() == TokenKind.VALUE; visitor.visitManifestVersion(tok.value()); }
/** * Compute the line that the token is on, using the linebreak information * and the tokens offset * @param token on the line * @return the line number */ public int getLine(Token token) { return getRelevantStartLinebreakEntry(token.getStartOffset()) + 1; }
public void eatAttribute(boolean isMain) { Token nameToken = tokenStream.next(); // Token colonToken = tokenStream.next(); Token valueToken = tokenStream.next(); // Token newlineToken = tokenStream.next(); // This gives the visitor a chance to decide what it wants to do about // the value visitor.visitHeader(nameToken.value(), valueToken.value()); }
private void emitNameToken() { lastEmittedNameToken = ManifestToken.makeName(subarray(token, 0, correctMaxPosition(tokenPos)), startPosition, dataPos); tokenStream.addToken(lastEmittedNameToken); }
private void emitValueToken(int spos, int epos) { tokenStream.addToken(ManifestToken.makeValue(subarray(token, 0, correctMaxPosition(tokenPos)), spos, epos)); }
/** * Tokenize a string representing a manifest. * @param manifestString the string * @return the token stream */ public static TokenStream tokenize(String manifestString) { manifestString = manifestString + "\n\n"; RecoveringManifestLexer lexer = new RecoveringManifestLexer(); lexer.initialize(); lexer.process(manifestString); return lexer.tokenStream; }
public int getEndColumn(Token token) { int lb = getRelevantEndLinebreakEntry(token.getEndOffset()); return token.getEndOffset() - linebreaks[lb]; }
ManifestContents parseManifest() { checkForRogueNewlinesProceedingInput(); boolean cont = eatSection(true); // cont indicates whether the visitor // decided to stop processing early while (tokenStream.hasMore() && cont) { cont = eatSection(false); } if (cont) { confirmEnd(); } return visitor.getManifestContents(); }
/** * @return true if problems were found during parsing */ public boolean foundProblems() { return tokenStream.containsProblems(); }
/** * @return the list of problems that occurred during parsing */ public List<ManifestProblem> getProblems() { return tokenStream.getProblems(); }
public int getColumn(int offset) { int lb = getRelevantStartLinebreakEntry(offset); return offset - linebreaks[lb]; }
@Override public String toString() { return toFormattedString(true); }
public RecoveringManifestParser() { this.visitor = new StandardVisitor(); }
public int getStartColumn(Token token) { int lb = getRelevantStartLinebreakEntry(token.getStartOffset()); return token.getStartOffset() - linebreaks[lb]; }
public int getEndLine(Token token) { return getRelevantEndLinebreakEntry(token.getEndOffset()) + 1; }