A DFA implemented as a set of transition tables.

Any state that has a semantic predicate edge is special; those states are generated with if-then-else structures in a specialStateTransition() which is generated by cyclicDFA template.

There are at most 32767 states (16-bit signed short). Could get away with byte sometimes but would have to generate different types and the simulation code too. For a point of reference, the Java lexer's Tokens rule DFA has 326 states roughly.

Hierarchy

Index

Constructors

constructor

  • new DFA(): DFA

Properties

Protected accept

accept: number[]

debug

debug: boolean = false

Protected decisionNumber

decisionNumber: number

description

description: string = "n/a"

Protected eof

eof: number[]

Protected eot

eot: number[]

Protected max

max: string[]

Protected min

min: string[]

Protected recognizer

recognizer: BaseRecognizer

Which recognizer encloses this DFA? Needed to check backtracking

Protected special

special: number[]

Protected transition

transition: number[][]

Methods

Protected debugRecognitionException

error

Protected noViableAlt

  • Parameters

    Returns void

predict

  • From the input stream, predict what alternative will succeed using this DFA (representing the covering regular approximation to the underlying CFL). Return an alternative number 1..n. Throw an exception upon error.

    Parameters

    Returns number

Static specialStateTransitionDefault

  • specialStateTransitionDefault(dfa: DFA, s: number, input: IIntStream): number

Static unpackEncodedString

  • unpackEncodedString(encodedString: string): number[]
  • Given a String that has a run-length-encoding of some unsigned shorts like "\1\2\3\9", convert to short[] {2,9,9,9}. We do this to avoid static short[] which generates so much init code that the class won't compile. :(

    Parameters

    • encodedString: string

    Returns number[]

Static unpackEncodedStringToUnsignedChars

  • unpackEncodedStringToUnsignedChars(encodedString: string): string[]
  • Hideous duplication of code, but I need different typed arrays out :(

    Parameters

    • encodedString: string

    Returns string[]

Generated using TypeDoc