@Override public boolean consume(CodeReader code, TokenQueue output) { if (code.popTo(matcher, tmpBuilder) > 0) { // see SONAR-2499 Cursor previousCursor = code.getPreviousCursor(); if (normalizationValue != null) { output.add(new Token(normalizationValue, previousCursor.getLine(), previousCursor.getColumn())); } else { output.add(new Token(tmpBuilder.toString(), previousCursor.getLine(), previousCursor.getColumn())); } // Godin: note that other channels use method delete in order to do the same thing tmpBuilder.setLength(0); return true; } return false; }
/** * Read and consume the next characters according to a given regular expression * * @param matcher * the regular expression matcher * @param appendable * the consumed characters are appended to this appendable * @return number of consumed characters or -1 if the next input sequence doesn't match this matcher's pattern */ public final int popTo(Matcher matcher, Appendable appendable) { return popTo(matcher, null, appendable); }
@Override public boolean consume(CodeReader code, Tokens cpdTokens) { return code.popTo(matcher, appendable) > 0; }
private void handleBeforeNodeName(CodeReader codeReader, TagNode element) { StringBuilder sbNodeName = new StringBuilder(); codeReader.popTo(endTokenMatcher, sbNodeName); element.setNodeName(sbNodeName.toString()); }
private static void handleBeforeNodeName(CodeReader codeReader, TagNode element) { StringBuilder sbNodeName = new StringBuilder(); codeReader.popTo(endTokenMatcher, sbNodeName); element.setNodeName(sbNodeName.toString()); }
@Override public final boolean consume(CodeReader code, O output) { if (code.popTo(matcher, tmpBuilder) > 0) { consume(tmpBuilder, output); tmpBuilder.delete(0, tmpBuilder.length()); return true; } return false; }
private static void handleBeforeNodeName(CodeReader codeReader, TagNode element) { StringBuilder sbNodeName = new StringBuilder(); codeReader.popTo(endTokenMatcher, sbNodeName); element.setNodeName(sbNodeName.toString()); }
@Override public boolean consume(CodeReader code, Tokens cpdTokens) { if (code.popTo(matcher, token) > 0) { cpdTokens.add(new TokenEntry(token.toString(), fileName, code.getLinePosition())); token = new StringBuilder(); return true; } else { return false; } } }
@Override public boolean consume(CodeReader code, Tokens cpdTokens) { if (code.popTo(matcher, token) > 0) { cpdTokens.add(new TokenEntry(token.toString(), fileName, code.getLinePosition())); token = new StringBuilder(); return true; } else { return false; } } }
@Override public boolean consume(CodeReader code, HtmlCodeBuilder codeBuilder) { if (code.popTo(matcher, tmpBuilder) > 0) { codeBuilder.appendWithoutTransforming(tagBefore); codeBuilder.append(tmpBuilder); codeBuilder.appendWithoutTransforming(tagAfter); tmpBuilder.delete(0, tmpBuilder.length()); return true; } return false; }
private void handleBeforeAttributeName(CodeReader codeReader, TagNode element) { Attribute attribute; StringBuilder sbQName = new StringBuilder(); codeReader.popTo(endQNameMatcher, sbQName); attribute = new Attribute(sbQName.toString().trim()); attribute.setLine(codeReader.getLinePosition() + element.getStartLinePosition() - 1); element.getAttributes().add(attribute); }
private static void handleBeforeAttributeName(CodeReader codeReader, TagNode element) { Attribute attribute; StringBuilder sbQName = new StringBuilder(); codeReader.popTo(endQNameMatcher, sbQName); attribute = new Attribute(sbQName.toString().trim()); attribute.setLine(codeReader.getLinePosition() + element.getStartLinePosition() - 1); element.getAttributes().add(attribute); }
private static void handleBeforeAttributeName(CodeReader codeReader, TagNode element) { Attribute attribute; StringBuilder sbQName = new StringBuilder(); codeReader.popTo(endQNameMatcher, sbQName); attribute = new Attribute(sbQName.toString().trim()); attribute.setLine(codeReader.getLinePosition() + element.getStartLinePosition() - 1); element.getAttributes().add(attribute); }
@Override public boolean consume(CodeReader codeReader, List<Node> nodeList) { Node node = createNode(); setStartPosition(codeReader, node); StringBuilder stringBuilder = new StringBuilder(); if (inScript(nodeList)) { codeReader.popTo(new EndScriptMatcher(codeReader), stringBuilder); } else { codeReader.popTo(endTokenMatcher, stringBuilder); } node.setCode(stringBuilder.toString()); setEndPosition(codeReader, node); nodeList.add(node); return true; }
@Override public boolean consume(CodeReader code, HtmlCodeBuilder codeBuilder) { if (code.peek() == startToken[0] && Arrays.equals(code.peek(startToken.length), startToken)) { codeBuilder.appendWithoutTransforming(tagBefore); code.popTo(LINE_END_MATCHER, codeBuilder); codeBuilder.appendWithoutTransforming(tagAfter); return true; } else { return false; } }
@Override public boolean consume(CodeReader code, HtmlCodeBuilder codeBuilder) { if (code.peek() == '@') { codeBuilder.appendWithoutTransforming(tagBefore); code.popTo(END_TOKEN_MATCHER, codeBuilder); codeBuilder.appendWithoutTransforming(tagAfter); return true; } else { return false; } }
@Override public boolean consume(CodeReader code, HtmlCodeBuilder codeBuilder) { if (code.popTo(matcher, tmpBuilder) > 0) { if (isKeyword(tmpBuilder.toString())) { codeBuilder.appendWithoutTransforming(tagBefore); codeBuilder.append(tmpBuilder); codeBuilder.appendWithoutTransforming(tagAfter); } else { codeBuilder.append(tmpBuilder); } tmpBuilder.delete(0, tmpBuilder.length()); return true; } return false; }
@Override public boolean consume(CodeReader code, HtmlCodeBuilder codeBuilder) { if (hasNextToken(code)) { codeBuilder.appendWithoutTransforming(tagBefore); code.popTo(endTokenMatcher, codeBuilder); codeBuilder.appendWithoutTransforming(tagAfter); return true; } else { return false; } }
@Override public boolean consume(CodeReader code, HtmlCodeBuilder codeBuilder) { if (hasNextToken(code, codeBuilder)) { codeBuilder.appendWithoutTransforming(tagBefore); code.popTo(new MultilineEndTokenMatcher(code, codeBuilder), codeBuilder); codeBuilder.appendWithoutTransforming(tagAfter); return true; } else { return false; } }
@Override public boolean consume(CodeReader code, HtmlCodeBuilder codeBuilder) { if (code.peek() == '\'' || code.peek() == '\"') { codeBuilder.appendWithoutTransforming(tagBefore); int firstChar = code.peek(); code.popTo(new EndCommentMatcher(firstChar, code), codeBuilder); codeBuilder.appendWithoutTransforming(tagAfter); return true; } else { return false; } }