mathjslab
Version:
MathJSLab - An interpreter with language syntax like MATLAB®/Octave, ISBN 978-65-00-82338-7.
337 lines (336 loc) • 12.3 kB
TypeScript
import { ATN, CharStream, DFA, Lexer, RuleContext, Token } from "antlr4";
export default class MathJSLabLexer extends Lexer {
static readonly GLOBAL = 1;
static readonly PERSISTENT = 2;
static readonly IMPORT = 3;
static readonly IF = 4;
static readonly ENDIF = 5;
static readonly END = 6;
static readonly ENDRANGE = 7;
static readonly ELSEIF = 8;
static readonly ELSE = 9;
static readonly SWITCH = 10;
static readonly ENDSWITCH = 11;
static readonly CASE = 12;
static readonly OTHERWISE = 13;
static readonly WHILE = 14;
static readonly ENDWHILE = 15;
static readonly DO = 16;
static readonly UNTIL = 17;
static readonly FOR = 18;
static readonly ENDFOR = 19;
static readonly PARFOR = 20;
static readonly ENDPARFOR = 21;
static readonly SPMD = 22;
static readonly ENDSPMD = 23;
static readonly BREAK = 24;
static readonly CONTINUE = 25;
static readonly RETURN = 26;
static readonly FUNCTION = 27;
static readonly ENDFUNCTION = 28;
static readonly TRY = 29;
static readonly CATCH = 30;
static readonly END_TRY_CATCH = 31;
static readonly UNWIND_PROTECT = 32;
static readonly UNWIND_PROTECT_CLEANUP = 33;
static readonly END_UNWIND_PROTECT = 34;
static readonly CLASSDEF = 35;
static readonly ENDCLASSDEF = 36;
static readonly ENUMERATION = 37;
static readonly ENDENUMERATION = 38;
static readonly PROPERTIES = 39;
static readonly ENDPROPERTIES = 40;
static readonly EVENTS = 41;
static readonly ENDEVENTS = 42;
static readonly METHODS = 43;
static readonly ENDMETHODS = 44;
static readonly WSPACE = 45;
static readonly STRING = 46;
static readonly ARGUMENTS = 47;
static readonly ENDARGUMENTS = 48;
static readonly PLUS = 49;
static readonly MINUS = 50;
static readonly MUL = 51;
static readonly DIV = 52;
static readonly EQ = 53;
static readonly COLON = 54;
static readonly SEMICOLON = 55;
static readonly COMMA = 56;
static readonly DOT = 57;
static readonly TILDE = 58;
static readonly EXCLAMATION = 59;
static readonly COMMAT = 60;
static readonly QUESTION = 61;
static readonly LPAREN = 62;
static readonly RPAREN = 63;
static readonly LBRACKET = 64;
static readonly RBRACKET = 65;
static readonly LCURLYBR = 66;
static readonly RCURLYBR = 67;
static readonly LEFTDIV = 68;
static readonly ADD_EQ = 69;
static readonly SUB_EQ = 70;
static readonly MUL_EQ = 71;
static readonly DIV_EQ = 72;
static readonly LEFTDIV_EQ = 73;
static readonly POW_EQ = 74;
static readonly EMUL_EQ = 75;
static readonly EDIV_EQ = 76;
static readonly ELEFTDIV_EQ = 77;
static readonly EPOW_EQ = 78;
static readonly AND_EQ = 79;
static readonly OR_EQ = 80;
static readonly EXPR_AND_AND = 81;
static readonly EXPR_OR_OR = 82;
static readonly EXPR_AND = 83;
static readonly EXPR_OR = 84;
static readonly EXPR_LT = 85;
static readonly EXPR_LE = 86;
static readonly EXPR_EQ = 87;
static readonly EXPR_NE = 88;
static readonly EXPR_GE = 89;
static readonly EXPR_GT = 90;
static readonly EMUL = 91;
static readonly EDIV = 92;
static readonly ELEFTDIV = 93;
static readonly PLUS_PLUS = 94;
static readonly MINUS_MINUS = 95;
static readonly POW = 96;
static readonly EPOW = 97;
static readonly TRANSPOSE = 98;
static readonly HERMITIAN = 99;
static readonly DQSTRING = 100;
static readonly IDENTIFIER = 101;
static readonly FLOAT_NUMBER = 102;
static readonly NUMBER_DOT_OP = 103;
static readonly LINE_CONTINUATION = 104;
static readonly SPACE_OR_CONTINUATION = 105;
static readonly NEWLINE = 106;
static readonly BLOCK_COMMENT_START = 107;
static readonly COMMENT_LINE = 108;
static readonly INVALID = 109;
static readonly SINGLEQ_STRING = 110;
static readonly SINGLEQ_NL = 111;
static readonly SINGLEQ_SINGLEQ = 112;
static readonly SINGLEQ_END = 113;
static readonly DOUBLEQ_STRING = 114;
static readonly DOUBLEQ_NL = 115;
static readonly DOUBLEQ_DOUBLEQ = 116;
static readonly DOUBLEQ_ESCAPE = 117;
static readonly DOUBLEQ_ESCAPE_OTHER = 118;
static readonly DOUBLEQ_ESCAPE_OCT = 119;
static readonly DOUBLEQ_ESCAPE_HEX = 120;
static readonly DOUBLEQ_ESCAPE_UNICODE = 121;
static readonly DOUBLEQ_END = 122;
static readonly BLOCK_COMMENT_START_AGAIN = 123;
static readonly BLOCK_COMMENT_END = 124;
static readonly BLOCK_COMMENT_LINE = 125;
static readonly BLOCK_COMMENT_EOF = 126;
static readonly COMMAND_LINE_CONTINUATION = 127;
static readonly COMMAND_CONTINUED_BLOCK_COMMENT_START = 128;
static readonly COMMAND_CONTINUED_COMMENT_LINE = 129;
static readonly COMMAND_CONTINUED_NEWLINE = 130;
static readonly SKIP_SPACE = 131;
static readonly COMMAND_LONE_DQUOTE = 132;
static readonly COMMAND_LONE_SQUOTE = 133;
static readonly COMMAND_UNCLOSED_DQUOTE = 134;
static readonly COMMAND_UNCLOSED_SQUOTE = 135;
static readonly COMMAND_DQSTRING = 136;
static readonly COMMAND_SQSTRING = 137;
static readonly SKIP_COMMENT_LINE = 138;
static readonly COMMAND_SEPARATOR = 139;
static readonly EXIT_AT_NEWLINE = 140;
static readonly EXIT_AT_EOF = 141;
static readonly UNQUOTED_STRING = 142;
static readonly EOF: number;
static readonly SQ_STRING = 1;
static readonly DQ_STRING = 2;
static readonly BLOCK_COMMENT = 3;
static readonly ANY_AS_STRING_UNTIL_END_OF_LINE = 4;
static readonly channelNames: string[];
static readonly literalNames: (string | null)[];
static readonly symbolicNames: (string | null)[];
static readonly modeNames: string[];
static readonly ruleNames: string[];
/**
* Reserved keywords.
*/
static readonly keywordNames: (string | null)[];
/**
* Reserved keywords token types.
*/
static readonly keywordTypes: number[];
static readonly keywordTypeByName: Map<string, number>;
/**
* Word-list commands.
*/
commandNames: Set<string>;
/**
* Command names that should remain ordinary identifiers when followed by an
* assignment operator.
*/
assignmentSensitiveCommandNames: Set<string>;
/**
* Expression marks that indicate non-termination.
*/
static readonly nonTerminalSign: Set<number>;
/**
* Lexer context.
*/
previousTokenType: number;
parenthesisCount: number;
continuedTokenType: number | null;
commandContinued: boolean;
matrixContext: number[];
curlyBraceIsMatrixContext: boolean[];
indexingBraceCount: number;
quotedString: string;
/**
* Test whether a command-form quoted argument is closed on this logical line.
*
* Word-list commands accept raw words, but quoted arguments are useful for
* preserving spaces. A lone or unclosed quote should remain a raw command
* argument instead of becoming a syntax error.
*/
private commandQuoteIsClosed;
/**
* Test whether the next non-space input starts an assignment expression.
*
* Command-form parsing is only valid when a command name is followed by
* literal argument text. Names such as `run` and `source` are still legal
* variables, so `source = 10` and `source += 1` must remain expressions
* rather than entering the command-word lexer mode.
*/
private commandIsFollowedByAssignment;
/**
* Test whether whitespace inside a matrix literal should be an element separator.
*
* Octave treats `[1 - 1]` as a single binary expression and `[1 -1]` as
* two elements. When whitespace is followed by `+` or `-`, the spacing
* after the sign is the contextual cue that distinguishes those cases.
* Other binary operators keep the whitespace as ordinary expression
* whitespace, not as a matrix element separator.
*/
private matrixWhitespaceIsSeparator;
private matrixWhitespaceBeforeBinaryOperator;
/**
* Clear logical-line continuation state when a real token after `...` is
* emitted. Comments and whitespace immediately after a continuation still
* need the marker so they can be skipped as part of the same logical line.
*/
emit(): Token;
constructor(input: CharStream);
get grammarFileName(): string;
get literalNames(): (string | null)[];
get symbolicNames(): (string | null)[];
get ruleNames(): string[];
get serializedATN(): number[];
get channelNames(): string[];
get modeNames(): string[];
action(localctx: RuleContext, ruleIndex: number, actionIndex: number): void;
private PLUS_action;
private MINUS_action;
private MUL_action;
private DIV_action;
private EQ_action;
private COLON_action;
private SEMICOLON_action;
private COMMA_action;
private DOT_action;
private TILDE_action;
private EXCLAMATION_action;
private COMMAT_action;
private QUESTION_action;
private LPAREN_action;
private RPAREN_action;
private LBRACKET_action;
private RBRACKET_action;
private LCURLYBR_action;
private RCURLYBR_action;
private LEFTDIV_action;
private ADD_EQ_action;
private SUB_EQ_action;
private MUL_EQ_action;
private DIV_EQ_action;
private LEFTDIV_EQ_action;
private POW_EQ_action;
private EMUL_EQ_action;
private EDIV_EQ_action;
private ELEFTDIV_EQ_action;
private EPOW_EQ_action;
private AND_EQ_action;
private OR_EQ_action;
private EXPR_AND_AND_action;
private EXPR_OR_OR_action;
private EXPR_AND_action;
private EXPR_OR_action;
private EXPR_LT_action;
private EXPR_LE_action;
private EXPR_EQ_action;
private EXPR_NE_action;
private EXPR_GE_action;
private EXPR_GT_action;
private EMUL_action;
private EDIV_action;
private ELEFTDIV_action;
private PLUS_PLUS_action;
private MINUS_MINUS_action;
private POW_action;
private EPOW_action;
private TRANSPOSE_action;
private HERMITIAN_action;
private DQSTRING_action;
private IDENTIFIER_action;
private FLOAT_NUMBER_action;
private NUMBER_DOT_OP_action;
private LINE_CONTINUATION_action;
private SPACE_OR_CONTINUATION_action;
private NEWLINE_action;
private BLOCK_COMMENT_START_action;
private COMMENT_LINE_action;
private SINGLEQ_STRING_action;
private SINGLEQ_NL_action;
private SINGLEQ_SINGLEQ_action;
private SINGLEQ_END_action;
private DOUBLEQ_STRING_action;
private DOUBLEQ_NL_action;
private DOUBLEQ_DOUBLEQ_action;
private DOUBLEQ_ESCAPE_action;
private DOUBLEQ_ESCAPE_OTHER_action;
private DOUBLEQ_ESCAPE_OCT_action;
private DOUBLEQ_ESCAPE_HEX_action;
private DOUBLEQ_ESCAPE_UNICODE_action;
private DOUBLEQ_END_action;
private BLOCK_COMMENT_START_AGAIN_action;
private BLOCK_COMMENT_END_action;
private BLOCK_COMMENT_EOF_action;
private COMMAND_LINE_CONTINUATION_action;
private COMMAND_CONTINUED_BLOCK_COMMENT_START_action;
private COMMAND_LONE_DQUOTE_action;
private COMMAND_LONE_SQUOTE_action;
private COMMAND_UNCLOSED_DQUOTE_action;
private COMMAND_UNCLOSED_SQUOTE_action;
private COMMAND_DQSTRING_action;
private COMMAND_SQSTRING_action;
private COMMAND_SEPARATOR_action;
private EXIT_AT_NEWLINE_action;
private EXIT_AT_EOF_action;
private UNQUOTED_STRING_action;
sempred(localctx: RuleContext, ruleIndex: number, predIndex: number): boolean;
private BLOCK_COMMENT_START_sempred;
private BLOCK_COMMENT_START_AGAIN_sempred;
private BLOCK_COMMENT_END_sempred;
private COMMAND_CONTINUED_BLOCK_COMMENT_START_sempred;
private COMMAND_CONTINUED_COMMENT_LINE_sempred;
private COMMAND_CONTINUED_NEWLINE_sempred;
private COMMAND_LONE_DQUOTE_sempred;
private COMMAND_LONE_SQUOTE_sempred;
private COMMAND_UNCLOSED_DQUOTE_sempred;
private COMMAND_UNCLOSED_SQUOTE_sempred;
private COMMAND_DQSTRING_sempred;
private COMMAND_SQSTRING_sempred;
static readonly _serializedATN: number[];
private static __ATN;
static get _ATN(): ATN;
static DecisionsToDFA: DFA[];
}