Traqula
    Preparing search index...
    Index

    Constructors

    Properties

    Methods

    Constructors

    • Parameters

      • lexerDefinition: TokenType[] | IMultiModeLexerDefinition

        Structure composed of Tokens Types this lexer will identify.

        In the simple case the structure is an array of TokenTypes. In the case of IMultiModeLexerDefinition the structure is an object with two properties:

        1. a "modes" property where each value is an array of TokenTypes.
        2. a "defaultMode" property specifying the initial lexer mode.

        for example:

          {
        modes : {
        modeX : [Token1, Token2],
        modeY : [Token3, Token4]
        },

        defaultMode : "modeY"
        }

        A lexer with MultiModesDefinition is simply multiple Lexers where only one Lexer(mode) can be active at the same time. This is useful for lexing languages where there are different lexing rules depending on context.

        The current lexing mode is selected via a "mode stack". The last (peek) value in the stack will be the current mode of the lexer. Defining entering and exiting lexer modes is done using the "push_mode" and "pop_mode" properties of the ITokenConfig config properties.

        • The Lexer will match the first pattern that matches, Therefor the order of Token Types is significant. For example when one pattern may match a prefix of another pattern.

          Note that there are situations in which we may wish to order the longer pattern after the shorter one. For example: keywords vs Identifiers.

      • Optionalconfig: ILexerConfig

      Returns Lexer

    Properties

    lexerDefinitionErrors: ILexerDefinitionError[]
    NA: RegExp

    A Constant to mark "abstract" TokenTypes that are used purely as token categories. See: ITokenConfig.categories

    SKIPPED: string

    Methods

    • Will lex(Tokenize) a string. Note that this can be called repeatedly on different strings as this method does not modify the state of the Lexer.

      Parameters

      • text: string

        The string to lex

      • OptionalinitialMode: string

        The initial Lexer Mode to start with, by default this will be the first mode in the lexer's definition. If the lexer has no explicit modes it will be the implicit single 'default_mode' mode.

      Returns ILexingResult