UNPKG

mathjslab

Version:

MathJSLab - An interpreter with language syntax like MATLAB®/Octave, ISBN 978-65-00-82338-7.

337 lines (336 loc) 12.3 kB
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[]; }