Class CaseChangingCharStream

  • All Implemented Interfaces:
    org.antlr.v4.runtime.CharStream, org.antlr.v4.runtime.IntStream

    public class CaseChangingCharStream
    extends Object
    implements org.antlr.v4.runtime.CharStream
    https://github.com/parrt/antlr4/blob/case-insensitivity-doc/doc/resources/CaseChangingCharStream.java

    This class supports case-insensitive lexing by wrapping an existing CharStream and forcing the lexer to see either upper or lowercase characters. Grammar literals should then be either upper or lower case such as 'BEGIN' or 'begin'. The text of the character stream is unaffected. Example: input 'BeGiN' would match lexer rule 'BEGIN' if constructor parameter upper=true but getText() would return 'BeGiN'.

    • Field Detail

      • stream

        final org.antlr.v4.runtime.CharStream stream
      • upper

        final boolean upper
    • Constructor Detail

      • CaseChangingCharStream

        public CaseChangingCharStream​(org.antlr.v4.runtime.CharStream stream,
                                      boolean upper)
        Constructs a new CaseChangingCharStream wrapping the given CharStream forcing all characters to upper case or lower case.
        Parameters:
        stream - The stream to wrap.
        upper - If true force each symbol to upper case, otherwise force to lower.
    • Method Detail

      • getText

        public String getText​(org.antlr.v4.runtime.misc.Interval interval)
        Specified by:
        getText in interface org.antlr.v4.runtime.CharStream
      • consume

        public void consume()
        Specified by:
        consume in interface org.antlr.v4.runtime.IntStream
      • LA

        public int LA​(int i)
        Specified by:
        LA in interface org.antlr.v4.runtime.IntStream
      • mark

        public int mark()
        Specified by:
        mark in interface org.antlr.v4.runtime.IntStream
      • release

        public void release​(int marker)
        Specified by:
        release in interface org.antlr.v4.runtime.IntStream
      • index

        public int index()
        Specified by:
        index in interface org.antlr.v4.runtime.IntStream
      • seek

        public void seek​(int index)
        Specified by:
        seek in interface org.antlr.v4.runtime.IntStream
      • size

        public int size()
        Specified by:
        size in interface org.antlr.v4.runtime.IntStream
      • getSourceName

        public String getSourceName()
        Specified by:
        getSourceName in interface org.antlr.v4.runtime.IntStream