private void concat(@Nonnull StringBuilder buf, @Nonnull Argument arg) { for (Token tok : arg) { buf.append(tok.getText()); } }
private void concat(StringBuilder buf, Argument arg) { Iterator<Token> it = arg.iterator(); while (it.hasNext()) { Token tok = it.next(); buf.append(tok.getText()); } }
private void concat(StringBuilder buf, Argument arg) { Iterator<Token> it = arg.iterator(); while (it.hasNext()) { Token tok = it.next(); buf.append(tok.getText()); } }
public String toString() { StringBuilder buf = new StringBuilder(); buf.append("Argument("); // buf.append(super.toString()); buf.append("raw=[ "); for (int i = 0; i < size(); i++) buf.append(get(i).getText()); buf.append(" ];expansion=[ "); if (expansion == null) buf.append("null"); else for (int i = 0; i < expansion.size(); i++) buf.append(expansion.get(i).getText()); buf.append(" ])"); return buf.toString(); }
public String toString() { StringBuilder buf = new StringBuilder(); buf.append("Argument("); // buf.append(super.toString()); buf.append("raw=[ "); for (int i = 0; i < size(); i++) buf.append(get(i).getText()); buf.append(" ];expansion=[ "); if (expansion == null) buf.append("null"); else for (int i = 0; i < expansion.size(); i++) buf.append(expansion.get(i).getText()); buf.append(" ])"); return buf.toString(); }
@Override public String toString() { StringBuilder buf = new StringBuilder(); buf.append("Argument("); // buf.append(super.toString()); buf.append("raw=[ "); for (int i = 0; i < size(); i++) buf.append(get(i).getText()); buf.append(" ];expansion=[ "); if (expansion == null) buf.append("null"); else for (Token token : expansion) buf.append(token.getText()); buf.append(" ])"); return buf.toString(); }
public String getText() { StringBuilder buf = new StringBuilder(); boolean paste = false; for (Token tok : tokens) { if (tok.getType() == Token.M_PASTE) { assert paste == false : "Two sequential pastes."; paste = true; continue; } else { buf.append(tok.getText()); } if (paste) { buf.append(" #" + "# "); paste = false; } // buf.append(tokens.get(i)); } return buf.toString(); }
public String getText() { StringBuilder buf = new StringBuilder(); boolean paste = false; for (int i = 0; i < tokens.size(); i++) { Token tok = tokens.get(i); if (tok.getType() == Token.M_PASTE) { assert paste == false : "Two sequential pastes."; paste = true; continue; } else { buf.append(tok.getText()); } if (paste) { buf.append(" #" + "# "); paste = false; } // buf.append(tokens.get(i)); } return buf.toString(); }
@Override protected void pragma(Token name, List<Token> value) throws IOException, LexerException { if ("once".equals(name.getText())) { if (!pragmaOnces.add(getSource().toString())) { pop_source(); } } else { super.pragma(name, value); } }
@Override protected void pragma(Token name, List<Token> value) throws IOException, LexerException { if ("once".equals(name.getText())) { if (!pragmaOnces.add(getSource().toString())) { pop_source(); } } else { super.pragma(name, value); } }
private void processTokens( final ByteArrayOutputStream bao) throws IOException { try (final PrintStream baos = new PrintStream(bao, false, "UTF-8")) { final OptionalInt version = SoShaderPreprocessorJCPP.this.config.version(); if (version.isPresent()) { baos.printf( "#version %d core\n", Integer.valueOf(version.getAsInt())); } while (true) { final Token tok = this.pp.token(); if (tok.getType() == Token.EOF) { break; } baos.print(tok.getText()); } baos.flush(); } catch (final LexerException e) { throw new IOException(e); } }
private Token undef() throws IOException, LexerException { Token tok = source_token_nonwhite(); if (tok.getType() != IDENTIFIER) { error(tok, "Expected identifier, not " + tok.getText()); if (tok.getType() == NL || tok.getType() == EOF) return tok; } else { Macro m = macros.get(tok.getText()); if (m != null) { /* XXX error if predefined */ macros.remove(m.getName()); } } return source_skipline(true); }
private Token undef() throws IOException, LexerException { Token tok = source_token_nonwhite(); if (tok.getType() != IDENTIFIER) { error(tok, "Expected identifier, not " + tok.getText()); if (tok.getType() == NL || tok.getType() == EOF) return tok; } else { Macro m = macros.get(tok.getText()); if (m != null) { /* XXX error if predefined */ macros.remove(m.getName()); } } return source_skipline(true); }
private Token expanded_token() throws IOException, LexerException { for (;;) { Token tok = source_token(); // System.out.println("Source token is " + tok); if (tok.getType() == IDENTIFIER) { Macro m = macros.get(tok.getText()); if (m == null) return tok; if (source.isExpanding(m)) return tok; if (macro(m, tok)) continue; } return tok; } }
private Token expanded_token() throws IOException, LexerException { for (;;) { Token tok = source_token(); // System.out.println("Source token is " + tok); if (tok.getType() == IDENTIFIER) { Macro m = macros.get(tok.getText()); if (m == null) return tok; if (source.isExpanding(m)) return tok; if (macro(m, tok)) continue; } return tok; } }
@Nonnull private Token undef() throws IOException, LexerException { Token tok = source_token_nonwhite(); if (tok.getType() != IDENTIFIER) { error(tok, "Expected identifier, not " + tok.getText()); if (tok.getType() == NL || tok.getType() == EOF) return tok; } else { Macro m = getMacro(tok.getText()); if (m != null) { /* XXX error if predefined */ macros.remove(m.getName()); } } return source_skipline(true); }
@Nonnull private Token expanded_token() throws IOException, LexerException { for (;;) { Token tok = source_token(); // System.out.println("Source token is " + tok); if (tok.getType() == IDENTIFIER) { Macro m = getMacro(tok.getText()); if (m == null) return tok; if (source.isExpanding(m)) return tok; if (macro(m, tok)) continue; } return tok; } }
public static void testLexerSource(String in, boolean textmatch, int... out) throws Exception { LOG.info("Testing '" + in + "' => " + Arrays.toString(out)); StringLexerSource s = new StringLexerSource(in); StringBuilder buf = new StringBuilder(); for (int i = 0; i < out.length; i++) { Token tok = s.token(); LOG.info("Token is " + tok); assertType(out[i], tok); // assertEquals(col, tok.getColumn()); buf.append(tok.getText()); } Token tok = s.token(); LOG.info("Token is " + tok); assertType(EOF, tok); if (textmatch) assertEquals(in, buf.toString()); }
private void testNumericValue(String in, double out) throws IOException, LexerException { System.out.println("Testing '" + in + "' -> " + out); Token tok = testNumericValue(in); assertEquals(in, tok.getText()); NumericValue value = (NumericValue) tok.getValue(); assertEquals("Double mismatch", out, value.doubleValue(), 0.01d); assertEquals("Float mismatch", (float) out, value.floatValue(), 0.01f); assertEquals("Long mismatch", (long) out, value.longValue()); assertEquals("Integer mismatch", (int) out, value.intValue()); }