Class Source

  • All Implemented Interfaces:
    Closeable, AutoCloseable, Iterable<Token>
    Direct Known Subclasses:
    LexerSource

    public abstract class Source
    extends Object
    implements Iterable<Token>, Closeable
    An input to the Preprocessor. Inputs may come from Files, Strings or other sources. The preprocessor maintains a stack of Sources. Operations such as file inclusion or token pasting will push a new source onto the Preprocessor stack. Sources pop from the stack when they are exhausted; this may be transparent or explicit. BUG: Error messages are not handled properly.
    • Constructor Detail

      • Source

        public Source()
    • Method Detail

      • getParent

        public final Source getParent()
        Returns the parent source of this source. Sources form a singly linked list.
      • setListener

        public void setListener​(PreprocessorListener pl)
        Sets the listener for this Source. Normally this is set by the Preprocessor when a Source is used, but if you are using a Source as a standalone object, you may wish to call this.
      • getPath

        public String getPath()
        Returns the File currently being lexed. If this Source is not a FileLexerSource, then it will ask the parent Source, and so forth recursively. If no Source on the stack is a FileLexerSource, returns null.
      • getName

        public String getName()
        Returns the human-readable name of the current Source.
      • getLine

        public int getLine()
        Returns the current line number within this Source.
      • getColumn

        public int getColumn()
        Returns the current column number within this Source.