// Path: src/main/java/org/anarres/cpp/Token.java
// public static final int CCOMMENT = 260;
// 
// Path: src/main/java/org/anarres/cpp/Token.java
// public static final int CPPCOMMENT = 261;
// 
// Path: src/main/java/org/anarres/cpp/Token.java
// public static final int EOF = 265;


import java.io.Closeable;
import java.io.IOException;
import java.io.Reader;
import javax.annotation.Nonnull;
import static org.anarres.cpp.Token.CCOMMENT;
import static org.anarres.cpp.Token.CPPCOMMENT;
import static org.anarres.cpp.Token.EOF;

    /**
     * Defines the given name as a macro.
     *
     * This is a convnience method.
     */
    public void addMacro(@Nonnull String name)
            throws LexerException {
        cpp.addMacro(name);
    }

    /**
     * Defines the given name as a macro.
     *
     * This is a convnience method.
     */
    public void addMacro(@Nonnull String name, @Nonnull String value)
            throws LexerException {
        cpp.addMacro(name, value);
    }

    private boolean refill()
            throws IOException {
        try {
            assert cpp != null : "cpp is null : was it closed?";
            if (token == null)
                return false;
            while (idx >= token.length()) {
                Token tok = cpp.token();
                switch (tok.getType()) {
// Path: src/main/java/org/anarres/cpp/Token.java
// public static final int CCOMMENT = 260;
// 
// Path: src/main/java/org/anarres/cpp/Token.java
// public static final int CPPCOMMENT = 261;
// 
// Path: src/main/java/org/anarres/cpp/Token.java
// public static final int EOF = 265;


// Path: src/main/java/org/anarres/cpp/CppReader.java
import java.io.Closeable;
import java.io.IOException;
import java.io.Reader;
import javax.annotation.Nonnull;
import static org.anarres.cpp.Token.CCOMMENT;
import static org.anarres.cpp.Token.CPPCOMMENT;
import static org.anarres.cpp.Token.EOF;


    /**
     * Defines the given name as a macro.
     *
     * This is a convnience method.
     */
    public void addMacro(@Nonnull String name)
            throws LexerException {
        cpp.addMacro(name);
    }

    /**
     * Defines the given name as a macro.
     *
     * This is a convnience method.
     */
    public void addMacro(@Nonnull String name, @Nonnull String value)
            throws LexerException {
        cpp.addMacro(name, value);
    }

    private boolean refill()
            throws IOException {
        try {
            assert cpp != null : "cpp is null : was it closed?";
            if (token == null)
                return false;
            while (idx >= token.length()) {
                Token tok = cpp.token();
                switch (tok.getType()) {
                    case EOF: