Package org.jparsec

Class Indentation


  • public final class Indentation
    extends java.lang.Object
    Processes indentation based lexical structure according to the Off-side rule.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      (package private) static class  Indentation.Punctuation  
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.Object indent  
      (package private) static CharPredicate INLINE_WHITESPACE
      A CharPredicate that returns true only if the character isn't line feed and Character.isWhitespace(char) returns true.
      (package private) static Pattern INLINE_WHITESPACES
      A Pattern object that matches one or more whitespace characters or line continuations, where the line feed character ('\n') is escaped by the backslash character ('\').
      (package private) static Pattern LINE_CONTINUATION
      A Pattern object that matches a line continuation.
      private java.lang.Object outdent  
      static Parser<java.lang.Void> WHITESPACES
      A Parser that recognizes 1 or more whitespace characters on the same line.
    • Constructor Summary

      Constructors 
      Constructor Description
      Indentation()
      Creates a Indentation object that generates default indent and outdent tokens.
      Indentation​(java.lang.Object indent, java.lang.Object outdent)
      Creates an Indentation object that uses indent and outdent as the token values for indentation and outdentation.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      (package private) java.util.List<Token> analyzeIndentations​(java.util.List<Token> tokens, java.lang.Object lf)
      Analyzes indentation by looking at the first token after each lf and inserting indent and outdent tokens properly.
      Parser<Token> indent()
      A Parser that recognizes the generated indent token.
      Parser<java.util.List<Token>> lexer​(Parser<?> tokenizer, Parser<?> delim)
      A Parser that greedily runs tokenizer, and translates line feed characters ('\n') to indent and outdent tokens.
      private void newLine​(Token token, java.util.Stack<java.lang.Integer> indentations, int indentation, java.util.List<Token> result)  
      Parser<Token> outdent()
      A Parser that recognizes the generated outdent token.
      private static Token pseudoToken​(int index, java.lang.Object value)  
      private static Parser<Token> token​(java.lang.Object value)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • INLINE_WHITESPACE

        static final CharPredicate INLINE_WHITESPACE
        A CharPredicate that returns true only if the character isn't line feed and Character.isWhitespace(char) returns true.
      • LINE_CONTINUATION

        static final Pattern LINE_CONTINUATION
        A Pattern object that matches a line continuation. i.e. a backslash character ('\') followed by some whitespaces and ended by a line feed character ('\n'). Is useful if the line feed character plays a role in the syntax (as in indentation-sensitive languages) and line continuation is supported.
      • INLINE_WHITESPACES

        static final Pattern INLINE_WHITESPACES
        A Pattern object that matches one or more whitespace characters or line continuations, where the line feed character ('\n') is escaped by the backslash character ('\').
      • WHITESPACES

        public static final Parser<java.lang.Void> WHITESPACES
        A Parser that recognizes 1 or more whitespace characters on the same line. Line continutation (escaped by a backslash character '\') is considered the same line.
      • indent

        private final java.lang.Object indent
      • outdent

        private final java.lang.Object outdent
    • Constructor Detail

      • Indentation

        public Indentation​(java.lang.Object indent,
                           java.lang.Object outdent)
        Creates an Indentation object that uses indent and outdent as the token values for indentation and outdentation.
      • Indentation

        public Indentation()
        Creates a Indentation object that generates default indent and outdent tokens.
    • Method Detail

      • indent

        public Parser<Token> indent()
        A Parser that recognizes the generated indent token.
      • outdent

        public Parser<Token> outdent()
        A Parser that recognizes the generated outdent token.
      • lexer

        public Parser<java.util.List<Token>> lexer​(Parser<?> tokenizer,
                                                   Parser<?> delim)
        A Parser that greedily runs tokenizer, and translates line feed characters ('\n') to indent and outdent tokens. Return values are wrapped in Token objects and collected in a List. Patterns recognized by delim are ignored.
      • token

        private static Parser<Token> token​(java.lang.Object value)
      • analyzeIndentations

        java.util.List<Token> analyzeIndentations​(java.util.List<Token> tokens,
                                                  java.lang.Object lf)
        Analyzes indentation by looking at the first token after each lf and inserting indent and outdent tokens properly.
      • newLine

        private void newLine​(Token token,
                             java.util.Stack<java.lang.Integer> indentations,
                             int indentation,
                             java.util.List<Token> result)
      • pseudoToken

        private static Token pseudoToken​(int index,
                                         java.lang.Object value)