static int moveFwdToToken(TokenSequence<JavaTokenId> tokenSequence, final int pos, JavaTokenId id) { tokenSequence.move(pos); tokenSequence.moveNext(); // Assumes the pos is located within input bounds while (!id.equals(tokenSequence.token().id())) { if (!tokenSequence.moveNext()) return -1; } return tokenSequence.offset(); }
/** * The method returns the last token on the line. * @param ts * @return */ public static Token<?extends PHPTokenId> findEndOfLine(TokenSequence<?extends PHPTokenId> ts) { do { Token<?extends PHPTokenId> token = findNextToken(ts, Arrays.asList(PHPTokenId.WHITESPACE, PHPTokenId.PHP_LINE_COMMENT)); for (int i = token.text().length() - 1; i > -1; i--) { if (token.text().charAt(i) == '\n') { return token; } } } while (ts.moveNext()); return ts.token(); }
private TokenSequence<FortranTokenId> getTokenSequence(BaseDocument doc, int dotPos){ FortranCodeStyle.get(doc).setupLexerAttributes(doc); TokenSequence<FortranTokenId> ts = CndLexerUtilities.getFortranTokenSequence(doc, dotPos); if (ts == null) { return null; } ts.move(dotPos); if (!ts.moveNext()) { return null; } return ts; }
static JavaTokenId moveFwdToOneOfTokens(TokenSequence<JavaTokenId> tokenSequence, final int pos, EnumSet<JavaTokenId> ids) { tokenSequence.move(pos); tokenSequence.moveNext(); // Assumes the pos is located within input bounds while (!ids.contains(tokenSequence.token().id())) { if (!tokenSequence.moveNext()) return null; } return tokenSequence.token().id(); }
public static TokenSequence getTokenSequence (Document document, int offset) { TokenHierarchy tokenHierarchy = TokenHierarchy.get (document); if (tokenHierarchy == null) return null; TokenSequence tokenSequence = tokenHierarchy.tokenSequence (); if (tokenSequence == null) return null; while (true) { tokenSequence.move (offset); if (!tokenSequence.moveNext ()) return tokenSequence; TokenSequence tokenSequence2 = tokenSequence.embedded (); if (tokenSequence2 == null) return tokenSequence; tokenSequence = tokenSequence2; } }
private boolean isLeftBraceOnNewLine(int startOffset, int endOffset) { ts.move(startOffset); while (ts.moveNext()) { if (ts.offset() >= endOffset) { return false; } if (ts.token().id() == JavaTokenId.LBRACE) { if (!ts.movePrevious()) { return false; } return ts.token().id() == JavaTokenId.LINE_COMMENT || ts.token().id() == JavaTokenId.WHITESPACE && ts.token().text().toString().indexOf('\n') >= 0; } } return false; }