- initState :: HlState
- alexScanToken :: (AlexState HlState, AlexInput) -> Maybe (Tok Token, (AlexState HlState, AlexInput))
- tokenToStyle :: Token -> UIStyle -> Style
- type TT = Tok Token
- data Token
- data Reserved
- data Operator
- = Add'
- | Subtract'
- | Multiply'
- | Divide'
- | Modulo'
- | Increment'
- | Decrement'
- | Assign'
- | AddAssign'
- | SubtractAssign'
- | MultiplyAssign'
- | DivideAssign'
- | ModuloAssign'
- | Equals'
- | NotEquals'
- | GT'
- | GTE'
- | LT'
- | LTE'
- | EqualsType'
- | NotEqualsType'
- | And'
- | Or'
- | Not'
- | BitAnd'
- | BitOr'
- | BitXor'
- | LeftShift'
- | RightShift'
- | RightShiftZ'
- | BitNot'
- | Qualify'
- type HlState = Int
- prefixOperators :: [Operator]
- infixOperators :: [Operator]
- postfixOperators :: [Operator]
Documentation
alexScanToken :: (AlexState HlState, AlexInput) -> Maybe (Tok Token, (AlexState HlState, AlexInput))Source
Scan one token. Return (maybe) a token and a new state.
tokenToStyle :: Token -> UIStyle -> StyleSource
The different tokens.
The constructors for Reserved
have an apostrophe as a suffix because
Default
is already used. Also note that Undefined'
is not intended as
some sort of backup reserved word for things we don't care about -- it
really means the undefined built-in in JavaScript.
The constructors for Operator
have an apostrophe as a suffix because
e.g. LT
is already used by Prelude
.
Prefix operators. NOTE: Add' is also a valid prefix operator, but since it's completely useless in the real world, we don't care about it here. Doing this makes parsing much, much easier.
Postfix operators.
Infix operators.
HlState
is 0 when outside of a multi-line comment and -1 when inside one.