mathjslab
Version:
MathJSLab - An interpreter with language syntax like MATLAB®/Octave, ISBN 978-65-00-82338-7.
702 lines (701 loc) • 27 kB
TypeScript
import { ATN, DFA, FailedPredicateException, Parser, RuleContext, ParserRuleContext, TerminalNode, Token, TokenStream } from 'antlr4';
import * as AST from './AST';
/**
* # MathJSLabParser
*
* A parser that recognizes a language syntax like MATLAB®/Octave written in TypeScript.
*
* ## References
* * [MATLAB Operator Precedence](https://www.mathworks.com/help/matlab/matlab_prog/operator-precedence.html)
* * [Octave lexer](https://github.com/gnu-octave/octave/blob/default/libinterp/parse-tree/lex.ll)
* * [Octave parser](https://github.com/gnu-octave/octave/blob/default/libinterp/parse-tree/oct-parse.yy)
* * [An ANTLR4 grammar for MATLAB files.](https://github.com/antlr/grammars-v4/tree/master/matlab)
* * [mparser](https://www.mathworks.com/matlabcentral/fileexchange/32769-mparser)
*/
export default class MathJSLabParser extends Parser {
static readonly GLOBAL = 1;
static readonly PERSISTENT = 2;
static readonly IF = 3;
static readonly ENDIF = 4;
static readonly END = 5;
static readonly ENDRANGE = 6;
static readonly ELSEIF = 7;
static readonly ELSE = 8;
static readonly SWITCH = 9;
static readonly ENDSWITCH = 10;
static readonly CASE = 11;
static readonly OTHERWISE = 12;
static readonly WHILE = 13;
static readonly ENDWHILE = 14;
static readonly DO = 15;
static readonly UNTIL = 16;
static readonly FOR = 17;
static readonly ENDFOR = 18;
static readonly PARFOR = 19;
static readonly ENDPARFOR = 20;
static readonly BREAK = 21;
static readonly CONTINUE = 22;
static readonly RETURN = 23;
static readonly FUNCTION = 24;
static readonly ENDFUNCTION = 25;
static readonly TRY = 26;
static readonly CATCH = 27;
static readonly END_TRY_CATCH = 28;
static readonly UNWIND_PROTECT = 29;
static readonly UNWIND_PROTECT_CLEANUP = 30;
static readonly END_UNWIND_PROTECT = 31;
static readonly CLASSDEF = 32;
static readonly ENDCLASSDEF = 33;
static readonly ENUMERATION = 34;
static readonly ENDENUMERATION = 35;
static readonly PROPERTIES = 36;
static readonly ENDPROPERTIES = 37;
static readonly EVENTS = 38;
static readonly ENDEVENTS = 39;
static readonly METHODS = 40;
static readonly ENDMETHODS = 41;
static readonly WSPACE = 42;
static readonly STRING = 43;
static readonly ARGUMENTS = 44;
static readonly PLUS = 45;
static readonly MINUS = 46;
static readonly MUL = 47;
static readonly DIV = 48;
static readonly EQ = 49;
static readonly COLON = 50;
static readonly SEMICOLON = 51;
static readonly COMMA = 52;
static readonly DOT = 53;
static readonly TILDE = 54;
static readonly EXCLAMATION = 55;
static readonly COMMAT = 56;
static readonly LPAREN = 57;
static readonly RPAREN = 58;
static readonly LBRACKET = 59;
static readonly RBRACKET = 60;
static readonly LCURLYBR = 61;
static readonly RCURLYBR = 62;
static readonly LEFTDIV = 63;
static readonly ADD_EQ = 64;
static readonly SUB_EQ = 65;
static readonly MUL_EQ = 66;
static readonly DIV_EQ = 67;
static readonly LEFTDIV_EQ = 68;
static readonly POW_EQ = 69;
static readonly EMUL_EQ = 70;
static readonly EDIV_EQ = 71;
static readonly ELEFTDIV_EQ = 72;
static readonly EPOW_EQ = 73;
static readonly AND_EQ = 74;
static readonly OR_EQ = 75;
static readonly EXPR_AND_AND = 76;
static readonly EXPR_OR_OR = 77;
static readonly EXPR_AND = 78;
static readonly EXPR_OR = 79;
static readonly EXPR_LT = 80;
static readonly EXPR_LE = 81;
static readonly EXPR_EQ = 82;
static readonly EXPR_NE = 83;
static readonly EXPR_GE = 84;
static readonly EXPR_GT = 85;
static readonly EMUL = 86;
static readonly EDIV = 87;
static readonly ELEFTDIV = 88;
static readonly PLUS_PLUS = 89;
static readonly MINUS_MINUS = 90;
static readonly POW = 91;
static readonly EPOW = 92;
static readonly TRANSPOSE = 93;
static readonly HERMITIAN = 94;
static readonly DQSTRING = 95;
static readonly IDENTIFIER = 96;
static readonly FLOAT_NUMBER = 97;
static readonly NUMBER_DOT_OP = 98;
static readonly SPACE_OR_CONTINUATION = 99;
static readonly NEWLINE = 100;
static readonly BLOCK_COMMENT_START = 101;
static readonly COMMENT_LINE = 102;
static readonly INVALID = 103;
static readonly SINGLEQ_STRING = 104;
static readonly SINGLEQ_NL = 105;
static readonly SINGLEQ_SINGLEQ = 106;
static readonly SINGLEQ_END = 107;
static readonly DOUBLEQ_STRING = 108;
static readonly DOUBLEQ_NL = 109;
static readonly DOUBLEQ_DOUBLEQ = 110;
static readonly DOUBLEQ_ESCAPE = 111;
static readonly DOUBLEQ_ESCAPE_OTHER = 112;
static readonly DOUBLEQ_ESCAPE_OCT = 113;
static readonly DOUBLEQ_ESCAPE_HEX = 114;
static readonly DOUBLEQ_ESCAPE_UNICODE = 115;
static readonly DOUBLEQ_END = 116;
static readonly BLOCK_COMMENT_START_AGAIN = 117;
static readonly BLOCK_COMMENT_END = 118;
static readonly BLOCK_COMMENT_LINE = 119;
static readonly BLOCK_COMMENT_EOF = 120;
static readonly SKIP_SPACE = 121;
static readonly SKIP_COMMENT_LINE = 122;
static readonly EXIT_AT_NEWLINE = 123;
static readonly EXIT_AT_EOF = 124;
static readonly UNQUOTED_STRING = 125;
static readonly EOF: number;
static readonly RULE_input = 0;
static readonly RULE_global_list = 1;
static readonly RULE_list = 2;
static readonly RULE_statement = 3;
static readonly RULE_word_list_cmd = 4;
static readonly RULE_identifier = 5;
static readonly RULE_string = 6;
static readonly RULE_number = 7;
static readonly RULE_end_range = 8;
static readonly RULE_constant = 9;
static readonly RULE_matrix = 10;
static readonly RULE_matrix_row = 11;
static readonly RULE_fcn_handle = 12;
static readonly RULE_anon_fcn_handle = 13;
static readonly RULE_primary_expr = 14;
static readonly RULE_magic_colon = 15;
static readonly RULE_magic_tilde = 16;
static readonly RULE_list_element = 17;
static readonly RULE_arg_list = 18;
static readonly RULE_oper_expr = 19;
static readonly RULE_power_expr = 20;
static readonly RULE_colon_expr = 21;
static readonly RULE_simple_expr = 22;
static readonly RULE_expression = 23;
static readonly RULE_command = 24;
static readonly RULE_declaration = 25;
static readonly RULE_declaration_element = 26;
static readonly RULE_select_command = 27;
static readonly RULE_if_command = 28;
static readonly RULE_elseif_clause = 29;
static readonly RULE_else_clause = 30;
static readonly RULE_param_list = 31;
static readonly RULE_param_list_elt = 32;
static readonly RULE_return_list = 33;
static readonly RULE_function = 34;
static readonly RULE_arguments_block_list = 35;
static readonly RULE_arguments_block = 36;
static readonly RULE_args_validation_list = 37;
static readonly RULE_arg_validation = 38;
static readonly RULE_sep_no_nl = 39;
static readonly RULE_nl = 40;
static readonly RULE_sep = 41;
static readonly literalNames: (string | null)[];
static readonly symbolicNames: (string | null)[];
static readonly ruleNames: string[];
get grammarFileName(): string;
get literalNames(): (string | null)[];
get symbolicNames(): (string | null)[];
get ruleNames(): string[];
get serializedATN(): number[];
protected createFailedPredicateException(predicate?: string, message?: string): FailedPredicateException;
constructor(input: TokenStream);
input(): InputContext;
global_list(): Global_listContext;
list(): ListContext;
statement(): StatementContext;
word_list_cmd(): Word_list_cmdContext;
identifier(): IdentifierContext;
string_(): StringContext;
number_(): NumberContext;
end_range(): End_rangeContext;
constant(): ConstantContext;
matrix(): MatrixContext;
matrix_row(): Matrix_rowContext;
fcn_handle(): Fcn_handleContext;
anon_fcn_handle(): Anon_fcn_handleContext;
primary_expr(): Primary_exprContext;
magic_colon(): Magic_colonContext;
magic_tilde(): Magic_tildeContext;
list_element(): List_elementContext;
arg_list(): Arg_listContext;
oper_expr(): Oper_exprContext;
oper_expr(_p: number): Oper_exprContext;
power_expr(): Power_exprContext;
power_expr(_p: number): Power_exprContext;
colon_expr(): Colon_exprContext;
simple_expr(): Simple_exprContext;
simple_expr(_p: number): Simple_exprContext;
expression(): ExpressionContext;
command(): CommandContext;
declaration(): DeclarationContext;
declaration_element(): Declaration_elementContext;
select_command(): Select_commandContext;
if_command(): If_commandContext;
elseif_clause(): Elseif_clauseContext;
else_clause(): Else_clauseContext;
param_list(): Param_listContext;
param_list_elt(): Param_list_eltContext;
return_list(): Return_listContext;
function_(): FunctionContext;
arguments_block_list(): Arguments_block_listContext;
arguments_block(): Arguments_blockContext;
args_validation_list(): Args_validation_listContext;
arg_validation(): Arg_validationContext;
sep_no_nl(): Sep_no_nlContext;
nl(): NlContext;
sep(): SepContext;
sempred(localctx: RuleContext, ruleIndex: number, predIndex: number): boolean;
private oper_expr_sempred;
private power_expr_sempred;
private simple_expr_sempred;
static readonly _serializedATN: number[];
private static __ATN;
static get _ATN(): ATN;
static DecisionsToDFA: DFA[];
}
export declare class InputContext extends ParserRuleContext {
node: AST.NodeInput;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
EOF(): TerminalNode;
sep(): SepContext;
global_list(): Global_listContext;
get ruleIndex(): number;
}
export declare class Global_listContext extends ParserRuleContext {
node: AST.NodeList;
i: number;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
statement_list(): StatementContext[];
statement(i: number): StatementContext;
sep_list(): SepContext[];
sep(i: number): SepContext;
get ruleIndex(): number;
}
export declare class ListContext extends ParserRuleContext {
node: AST.NodeList;
i: number;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
statement_list(): StatementContext[];
statement(i: number): StatementContext;
sep_list(): SepContext[];
sep(i: number): SepContext;
get ruleIndex(): number;
}
export declare class StatementContext extends ParserRuleContext {
node: AST.NodeInput;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
expression(): ExpressionContext;
command(): CommandContext;
word_list_cmd(): Word_list_cmdContext;
get ruleIndex(): number;
}
export declare class Word_list_cmdContext extends ParserRuleContext {
node: AST.NodeInput;
i: number;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
identifier(): IdentifierContext;
string__list(): StringContext[];
string_(i: number): StringContext;
get ruleIndex(): number;
}
export declare class IdentifierContext extends ParserRuleContext {
node: AST.NodeExpr;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
IDENTIFIER(): TerminalNode;
get ruleIndex(): number;
}
export declare class StringContext extends ParserRuleContext {
node: AST.NodeExpr;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
STRING(): TerminalNode;
UNQUOTED_STRING(): TerminalNode;
get ruleIndex(): number;
}
export declare class NumberContext extends ParserRuleContext {
node: AST.NodeExpr;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
FLOAT_NUMBER(): TerminalNode;
get ruleIndex(): number;
}
export declare class End_rangeContext extends ParserRuleContext {
node: AST.NodeExpr;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
ENDRANGE(): TerminalNode;
get ruleIndex(): number;
}
export declare class ConstantContext extends ParserRuleContext {
node: AST.NodeExpr;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
number_(): NumberContext;
string_(): StringContext;
end_range(): End_rangeContext;
get ruleIndex(): number;
}
export declare class MatrixContext extends ParserRuleContext {
node: AST.NodeExpr;
i: number;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
LBRACKET(): TerminalNode;
RBRACKET(): TerminalNode;
matrix_row_list(): Matrix_rowContext[];
matrix_row(i: number): Matrix_rowContext;
nl_list(): NlContext[];
nl(i: number): NlContext;
SEMICOLON_list(): TerminalNode[];
SEMICOLON(i: number): TerminalNode;
LCURLYBR(): TerminalNode;
RCURLYBR(): TerminalNode;
get ruleIndex(): number;
}
export declare class Matrix_rowContext extends ParserRuleContext {
node: AST.NodeList | null;
i: number;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
COMMA_list(): TerminalNode[];
COMMA(i: number): TerminalNode;
WSPACE_list(): TerminalNode[];
WSPACE(i: number): TerminalNode;
list_element_list(): List_elementContext[];
list_element(i: number): List_elementContext;
get ruleIndex(): number;
}
export declare class Fcn_handleContext extends ParserRuleContext {
node: AST.NodeExpr;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
COMMAT(): TerminalNode;
identifier(): IdentifierContext;
get ruleIndex(): number;
}
export declare class Anon_fcn_handleContext extends ParserRuleContext {
node: AST.NodeExpr;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
COMMAT(): TerminalNode;
param_list(): Param_listContext;
expression(): ExpressionContext;
get ruleIndex(): number;
}
export declare class Primary_exprContext extends ParserRuleContext {
node: AST.NodeExpr;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
identifier(): IdentifierContext;
constant(): ConstantContext;
fcn_handle(): Fcn_handleContext;
matrix(): MatrixContext;
LPAREN(): TerminalNode;
expression(): ExpressionContext;
RPAREN(): TerminalNode;
get ruleIndex(): number;
}
export declare class Magic_colonContext extends ParserRuleContext {
node: AST.NodeExpr;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
COLON(): TerminalNode;
get ruleIndex(): number;
}
export declare class Magic_tildeContext extends ParserRuleContext {
node: AST.NodeExpr;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
TILDE(): TerminalNode;
get ruleIndex(): number;
}
export declare class List_elementContext extends ParserRuleContext {
node: AST.NodeExpr;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
expression(): ExpressionContext;
magic_colon(): Magic_colonContext;
magic_tilde(): Magic_tildeContext;
get ruleIndex(): number;
}
export declare class Arg_listContext extends ParserRuleContext {
node: AST.NodeList;
i: number;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
list_element_list(): List_elementContext[];
list_element(i: number): List_elementContext;
COMMA_list(): TerminalNode[];
COMMA(i: number): TerminalNode;
get ruleIndex(): number;
}
export declare class Oper_exprContext extends ParserRuleContext {
node: AST.NodeExpr;
_op: Token;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
primary_expr(): Primary_exprContext;
oper_expr_list(): Oper_exprContext[];
oper_expr(i: number): Oper_exprContext;
PLUS_PLUS(): TerminalNode;
MINUS_MINUS(): TerminalNode;
PLUS(): TerminalNode;
MINUS(): TerminalNode;
TILDE(): TerminalNode;
EXCLAMATION(): TerminalNode;
MUL(): TerminalNode;
DIV(): TerminalNode;
LEFTDIV(): TerminalNode;
EMUL(): TerminalNode;
EDIV(): TerminalNode;
ELEFTDIV(): TerminalNode;
LPAREN(): TerminalNode;
RPAREN(): TerminalNode;
arg_list(): Arg_listContext;
LCURLYBR(): TerminalNode;
RCURLYBR(): TerminalNode;
TRANSPOSE(): TerminalNode;
HERMITIAN(): TerminalNode;
DOT(): TerminalNode;
IDENTIFIER(): TerminalNode;
expression(): ExpressionContext;
power_expr(): Power_exprContext;
POW(): TerminalNode;
EPOW(): TerminalNode;
get ruleIndex(): number;
}
export declare class Power_exprContext extends ParserRuleContext {
node: AST.NodeExpr;
_op: Token;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
primary_expr(): Primary_exprContext;
power_expr(): Power_exprContext;
PLUS_PLUS(): TerminalNode;
MINUS_MINUS(): TerminalNode;
PLUS(): TerminalNode;
MINUS(): TerminalNode;
TILDE(): TerminalNode;
EXCLAMATION(): TerminalNode;
LPAREN(): TerminalNode;
RPAREN(): TerminalNode;
arg_list(): Arg_listContext;
LCURLYBR(): TerminalNode;
RCURLYBR(): TerminalNode;
DOT(): TerminalNode;
IDENTIFIER(): TerminalNode;
expression(): ExpressionContext;
get ruleIndex(): number;
}
export declare class Colon_exprContext extends ParserRuleContext {
node: AST.NodeExpr;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
oper_expr_list(): Oper_exprContext[];
oper_expr(i: number): Oper_exprContext;
COLON_list(): TerminalNode[];
COLON(i: number): TerminalNode;
get ruleIndex(): number;
}
export declare class Simple_exprContext extends ParserRuleContext {
node: AST.NodeExpr;
_op: Token;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
oper_expr(): Oper_exprContext;
colon_expr(): Colon_exprContext;
simple_expr_list(): Simple_exprContext[];
simple_expr(i: number): Simple_exprContext;
EXPR_LT(): TerminalNode;
EXPR_LE(): TerminalNode;
EXPR_GT(): TerminalNode;
EXPR_GE(): TerminalNode;
EXPR_EQ(): TerminalNode;
EXPR_NE(): TerminalNode;
EXPR_AND(): TerminalNode;
EXPR_OR(): TerminalNode;
EXPR_AND_AND(): TerminalNode;
EXPR_OR_OR(): TerminalNode;
get ruleIndex(): number;
}
export declare class ExpressionContext extends ParserRuleContext {
node: AST.NodeExpr;
_op: Token;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
simple_expr(): Simple_exprContext;
expression(): ExpressionContext;
EQ(): TerminalNode;
ADD_EQ(): TerminalNode;
SUB_EQ(): TerminalNode;
MUL_EQ(): TerminalNode;
EMUL_EQ(): TerminalNode;
DIV_EQ(): TerminalNode;
EDIV_EQ(): TerminalNode;
LEFTDIV_EQ(): TerminalNode;
ELEFTDIV_EQ(): TerminalNode;
POW_EQ(): TerminalNode;
EPOW_EQ(): TerminalNode;
AND_EQ(): TerminalNode;
OR_EQ(): TerminalNode;
anon_fcn_handle(): Anon_fcn_handleContext;
get ruleIndex(): number;
}
export declare class CommandContext extends ParserRuleContext {
node: AST.NodeInput;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
declaration(): DeclarationContext;
select_command(): Select_commandContext;
function_(): FunctionContext;
get ruleIndex(): number;
}
export declare class DeclarationContext extends ParserRuleContext {
node: AST.NodeInput;
i: number;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
GLOBAL(): TerminalNode;
PERSISTENT(): TerminalNode;
declaration_element_list(): Declaration_elementContext[];
declaration_element(i: number): Declaration_elementContext;
get ruleIndex(): number;
}
export declare class Declaration_elementContext extends ParserRuleContext {
node: AST.NodeExpr;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
identifier(): IdentifierContext;
EQ(): TerminalNode;
expression(): ExpressionContext;
get ruleIndex(): number;
}
export declare class Select_commandContext extends ParserRuleContext {
node: AST.NodeInput;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
if_command(): If_commandContext;
get ruleIndex(): number;
}
export declare class If_commandContext extends ParserRuleContext {
node: AST.NodeIf;
i: number;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
IF(): TerminalNode;
expression(): ExpressionContext;
END(): TerminalNode;
ENDIF(): TerminalNode;
sep(): SepContext;
list(): ListContext;
elseif_clause_list(): Elseif_clauseContext[];
elseif_clause(i: number): Elseif_clauseContext;
else_clause(): Else_clauseContext;
get ruleIndex(): number;
}
export declare class Elseif_clauseContext extends ParserRuleContext {
node: AST.NodeElseIf;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
ELSEIF(): TerminalNode;
expression(): ExpressionContext;
sep_list(): SepContext[];
sep(i: number): SepContext;
list(): ListContext;
get ruleIndex(): number;
}
export declare class Else_clauseContext extends ParserRuleContext {
node: AST.NodeElse;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
ELSE(): TerminalNode;
sep(): SepContext;
list(): ListContext;
get ruleIndex(): number;
}
export declare class Param_listContext extends ParserRuleContext {
node: AST.NodeList;
i: number;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
LPAREN(): TerminalNode;
RPAREN(): TerminalNode;
param_list_elt_list(): Param_list_eltContext[];
param_list_elt(i: number): Param_list_eltContext;
COMMA_list(): TerminalNode[];
COMMA(i: number): TerminalNode;
get ruleIndex(): number;
}
export declare class Param_list_eltContext extends ParserRuleContext {
node: AST.NodeExpr;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
declaration_element(): Declaration_elementContext;
magic_tilde(): Magic_tildeContext;
get ruleIndex(): number;
}
export declare class Return_listContext extends ParserRuleContext {
node: AST.NodeExpr;
i: number;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
identifier_list(): IdentifierContext[];
identifier(i: number): IdentifierContext;
LBRACKET(): TerminalNode;
RBRACKET(): TerminalNode;
COMMA_list(): TerminalNode[];
COMMA(i: number): TerminalNode;
get ruleIndex(): number;
}
export declare class FunctionContext extends ParserRuleContext {
node: AST.NodeInput;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
FUNCTION(): TerminalNode;
identifier(): IdentifierContext;
END(): TerminalNode;
ENDFUNCTION(): TerminalNode;
EOF(): TerminalNode;
return_list(): Return_listContext;
EQ(): TerminalNode;
param_list(): Param_listContext;
sep(): SepContext;
arguments_block_list(): Arguments_block_listContext;
list(): ListContext;
get ruleIndex(): number;
}
export declare class Arguments_block_listContext extends ParserRuleContext {
node: AST.NodeList;
i: number;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
arguments_block_list(): Arguments_blockContext[];
arguments_block(i: number): Arguments_blockContext;
sep_list(): SepContext[];
sep(i: number): SepContext;
get ruleIndex(): number;
}
export declare class Arguments_blockContext extends ParserRuleContext {
node: AST.NodeArguments;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
ARGUMENTS(): TerminalNode;
args_validation_list(): Args_validation_listContext;
END(): TerminalNode;
sep_list(): SepContext[];
sep(i: number): SepContext;
LPAREN(): TerminalNode;
identifier(): IdentifierContext;
RPAREN(): TerminalNode;
get ruleIndex(): number;
}
export declare class Args_validation_listContext extends ParserRuleContext {
node: AST.NodeList;
i: number;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
arg_validation_list(): Arg_validationContext[];
arg_validation(i: number): Arg_validationContext;
sep_list(): SepContext[];
sep(i: number): SepContext;
get ruleIndex(): number;
}
export declare class Arg_validationContext extends ParserRuleContext {
node: AST.NodeArgumentValidation;
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
identifier_list(): IdentifierContext[];
identifier(i: number): IdentifierContext;
LPAREN(): TerminalNode;
arg_list_list(): Arg_listContext[];
arg_list(i: number): Arg_listContext;
RPAREN(): TerminalNode;
LCURLYBR(): TerminalNode;
RCURLYBR(): TerminalNode;
EQ(): TerminalNode;
expression(): ExpressionContext;
get ruleIndex(): number;
}
export declare class Sep_no_nlContext extends ParserRuleContext {
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
COMMA_list(): TerminalNode[];
COMMA(i: number): TerminalNode;
SEMICOLON_list(): TerminalNode[];
SEMICOLON(i: number): TerminalNode;
get ruleIndex(): number;
}
export declare class NlContext extends ParserRuleContext {
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
NEWLINE_list(): TerminalNode[];
NEWLINE(i: number): TerminalNode;
get ruleIndex(): number;
}
export declare class SepContext extends ParserRuleContext {
constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
COMMA_list(): TerminalNode[];
COMMA(i: number): TerminalNode;
SEMICOLON_list(): TerminalNode[];
SEMICOLON(i: number): TerminalNode;
NEWLINE_list(): TerminalNode[];
NEWLINE(i: number): TerminalNode;
get ruleIndex(): number;
}