private Token line_token(int line, String name, String extra) { /*StringBuilder buf = new StringBuilder(); buf.append("#line ").append(line) .append(" \""); /* XXX This call to escape(name) is correct but ugly. * / MacroTokenSource.escape(buf, name); buf.append("\"").append(extra).append("\n"); return new Token(P_LINE, line, 0, buf.toString(), null); */ //* return new Token(P_LINE, line, 0, name == null ? "" : "\n#line " + line + " \"" + (properStringTokensInLinePragmas ? String.valueOf(name).replace("\\", "\\\\") : name) + "\"" + extra + "\n", null ); //*/ }
private Token line_token(int line, String name, String extra) { /*StringBuilder buf = new StringBuilder(); buf.append("#line ").append(line) .append(" \""); /* XXX This call to escape(name) is correct but ugly. * / MacroTokenSource.escape(buf, name); buf.append("\"").append(extra).append("\n"); return new Token(P_LINE, line, 0, buf.toString(), null); */ //* return new Token(P_LINE, line, 0, name == null ? "" : "\n#line " + line + " \"" + (properStringTokensInLinePragmas ? String.valueOf(name).replace("\\", "\\\\") : name) + "\"" + extra + "\n", null ); //*/ }
@Nonnull private Token line_token(int line, @CheckForNull String name, @Nonnull String extra) { StringBuilder buf = new StringBuilder(); buf.append("#line ").append(line) .append(" \""); /* XXX This call to escape(name) is correct but ugly. */ if (name == null) buf.append("<no file>"); else MacroTokenSource.escape(buf, name); buf.append("\"").append(extra).append("\n"); return new Token(P_LINE, line, 0, buf.toString(), null); }
private Token ccomment() throws IOException, LexerException { StringBuilder text = new StringBuilder("/*"); int d; do { do { d = read(); text.append((char)d); } while (d != '*'); do { d = read(); text.append((char)d); } while (d == '*'); } while (d != '/'); return new Token(CCOMMENT, text.toString()); }
private Token stringify(Token pos, Argument arg) { StringBuilder buf = new StringBuilder(); concat(buf, arg); // System.out.println("Concat: " + arg + " -> " + buf); StringBuilder str = new StringBuilder("\""); escape(str, buf); str.append("\""); // System.out.println("Escape: " + buf + " -> " + str); return new Token(STRING, pos.getLine(), pos.getColumn(), str.toString(), buf.toString()); }
@Nonnull private Token stringify(@Nonnull Token pos, @Nonnull Argument arg) { StringBuilder buf = new StringBuilder(); concat(buf, arg); // System.out.println("Concat: " + arg + " -> " + buf); StringBuilder str = new StringBuilder("\""); escape(str, buf); str.append("\""); // System.out.println("Escape: " + buf + " -> " + str); return new Token(STRING, pos.getLine(), pos.getColumn(), str.toString(), buf.toString()); }
private Token stringify(Token pos, Argument arg) { StringBuilder buf = new StringBuilder(); concat(buf, arg); // System.out.println("Concat: " + arg + " -> " + buf); StringBuilder str = new StringBuilder("\""); escape(str, buf); str.append("\""); // System.out.println("Escape: " + buf + " -> " + str); return new Token(STRING, pos.getLine(), pos.getColumn(), str.toString(), buf.toString()); }
private Token ccomment() throws IOException, LexerException { StringBuilder text = new StringBuilder("/*"); int d; do { do { d = read(); text.append((char)d); } while (d != '*'); do { d = read(); text.append((char)d); } while (d == '*'); } while (d != '/'); return new Token(CCOMMENT, text.toString()); }
private Token whitespace(int c) throws IOException, LexerException { StringBuilder text = new StringBuilder(); int d; text.append((char)c); for (;;) { d = read(); if (ppvalid && isLineSeparator(d)) /* XXX Ugly. */ break; if (Character.isWhitespace(d)) text.append((char)d); else break; } unread(d); return new Token(WHITESPACE, text.toString()); }
private Token identifier(int c) throws IOException, LexerException { StringBuilder text = new StringBuilder(); int d; text.append((char)c); for (;;) { d = read(); if (Character.isIdentifierIgnorable(d)) ; else if (Character.isJavaIdentifierPart(d)) text.append((char)d); else break; } unread(d); return new Token(IDENTIFIER, text.toString()); }
@Nonnull private Token cppcomment() throws IOException, LexerException { StringBuilder text = new StringBuilder("//"); int d = read(); while (!isLineSeparator(d)) { text.append((char) d); d = read(); } unread(d); return new Token(CPPCOMMENT, text.toString()); }
private Token cppcomment() throws IOException, LexerException { StringBuilder text = new StringBuilder("//"); int d = read(); while (!isLineSeparator(d)) { text.append((char)d); d = read(); } unread(d); return new Token(CPPCOMMENT, text.toString()); }
@Nonnull private Token invalid(StringBuilder text, String reason) throws IOException, LexerException { int d = read(); while (!isLineSeparator(d)) { text.append((char) d); d = read(); } unread(d); return new Token(INVALID, text.toString(), reason); }
@Nonnull private Token next_source() { if (inputs.isEmpty()) return new Token(EOF); Source s = inputs.remove(0); push_source(s, true); return line_token(s.getLine(), s.getName(), " 1"); }
private Token cppcomment() throws IOException, LexerException { StringBuilder text = new StringBuilder("//"); int d = read(); while (!isLineSeparator(d)) { text.append((char)d); d = read(); } unread(d); return new Token(CPPCOMMENT, text.toString()); }
private Token invalid(StringBuilder text, String reason) throws IOException, LexerException { int d = read(); while (!isLineSeparator(d)) { text.append((char)d); d = read(); } unread(d); return new Token(INVALID, text.toString(), reason); }
private Token invalid(StringBuilder text, String reason) throws IOException, LexerException { int d = read(); while (!isLineSeparator(d)) { text.append((char)d); d = read(); } unread(d); return new Token(INVALID, text.toString(), reason); }