public int getLine() { return getLine(getTokenStream().get(getTokenStream().index())); }
protected String getCommentAfterOnSameLine(int index, String forbiddenChars) { int size = getTokenStream().size(); while (index < size) { Token token = getTokenStream().get(index++); String tt = token.getText(); if (token.getType() == COMMENT || token.getType() == LINE_COMMENT) return tt; else if (tt.indexOf("\n") >= 0 || forbiddenChars != null && tt.matches(".*?[" + forbiddenChars + "].*")) break; } return null; } protected Declaration decl(TaggedTypeRef type) {
protected String getCommentBefore() { return getCommentBefore(getTokenStream().index()); } protected String getCommentBefore(int index) {
String getSurroundings(Token t, int width) { if (t == null) return null; int x = t.getTokenIndex(); List<String> strs = new ArrayList<String>(); int size = getTokenStream().size(); for (int i = x - width; i < x + width + 1; i++) { if (i < 0 || i >= size) continue; strs.add(getTokenStream().get(i).getText()); } return com.ochafik.util.string.StringUtils.implode(strs, " "); } @Override
protected String getCommentBefore(int index) { while (index > 0) { Token token = getTokenStream().get(--index); switch (token.getType()) { case COMMENT: String comment = token.getText(); while (index > 0) { Token prevToken = getTokenStream().get(--index); switch (prevToken.getType()) { case COMMENT:
retval.arg = new Arg(); retval.arg.setValueType(tr); int i = getTokenStream().index() + 1; retval.arg.setCommentBefore(getCommentBefore(i)); retval.arg.setCommentAfter(getCommentAfterOnSameLine(i, ")"));
retval.startTokenIndex = getTokenStream().index(); retval.preComment = getCommentBefore(retval.startTokenIndex); int i = ((Token)retval.start).getTokenIndex(); if (i > 0) { String s1 = getTokenStream().get(i - 1).getText(), s2 = i > 1 ? getTokenStream().get(i - 2).getText() : null; String s = (s2 == null ? "" : s2) + s1; if (s.matches(".*\n\\s*\n"))