Initial commit with Advoware proxy

This commit is contained in:
root
2025-10-19 14:57:07 +00:00
commit 273aa8b549
45771 changed files with 5534555 additions and 0 deletions

View File

@@ -0,0 +1,90 @@
import { File_inputContext } from './parser/Python3Parser';
import { Python3Listener } from './parser/Python3Listener';
import { Python3Visitor } from './parser/Python3Visitor';
import { AbstractParseTreeVisitor } from 'antlr4ts/tree/AbstractParseTreeVisitor';
import { ParseTreeVisitor } from 'antlr4ts/tree/ParseTreeVisitor';
import { RuleNode } from 'antlr4ts/tree/RuleNode';
/**
* Parses the given source code and returns the AST
* @param source Python source code to parse
*/
export declare function parse(source: string): ParseTree;
export interface ParseTree extends File_inputContext {
}
/**
* Walks a parse tree
* @see https://github.com/antlr/antlr4/blob/master/doc/listeners.md
*/
export declare function walk(listener: Python3Listener, tree: ParseTree): void;
export { Python3Listener } from './parser/Python3Listener';
/**
* Create a parse tree visitor
*/
export declare function createVisitor<T>(visitor: Visitor<T>): ConcreteVisitor<T>;
export declare function createVisitor(visitor: VoidVisitor): ConcreteVisitor<void>;
export interface Visitor<T> extends AbstractVisitor<T>, OmitStrict<Python3Visitor<T>, NonOverridableMethods> {
}
export interface VoidVisitor extends OmitStrict<Visitor<void>, 'defaultResult' | 'aggregateResult'> {
}
declare type NonOverridableMethods = keyof ParseTreeVisitor<any>;
declare type OmitStrict<T, K extends keyof T> = Omit<T, K>;
export interface ConcreteVisitor<T> extends AbstractParseTreeVisitor<T> {
}
interface AbstractVisitor<T> {
/**
* Gets the default value returned by visitor methods. This value is
* returned by the default implementations of
* {@link #visitTerminal visitTerminal}, {@link #visitErrorNode visitErrorNode}.
* The default implementation of {@link #visitChildren visitChildren}
* initializes its aggregate result to this value.
*
* @return The default value returned by visitor methods.
*/
defaultResult: () => T;
/**
* Aggregates the results of visiting multiple children of a node. After
* either all children are visited or {@link #shouldVisitNextChild} returns
* {@code false}, the aggregate value is returned as the result of
* {@link #visitChildren}.
*
* <p>The default implementation returns {@code nextResult}, meaning
* {@link #visitChildren} will return the result of the last child visited
* (or return the initial value if the node has no children).</p>
*
* @param aggregate The previous aggregate value. In the default
* implementation, the aggregate value is initialized to
* {@link #defaultResult}, which is passed as the {@code aggregate} argument
* to this method after the first child node is visited.
* @param nextResult The result of the immediately preceeding call to visit
* a child node.
*
* @return The updated aggregate result.
*/
aggregateResult: (aggregate: T, nextResult: T) => T;
/**
* This method is called after visiting each child in
* {@link #visitChildren}. This method is first called before the first
* child is visited; at that point {@code currentResult} will be the initial
* value (in the default implementation, the initial value is returned by a
* call to {@link #defaultResult}. This method is not called after the last
* child is visited.
*
* <p>The default implementation always returns {@code true}, indicating that
* {@code visitChildren} should only return after all children are visited.
* One reason to override this method is to provide a "short circuit"
* evaluation option for situations where the result of visiting a single
* child has the potential to determine the result of the visit operation as
* a whole.</p>
*
* @param node The {@link RuleNode} whose children are currently being
* visited.
* @param currentResult The current aggregate result of the children visited
* to the current point.
*
* @return {@code true} to continue visiting children. Otherwise return
* {@code false} to stop visiting children and immediately return the
* current aggregate result from {@link #visitChildren}.
*/
shouldVisitNextChild?: (node: RuleNode, currentResult: T) => boolean;
}
export * from './parser/Python3Contexts';

View File

@@ -0,0 +1,55 @@
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createVisitor = exports.walk = exports.parse = void 0;
// parse
const antlr4ts_1 = require("antlr4ts");
const Python3Lexer_1 = require("./parser/Python3Lexer");
const Python3Parser_1 = require("./parser/Python3Parser");
// walk
const ParseTreeWalker_1 = require("antlr4ts/tree/ParseTreeWalker");
// createVisitor
const AbstractParseTreeVisitor_1 = require("antlr4ts/tree/AbstractParseTreeVisitor");
/**
* Parses the given source code and returns the AST
* @param source Python source code to parse
*/
function parse(source) {
const chars = new antlr4ts_1.ANTLRInputStream(source);
const lexer = new Python3Lexer_1.Python3Lexer(chars);
const tokens = new antlr4ts_1.CommonTokenStream(lexer);
const parser = new Python3Parser_1.Python3Parser(tokens);
return parser.file_input();
}
exports.parse = parse;
/**
* Walks a parse tree
* @see https://github.com/antlr/antlr4/blob/master/doc/listeners.md
*/
function walk(listener, tree) {
ParseTreeWalker_1.ParseTreeWalker.DEFAULT.walk(listener, tree);
}
exports.walk = walk;
function createVisitor(visitor) {
// we don't want users to write classes because it's not JavaScript-y
// so we'll set implementation of abstract methods and other visit* methods in constructor
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
return new (class extends AbstractParseTreeVisitor_1.AbstractParseTreeVisitor {
constructor() {
super();
Object.assign(this, Object.assign({ defaultResult: () => undefined, aggregateResult: () => undefined }, visitor));
}
})();
}
exports.createVisitor = createVisitor;
__exportStar(require("./parser/Python3Contexts"), exports);

View File

@@ -0,0 +1 @@
export { Single_inputContext, File_inputContext, Eval_inputContext, DecoratorContext, DecoratorsContext, DecoratedContext, Async_funcdefContext, FuncdefContext, ParametersContext, TypedargslistContext, TfpdefContext, VarargslistContext, VfpdefContext, StmtContext, Simple_stmtContext, Small_stmtContext, Expr_stmtContext, AnnassignContext, Testlist_star_exprContext, AugassignContext, Del_stmtContext, Pass_stmtContext, Flow_stmtContext, Break_stmtContext, Continue_stmtContext, Return_stmtContext, Yield_stmtContext, Raise_stmtContext, Import_stmtContext, Import_nameContext, Import_fromContext, Import_as_nameContext, Dotted_as_nameContext, Import_as_namesContext, Dotted_as_namesContext, Dotted_nameContext, Global_stmtContext, Nonlocal_stmtContext, Assert_stmtContext, Compound_stmtContext, Async_stmtContext, If_stmtContext, While_stmtContext, For_stmtContext, Try_stmtContext, With_stmtContext, With_itemContext, Except_clauseContext, SuiteContext, TestContext, Test_nocondContext, LambdefContext, Lambdef_nocondContext, Or_testContext, And_testContext, Not_testContext, ComparisonContext, Comp_opContext, Star_exprContext, ExprContext, Xor_exprContext, And_exprContext, Shift_exprContext, Arith_exprContext, TermContext, FactorContext, PowerContext, Atom_exprContext, AtomContext, Testlist_compContext, TrailerContext, SubscriptlistContext, SubscriptContext, SliceopContext, ExprlistContext, TestlistContext, DictorsetmakerContext, ClassdefContext, ArglistContext, ArgumentContext, Comp_iterContext, Comp_forContext, Comp_ifContext, Encoding_declContext, Yield_exprContext, Yield_argContext } from './Python3Parser';

View File

@@ -0,0 +1,89 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Python3Parser_1 = require("./Python3Parser");
Object.defineProperty(exports, "Single_inputContext", { enumerable: true, get: function () { return Python3Parser_1.Single_inputContext; } });
Object.defineProperty(exports, "File_inputContext", { enumerable: true, get: function () { return Python3Parser_1.File_inputContext; } });
Object.defineProperty(exports, "Eval_inputContext", { enumerable: true, get: function () { return Python3Parser_1.Eval_inputContext; } });
Object.defineProperty(exports, "DecoratorContext", { enumerable: true, get: function () { return Python3Parser_1.DecoratorContext; } });
Object.defineProperty(exports, "DecoratorsContext", { enumerable: true, get: function () { return Python3Parser_1.DecoratorsContext; } });
Object.defineProperty(exports, "DecoratedContext", { enumerable: true, get: function () { return Python3Parser_1.DecoratedContext; } });
Object.defineProperty(exports, "Async_funcdefContext", { enumerable: true, get: function () { return Python3Parser_1.Async_funcdefContext; } });
Object.defineProperty(exports, "FuncdefContext", { enumerable: true, get: function () { return Python3Parser_1.FuncdefContext; } });
Object.defineProperty(exports, "ParametersContext", { enumerable: true, get: function () { return Python3Parser_1.ParametersContext; } });
Object.defineProperty(exports, "TypedargslistContext", { enumerable: true, get: function () { return Python3Parser_1.TypedargslistContext; } });
Object.defineProperty(exports, "TfpdefContext", { enumerable: true, get: function () { return Python3Parser_1.TfpdefContext; } });
Object.defineProperty(exports, "VarargslistContext", { enumerable: true, get: function () { return Python3Parser_1.VarargslistContext; } });
Object.defineProperty(exports, "VfpdefContext", { enumerable: true, get: function () { return Python3Parser_1.VfpdefContext; } });
Object.defineProperty(exports, "StmtContext", { enumerable: true, get: function () { return Python3Parser_1.StmtContext; } });
Object.defineProperty(exports, "Simple_stmtContext", { enumerable: true, get: function () { return Python3Parser_1.Simple_stmtContext; } });
Object.defineProperty(exports, "Small_stmtContext", { enumerable: true, get: function () { return Python3Parser_1.Small_stmtContext; } });
Object.defineProperty(exports, "Expr_stmtContext", { enumerable: true, get: function () { return Python3Parser_1.Expr_stmtContext; } });
Object.defineProperty(exports, "AnnassignContext", { enumerable: true, get: function () { return Python3Parser_1.AnnassignContext; } });
Object.defineProperty(exports, "Testlist_star_exprContext", { enumerable: true, get: function () { return Python3Parser_1.Testlist_star_exprContext; } });
Object.defineProperty(exports, "AugassignContext", { enumerable: true, get: function () { return Python3Parser_1.AugassignContext; } });
Object.defineProperty(exports, "Del_stmtContext", { enumerable: true, get: function () { return Python3Parser_1.Del_stmtContext; } });
Object.defineProperty(exports, "Pass_stmtContext", { enumerable: true, get: function () { return Python3Parser_1.Pass_stmtContext; } });
Object.defineProperty(exports, "Flow_stmtContext", { enumerable: true, get: function () { return Python3Parser_1.Flow_stmtContext; } });
Object.defineProperty(exports, "Break_stmtContext", { enumerable: true, get: function () { return Python3Parser_1.Break_stmtContext; } });
Object.defineProperty(exports, "Continue_stmtContext", { enumerable: true, get: function () { return Python3Parser_1.Continue_stmtContext; } });
Object.defineProperty(exports, "Return_stmtContext", { enumerable: true, get: function () { return Python3Parser_1.Return_stmtContext; } });
Object.defineProperty(exports, "Yield_stmtContext", { enumerable: true, get: function () { return Python3Parser_1.Yield_stmtContext; } });
Object.defineProperty(exports, "Raise_stmtContext", { enumerable: true, get: function () { return Python3Parser_1.Raise_stmtContext; } });
Object.defineProperty(exports, "Import_stmtContext", { enumerable: true, get: function () { return Python3Parser_1.Import_stmtContext; } });
Object.defineProperty(exports, "Import_nameContext", { enumerable: true, get: function () { return Python3Parser_1.Import_nameContext; } });
Object.defineProperty(exports, "Import_fromContext", { enumerable: true, get: function () { return Python3Parser_1.Import_fromContext; } });
Object.defineProperty(exports, "Import_as_nameContext", { enumerable: true, get: function () { return Python3Parser_1.Import_as_nameContext; } });
Object.defineProperty(exports, "Dotted_as_nameContext", { enumerable: true, get: function () { return Python3Parser_1.Dotted_as_nameContext; } });
Object.defineProperty(exports, "Import_as_namesContext", { enumerable: true, get: function () { return Python3Parser_1.Import_as_namesContext; } });
Object.defineProperty(exports, "Dotted_as_namesContext", { enumerable: true, get: function () { return Python3Parser_1.Dotted_as_namesContext; } });
Object.defineProperty(exports, "Dotted_nameContext", { enumerable: true, get: function () { return Python3Parser_1.Dotted_nameContext; } });
Object.defineProperty(exports, "Global_stmtContext", { enumerable: true, get: function () { return Python3Parser_1.Global_stmtContext; } });
Object.defineProperty(exports, "Nonlocal_stmtContext", { enumerable: true, get: function () { return Python3Parser_1.Nonlocal_stmtContext; } });
Object.defineProperty(exports, "Assert_stmtContext", { enumerable: true, get: function () { return Python3Parser_1.Assert_stmtContext; } });
Object.defineProperty(exports, "Compound_stmtContext", { enumerable: true, get: function () { return Python3Parser_1.Compound_stmtContext; } });
Object.defineProperty(exports, "Async_stmtContext", { enumerable: true, get: function () { return Python3Parser_1.Async_stmtContext; } });
Object.defineProperty(exports, "If_stmtContext", { enumerable: true, get: function () { return Python3Parser_1.If_stmtContext; } });
Object.defineProperty(exports, "While_stmtContext", { enumerable: true, get: function () { return Python3Parser_1.While_stmtContext; } });
Object.defineProperty(exports, "For_stmtContext", { enumerable: true, get: function () { return Python3Parser_1.For_stmtContext; } });
Object.defineProperty(exports, "Try_stmtContext", { enumerable: true, get: function () { return Python3Parser_1.Try_stmtContext; } });
Object.defineProperty(exports, "With_stmtContext", { enumerable: true, get: function () { return Python3Parser_1.With_stmtContext; } });
Object.defineProperty(exports, "With_itemContext", { enumerable: true, get: function () { return Python3Parser_1.With_itemContext; } });
Object.defineProperty(exports, "Except_clauseContext", { enumerable: true, get: function () { return Python3Parser_1.Except_clauseContext; } });
Object.defineProperty(exports, "SuiteContext", { enumerable: true, get: function () { return Python3Parser_1.SuiteContext; } });
Object.defineProperty(exports, "TestContext", { enumerable: true, get: function () { return Python3Parser_1.TestContext; } });
Object.defineProperty(exports, "Test_nocondContext", { enumerable: true, get: function () { return Python3Parser_1.Test_nocondContext; } });
Object.defineProperty(exports, "LambdefContext", { enumerable: true, get: function () { return Python3Parser_1.LambdefContext; } });
Object.defineProperty(exports, "Lambdef_nocondContext", { enumerable: true, get: function () { return Python3Parser_1.Lambdef_nocondContext; } });
Object.defineProperty(exports, "Or_testContext", { enumerable: true, get: function () { return Python3Parser_1.Or_testContext; } });
Object.defineProperty(exports, "And_testContext", { enumerable: true, get: function () { return Python3Parser_1.And_testContext; } });
Object.defineProperty(exports, "Not_testContext", { enumerable: true, get: function () { return Python3Parser_1.Not_testContext; } });
Object.defineProperty(exports, "ComparisonContext", { enumerable: true, get: function () { return Python3Parser_1.ComparisonContext; } });
Object.defineProperty(exports, "Comp_opContext", { enumerable: true, get: function () { return Python3Parser_1.Comp_opContext; } });
Object.defineProperty(exports, "Star_exprContext", { enumerable: true, get: function () { return Python3Parser_1.Star_exprContext; } });
Object.defineProperty(exports, "ExprContext", { enumerable: true, get: function () { return Python3Parser_1.ExprContext; } });
Object.defineProperty(exports, "Xor_exprContext", { enumerable: true, get: function () { return Python3Parser_1.Xor_exprContext; } });
Object.defineProperty(exports, "And_exprContext", { enumerable: true, get: function () { return Python3Parser_1.And_exprContext; } });
Object.defineProperty(exports, "Shift_exprContext", { enumerable: true, get: function () { return Python3Parser_1.Shift_exprContext; } });
Object.defineProperty(exports, "Arith_exprContext", { enumerable: true, get: function () { return Python3Parser_1.Arith_exprContext; } });
Object.defineProperty(exports, "TermContext", { enumerable: true, get: function () { return Python3Parser_1.TermContext; } });
Object.defineProperty(exports, "FactorContext", { enumerable: true, get: function () { return Python3Parser_1.FactorContext; } });
Object.defineProperty(exports, "PowerContext", { enumerable: true, get: function () { return Python3Parser_1.PowerContext; } });
Object.defineProperty(exports, "Atom_exprContext", { enumerable: true, get: function () { return Python3Parser_1.Atom_exprContext; } });
Object.defineProperty(exports, "AtomContext", { enumerable: true, get: function () { return Python3Parser_1.AtomContext; } });
Object.defineProperty(exports, "Testlist_compContext", { enumerable: true, get: function () { return Python3Parser_1.Testlist_compContext; } });
Object.defineProperty(exports, "TrailerContext", { enumerable: true, get: function () { return Python3Parser_1.TrailerContext; } });
Object.defineProperty(exports, "SubscriptlistContext", { enumerable: true, get: function () { return Python3Parser_1.SubscriptlistContext; } });
Object.defineProperty(exports, "SubscriptContext", { enumerable: true, get: function () { return Python3Parser_1.SubscriptContext; } });
Object.defineProperty(exports, "SliceopContext", { enumerable: true, get: function () { return Python3Parser_1.SliceopContext; } });
Object.defineProperty(exports, "ExprlistContext", { enumerable: true, get: function () { return Python3Parser_1.ExprlistContext; } });
Object.defineProperty(exports, "TestlistContext", { enumerable: true, get: function () { return Python3Parser_1.TestlistContext; } });
Object.defineProperty(exports, "DictorsetmakerContext", { enumerable: true, get: function () { return Python3Parser_1.DictorsetmakerContext; } });
Object.defineProperty(exports, "ClassdefContext", { enumerable: true, get: function () { return Python3Parser_1.ClassdefContext; } });
Object.defineProperty(exports, "ArglistContext", { enumerable: true, get: function () { return Python3Parser_1.ArglistContext; } });
Object.defineProperty(exports, "ArgumentContext", { enumerable: true, get: function () { return Python3Parser_1.ArgumentContext; } });
Object.defineProperty(exports, "Comp_iterContext", { enumerable: true, get: function () { return Python3Parser_1.Comp_iterContext; } });
Object.defineProperty(exports, "Comp_forContext", { enumerable: true, get: function () { return Python3Parser_1.Comp_forContext; } });
Object.defineProperty(exports, "Comp_ifContext", { enumerable: true, get: function () { return Python3Parser_1.Comp_ifContext; } });
Object.defineProperty(exports, "Encoding_declContext", { enumerable: true, get: function () { return Python3Parser_1.Encoding_declContext; } });
Object.defineProperty(exports, "Yield_exprContext", { enumerable: true, get: function () { return Python3Parser_1.Yield_exprContext; } });
Object.defineProperty(exports, "Yield_argContext", { enumerable: true, get: function () { return Python3Parser_1.Yield_argContext; } });

View File

@@ -0,0 +1,152 @@
import { Token } from 'antlr4ts/Token';
import { ATN } from "antlr4ts/atn/ATN";
import { CharStream } from "antlr4ts/CharStream";
import { Lexer } from "antlr4ts/Lexer";
import { RuleContext } from "antlr4ts/RuleContext";
import { Vocabulary } from "antlr4ts/Vocabulary";
export declare class Python3Lexer extends Lexer {
static readonly STRING = 1;
static readonly NUMBER = 2;
static readonly INTEGER = 3;
static readonly DEF = 4;
static readonly RETURN = 5;
static readonly RAISE = 6;
static readonly FROM = 7;
static readonly IMPORT = 8;
static readonly AS = 9;
static readonly GLOBAL = 10;
static readonly NONLOCAL = 11;
static readonly ASSERT = 12;
static readonly IF = 13;
static readonly ELIF = 14;
static readonly ELSE = 15;
static readonly WHILE = 16;
static readonly FOR = 17;
static readonly IN = 18;
static readonly TRY = 19;
static readonly FINALLY = 20;
static readonly WITH = 21;
static readonly EXCEPT = 22;
static readonly LAMBDA = 23;
static readonly OR = 24;
static readonly AND = 25;
static readonly NOT = 26;
static readonly IS = 27;
static readonly NONE = 28;
static readonly TRUE = 29;
static readonly FALSE = 30;
static readonly CLASS = 31;
static readonly YIELD = 32;
static readonly DEL = 33;
static readonly PASS = 34;
static readonly CONTINUE = 35;
static readonly BREAK = 36;
static readonly ASYNC = 37;
static readonly AWAIT = 38;
static readonly NEWLINE = 39;
static readonly NAME = 40;
static readonly STRING_LITERAL = 41;
static readonly BYTES_LITERAL = 42;
static readonly DECIMAL_INTEGER = 43;
static readonly OCT_INTEGER = 44;
static readonly HEX_INTEGER = 45;
static readonly BIN_INTEGER = 46;
static readonly FLOAT_NUMBER = 47;
static readonly IMAG_NUMBER = 48;
static readonly DOT = 49;
static readonly ELLIPSIS = 50;
static readonly STAR = 51;
static readonly OPEN_PAREN = 52;
static readonly CLOSE_PAREN = 53;
static readonly COMMA = 54;
static readonly COLON = 55;
static readonly SEMI_COLON = 56;
static readonly POWER = 57;
static readonly ASSIGN = 58;
static readonly OPEN_BRACK = 59;
static readonly CLOSE_BRACK = 60;
static readonly OR_OP = 61;
static readonly XOR = 62;
static readonly AND_OP = 63;
static readonly LEFT_SHIFT = 64;
static readonly RIGHT_SHIFT = 65;
static readonly ADD = 66;
static readonly MINUS = 67;
static readonly DIV = 68;
static readonly MOD = 69;
static readonly IDIV = 70;
static readonly NOT_OP = 71;
static readonly OPEN_BRACE = 72;
static readonly CLOSE_BRACE = 73;
static readonly LESS_THAN = 74;
static readonly GREATER_THAN = 75;
static readonly EQUALS = 76;
static readonly GT_EQ = 77;
static readonly LT_EQ = 78;
static readonly NOT_EQ_1 = 79;
static readonly NOT_EQ_2 = 80;
static readonly AT = 81;
static readonly ARROW = 82;
static readonly ADD_ASSIGN = 83;
static readonly SUB_ASSIGN = 84;
static readonly MULT_ASSIGN = 85;
static readonly AT_ASSIGN = 86;
static readonly DIV_ASSIGN = 87;
static readonly MOD_ASSIGN = 88;
static readonly AND_ASSIGN = 89;
static readonly OR_ASSIGN = 90;
static readonly XOR_ASSIGN = 91;
static readonly LEFT_SHIFT_ASSIGN = 92;
static readonly RIGHT_SHIFT_ASSIGN = 93;
static readonly POWER_ASSIGN = 94;
static readonly IDIV_ASSIGN = 95;
static readonly SKIP_ = 96;
static readonly UNKNOWN_CHAR = 97;
static readonly channelNames: string[];
static readonly modeNames: string[];
static readonly ruleNames: string[];
private static readonly _LITERAL_NAMES;
private static readonly _SYMBOLIC_NAMES;
static readonly VOCABULARY: Vocabulary;
get vocabulary(): Vocabulary;
private token_queue;
private indents;
private opened;
private last_token;
reset(): void;
emit(token?: Token): Token;
/**
* Return the next token from the character stream and records this last
* token in case it resides on the default channel. This recorded token
* is used to determine when the lexer could possibly match a regex
* literal.
*
*/
nextToken(): Token;
private createDedent;
private commonToken;
private getIndentationCount;
private atStartOfInput;
constructor(input: CharStream);
get grammarFileName(): string;
get ruleNames(): string[];
get serializedATN(): string;
get channelNames(): string[];
get modeNames(): string[];
action(_localctx: RuleContext, ruleIndex: number, actionIndex: number): void;
private NEWLINE_action;
private OPEN_PAREN_action;
private CLOSE_PAREN_action;
private OPEN_BRACK_action;
private CLOSE_BRACK_action;
private OPEN_BRACE_action;
private CLOSE_BRACE_action;
sempred(_localctx: RuleContext, ruleIndex: number, predIndex: number): boolean;
private NEWLINE_sempred;
private static readonly _serializedATNSegments;
private static readonly _serializedATNSegment0;
private static readonly _serializedATNSegment1;
static readonly _serializedATN: string;
static __ATN: ATN;
static get _ATN(): ATN;
}

View File

@@ -0,0 +1,948 @@
"use strict";
// Generated from src/parser/Python3.g4 by ANTLR 4.7.3-SNAPSHOT
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Python3Lexer = void 0;
const Token_1 = require("antlr4ts/Token");
const CommonToken_1 = require("antlr4ts/CommonToken");
const Python3Parser_1 = require("./Python3Parser");
const ATNDeserializer_1 = require("antlr4ts/atn/ATNDeserializer");
const Lexer_1 = require("antlr4ts/Lexer");
const LexerATNSimulator_1 = require("antlr4ts/atn/LexerATNSimulator");
const Decorators_1 = require("antlr4ts/Decorators");
const VocabularyImpl_1 = require("antlr4ts/VocabularyImpl");
const Utils = __importStar(require("antlr4ts/misc/Utils"));
class Python3Lexer extends Lexer_1.Lexer {
constructor(input) {
super(input);
// tslint:enable:no-trailing-whitespace
this.token_queue = [];
this.indents = [];
this.opened = 0;
this.last_token = undefined;
this._interp = new LexerATNSimulator_1.LexerATNSimulator(Python3Lexer._ATN, this);
}
// @Override
// @NotNull
get vocabulary() {
return Python3Lexer.VOCABULARY;
}
reset() {
// A queue where extra tokens are pushed on (see the NEWLINE lexer rule).
this.token_queue = [];
// The stack that keeps track of the indentation level.
this.indents = [];
// The amount of opened braces, brackets and parenthesis.
this.opened = 0;
super.reset();
}
;
emit(token) {
if (token) {
token = super.emit(token);
}
else {
token = super.emit();
}
this.token_queue.push(token);
return token;
}
;
/**
* Return the next token from the character stream and records this last
* token in case it resides on the default channel. This recorded token
* is used to determine when the lexer could possibly match a regex
* literal.
*
*/
nextToken() {
// Check if the end-of-file is ahead and there are still some DEDENTS expected.
if (this.inputStream.LA(1) === Python3Parser_1.Python3Parser.EOF && this.indents.length) {
// Remove any trailing EOF tokens from our buffer.
this.token_queue = this.token_queue.filter(function (val) {
return val.type !== Python3Parser_1.Python3Parser.EOF;
});
// First emit an extra line break that serves as the end of the statement.
this.emit(this.commonToken(Python3Parser_1.Python3Parser.NEWLINE, "\n"));
// Now emit as much DEDENT tokens as needed.
while (this.indents.length) {
this.emit(this.createDedent());
this.indents.pop();
}
// Put the EOF back on the token stream.
this.emit(this.commonToken(Python3Parser_1.Python3Parser.EOF, "<EOF>"));
}
let next = super.nextToken();
if (next.channel == Token_1.Token.DEFAULT_CHANNEL) {
// Keep track of the last token on the default channel.
this.last_token = next;
}
return this.token_queue.shift() || next;
}
createDedent() {
let dedent = this.commonToken(Python3Parser_1.Python3Parser.DEDENT, "");
if (this.last_token) {
dedent.line = this.last_token.line;
}
return dedent;
}
commonToken(type, text) {
let stop = this.charIndex - 1;
let start = text.length ? stop - text.length + 1 : stop;
return new CommonToken_1.CommonToken(type, text, this._tokenFactorySourcePair, Lexer_1.Lexer.DEFAULT_TOKEN_CHANNEL, start, stop);
}
// Calculates the indentation of the provided spaces, taking the
// following rules into account:
//
// "Tabs are replaced (from left to right) by one to eight spaces
// such that the total number of characters up to and including
// the replacement is a multiple of eight [...]"
//
// -- https://docs.python.org/3.1/reference/lexical_analysis.html#indentation
getIndentationCount(whitespace) {
let count = 0;
for (let i = 0; i < whitespace.length; i++) {
if (whitespace[i] === '\t') {
count += 8 - count % 8;
}
else {
count++;
}
}
return count;
}
atStartOfInput() {
return this.charIndex === 0;
}
// @Override
get grammarFileName() { return "Python3.g4"; }
// @Override
get ruleNames() { return Python3Lexer.ruleNames; }
// @Override
get serializedATN() { return Python3Lexer._serializedATN; }
// @Override
get channelNames() { return Python3Lexer.channelNames; }
// @Override
get modeNames() { return Python3Lexer.modeNames; }
// @Override
action(_localctx, ruleIndex, actionIndex) {
switch (ruleIndex) {
case 38:
this.NEWLINE_action(_localctx, actionIndex);
break;
case 51:
this.OPEN_PAREN_action(_localctx, actionIndex);
break;
case 52:
this.CLOSE_PAREN_action(_localctx, actionIndex);
break;
case 58:
this.OPEN_BRACK_action(_localctx, actionIndex);
break;
case 59:
this.CLOSE_BRACK_action(_localctx, actionIndex);
break;
case 71:
this.OPEN_BRACE_action(_localctx, actionIndex);
break;
case 72:
this.CLOSE_BRACE_action(_localctx, actionIndex);
break;
}
}
NEWLINE_action(_localctx, actionIndex) {
switch (actionIndex) {
case 0:
let newLine = this.text.replace(/[^\r\n]+/g, '');
let spaces = this.text.replace(/[\r\n]+/g, '');
// Strip newlines inside open clauses except if we are near EOF. We keep NEWLINEs near EOF to
// satisfy the final newline needed by the single_put rule used by the REPL.
let next = this.inputStream.LA(1);
let nextnext = this.inputStream.LA(2);
if (this.opened > 0 || (nextnext != -1 /* EOF */ && (next === 13 /* '\r' */ || next === 10 /* '\n' */ || next === 35 /* '#' */))) {
// If we're inside a list or on a blank line, ignore all indents,
// dedents and line breaks.
this.skip();
}
else {
this.emit(this.commonToken(Python3Parser_1.Python3Parser.NEWLINE, newLine));
let indent = this.getIndentationCount(spaces);
let previous = this.indents.length ? this.indents[this.indents.length - 1] : 0;
if (indent === previous) {
// skip indents of the same size as the present indent-size
this.skip();
}
else if (indent > previous) {
this.indents.push(indent);
this.emit(this.commonToken(Python3Parser_1.Python3Parser.INDENT, spaces));
}
else {
// Possibly emit more than 1 DEDENT token.
while (this.indents.length && this.indents[this.indents.length - 1] > indent) {
this.emit(this.createDedent());
this.indents.pop();
}
}
}
break;
}
}
OPEN_PAREN_action(_localctx, actionIndex) {
switch (actionIndex) {
case 1:
this.opened++;
break;
}
}
CLOSE_PAREN_action(_localctx, actionIndex) {
switch (actionIndex) {
case 2:
this.opened--;
break;
}
}
OPEN_BRACK_action(_localctx, actionIndex) {
switch (actionIndex) {
case 3:
this.opened++;
break;
}
}
CLOSE_BRACK_action(_localctx, actionIndex) {
switch (actionIndex) {
case 4:
this.opened--;
break;
}
}
OPEN_BRACE_action(_localctx, actionIndex) {
switch (actionIndex) {
case 5:
this.opened++;
break;
}
}
CLOSE_BRACE_action(_localctx, actionIndex) {
switch (actionIndex) {
case 6:
this.opened--;
break;
}
}
// @Override
sempred(_localctx, ruleIndex, predIndex) {
switch (ruleIndex) {
case 38:
return this.NEWLINE_sempred(_localctx, predIndex);
}
return true;
}
NEWLINE_sempred(_localctx, predIndex) {
switch (predIndex) {
case 0:
return this.atStartOfInput();
}
return true;
}
static get _ATN() {
if (!Python3Lexer.__ATN) {
Python3Lexer.__ATN = new ATNDeserializer_1.ATNDeserializer().deserialize(Utils.toCharArray(Python3Lexer._serializedATN));
}
return Python3Lexer.__ATN;
}
}
Python3Lexer.STRING = 1;
Python3Lexer.NUMBER = 2;
Python3Lexer.INTEGER = 3;
Python3Lexer.DEF = 4;
Python3Lexer.RETURN = 5;
Python3Lexer.RAISE = 6;
Python3Lexer.FROM = 7;
Python3Lexer.IMPORT = 8;
Python3Lexer.AS = 9;
Python3Lexer.GLOBAL = 10;
Python3Lexer.NONLOCAL = 11;
Python3Lexer.ASSERT = 12;
Python3Lexer.IF = 13;
Python3Lexer.ELIF = 14;
Python3Lexer.ELSE = 15;
Python3Lexer.WHILE = 16;
Python3Lexer.FOR = 17;
Python3Lexer.IN = 18;
Python3Lexer.TRY = 19;
Python3Lexer.FINALLY = 20;
Python3Lexer.WITH = 21;
Python3Lexer.EXCEPT = 22;
Python3Lexer.LAMBDA = 23;
Python3Lexer.OR = 24;
Python3Lexer.AND = 25;
Python3Lexer.NOT = 26;
Python3Lexer.IS = 27;
Python3Lexer.NONE = 28;
Python3Lexer.TRUE = 29;
Python3Lexer.FALSE = 30;
Python3Lexer.CLASS = 31;
Python3Lexer.YIELD = 32;
Python3Lexer.DEL = 33;
Python3Lexer.PASS = 34;
Python3Lexer.CONTINUE = 35;
Python3Lexer.BREAK = 36;
Python3Lexer.ASYNC = 37;
Python3Lexer.AWAIT = 38;
Python3Lexer.NEWLINE = 39;
Python3Lexer.NAME = 40;
Python3Lexer.STRING_LITERAL = 41;
Python3Lexer.BYTES_LITERAL = 42;
Python3Lexer.DECIMAL_INTEGER = 43;
Python3Lexer.OCT_INTEGER = 44;
Python3Lexer.HEX_INTEGER = 45;
Python3Lexer.BIN_INTEGER = 46;
Python3Lexer.FLOAT_NUMBER = 47;
Python3Lexer.IMAG_NUMBER = 48;
Python3Lexer.DOT = 49;
Python3Lexer.ELLIPSIS = 50;
Python3Lexer.STAR = 51;
Python3Lexer.OPEN_PAREN = 52;
Python3Lexer.CLOSE_PAREN = 53;
Python3Lexer.COMMA = 54;
Python3Lexer.COLON = 55;
Python3Lexer.SEMI_COLON = 56;
Python3Lexer.POWER = 57;
Python3Lexer.ASSIGN = 58;
Python3Lexer.OPEN_BRACK = 59;
Python3Lexer.CLOSE_BRACK = 60;
Python3Lexer.OR_OP = 61;
Python3Lexer.XOR = 62;
Python3Lexer.AND_OP = 63;
Python3Lexer.LEFT_SHIFT = 64;
Python3Lexer.RIGHT_SHIFT = 65;
Python3Lexer.ADD = 66;
Python3Lexer.MINUS = 67;
Python3Lexer.DIV = 68;
Python3Lexer.MOD = 69;
Python3Lexer.IDIV = 70;
Python3Lexer.NOT_OP = 71;
Python3Lexer.OPEN_BRACE = 72;
Python3Lexer.CLOSE_BRACE = 73;
Python3Lexer.LESS_THAN = 74;
Python3Lexer.GREATER_THAN = 75;
Python3Lexer.EQUALS = 76;
Python3Lexer.GT_EQ = 77;
Python3Lexer.LT_EQ = 78;
Python3Lexer.NOT_EQ_1 = 79;
Python3Lexer.NOT_EQ_2 = 80;
Python3Lexer.AT = 81;
Python3Lexer.ARROW = 82;
Python3Lexer.ADD_ASSIGN = 83;
Python3Lexer.SUB_ASSIGN = 84;
Python3Lexer.MULT_ASSIGN = 85;
Python3Lexer.AT_ASSIGN = 86;
Python3Lexer.DIV_ASSIGN = 87;
Python3Lexer.MOD_ASSIGN = 88;
Python3Lexer.AND_ASSIGN = 89;
Python3Lexer.OR_ASSIGN = 90;
Python3Lexer.XOR_ASSIGN = 91;
Python3Lexer.LEFT_SHIFT_ASSIGN = 92;
Python3Lexer.RIGHT_SHIFT_ASSIGN = 93;
Python3Lexer.POWER_ASSIGN = 94;
Python3Lexer.IDIV_ASSIGN = 95;
Python3Lexer.SKIP_ = 96;
Python3Lexer.UNKNOWN_CHAR = 97;
// tslint:disable:no-trailing-whitespace
Python3Lexer.channelNames = [
"DEFAULT_TOKEN_CHANNEL", "HIDDEN",
];
// tslint:disable:no-trailing-whitespace
Python3Lexer.modeNames = [
"DEFAULT_MODE",
];
Python3Lexer.ruleNames = [
"STRING", "NUMBER", "INTEGER", "DEF", "RETURN", "RAISE", "FROM", "IMPORT",
"AS", "GLOBAL", "NONLOCAL", "ASSERT", "IF", "ELIF", "ELSE", "WHILE", "FOR",
"IN", "TRY", "FINALLY", "WITH", "EXCEPT", "LAMBDA", "OR", "AND", "NOT",
"IS", "NONE", "TRUE", "FALSE", "CLASS", "YIELD", "DEL", "PASS", "CONTINUE",
"BREAK", "ASYNC", "AWAIT", "NEWLINE", "NAME", "STRING_LITERAL", "BYTES_LITERAL",
"DECIMAL_INTEGER", "OCT_INTEGER", "HEX_INTEGER", "BIN_INTEGER", "FLOAT_NUMBER",
"IMAG_NUMBER", "DOT", "ELLIPSIS", "STAR", "OPEN_PAREN", "CLOSE_PAREN",
"COMMA", "COLON", "SEMI_COLON", "POWER", "ASSIGN", "OPEN_BRACK", "CLOSE_BRACK",
"OR_OP", "XOR", "AND_OP", "LEFT_SHIFT", "RIGHT_SHIFT", "ADD", "MINUS",
"DIV", "MOD", "IDIV", "NOT_OP", "OPEN_BRACE", "CLOSE_BRACE", "LESS_THAN",
"GREATER_THAN", "EQUALS", "GT_EQ", "LT_EQ", "NOT_EQ_1", "NOT_EQ_2", "AT",
"ARROW", "ADD_ASSIGN", "SUB_ASSIGN", "MULT_ASSIGN", "AT_ASSIGN", "DIV_ASSIGN",
"MOD_ASSIGN", "AND_ASSIGN", "OR_ASSIGN", "XOR_ASSIGN", "LEFT_SHIFT_ASSIGN",
"RIGHT_SHIFT_ASSIGN", "POWER_ASSIGN", "IDIV_ASSIGN", "SKIP_", "UNKNOWN_CHAR",
"SHORT_STRING", "LONG_STRING", "LONG_STRING_ITEM", "LONG_STRING_CHAR",
"STRING_ESCAPE_SEQ", "NON_ZERO_DIGIT", "DIGIT", "OCT_DIGIT", "HEX_DIGIT",
"BIN_DIGIT", "POINT_FLOAT", "EXPONENT_FLOAT", "INT_PART", "FRACTION",
"EXPONENT", "SHORT_BYTES", "LONG_BYTES", "LONG_BYTES_ITEM", "SHORT_BYTES_CHAR_NO_SINGLE_QUOTE",
"SHORT_BYTES_CHAR_NO_DOUBLE_QUOTE", "LONG_BYTES_CHAR", "BYTES_ESCAPE_SEQ",
"SPACES", "COMMENT", "LINE_JOINING", "ID_START", "ID_CONTINUE",
];
Python3Lexer._LITERAL_NAMES = [
undefined, undefined, undefined, undefined, "'def'", "'return'", "'raise'",
"'from'", "'import'", "'as'", "'global'", "'nonlocal'", "'assert'", "'if'",
"'elif'", "'else'", "'while'", "'for'", "'in'", "'try'", "'finally'",
"'with'", "'except'", "'lambda'", "'or'", "'and'", "'not'", "'is'", "'None'",
"'True'", "'False'", "'class'", "'yield'", "'del'", "'pass'", "'continue'",
"'break'", "'async'", "'await'", undefined, undefined, undefined, undefined,
undefined, undefined, undefined, undefined, undefined, undefined, "'.'",
"'...'", "'*'", "'('", "')'", "','", "':'", "';'", "'**'", "'='", "'['",
"']'", "'|'", "'^'", "'&'", "'<<'", "'>>'", "'+'", "'-'", "'/'", "'%'",
"'//'", "'~'", "'{'", "'}'", "'<'", "'>'", "'=='", "'>='", "'<='", "'<>'",
"'!='", "'@'", "'->'", "'+='", "'-='", "'*='", "'@='", "'/='", "'%='",
"'&='", "'|='", "'^='", "'<<='", "'>>='", "'**='", "'//='",
];
Python3Lexer._SYMBOLIC_NAMES = [
undefined, "STRING", "NUMBER", "INTEGER", "DEF", "RETURN", "RAISE", "FROM",
"IMPORT", "AS", "GLOBAL", "NONLOCAL", "ASSERT", "IF", "ELIF", "ELSE",
"WHILE", "FOR", "IN", "TRY", "FINALLY", "WITH", "EXCEPT", "LAMBDA", "OR",
"AND", "NOT", "IS", "NONE", "TRUE", "FALSE", "CLASS", "YIELD", "DEL",
"PASS", "CONTINUE", "BREAK", "ASYNC", "AWAIT", "NEWLINE", "NAME", "STRING_LITERAL",
"BYTES_LITERAL", "DECIMAL_INTEGER", "OCT_INTEGER", "HEX_INTEGER", "BIN_INTEGER",
"FLOAT_NUMBER", "IMAG_NUMBER", "DOT", "ELLIPSIS", "STAR", "OPEN_PAREN",
"CLOSE_PAREN", "COMMA", "COLON", "SEMI_COLON", "POWER", "ASSIGN", "OPEN_BRACK",
"CLOSE_BRACK", "OR_OP", "XOR", "AND_OP", "LEFT_SHIFT", "RIGHT_SHIFT",
"ADD", "MINUS", "DIV", "MOD", "IDIV", "NOT_OP", "OPEN_BRACE", "CLOSE_BRACE",
"LESS_THAN", "GREATER_THAN", "EQUALS", "GT_EQ", "LT_EQ", "NOT_EQ_1", "NOT_EQ_2",
"AT", "ARROW", "ADD_ASSIGN", "SUB_ASSIGN", "MULT_ASSIGN", "AT_ASSIGN",
"DIV_ASSIGN", "MOD_ASSIGN", "AND_ASSIGN", "OR_ASSIGN", "XOR_ASSIGN", "LEFT_SHIFT_ASSIGN",
"RIGHT_SHIFT_ASSIGN", "POWER_ASSIGN", "IDIV_ASSIGN", "SKIP_", "UNKNOWN_CHAR",
];
Python3Lexer.VOCABULARY = new VocabularyImpl_1.VocabularyImpl(Python3Lexer._LITERAL_NAMES, Python3Lexer._SYMBOLIC_NAMES, []);
Python3Lexer._serializedATNSegments = 2;
Python3Lexer._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02c\u0373\b\x01" +
"\x04\x02\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06" +
"\x04\x07\t\x07\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04\r" +
"\t\r\x04\x0E\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t" +
"\x12\x04\x13\t\x13\x04\x14\t\x14\x04\x15\t\x15\x04\x16\t\x16\x04\x17\t" +
"\x17\x04\x18\t\x18\x04\x19\t\x19\x04\x1A\t\x1A\x04\x1B\t\x1B\x04\x1C\t" +
"\x1C\x04\x1D\t\x1D\x04\x1E\t\x1E\x04\x1F\t\x1F\x04 \t \x04!\t!\x04\"\t" +
"\"\x04#\t#\x04$\t$\x04%\t%\x04&\t&\x04\'\t\'\x04(\t(\x04)\t)\x04*\t*\x04" +
"+\t+\x04,\t,\x04-\t-\x04.\t.\x04/\t/\x040\t0\x041\t1\x042\t2\x043\t3\x04" +
"4\t4\x045\t5\x046\t6\x047\t7\x048\t8\x049\t9\x04:\t:\x04;\t;\x04<\t<\x04" +
"=\t=\x04>\t>\x04?\t?\x04@\t@\x04A\tA\x04B\tB\x04C\tC\x04D\tD\x04E\tE\x04" +
"F\tF\x04G\tG\x04H\tH\x04I\tI\x04J\tJ\x04K\tK\x04L\tL\x04M\tM\x04N\tN\x04" +
"O\tO\x04P\tP\x04Q\tQ\x04R\tR\x04S\tS\x04T\tT\x04U\tU\x04V\tV\x04W\tW\x04" +
"X\tX\x04Y\tY\x04Z\tZ\x04[\t[\x04\\\t\\\x04]\t]\x04^\t^\x04_\t_\x04`\t" +
"`\x04a\ta\x04b\tb\x04c\tc\x04d\td\x04e\te\x04f\tf\x04g\tg\x04h\th\x04" +
"i\ti\x04j\tj\x04k\tk\x04l\tl\x04m\tm\x04n\tn\x04o\to\x04p\tp\x04q\tq\x04" +
"r\tr\x04s\ts\x04t\tt\x04u\tu\x04v\tv\x04w\tw\x04x\tx\x04y\ty\x04z\tz\x04" +
"{\t{\x04|\t|\x04}\t}\x03\x02\x03\x02\x05\x02\xFE\n\x02\x03\x03\x03\x03" +
"\x03\x03\x05\x03\u0103\n\x03\x03\x04\x03\x04\x03\x04\x03\x04\x05\x04\u0109" +
"\n\x04\x03\x05\x03\x05\x03\x05\x03\x05\x03\x06\x03\x06\x03\x06\x03\x06" +
"\x03\x06\x03\x06\x03\x06\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07" +
"\x03\b\x03\b\x03\b\x03\b\x03\b\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03" +
"\t\x03\n\x03\n\x03\n\x03\v\x03\v\x03\v\x03\v\x03\v\x03\v\x03\v\x03\f\x03" +
"\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\r\x03\r\x03\r\x03\r\x03" +
"\r\x03\r\x03\r\x03\x0E\x03\x0E\x03\x0E\x03\x0F\x03\x0F\x03\x0F\x03\x0F" +
"\x03\x0F\x03\x10\x03\x10\x03\x10\x03\x10\x03\x10\x03\x11\x03\x11\x03\x11" +
"\x03\x11\x03\x11\x03\x11\x03\x12\x03\x12\x03\x12\x03\x12\x03\x13\x03\x13" +
"\x03\x13\x03\x14\x03\x14\x03\x14\x03\x14\x03\x15\x03\x15\x03\x15\x03\x15" +
"\x03\x15\x03\x15\x03\x15\x03\x15\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16" +
"\x03\x17\x03\x17\x03\x17\x03\x17\x03\x17\x03\x17\x03\x17\x03\x18\x03\x18" +
"\x03\x18\x03\x18\x03\x18\x03\x18\x03\x18\x03\x19\x03\x19\x03\x19\x03\x1A" +
"\x03\x1A\x03\x1A\x03\x1A\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1C\x03\x1C" +
"\x03\x1C\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1E\x03\x1E\x03\x1E" +
"\x03\x1E\x03\x1E\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03 " +
"\x03 \x03 \x03 \x03 \x03 \x03!\x03!\x03!\x03!\x03!\x03!\x03\"\x03\"\x03" +
"\"\x03\"\x03#\x03#\x03#\x03#\x03#\x03$\x03$\x03$\x03$\x03$\x03$\x03$\x03" +
"$\x03$\x03%\x03%\x03%\x03%\x03%\x03%\x03&\x03&\x03&\x03&\x03&\x03&\x03" +
"\'\x03\'\x03\'\x03\'\x03\'\x03\'\x03(\x03(\x03(\x05(\u01CC\n(\x03(\x03" +
"(\x05(\u01D0\n(\x03(\x05(\u01D3\n(\x05(\u01D5\n(\x03(\x03(\x03)\x03)\x07" +
")\u01DB\n)\f)\x0E)\u01DE\v)\x03*\x03*\x03*\x03*\x03*\x05*\u01E5\n*\x03" +
"*\x03*\x05*\u01E9\n*\x03+\x03+\x03+\x03+\x03+\x05+\u01F0\n+\x03+\x03+" +
"\x05+\u01F4\n+\x03,\x03,\x07,\u01F8\n,\f,\x0E,\u01FB\v,\x03,\x06,\u01FE" +
"\n,\r,\x0E,\u01FF\x05,\u0202\n,\x03-\x03-\x03-\x06-\u0207\n-\r-\x0E-\u0208" +
"\x03.\x03.\x03.\x06.\u020E\n.\r.\x0E.\u020F\x03/\x03/\x03/\x06/\u0215" +
"\n/\r/\x0E/\u0216\x030\x030\x050\u021B\n0\x031\x031\x051\u021F\n1\x03" +
"1\x031\x032\x032\x033\x033\x033\x033\x034\x034\x035\x035\x035\x036\x03" +
"6\x036\x037\x037\x038\x038\x039\x039\x03:\x03:\x03:\x03;\x03;\x03<\x03" +
"<\x03<\x03=\x03=\x03=\x03>\x03>\x03?\x03?\x03@\x03@\x03A\x03A\x03A\x03" +
"B\x03B\x03B\x03C\x03C\x03D\x03D\x03E\x03E\x03F\x03F\x03G\x03G\x03G\x03" +
"H\x03H\x03I\x03I\x03I\x03J\x03J\x03J\x03K\x03K\x03L\x03L\x03M\x03M\x03" +
"M\x03N\x03N\x03N\x03O\x03O\x03O\x03P\x03P\x03P\x03Q\x03Q\x03Q\x03R\x03" +
"R\x03S\x03S\x03S\x03T\x03T\x03T\x03U\x03U\x03U\x03V\x03V\x03V\x03W\x03" +
"W\x03W\x03X\x03X\x03X\x03Y\x03Y\x03Y\x03Z\x03Z\x03Z\x03[\x03[\x03[\x03" +
"\\\x03\\\x03\\\x03]\x03]\x03]\x03]\x03^\x03^\x03^\x03^\x03_\x03_\x03_" +
"\x03_\x03`\x03`\x03`\x03`\x03a\x03a\x03a\x05a\u02A7\na\x03a\x03a\x03b" +
"\x03b\x03c\x03c\x03c\x07c\u02B0\nc\fc\x0Ec\u02B3\vc\x03c\x03c\x03c\x03" +
"c\x07c\u02B9\nc\fc\x0Ec\u02BC\vc\x03c\x05c\u02BF\nc\x03d\x03d\x03d\x03" +
"d\x03d\x07d\u02C6\nd\fd\x0Ed\u02C9\vd\x03d\x03d\x03d\x03d\x03d\x03d\x03" +
"d\x03d\x07d\u02D3\nd\fd\x0Ed\u02D6\vd\x03d\x03d\x03d\x05d\u02DB\nd\x03" +
"e\x03e\x05e\u02DF\ne\x03f\x03f\x03g\x03g\x03g\x03g\x05g\u02E7\ng\x03h" +
"\x03h\x03i\x03i\x03j\x03j\x03k\x03k\x03l\x03l\x03m\x05m\u02F4\nm\x03m" +
"\x03m\x03m\x03m\x05m\u02FA\nm\x03n\x03n\x05n\u02FE\nn\x03n\x03n\x03o\x06" +
"o\u0303\no\ro\x0Eo\u0304\x03p\x03p\x06p\u0309\np\rp\x0Ep\u030A\x03q\x03" +
"q\x05q\u030F\nq\x03q\x06q\u0312\nq\rq\x0Eq\u0313\x03r\x03r\x03r\x07r\u0319" +
"\nr\fr\x0Er\u031C\vr\x03r\x03r\x03r\x03r\x07r\u0322\nr\fr\x0Er\u0325\v" +
"r\x03r\x05r\u0328\nr\x03s\x03s\x03s\x03s\x03s\x07s\u032F\ns\fs\x0Es\u0332" +
"\vs\x03s\x03s\x03s\x03s\x03s\x03s\x03s\x03s\x07s\u033C\ns\fs\x0Es\u033F" +
"\vs\x03s\x03s\x03s\x05s\u0344\ns\x03t\x03t\x05t\u0348\nt\x03u\x05u\u034B" +
"\nu\x03v\x05v\u034E\nv\x03w\x05w\u0351\nw\x03x\x03x\x03x\x03y\x06y\u0357" +
"\ny\ry\x0Ey\u0358\x03z\x03z\x07z\u035D\nz\fz\x0Ez\u0360\vz\x03{\x03{\x05" +
"{\u0364\n{\x03{\x05{\u0367\n{\x03{\x03{\x05{\u036B\n{\x03|\x05|\u036E" +
"\n|\x03}\x03}\x05}\u0372\n}\x06\u02C7\u02D4\u0330\u033D\x02\x02~\x03\x02" +
"\x03\x05\x02\x04\x07\x02\x05\t\x02\x06\v\x02\x07\r\x02\b\x0F\x02\t\x11" +
"\x02\n\x13\x02\v\x15\x02\f\x17\x02\r\x19\x02\x0E\x1B\x02\x0F\x1D\x02\x10" +
"\x1F\x02\x11!\x02\x12#\x02\x13%\x02\x14\'\x02\x15)\x02\x16+\x02\x17-\x02" +
"\x18/\x02\x191\x02\x1A3\x02\x1B5\x02\x1C7\x02\x1D9\x02\x1E;\x02\x1F=\x02" +
" ?\x02!A\x02\"C\x02#E\x02$G\x02%I\x02&K\x02\'M\x02(O\x02)Q\x02*S\x02+" +
"U\x02,W\x02-Y\x02.[\x02/]\x020_\x021a\x022c\x023e\x024g\x025i\x026k\x02" +
"7m\x028o\x029q\x02:s\x02;u\x02<w\x02=y\x02>{\x02?}\x02@\x7F\x02A\x81\x02" +
"B\x83\x02C\x85\x02D\x87\x02E\x89\x02F\x8B\x02G\x8D\x02H\x8F\x02I\x91\x02" +
"J\x93\x02K\x95\x02L\x97\x02M\x99\x02N\x9B\x02O\x9D\x02P\x9F\x02Q\xA1\x02" +
"R\xA3\x02S\xA5\x02T\xA7\x02U\xA9\x02V\xAB\x02W\xAD\x02X\xAF\x02Y\xB1\x02" +
"Z\xB3\x02[\xB5\x02\\\xB7\x02]\xB9\x02^\xBB\x02_\xBD\x02`\xBF\x02a\xC1" +
"\x02b\xC3\x02c\xC5\x02\x02\xC7\x02\x02\xC9\x02\x02\xCB\x02\x02\xCD\x02" +
"\x02\xCF\x02\x02\xD1\x02\x02\xD3\x02\x02\xD5\x02\x02\xD7\x02\x02\xD9\x02" +
"\x02\xDB\x02\x02\xDD\x02\x02\xDF\x02\x02\xE1\x02\x02\xE3\x02\x02\xE5\x02" +
"\x02\xE7\x02\x02\xE9\x02\x02\xEB\x02\x02\xED\x02\x02\xEF\x02\x02\xF1\x02" +
"\x02\xF3\x02\x02\xF5\x02\x02\xF7\x02\x02\xF9\x02\x02\x03\x02\x1B\b\x02" +
"HHTTWWhhttww\x04\x02HHhh\x04\x02TTtt\x04\x02DDdd\x04\x02QQqq\x04\x02Z" +
"Zzz\x04\x02LLll\x06\x02\f\f\x0E\x0F))^^\x06\x02\f\f\x0E\x0F$$^^\x03\x02" +
"^^\x03\x023;\x03\x022;\x03\x0229\x05\x022;CHch\x03\x0223\x04\x02GGgg\x04" +
"\x02--//\x07\x02\x02\v\r\x0E\x10(*]_\x81\x07\x02\x02\v\r\x0E\x10#%]_\x81" +
"\x04\x02\x02]_\x81\x03\x02\x02\x81\x04\x02\v\v\"\"\x04\x02\f\f\x0E\x0F" +
"\u0129\x02C\\aac|\xAC\xAC\xB7\xB7\xBC\xBC\xC2\xD8\xDA\xF8\xFA\u0243\u0252" +
"\u02C3\u02C8\u02D3\u02E2\u02E6\u02F0\u02F0\u037C\u037C\u0388\u0388\u038A" +
"\u038C\u038E\u038E\u0390\u03A3\u03A5\u03D0\u03D2\u03F7\u03F9\u0483\u048C" +
"\u04D0\u04D2\u04FB\u0502\u0511\u0533\u0558\u055B\u055B\u0563\u0589\u05D2" +
"\u05EC\u05F2\u05F4\u0623\u063C\u0642\u064C\u0670\u0671\u0673\u06D5\u06D7" +
"\u06D7\u06E7\u06E8\u06F0\u06F1\u06FC\u06FE\u0701\u0701\u0712\u0712\u0714" +
"\u0731\u074F\u076F\u0782\u07A7\u07B3\u07B3\u0906\u093B\u093F\u093F\u0952" +
"\u0952\u095A\u0963\u097F\u097F\u0987\u098E\u0991\u0992\u0995\u09AA\u09AC" +
"\u09B2\u09B4\u09B4\u09B8\u09BB\u09BF\u09BF\u09D0\u09D0\u09DE\u09DF\u09E1" +
"\u09E3\u09F2\u09F3\u0A07\u0A0C\u0A11\u0A12\u0A15\u0A2A\u0A2C\u0A32\u0A34" +
"\u0A35\u0A37\u0A38\u0A3A\u0A3B\u0A5B\u0A5E\u0A60\u0A60\u0A74\u0A76\u0A87" +
"\u0A8F\u0A91\u0A93\u0A95\u0AAA\u0AAC\u0AB2\u0AB4\u0AB5\u0AB7\u0ABB\u0ABF" +
"\u0ABF\u0AD2\u0AD2\u0AE2\u0AE3\u0B07\u0B0E\u0B11\u0B12\u0B15\u0B2A\u0B2C" +
"\u0B32\u0B34\u0B35\u0B37\u0B3B\u0B3F\u0B3F\u0B5E\u0B5F\u0B61\u0B63\u0B73" +
"\u0B73\u0B85\u0B85\u0B87\u0B8C\u0B90\u0B92\u0B94\u0B97\u0B9B\u0B9C\u0B9E" +
"\u0B9E\u0BA0\u0BA1\u0BA5\u0BA6\u0BAA\u0BAC\u0BB0\u0BBB\u0C07\u0C0E\u0C10" +
"\u0C12\u0C14\u0C2A\u0C2C\u0C35\u0C37\u0C3B\u0C62\u0C63\u0C87\u0C8E\u0C90" +
"\u0C92\u0C94\u0CAA\u0CAC\u0CB5\u0CB7\u0CBB\u0CBF\u0CBF\u0CE0\u0CE0\u0CE2" +
"\u0CE3\u0D07\u0D0E\u0D10\u0D12\u0D14\u0D2A\u0D2C\u0D3B\u0D62\u0D63\u0D87" +
"\u0D98\u0D9C\u0DB3\u0DB5\u0DBD\u0DBF\u0DBF\u0DC2\u0DC8\u0E03\u0E32\u0E34" +
"\u0E35\u0E42\u0E48\u0E83\u0E84\u0E86\u0E86\u0E89\u0E8A\u0E8C\u0E8C\u0E8F" +
"\u0E8F\u0E96\u0E99\u0E9B\u0EA1\u0EA3\u0EA5\u0EA7\u0EA7\u0EA9\u0EA9\u0EAC" +
"\u0EAD\u0EAF\u0EB2\u0EB4\u0EB5\u0EBF\u0EBF\u0EC2\u0EC6\u0EC8\u0EC8\u0EDE" +
"\u0EDF\u0F02\u0F02\u0F42\u0F49\u0F4B\u0F6C\u0F8A\u0F8D\u1002\u1023\u1025" +
"\u1029\u102B\u102C\u1052\u1057\u10A2\u10C7\u10D2\u10FC\u10FE\u10FE\u1102" +
"\u115B\u1161\u11A4\u11AA\u11FB\u1202\u124A\u124C\u124F\u1252\u1258\u125A" +
"\u125A\u125C\u125F\u1262\u128A\u128C\u128F\u1292\u12B2\u12B4\u12B7\u12BA" +
"\u12C0\u12C2\u12C2\u12C4\u12C7\u12CA\u12D8\u12DA\u1312\u1314\u1317\u131A" +
"\u135C\u1382\u1391\u13A2\u13F6\u1403\u166E\u1671\u1678\u1683\u169C\u16A2" +
"\u16EC\u16F0\u16F2\u1702\u170E\u1710\u1713\u1722\u1733\u1742\u1753\u1762" +
"\u176E\u1770\u1772\u1782\u17B5\u17D9\u17D9\u17DE\u17DE\u1822\u1879\u1882" +
"\u18AA\u1902\u191E\u1952\u196F\u1972\u1976\u1982\u19AB\u19C3\u19C9\u1A02" +
"\u1A18\u1D02\u1DC1\u1E02\u1E9D\u1EA2\u1EFB\u1F02\u1F17\u1F1A\u1F1F\u1F22" +
"\u1F47\u1F4A\u1F4F\u1F52\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F5F\u1F61" +
"\u1F7F\u1F82\u1FB6\u1FB8\u1FBE\u1FC0\u1FC0\u1FC4\u1FC6\u1FC8\u1FCE\u1FD2" +
"\u1FD5\u1FD8\u1FDD\u1FE2\u1FEE\u1FF4\u1FF6\u1FF8\u1FFE\u2073\u2073\u2081" +
"\u2081\u2092\u2096\u2104\u2104\u2109\u2109\u210C\u2115\u2117\u2117\u211A" +
"\u211F\u2126\u2126\u2128\u2128\u212A\u212A\u212C\u2133\u2135\u213B\u213E" +
"\u2141\u2147\u214B\u2162\u2185\u2C02\u2C30\u2C32\u2C60\u2C82\u2CE6\u2D02" +
"\u2D27\u2D32\u2D67\u2D71\u2D71\u2D82\u2D98\u2DA2\u2DA8\u2DAA\u2DB0\u2DB2" +
"\u2DB8\u2DBA\u2DC0\u2DC2\u2DC8\u2DCA\u2DD0\u2DD2\u2DD8\u2DDA\u2DE0\u3007" +
"\u3009\u3023\u302B\u3033\u3037\u303A\u303E\u3043\u3098\u309D\u30A1\u30A3" +
"\u30FC\u30FE\u3101\u3107\u312E\u3133\u3190\u31A2\u31B9\u31F2\u3201\u3402" +
"\u4DB7\u4E02\u9FBD\uA002\uA48E\uA802\uA803\uA805\uA807\uA809\uA80C\uA80E" +
"\uA824\uAC02\uD7A5\uF902\uFA2F\uFA32\uFA6C\uFA72\uFADB\uFB02\uFB08\uFB15" +
"\uFB19\uFB1F\uFB1F\uFB21\uFB2A\uFB2C\uFB38\uFB3A\uFB3E\uFB40\uFB40\uFB42" +
"\uFB43\uFB45\uFB46\uFB48\uFBB3\uFBD5\uFD3F\uFD52\uFD91\uFD94\uFDC9\uFDF2" +
"\uFDFD\uFE72\uFE76\uFE78\uFEFE\uFF23\uFF3C\uFF43\uFF5C\uFF68\uFFC0\uFFC4" +
"\uFFC9\uFFCC\uFFD1\uFFD4\uFFD9\uFFDC\uFFDE\x96\x022;\u0302\u0371\u0485" +
"\u0488\u0593\u05BB\u05BD\u05BF\u05C1\u05C1\u05C3\u05C4\u05C6\u05C7\u05C9" +
"\u05C9\u0612\u0617\u064D\u0660\u0662\u066B\u0672\u0672\u06D8\u06DE\u06E1" +
"\u06E6\u06E9\u06EA\u06EC\u06EF\u06F2\u06FB\u0713\u0713\u0732\u074C\u07A8" +
"\u07B2\u0903\u0905\u093E\u093E\u0940\u094F\u0953\u0956\u0964\u0965\u0968" +
"\u0971\u0983\u0985\u09BE\u09BE\u09C0\u09C6\u09C9\u09CA\u09CD\u09CF\u09D9" +
"\u09D9\u09E4\u09E5\u09E8\u09F1\u0A03\u0A05\u0A3E\u0A3E\u0A40\u0A44\u0A49" +
"\u0A4A\u0A4D\u0A4F\u0A68\u0A73\u0A83\u0A85\u0ABE\u0ABE\u0AC0\u0AC7\u0AC9" +
"\u0ACB\u0ACD\u0ACF\u0AE4\u0AE5\u0AE8\u0AF1\u0B03\u0B05\u0B3E\u0B3E\u0B40" +
"\u0B45\u0B49\u0B4A\u0B4D\u0B4F\u0B58\u0B59\u0B68\u0B71\u0B84\u0B84\u0BC0" +
"\u0BC4\u0BC8\u0BCA\u0BCC\u0BCF\u0BD9\u0BD9\u0BE8\u0BF1\u0C03\u0C05\u0C40" +
"\u0C46\u0C48\u0C4A\u0C4C\u0C4F\u0C57\u0C58\u0C68\u0C71\u0C84\u0C85\u0CBE" +
"\u0CBE\u0CC0\u0CC6\u0CC8\u0CCA\u0CCC\u0CCF\u0CD7\u0CD8\u0CE8\u0CF1\u0D04" +
"\u0D05\u0D40\u0D45\u0D48\u0D4A\u0D4C\u0D4F\u0D59\u0D59\u0D68\u0D71\u0D84" +
"\u0D85\u0DCC\u0DCC\u0DD1\u0DD6\u0DD8\u0DD8\u0DDA\u0DE1\u0DF4\u0DF5\u0E33" +
"\u0E33\u0E36\u0E3C\u0E49\u0E50\u0E52\u0E5B\u0EB3\u0EB3\u0EB6\u0EBB\u0EBD" +
"\u0EBE\u0ECA\u0ECF\u0ED2\u0EDB\u0F1A\u0F1B\u0F22\u0F2B\u0F37\u0F37\u0F39" +
"\u0F39\u0F3B\u0F3B\u0F40\u0F41\u0F73\u0F86\u0F88\u0F89\u0F92\u0F99\u0F9B" +
"\u0FBE\u0FC8\u0FC8\u102E\u1034\u1038\u103B\u1042\u104B\u1058\u105B\u1361" +
"\u1361\u136B\u1373\u1714\u1716\u1734\u1736\u1754\u1755\u1774\u1775\u17B8" +
"\u17D5\u17DF\u17DF\u17E2\u17EB\u180D\u180F\u1812\u181B\u18AB\u18AB\u1922" +
"\u192D\u1932\u193D\u1948\u1951\u19B2\u19C2\u19CA\u19CB\u19D2\u19DB\u1A19" +
"\u1A1D\u1DC2\u1DC5\u2041\u2042\u2056\u2056\u20D2\u20DE\u20E3\u20E3\u20E7" +
"\u20ED\u302C\u3031\u309B\u309C\uA804\uA804\uA808\uA808\uA80D\uA80D\uA825" +
"\uA829\uFB20\uFB20\uFE02\uFE11\uFE22\uFE25\uFE35\uFE36\uFE4F\uFE51\uFF12" +
"\uFF1B\uFF41\uFF41\x02\u0393\x02\x03\x03\x02\x02\x02\x02\x05\x03\x02\x02" +
"\x02\x02\x07\x03\x02\x02\x02\x02\t\x03\x02\x02\x02\x02\v\x03\x02\x02\x02" +
"\x02\r\x03\x02\x02\x02\x02\x0F\x03\x02\x02\x02\x02\x11\x03\x02\x02\x02" +
"\x02\x13\x03\x02\x02\x02\x02\x15\x03\x02\x02\x02\x02\x17\x03\x02\x02\x02" +
"\x02\x19\x03\x02\x02\x02\x02\x1B\x03\x02\x02\x02\x02\x1D\x03\x02\x02\x02" +
"\x02\x1F\x03\x02\x02\x02\x02!\x03\x02\x02\x02\x02#\x03\x02\x02\x02\x02" +
"%\x03\x02\x02\x02\x02\'\x03\x02\x02\x02\x02)\x03\x02\x02\x02\x02+\x03" +
"\x02\x02\x02\x02-\x03\x02\x02\x02\x02/\x03\x02\x02\x02\x021\x03\x02\x02" +
"\x02\x023\x03\x02\x02\x02\x025\x03\x02\x02\x02\x027\x03\x02\x02\x02\x02" +
"9\x03\x02\x02\x02\x02;\x03\x02\x02\x02\x02=\x03\x02\x02\x02\x02?\x03\x02" +
"\x02\x02\x02A\x03\x02\x02\x02\x02C\x03\x02\x02\x02\x02E\x03\x02\x02\x02" +
"\x02G\x03\x02\x02\x02\x02I\x03\x02\x02\x02\x02K\x03\x02\x02\x02\x02M\x03" +
"\x02\x02\x02\x02O\x03\x02\x02\x02\x02Q\x03\x02\x02\x02\x02S\x03\x02\x02" +
"\x02\x02U\x03\x02\x02\x02\x02W\x03\x02\x02\x02\x02Y\x03\x02\x02\x02\x02" +
"[\x03\x02\x02\x02\x02]\x03\x02\x02\x02\x02_\x03\x02\x02\x02\x02a\x03\x02" +
"\x02\x02\x02c\x03\x02\x02\x02\x02e\x03\x02\x02\x02\x02g\x03\x02\x02\x02" +
"\x02i\x03\x02\x02\x02\x02k\x03\x02\x02\x02\x02m\x03\x02\x02\x02\x02o\x03" +
"\x02\x02\x02\x02q\x03\x02\x02\x02\x02s\x03\x02\x02\x02\x02u\x03\x02\x02" +
"\x02\x02w\x03\x02\x02\x02\x02y\x03\x02\x02\x02\x02{\x03\x02\x02\x02\x02" +
"}\x03\x02\x02\x02\x02\x7F\x03\x02\x02\x02\x02\x81\x03\x02\x02\x02\x02" +
"\x83\x03\x02\x02\x02\x02\x85\x03\x02\x02\x02\x02\x87\x03\x02\x02\x02\x02" +
"\x89\x03\x02\x02\x02\x02\x8B\x03\x02\x02\x02\x02\x8D\x03\x02\x02\x02\x02" +
"\x8F\x03\x02\x02\x02\x02\x91\x03\x02\x02\x02\x02\x93\x03\x02\x02\x02\x02" +
"\x95\x03\x02\x02\x02\x02\x97\x03\x02\x02\x02\x02\x99\x03\x02\x02\x02\x02" +
"\x9B\x03\x02\x02\x02\x02\x9D\x03\x02\x02\x02\x02\x9F\x03\x02\x02\x02\x02" +
"\xA1\x03\x02\x02\x02\x02\xA3\x03\x02\x02\x02\x02\xA5\x03\x02\x02\x02\x02" +
"\xA7\x03\x02\x02\x02\x02\xA9\x03\x02\x02\x02\x02\xAB\x03\x02\x02\x02\x02" +
"\xAD\x03\x02\x02\x02\x02\xAF\x03\x02\x02\x02\x02\xB1\x03\x02\x02\x02\x02" +
"\xB3\x03\x02\x02\x02\x02\xB5\x03\x02\x02\x02\x02\xB7\x03\x02\x02\x02\x02" +
"\xB9\x03\x02\x02\x02\x02\xBB\x03\x02\x02\x02\x02\xBD\x03\x02\x02\x02\x02" +
"\xBF\x03\x02\x02\x02\x02\xC1\x03\x02\x02\x02\x02\xC3\x03\x02\x02\x02\x03" +
"\xFD\x03\x02\x02\x02\x05\u0102\x03\x02\x02\x02\x07\u0108\x03\x02\x02\x02" +
"\t\u010A\x03\x02\x02\x02\v\u010E\x03\x02\x02\x02\r\u0115\x03\x02\x02\x02" +
"\x0F\u011B\x03\x02\x02\x02\x11\u0120\x03\x02\x02\x02\x13\u0127\x03\x02" +
"\x02\x02\x15\u012A\x03\x02\x02\x02\x17\u0131\x03\x02\x02\x02\x19\u013A" +
"\x03\x02\x02\x02\x1B\u0141\x03\x02\x02\x02\x1D\u0144\x03\x02\x02\x02\x1F" +
"\u0149\x03\x02\x02\x02!\u014E\x03\x02\x02\x02#\u0154\x03\x02\x02\x02%" +
"\u0158\x03\x02\x02\x02\'\u015B\x03\x02\x02\x02)\u015F\x03\x02\x02\x02" +
"+\u0167\x03\x02\x02\x02-\u016C\x03\x02\x02\x02/\u0173\x03\x02\x02\x02" +
"1\u017A\x03\x02\x02\x023\u017D\x03\x02\x02\x025\u0181\x03\x02\x02\x02" +
"7\u0185\x03\x02\x02\x029\u0188\x03\x02\x02\x02;\u018D\x03\x02\x02\x02" +
"=\u0192\x03\x02\x02\x02?\u0198\x03\x02\x02\x02A\u019E\x03\x02\x02\x02" +
"C\u01A4\x03\x02\x02\x02E\u01A8\x03\x02\x02\x02G\u01AD\x03\x02\x02\x02" +
"I\u01B6\x03\x02\x02\x02K\u01BC\x03\x02\x02\x02M\u01C2\x03\x02\x02\x02" +
"O\u01D4\x03\x02\x02\x02Q\u01D8\x03\x02\x02\x02S\u01E4\x03\x02\x02\x02" +
"U\u01EF\x03\x02\x02\x02W\u0201\x03\x02\x02\x02Y\u0203\x03\x02\x02\x02" +
"[\u020A\x03\x02\x02\x02]\u0211\x03\x02\x02\x02_\u021A\x03\x02\x02\x02" +
"a\u021E\x03\x02\x02\x02c\u0222\x03\x02\x02\x02e\u0224\x03\x02\x02\x02" +
"g\u0228\x03\x02\x02\x02i\u022A\x03\x02\x02\x02k\u022D\x03\x02\x02\x02" +
"m\u0230\x03\x02\x02\x02o\u0232\x03\x02\x02\x02q\u0234\x03\x02\x02\x02" +
"s\u0236\x03\x02\x02\x02u\u0239\x03\x02\x02\x02w\u023B\x03\x02\x02\x02" +
"y\u023E\x03\x02\x02\x02{\u0241\x03\x02\x02\x02}\u0243\x03\x02\x02\x02" +
"\x7F\u0245\x03\x02\x02\x02\x81\u0247\x03\x02\x02\x02\x83\u024A\x03\x02" +
"\x02\x02\x85\u024D\x03\x02\x02\x02\x87\u024F\x03\x02\x02\x02\x89\u0251" +
"\x03\x02\x02\x02\x8B\u0253\x03\x02\x02\x02\x8D\u0255\x03\x02\x02\x02\x8F" +
"\u0258\x03\x02\x02\x02\x91\u025A\x03\x02\x02\x02\x93\u025D\x03\x02\x02" +
"\x02\x95\u0260\x03\x02\x02\x02\x97\u0262\x03\x02\x02\x02\x99\u0264\x03" +
"\x02\x02\x02\x9B\u0267\x03\x02\x02\x02\x9D\u026A\x03\x02\x02\x02\x9F\u026D" +
"\x03\x02\x02\x02\xA1\u0270\x03\x02\x02\x02\xA3\u0273\x03\x02\x02\x02\xA5" +
"\u0275\x03\x02\x02\x02\xA7\u0278\x03\x02\x02\x02\xA9\u027B\x03\x02\x02" +
"\x02\xAB\u027E\x03\x02\x02\x02\xAD\u0281\x03\x02\x02\x02\xAF\u0284\x03" +
"\x02\x02\x02\xB1\u0287\x03\x02\x02\x02\xB3\u028A\x03\x02\x02\x02\xB5\u028D" +
"\x03\x02\x02\x02\xB7\u0290\x03\x02\x02\x02\xB9\u0293\x03\x02\x02\x02\xBB" +
"\u0297\x03\x02\x02\x02\xBD\u029B\x03\x02\x02\x02\xBF\u029F\x03\x02\x02" +
"\x02\xC1\u02A6\x03\x02\x02\x02\xC3\u02AA\x03\x02\x02\x02\xC5\u02BE\x03" +
"\x02\x02\x02\xC7\u02DA\x03\x02\x02\x02\xC9\u02DE\x03\x02\x02\x02\xCB\u02E0" +
"\x03\x02\x02\x02\xCD\u02E6\x03\x02\x02\x02\xCF\u02E8\x03\x02\x02\x02\xD1" +
"\u02EA\x03\x02\x02\x02\xD3\u02EC\x03\x02\x02\x02\xD5\u02EE\x03\x02\x02" +
"\x02\xD7\u02F0\x03\x02\x02\x02\xD9\u02F9\x03\x02\x02\x02\xDB\u02FD\x03" +
"\x02\x02\x02\xDD\u0302\x03\x02\x02\x02\xDF\u0306\x03\x02\x02\x02\xE1\u030C" +
"\x03\x02\x02\x02\xE3\u0327\x03\x02\x02\x02\xE5\u0343\x03\x02\x02\x02\xE7" +
"\u0347\x03\x02\x02\x02\xE9\u034A\x03\x02\x02\x02\xEB\u034D\x03\x02\x02" +
"\x02\xED\u0350\x03\x02\x02\x02\xEF\u0352\x03\x02\x02\x02\xF1\u0356\x03" +
"\x02\x02\x02\xF3\u035A\x03\x02\x02\x02\xF5\u0361\x03\x02\x02\x02\xF7\u036D" +
"\x03\x02\x02\x02\xF9\u0371\x03\x02\x02\x02\xFB\xFE\x05S*\x02\xFC\xFE\x05" +
"U+\x02\xFD\xFB\x03\x02\x02\x02\xFD\xFC\x03\x02\x02\x02\xFE\x04\x03\x02" +
"\x02\x02\xFF\u0103\x05\x07\x04\x02\u0100\u0103\x05_0\x02\u0101\u0103\x05" +
"a1\x02\u0102\xFF\x03\x02\x02\x02\u0102\u0100\x03\x02\x02\x02\u0102\u0101" +
"\x03\x02\x02\x02\u0103\x06\x03\x02\x02\x02\u0104\u0109\x05W,\x02\u0105" +
"\u0109\x05Y-\x02\u0106\u0109\x05[.\x02\u0107\u0109\x05]/\x02\u0108\u0104" +
"\x03\x02\x02\x02\u0108\u0105\x03\x02\x02\x02\u0108\u0106\x03\x02\x02\x02" +
"\u0108\u0107\x03\x02\x02\x02\u0109\b\x03\x02\x02\x02\u010A\u010B\x07f" +
"\x02\x02\u010B\u010C\x07g\x02\x02\u010C\u010D\x07h\x02\x02\u010D\n\x03" +
"\x02\x02\x02\u010E\u010F\x07t\x02\x02\u010F\u0110\x07g\x02\x02\u0110\u0111" +
"\x07v\x02\x02\u0111\u0112\x07w\x02\x02\u0112\u0113\x07t\x02\x02\u0113" +
"\u0114\x07p\x02\x02\u0114\f\x03\x02\x02\x02\u0115\u0116\x07t\x02\x02\u0116" +
"\u0117\x07c\x02\x02\u0117\u0118\x07k\x02\x02\u0118\u0119\x07u\x02\x02" +
"\u0119\u011A\x07g\x02\x02\u011A\x0E\x03\x02\x02\x02\u011B\u011C\x07h\x02" +
"\x02\u011C\u011D\x07t\x02\x02\u011D\u011E\x07q\x02\x02\u011E\u011F\x07" +
"o\x02\x02\u011F\x10\x03\x02\x02\x02\u0120\u0121\x07k\x02\x02\u0121\u0122" +
"\x07o\x02\x02\u0122\u0123\x07r\x02\x02\u0123\u0124\x07q\x02\x02\u0124" +
"\u0125\x07t\x02\x02\u0125\u0126\x07v\x02\x02\u0126\x12\x03\x02\x02\x02" +
"\u0127\u0128\x07c\x02\x02\u0128\u0129\x07u\x02\x02\u0129\x14\x03\x02\x02" +
"\x02\u012A\u012B\x07i\x02\x02\u012B\u012C\x07n\x02\x02\u012C\u012D\x07" +
"q\x02\x02\u012D\u012E\x07d\x02\x02\u012E\u012F\x07c\x02\x02\u012F\u0130" +
"\x07n\x02\x02\u0130\x16\x03\x02\x02\x02\u0131\u0132\x07p\x02\x02\u0132" +
"\u0133\x07q\x02\x02\u0133\u0134\x07p\x02\x02\u0134\u0135\x07n\x02\x02" +
"\u0135\u0136\x07q\x02\x02\u0136\u0137\x07e\x02\x02\u0137";
Python3Lexer._serializedATNSegment1 = "\u0138\x07c\x02\x02\u0138\u0139\x07n\x02\x02\u0139\x18\x03\x02\x02\x02" +
"\u013A\u013B\x07c\x02\x02\u013B\u013C\x07u\x02\x02\u013C\u013D\x07u\x02" +
"\x02\u013D\u013E\x07g\x02\x02\u013E\u013F\x07t\x02\x02\u013F\u0140\x07" +
"v\x02\x02\u0140\x1A\x03\x02\x02\x02\u0141\u0142\x07k\x02\x02\u0142\u0143" +
"\x07h\x02\x02\u0143\x1C\x03\x02\x02\x02\u0144\u0145\x07g\x02\x02\u0145" +
"\u0146\x07n\x02\x02\u0146\u0147\x07k\x02\x02\u0147\u0148\x07h\x02\x02" +
"\u0148\x1E\x03\x02\x02\x02\u0149\u014A\x07g\x02\x02\u014A\u014B\x07n\x02" +
"\x02\u014B\u014C\x07u\x02\x02\u014C\u014D\x07g\x02\x02\u014D \x03\x02" +
"\x02\x02\u014E\u014F\x07y\x02\x02\u014F\u0150\x07j\x02\x02\u0150\u0151" +
"\x07k\x02\x02\u0151\u0152\x07n\x02\x02\u0152\u0153\x07g\x02\x02\u0153" +
"\"\x03\x02\x02\x02\u0154\u0155\x07h\x02\x02\u0155\u0156\x07q\x02\x02\u0156" +
"\u0157\x07t\x02\x02\u0157$\x03\x02\x02\x02\u0158\u0159\x07k\x02\x02\u0159" +
"\u015A\x07p\x02\x02\u015A&\x03\x02\x02\x02\u015B\u015C\x07v\x02\x02\u015C" +
"\u015D\x07t\x02\x02\u015D\u015E\x07{\x02\x02\u015E(\x03\x02\x02\x02\u015F" +
"\u0160\x07h\x02\x02\u0160\u0161\x07k\x02\x02\u0161\u0162\x07p\x02\x02" +
"\u0162\u0163\x07c\x02\x02\u0163\u0164\x07n\x02\x02\u0164\u0165\x07n\x02" +
"\x02\u0165\u0166\x07{\x02\x02\u0166*\x03\x02\x02\x02\u0167\u0168\x07y" +
"\x02\x02\u0168\u0169\x07k\x02\x02\u0169\u016A\x07v\x02\x02\u016A\u016B" +
"\x07j\x02\x02\u016B,\x03\x02\x02\x02\u016C\u016D\x07g\x02\x02\u016D\u016E" +
"\x07z\x02\x02\u016E\u016F\x07e\x02\x02\u016F\u0170\x07g\x02\x02\u0170" +
"\u0171\x07r\x02\x02\u0171\u0172\x07v\x02\x02\u0172.\x03\x02\x02\x02\u0173" +
"\u0174\x07n\x02\x02\u0174\u0175\x07c\x02\x02\u0175\u0176\x07o\x02\x02" +
"\u0176\u0177\x07d\x02\x02\u0177\u0178\x07f\x02\x02\u0178\u0179\x07c\x02" +
"\x02\u01790\x03\x02\x02\x02\u017A\u017B\x07q\x02\x02\u017B\u017C\x07t" +
"\x02\x02\u017C2\x03\x02\x02\x02\u017D\u017E\x07c\x02\x02\u017E\u017F\x07" +
"p\x02\x02\u017F\u0180\x07f\x02\x02\u01804\x03\x02\x02\x02\u0181\u0182" +
"\x07p\x02\x02\u0182\u0183\x07q\x02\x02\u0183\u0184\x07v\x02\x02\u0184" +
"6\x03\x02\x02\x02\u0185\u0186\x07k\x02\x02\u0186\u0187\x07u\x02\x02\u0187" +
"8\x03\x02\x02\x02\u0188\u0189\x07P\x02\x02\u0189\u018A\x07q\x02\x02\u018A" +
"\u018B\x07p\x02\x02\u018B\u018C\x07g\x02\x02\u018C:\x03\x02\x02\x02\u018D" +
"\u018E\x07V\x02\x02\u018E\u018F\x07t\x02\x02\u018F\u0190\x07w\x02\x02" +
"\u0190\u0191\x07g\x02\x02\u0191<\x03\x02\x02\x02\u0192\u0193\x07H\x02" +
"\x02\u0193\u0194\x07c\x02\x02\u0194\u0195\x07n\x02\x02\u0195\u0196\x07" +
"u\x02\x02\u0196\u0197\x07g\x02\x02\u0197>\x03\x02\x02\x02\u0198\u0199" +
"\x07e\x02\x02\u0199\u019A\x07n\x02\x02\u019A\u019B\x07c\x02\x02\u019B" +
"\u019C\x07u\x02\x02\u019C\u019D\x07u\x02\x02\u019D@\x03\x02\x02\x02\u019E" +
"\u019F\x07{\x02\x02\u019F\u01A0\x07k\x02\x02\u01A0\u01A1\x07g\x02\x02" +
"\u01A1\u01A2\x07n\x02\x02\u01A2\u01A3\x07f\x02\x02\u01A3B\x03\x02\x02" +
"\x02\u01A4\u01A5\x07f\x02\x02\u01A5\u01A6\x07g\x02\x02\u01A6\u01A7\x07" +
"n\x02\x02\u01A7D\x03\x02\x02\x02\u01A8\u01A9\x07r\x02\x02\u01A9\u01AA" +
"\x07c\x02\x02\u01AA\u01AB\x07u\x02\x02\u01AB\u01AC\x07u\x02\x02\u01AC" +
"F\x03\x02\x02\x02\u01AD\u01AE\x07e\x02\x02\u01AE\u01AF\x07q\x02\x02\u01AF" +
"\u01B0\x07p\x02\x02\u01B0\u01B1\x07v\x02\x02\u01B1\u01B2\x07k\x02\x02" +
"\u01B2\u01B3\x07p\x02\x02\u01B3\u01B4\x07w\x02\x02\u01B4\u01B5\x07g\x02" +
"\x02\u01B5H\x03\x02\x02\x02\u01B6\u01B7\x07d\x02\x02\u01B7\u01B8\x07t" +
"\x02\x02\u01B8\u01B9\x07g\x02\x02\u01B9\u01BA\x07c\x02\x02\u01BA\u01BB" +
"\x07m\x02\x02\u01BBJ\x03\x02\x02\x02\u01BC\u01BD\x07c\x02\x02\u01BD\u01BE" +
"\x07u\x02\x02\u01BE\u01BF\x07{\x02\x02\u01BF\u01C0\x07p\x02\x02\u01C0" +
"\u01C1\x07e\x02\x02\u01C1L\x03\x02\x02\x02\u01C2\u01C3\x07c\x02\x02\u01C3" +
"\u01C4\x07y\x02\x02\u01C4\u01C5\x07c\x02\x02\u01C5\u01C6\x07k\x02\x02" +
"\u01C6\u01C7\x07v\x02\x02\u01C7N\x03\x02\x02\x02\u01C8\u01C9\x06(\x02" +
"\x02\u01C9\u01D5\x05\xF1y\x02\u01CA\u01CC\x07\x0F\x02\x02\u01CB\u01CA" +
"\x03\x02\x02\x02\u01CB\u01CC\x03\x02\x02\x02\u01CC\u01CD\x03\x02\x02\x02" +
"\u01CD\u01D0\x07\f\x02\x02\u01CE\u01D0\x07\x0F\x02\x02\u01CF\u01CB\x03" +
"\x02\x02\x02\u01CF\u01CE\x03\x02\x02\x02\u01D0\u01D2\x03\x02\x02\x02\u01D1" +
"\u01D3\x05\xF1y\x02\u01D2\u01D1\x03\x02\x02\x02\u01D2\u01D3\x03\x02\x02" +
"\x02\u01D3\u01D5\x03\x02\x02\x02\u01D4\u01C8\x03\x02\x02\x02\u01D4\u01CF" +
"\x03\x02\x02\x02\u01D5\u01D6\x03\x02\x02\x02\u01D6\u01D7\b(\x02\x02\u01D7" +
"P\x03\x02\x02\x02\u01D8\u01DC\x05\xF7|\x02\u01D9\u01DB\x05\xF9}\x02\u01DA" +
"\u01D9\x03\x02\x02\x02\u01DB\u01DE\x03\x02\x02\x02\u01DC\u01DA\x03\x02" +
"\x02\x02\u01DC\u01DD\x03\x02\x02\x02\u01DDR\x03\x02\x02\x02\u01DE\u01DC" +
"\x03\x02\x02\x02\u01DF\u01E5\t\x02\x02\x02\u01E0\u01E1\t\x03\x02\x02\u01E1" +
"\u01E5\t\x04\x02\x02\u01E2\u01E3\t\x04\x02\x02\u01E3\u01E5\t\x03\x02\x02" +
"\u01E4\u01DF\x03\x02\x02\x02\u01E4\u01E0\x03\x02\x02\x02\u01E4\u01E2\x03" +
"\x02\x02\x02\u01E4\u01E5\x03\x02\x02\x02\u01E5\u01E8\x03\x02\x02\x02\u01E6" +
"\u01E9\x05\xC5c\x02\u01E7\u01E9\x05\xC7d\x02\u01E8\u01E6\x03\x02\x02\x02" +
"\u01E8\u01E7\x03\x02\x02\x02\u01E9T\x03\x02\x02\x02\u01EA\u01F0\t\x05" +
"\x02\x02\u01EB\u01EC\t\x05\x02\x02\u01EC\u01F0\t\x04\x02\x02\u01ED\u01EE" +
"\t\x04\x02\x02\u01EE\u01F0\t\x05\x02\x02\u01EF\u01EA\x03\x02\x02\x02\u01EF" +
"\u01EB\x03\x02\x02\x02\u01EF\u01ED\x03\x02\x02\x02\u01F0\u01F3\x03\x02" +
"\x02\x02\u01F1\u01F4\x05\xE3r\x02\u01F2\u01F4\x05\xE5s\x02\u01F3\u01F1" +
"\x03\x02\x02\x02\u01F3\u01F2\x03\x02\x02\x02\u01F4V\x03\x02\x02\x02\u01F5" +
"\u01F9\x05\xCFh\x02\u01F6\u01F8\x05\xD1i\x02\u01F7\u01F6\x03\x02\x02\x02" +
"\u01F8\u01FB\x03\x02\x02\x02\u01F9\u01F7\x03\x02\x02\x02\u01F9\u01FA\x03" +
"\x02\x02\x02\u01FA\u0202\x03\x02\x02\x02\u01FB\u01F9\x03\x02\x02\x02\u01FC" +
"\u01FE\x072\x02\x02\u01FD\u01FC\x03\x02\x02\x02\u01FE\u01FF\x03\x02\x02" +
"\x02\u01FF\u01FD\x03\x02\x02\x02\u01FF\u0200\x03\x02\x02\x02\u0200\u0202" +
"\x03\x02\x02\x02\u0201\u01F5\x03\x02\x02\x02\u0201\u01FD\x03\x02\x02\x02" +
"\u0202X\x03\x02\x02\x02\u0203\u0204\x072\x02\x02\u0204\u0206\t\x06\x02" +
"\x02\u0205\u0207\x05\xD3j\x02\u0206\u0205\x03\x02\x02\x02\u0207\u0208" +
"\x03\x02\x02\x02\u0208\u0206\x03\x02\x02\x02\u0208\u0209\x03\x02\x02\x02" +
"\u0209Z\x03\x02\x02\x02\u020A\u020B\x072\x02\x02\u020B\u020D\t\x07\x02" +
"\x02\u020C\u020E\x05\xD5k\x02\u020D\u020C\x03\x02\x02\x02\u020E\u020F" +
"\x03\x02\x02\x02\u020F\u020D\x03\x02\x02\x02\u020F\u0210\x03\x02\x02\x02" +
"\u0210\\\x03\x02\x02\x02\u0211\u0212\x072\x02\x02\u0212\u0214\t\x05\x02" +
"\x02\u0213\u0215\x05\xD7l\x02\u0214\u0213\x03\x02\x02\x02\u0215\u0216" +
"\x03\x02\x02\x02\u0216\u0214\x03\x02\x02\x02\u0216\u0217\x03\x02\x02\x02" +
"\u0217^\x03\x02\x02\x02\u0218\u021B\x05\xD9m\x02\u0219\u021B\x05\xDBn" +
"\x02\u021A\u0218\x03\x02\x02\x02\u021A\u0219\x03\x02\x02\x02\u021B`\x03" +
"\x02\x02\x02\u021C\u021F\x05_0\x02\u021D\u021F\x05\xDDo\x02\u021E\u021C" +
"\x03\x02\x02\x02\u021E\u021D\x03\x02\x02\x02\u021F\u0220\x03\x02\x02\x02" +
"\u0220\u0221\t\b\x02\x02\u0221b\x03\x02\x02\x02\u0222\u0223\x070\x02\x02" +
"\u0223d\x03\x02\x02\x02\u0224\u0225\x070\x02\x02\u0225\u0226\x070\x02" +
"\x02\u0226\u0227\x070\x02\x02\u0227f\x03\x02\x02\x02\u0228\u0229\x07," +
"\x02\x02\u0229h\x03\x02\x02\x02\u022A\u022B\x07*\x02\x02\u022B\u022C\b" +
"5\x03\x02\u022Cj\x03\x02\x02\x02\u022D\u022E\x07+\x02\x02\u022E\u022F" +
"\b6\x04\x02\u022Fl\x03\x02\x02\x02\u0230\u0231\x07.\x02\x02\u0231n\x03" +
"\x02\x02\x02\u0232\u0233\x07<\x02\x02\u0233p\x03\x02\x02\x02\u0234\u0235" +
"\x07=\x02\x02\u0235r\x03\x02\x02\x02\u0236\u0237\x07,\x02\x02\u0237\u0238" +
"\x07,\x02\x02\u0238t\x03\x02\x02\x02\u0239\u023A\x07?\x02\x02\u023Av\x03" +
"\x02\x02\x02\u023B\u023C\x07]\x02\x02\u023C\u023D\b<\x05\x02\u023Dx\x03" +
"\x02\x02\x02\u023E\u023F\x07_\x02\x02\u023F\u0240\b=\x06\x02\u0240z\x03" +
"\x02\x02\x02\u0241\u0242\x07~\x02\x02\u0242|\x03\x02\x02\x02\u0243\u0244" +
"\x07`\x02\x02\u0244~\x03\x02\x02\x02\u0245\u0246\x07(\x02\x02\u0246\x80" +
"\x03\x02\x02\x02\u0247\u0248\x07>\x02\x02\u0248\u0249\x07>\x02\x02\u0249" +
"\x82\x03\x02\x02\x02\u024A\u024B\x07@\x02\x02\u024B\u024C\x07@\x02\x02" +
"\u024C\x84\x03\x02\x02\x02\u024D\u024E\x07-\x02\x02\u024E\x86\x03\x02" +
"\x02\x02\u024F\u0250\x07/\x02\x02\u0250\x88\x03\x02\x02\x02\u0251\u0252" +
"\x071\x02\x02\u0252\x8A\x03\x02\x02\x02\u0253\u0254\x07\'\x02\x02\u0254" +
"\x8C\x03\x02\x02\x02\u0255\u0256\x071\x02\x02\u0256\u0257\x071\x02\x02" +
"\u0257\x8E\x03\x02\x02\x02\u0258\u0259\x07\x80\x02\x02\u0259\x90\x03\x02" +
"\x02\x02\u025A\u025B\x07}\x02\x02\u025B\u025C\bI\x07\x02\u025C\x92\x03" +
"\x02\x02\x02\u025D\u025E\x07\x7F\x02\x02\u025E\u025F\bJ\b\x02\u025F\x94" +
"\x03\x02\x02\x02\u0260\u0261\x07>\x02\x02\u0261\x96\x03\x02\x02\x02\u0262" +
"\u0263\x07@\x02\x02\u0263\x98\x03\x02\x02\x02\u0264\u0265\x07?\x02\x02" +
"\u0265\u0266\x07?\x02\x02\u0266\x9A\x03\x02\x02\x02\u0267\u0268\x07@\x02" +
"\x02\u0268\u0269\x07?\x02\x02\u0269\x9C\x03\x02\x02\x02\u026A\u026B\x07" +
">\x02\x02\u026B\u026C\x07?\x02\x02\u026C\x9E\x03\x02\x02\x02\u026D\u026E" +
"\x07>\x02\x02\u026E\u026F\x07@\x02\x02\u026F\xA0\x03\x02\x02\x02\u0270" +
"\u0271\x07#\x02\x02\u0271\u0272\x07?\x02\x02\u0272\xA2\x03\x02\x02\x02" +
"\u0273\u0274\x07B\x02\x02\u0274\xA4\x03\x02\x02\x02\u0275\u0276\x07/\x02" +
"\x02\u0276\u0277\x07@\x02\x02\u0277\xA6\x03\x02\x02\x02\u0278\u0279\x07" +
"-\x02\x02\u0279\u027A\x07?\x02\x02\u027A\xA8\x03\x02\x02\x02\u027B\u027C" +
"\x07/\x02\x02\u027C\u027D\x07?\x02\x02\u027D\xAA\x03\x02\x02\x02\u027E" +
"\u027F\x07,\x02\x02\u027F\u0280\x07?\x02\x02\u0280\xAC\x03\x02\x02\x02" +
"\u0281\u0282\x07B\x02\x02\u0282\u0283\x07?\x02\x02\u0283\xAE\x03\x02\x02" +
"\x02\u0284\u0285\x071\x02\x02\u0285\u0286\x07?\x02\x02\u0286\xB0\x03\x02" +
"\x02\x02\u0287\u0288\x07\'\x02\x02\u0288\u0289\x07?\x02\x02\u0289\xB2" +
"\x03\x02\x02\x02\u028A\u028B\x07(\x02\x02\u028B\u028C\x07?\x02\x02\u028C" +
"\xB4\x03\x02\x02\x02\u028D\u028E\x07~\x02\x02\u028E\u028F\x07?\x02\x02" +
"\u028F\xB6\x03\x02\x02\x02\u0290\u0291\x07`\x02\x02\u0291\u0292\x07?\x02" +
"\x02\u0292\xB8\x03\x02\x02\x02\u0293\u0294\x07>\x02\x02\u0294\u0295\x07" +
">\x02\x02\u0295\u0296\x07?\x02\x02\u0296\xBA\x03\x02\x02\x02\u0297\u0298" +
"\x07@\x02\x02\u0298\u0299\x07@\x02\x02\u0299\u029A\x07?\x02\x02\u029A" +
"\xBC\x03\x02\x02\x02\u029B\u029C\x07,\x02\x02\u029C\u029D\x07,\x02\x02" +
"\u029D\u029E\x07?\x02\x02\u029E\xBE\x03\x02\x02\x02\u029F\u02A0\x071\x02" +
"\x02\u02A0\u02A1\x071\x02\x02\u02A1\u02A2\x07?\x02\x02\u02A2\xC0\x03\x02" +
"\x02\x02\u02A3\u02A7\x05\xF1y\x02\u02A4\u02A7\x05\xF3z\x02\u02A5\u02A7" +
"\x05\xF5{\x02\u02A6\u02A3\x03\x02\x02\x02\u02A6\u02A4\x03\x02\x02\x02" +
"\u02A6\u02A5\x03\x02\x02\x02\u02A7\u02A8\x03\x02\x02\x02\u02A8\u02A9\b" +
"a\t\x02\u02A9\xC2\x03\x02\x02\x02\u02AA\u02AB\v\x02\x02\x02\u02AB\xC4" +
"\x03\x02\x02\x02\u02AC\u02B1\x07)\x02\x02\u02AD\u02B0\x05\xCDg\x02\u02AE" +
"\u02B0\n\t\x02\x02\u02AF\u02AD\x03\x02\x02\x02\u02AF\u02AE\x03\x02\x02" +
"\x02\u02B0\u02B3\x03\x02\x02\x02\u02B1\u02AF\x03\x02\x02\x02\u02B1\u02B2" +
"\x03\x02\x02\x02\u02B2\u02B4\x03\x02\x02\x02\u02B3\u02B1\x03\x02\x02\x02" +
"\u02B4\u02BF\x07)\x02\x02\u02B5\u02BA\x07$\x02\x02\u02B6\u02B9\x05\xCD" +
"g\x02\u02B7\u02B9\n\n\x02\x02\u02B8\u02B6\x03\x02\x02\x02\u02B8\u02B7" +
"\x03\x02\x02\x02\u02B9\u02BC\x03\x02\x02\x02\u02BA\u02B8\x03\x02\x02\x02" +
"\u02BA\u02BB\x03\x02\x02\x02\u02BB\u02BD\x03\x02\x02\x02\u02BC\u02BA\x03" +
"\x02\x02\x02\u02BD\u02BF\x07$\x02\x02\u02BE\u02AC\x03\x02\x02\x02\u02BE" +
"\u02B5\x03\x02\x02\x02\u02BF\xC6\x03\x02\x02\x02\u02C0\u02C1\x07)\x02" +
"\x02\u02C1\u02C2\x07)\x02\x02\u02C2\u02C3\x07)\x02\x02\u02C3\u02C7\x03" +
"\x02\x02\x02\u02C4\u02C6\x05\xC9e\x02\u02C5\u02C4\x03\x02\x02\x02\u02C6" +
"\u02C9\x03\x02\x02\x02\u02C7\u02C8\x03\x02\x02\x02\u02C7\u02C5\x03\x02" +
"\x02\x02\u02C8\u02CA\x03\x02\x02\x02\u02C9\u02C7\x03\x02\x02\x02\u02CA" +
"\u02CB\x07)\x02\x02\u02CB\u02CC\x07)\x02\x02\u02CC\u02DB\x07)\x02\x02" +
"\u02CD\u02CE\x07$\x02\x02\u02CE\u02CF\x07$\x02\x02\u02CF\u02D0\x07$\x02" +
"\x02\u02D0\u02D4\x03\x02\x02\x02\u02D1\u02D3\x05\xC9e\x02\u02D2\u02D1" +
"\x03\x02\x02\x02\u02D3\u02D6\x03\x02\x02\x02\u02D4\u02D5\x03\x02\x02\x02" +
"\u02D4\u02D2\x03\x02\x02\x02\u02D5\u02D7\x03\x02\x02\x02\u02D6\u02D4\x03" +
"\x02\x02\x02\u02D7\u02D8\x07$\x02\x02\u02D8\u02D9\x07$\x02\x02\u02D9\u02DB" +
"\x07$\x02\x02\u02DA\u02C0\x03\x02\x02\x02\u02DA\u02CD\x03\x02\x02\x02" +
"\u02DB\xC8\x03\x02\x02\x02\u02DC\u02DF\x05\xCBf\x02\u02DD\u02DF\x05\xCD" +
"g\x02\u02DE\u02DC\x03\x02\x02\x02\u02DE\u02DD\x03\x02\x02\x02\u02DF\xCA" +
"\x03\x02\x02\x02\u02E0\u02E1\n\v\x02\x02\u02E1\xCC\x03\x02\x02\x02\u02E2" +
"\u02E3\x07^\x02\x02\u02E3\u02E7\v\x02\x02\x02\u02E4\u02E5\x07^\x02\x02" +
"\u02E5\u02E7\x05O(\x02\u02E6\u02E2\x03\x02\x02\x02\u02E6\u02E4\x03\x02" +
"\x02\x02\u02E7\xCE\x03\x02\x02\x02\u02E8\u02E9\t\f\x02\x02\u02E9\xD0\x03" +
"\x02\x02\x02\u02EA\u02EB\t\r\x02\x02\u02EB\xD2\x03\x02\x02\x02\u02EC\u02ED" +
"\t\x0E\x02\x02\u02ED\xD4\x03\x02\x02\x02\u02EE\u02EF\t\x0F\x02\x02\u02EF" +
"\xD6\x03\x02\x02\x02\u02F0\u02F1\t\x10\x02\x02\u02F1\xD8\x03\x02\x02\x02" +
"\u02F2\u02F4\x05\xDDo\x02\u02F3\u02F2\x03\x02\x02\x02\u02F3\u02F4\x03" +
"\x02\x02\x02\u02F4\u02F5\x03\x02\x02\x02\u02F5\u02FA\x05\xDFp\x02\u02F6" +
"\u02F7\x05\xDDo\x02\u02F7\u02F8\x070\x02\x02\u02F8\u02FA\x03\x02\x02\x02" +
"\u02F9\u02F3\x03\x02\x02\x02\u02F9\u02F6\x03\x02\x02\x02\u02FA\xDA\x03" +
"\x02\x02\x02\u02FB\u02FE\x05\xDDo\x02\u02FC\u02FE\x05\xD9m\x02\u02FD\u02FB" +
"\x03\x02\x02\x02\u02FD\u02FC\x03\x02\x02\x02\u02FE\u02FF\x03\x02\x02\x02" +
"\u02FF\u0300\x05\xE1q\x02\u0300\xDC\x03\x02\x02\x02\u0301\u0303\x05\xD1" +
"i\x02\u0302\u0301\x03\x02\x02\x02\u0303\u0304\x03\x02\x02\x02\u0304\u0302" +
"\x03\x02\x02\x02\u0304\u0305\x03\x02\x02\x02\u0305\xDE\x03\x02\x02\x02" +
"\u0306\u0308\x070\x02\x02\u0307\u0309\x05\xD1i\x02\u0308\u0307\x03\x02" +
"\x02\x02\u0309\u030A\x03\x02\x02\x02\u030A\u0308\x03\x02\x02\x02\u030A" +
"\u030B\x03\x02\x02\x02\u030B\xE0\x03\x02\x02\x02\u030C\u030E\t\x11\x02" +
"\x02\u030D\u030F\t\x12\x02\x02\u030E\u030D\x03\x02\x02\x02\u030E\u030F" +
"\x03\x02\x02\x02\u030F\u0311\x03\x02\x02\x02\u0310\u0312\x05\xD1i\x02" +
"\u0311\u0310\x03\x02\x02\x02\u0312\u0313\x03\x02\x02\x02\u0313\u0311\x03" +
"\x02\x02\x02\u0313\u0314\x03\x02\x02\x02\u0314\xE2\x03\x02\x02\x02\u0315" +
"\u031A\x07)\x02\x02\u0316\u0319\x05\xE9u\x02\u0317\u0319\x05\xEFx\x02" +
"\u0318\u0316\x03\x02\x02\x02\u0318\u0317\x03\x02\x02\x02\u0319\u031C\x03" +
"\x02\x02\x02\u031A\u0318\x03\x02\x02\x02\u031A\u031B\x03\x02\x02\x02\u031B" +
"\u031D\x03\x02\x02\x02\u031C\u031A\x03\x02\x02\x02\u031D\u0328\x07)\x02" +
"\x02\u031E\u0323\x07$\x02\x02\u031F\u0322\x05\xEBv\x02\u0320\u0322\x05" +
"\xEFx\x02\u0321\u031F\x03\x02\x02\x02\u0321\u0320\x03\x02\x02\x02\u0322" +
"\u0325\x03\x02\x02\x02\u0323\u0321\x03\x02\x02\x02\u0323\u0324\x03\x02" +
"\x02\x02\u0324\u0326\x03\x02\x02\x02\u0325\u0323\x03\x02\x02\x02\u0326" +
"\u0328\x07$\x02\x02\u0327\u0315\x03\x02\x02\x02\u0327\u031E\x03\x02\x02" +
"\x02\u0328\xE4\x03\x02\x02\x02\u0329\u032A\x07)\x02\x02\u032A\u032B\x07" +
")\x02\x02\u032B\u032C\x07)\x02\x02\u032C\u0330\x03\x02\x02\x02\u032D\u032F" +
"\x05\xE7t\x02\u032E\u032D\x03\x02\x02\x02\u032F\u0332\x03\x02\x02\x02" +
"\u0330\u0331\x03\x02\x02\x02\u0330\u032E\x03\x02\x02\x02\u0331\u0333\x03" +
"\x02\x02\x02\u0332\u0330\x03\x02\x02\x02\u0333\u0334\x07)\x02\x02\u0334" +
"\u0335\x07)\x02\x02\u0335\u0344\x07)\x02\x02\u0336\u0337\x07$\x02\x02" +
"\u0337\u0338\x07$\x02\x02\u0338\u0339\x07$\x02\x02\u0339\u033D\x03\x02" +
"\x02\x02\u033A\u033C\x05\xE7t\x02\u033B\u033A\x03\x02\x02\x02\u033C\u033F" +
"\x03\x02\x02\x02\u033D\u033E\x03\x02\x02\x02\u033D\u033B\x03\x02\x02\x02" +
"\u033E\u0340\x03\x02\x02\x02\u033F\u033D\x03\x02\x02\x02\u0340\u0341\x07" +
"$\x02\x02\u0341\u0342\x07$\x02\x02\u0342\u0344\x07$\x02\x02\u0343\u0329" +
"\x03\x02\x02\x02\u0343\u0336\x03\x02\x02\x02\u0344\xE6\x03\x02\x02\x02" +
"\u0345\u0348\x05\xEDw\x02\u0346\u0348\x05\xEFx\x02\u0347\u0345\x03\x02" +
"\x02\x02\u0347\u0346\x03\x02\x02\x02\u0348\xE8\x03\x02\x02\x02\u0349\u034B" +
"\t\x13\x02\x02\u034A\u0349\x03\x02\x02\x02\u034B\xEA\x03\x02\x02\x02\u034C" +
"\u034E\t\x14\x02\x02\u034D\u034C\x03\x02\x02\x02\u034E\xEC\x03\x02\x02" +
"\x02\u034F\u0351\t\x15\x02\x02\u0350\u034F\x03\x02\x02\x02\u0351\xEE\x03" +
"\x02\x02\x02\u0352\u0353\x07^\x02\x02\u0353\u0354\t\x16\x02\x02\u0354" +
"\xF0\x03\x02\x02\x02\u0355\u0357\t\x17\x02\x02\u0356\u0355\x03\x02\x02" +
"\x02\u0357\u0358\x03\x02\x02\x02\u0358\u0356\x03\x02\x02\x02\u0358\u0359" +
"\x03\x02\x02\x02\u0359\xF2\x03\x02\x02\x02\u035A\u035E\x07%\x02\x02\u035B" +
"\u035D\n\x18\x02\x02\u035C\u035B\x03\x02\x02\x02\u035D\u0360\x03\x02\x02" +
"\x02\u035E\u035C\x03\x02\x02\x02\u035E\u035F\x03\x02\x02\x02\u035F\xF4" +
"\x03\x02\x02\x02\u0360\u035E\x03\x02\x02\x02\u0361\u0363\x07^\x02\x02" +
"\u0362\u0364\x05\xF1y\x02\u0363\u0362\x03\x02\x02\x02\u0363\u0364\x03" +
"\x02\x02\x02\u0364\u036A\x03\x02\x02\x02\u0365\u0367\x07\x0F\x02\x02\u0366" +
"\u0365\x03\x02\x02\x02\u0366\u0367\x03\x02\x02\x02\u0367\u0368\x03\x02" +
"\x02\x02\u0368\u036B\x07\f\x02\x02\u0369\u036B\x04\x0E\x0F\x02\u036A\u0366" +
"\x03\x02\x02\x02\u036A\u0369\x03\x02\x02\x02\u036B\xF6\x03\x02\x02\x02" +
"\u036C\u036E\t\x19\x02\x02\u036D\u036C\x03\x02\x02\x02\u036E\xF8\x03\x02" +
"\x02\x02\u036F\u0372\x05\xF7|\x02\u0370\u0372\t\x1A\x02\x02\u0371\u036F" +
"\x03\x02\x02\x02\u0371\u0370\x03\x02\x02\x02\u0372\xFA\x03\x02\x02\x02" +
"<\x02\xFD\u0102\u0108\u01CB\u01CF\u01D2\u01D4\u01DC\u01E4\u01E8\u01EF" +
"\u01F3\u01F9\u01FF\u0201\u0208\u020F\u0216\u021A\u021E\u02A6\u02AF\u02B1" +
"\u02B8\u02BA\u02BE\u02C7\u02D4\u02DA\u02DE\u02E6\u02F3\u02F9\u02FD\u0304" +
"\u030A\u030E\u0313\u0318\u031A\u0321\u0323\u0327\u0330\u033D\u0343\u0347" +
"\u034A\u034D\u0350\u0358\u035E\u0363\u0366\u036A\u036D\u0371\n\x03(\x02" +
"\x035\x03\x036\x04\x03<\x05\x03=\x06\x03I\x07\x03J\b\b\x02\x02";
Python3Lexer._serializedATN = Utils.join([
Python3Lexer._serializedATNSegment0,
Python3Lexer._serializedATNSegment1,
], "");
__decorate([
Decorators_1.Override
], Python3Lexer.prototype, "reset", null);
__decorate([
Decorators_1.Override
], Python3Lexer.prototype, "emit", null);
__decorate([
Decorators_1.Override
], Python3Lexer.prototype, "nextToken", null);
exports.Python3Lexer = Python3Lexer;

View File

@@ -0,0 +1,953 @@
import { ParseTreeListener } from "antlr4ts/tree/ParseTreeListener";
import { Single_inputContext } from "./Python3Parser";
import { File_inputContext } from "./Python3Parser";
import { Eval_inputContext } from "./Python3Parser";
import { DecoratorContext } from "./Python3Parser";
import { DecoratorsContext } from "./Python3Parser";
import { DecoratedContext } from "./Python3Parser";
import { Async_funcdefContext } from "./Python3Parser";
import { FuncdefContext } from "./Python3Parser";
import { ParametersContext } from "./Python3Parser";
import { TypedargslistContext } from "./Python3Parser";
import { TfpdefContext } from "./Python3Parser";
import { VarargslistContext } from "./Python3Parser";
import { VfpdefContext } from "./Python3Parser";
import { StmtContext } from "./Python3Parser";
import { Simple_stmtContext } from "./Python3Parser";
import { Small_stmtContext } from "./Python3Parser";
import { Expr_stmtContext } from "./Python3Parser";
import { AnnassignContext } from "./Python3Parser";
import { Testlist_star_exprContext } from "./Python3Parser";
import { AugassignContext } from "./Python3Parser";
import { Del_stmtContext } from "./Python3Parser";
import { Pass_stmtContext } from "./Python3Parser";
import { Flow_stmtContext } from "./Python3Parser";
import { Break_stmtContext } from "./Python3Parser";
import { Continue_stmtContext } from "./Python3Parser";
import { Return_stmtContext } from "./Python3Parser";
import { Yield_stmtContext } from "./Python3Parser";
import { Raise_stmtContext } from "./Python3Parser";
import { Import_stmtContext } from "./Python3Parser";
import { Import_nameContext } from "./Python3Parser";
import { Import_fromContext } from "./Python3Parser";
import { Import_as_nameContext } from "./Python3Parser";
import { Dotted_as_nameContext } from "./Python3Parser";
import { Import_as_namesContext } from "./Python3Parser";
import { Dotted_as_namesContext } from "./Python3Parser";
import { Dotted_nameContext } from "./Python3Parser";
import { Global_stmtContext } from "./Python3Parser";
import { Nonlocal_stmtContext } from "./Python3Parser";
import { Assert_stmtContext } from "./Python3Parser";
import { Compound_stmtContext } from "./Python3Parser";
import { Async_stmtContext } from "./Python3Parser";
import { If_stmtContext } from "./Python3Parser";
import { While_stmtContext } from "./Python3Parser";
import { For_stmtContext } from "./Python3Parser";
import { Try_stmtContext } from "./Python3Parser";
import { With_stmtContext } from "./Python3Parser";
import { With_itemContext } from "./Python3Parser";
import { Except_clauseContext } from "./Python3Parser";
import { SuiteContext } from "./Python3Parser";
import { TestContext } from "./Python3Parser";
import { Test_nocondContext } from "./Python3Parser";
import { LambdefContext } from "./Python3Parser";
import { Lambdef_nocondContext } from "./Python3Parser";
import { Or_testContext } from "./Python3Parser";
import { And_testContext } from "./Python3Parser";
import { Not_testContext } from "./Python3Parser";
import { ComparisonContext } from "./Python3Parser";
import { Comp_opContext } from "./Python3Parser";
import { Star_exprContext } from "./Python3Parser";
import { ExprContext } from "./Python3Parser";
import { Xor_exprContext } from "./Python3Parser";
import { And_exprContext } from "./Python3Parser";
import { Shift_exprContext } from "./Python3Parser";
import { Arith_exprContext } from "./Python3Parser";
import { TermContext } from "./Python3Parser";
import { FactorContext } from "./Python3Parser";
import { PowerContext } from "./Python3Parser";
import { Atom_exprContext } from "./Python3Parser";
import { AtomContext } from "./Python3Parser";
import { Testlist_compContext } from "./Python3Parser";
import { TrailerContext } from "./Python3Parser";
import { SubscriptlistContext } from "./Python3Parser";
import { SubscriptContext } from "./Python3Parser";
import { SliceopContext } from "./Python3Parser";
import { ExprlistContext } from "./Python3Parser";
import { TestlistContext } from "./Python3Parser";
import { DictorsetmakerContext } from "./Python3Parser";
import { ClassdefContext } from "./Python3Parser";
import { ArglistContext } from "./Python3Parser";
import { ArgumentContext } from "./Python3Parser";
import { Comp_iterContext } from "./Python3Parser";
import { Comp_forContext } from "./Python3Parser";
import { Comp_ifContext } from "./Python3Parser";
import { Encoding_declContext } from "./Python3Parser";
import { Yield_exprContext } from "./Python3Parser";
import { Yield_argContext } from "./Python3Parser";
/**
* This interface defines a complete listener for a parse tree produced by
* `Python3Parser`.
*/
export interface Python3Listener extends ParseTreeListener {
/**
* Enter a parse tree produced by `Python3Parser.single_input`.
* @param ctx the parse tree
*/
enterSingle_input?: (ctx: Single_inputContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.single_input`.
* @param ctx the parse tree
*/
exitSingle_input?: (ctx: Single_inputContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.file_input`.
* @param ctx the parse tree
*/
enterFile_input?: (ctx: File_inputContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.file_input`.
* @param ctx the parse tree
*/
exitFile_input?: (ctx: File_inputContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.eval_input`.
* @param ctx the parse tree
*/
enterEval_input?: (ctx: Eval_inputContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.eval_input`.
* @param ctx the parse tree
*/
exitEval_input?: (ctx: Eval_inputContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.decorator`.
* @param ctx the parse tree
*/
enterDecorator?: (ctx: DecoratorContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.decorator`.
* @param ctx the parse tree
*/
exitDecorator?: (ctx: DecoratorContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.decorators`.
* @param ctx the parse tree
*/
enterDecorators?: (ctx: DecoratorsContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.decorators`.
* @param ctx the parse tree
*/
exitDecorators?: (ctx: DecoratorsContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.decorated`.
* @param ctx the parse tree
*/
enterDecorated?: (ctx: DecoratedContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.decorated`.
* @param ctx the parse tree
*/
exitDecorated?: (ctx: DecoratedContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.async_funcdef`.
* @param ctx the parse tree
*/
enterAsync_funcdef?: (ctx: Async_funcdefContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.async_funcdef`.
* @param ctx the parse tree
*/
exitAsync_funcdef?: (ctx: Async_funcdefContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.funcdef`.
* @param ctx the parse tree
*/
enterFuncdef?: (ctx: FuncdefContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.funcdef`.
* @param ctx the parse tree
*/
exitFuncdef?: (ctx: FuncdefContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.parameters`.
* @param ctx the parse tree
*/
enterParameters?: (ctx: ParametersContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.parameters`.
* @param ctx the parse tree
*/
exitParameters?: (ctx: ParametersContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.typedargslist`.
* @param ctx the parse tree
*/
enterTypedargslist?: (ctx: TypedargslistContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.typedargslist`.
* @param ctx the parse tree
*/
exitTypedargslist?: (ctx: TypedargslistContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.tfpdef`.
* @param ctx the parse tree
*/
enterTfpdef?: (ctx: TfpdefContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.tfpdef`.
* @param ctx the parse tree
*/
exitTfpdef?: (ctx: TfpdefContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.varargslist`.
* @param ctx the parse tree
*/
enterVarargslist?: (ctx: VarargslistContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.varargslist`.
* @param ctx the parse tree
*/
exitVarargslist?: (ctx: VarargslistContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.vfpdef`.
* @param ctx the parse tree
*/
enterVfpdef?: (ctx: VfpdefContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.vfpdef`.
* @param ctx the parse tree
*/
exitVfpdef?: (ctx: VfpdefContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.stmt`.
* @param ctx the parse tree
*/
enterStmt?: (ctx: StmtContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.stmt`.
* @param ctx the parse tree
*/
exitStmt?: (ctx: StmtContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.simple_stmt`.
* @param ctx the parse tree
*/
enterSimple_stmt?: (ctx: Simple_stmtContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.simple_stmt`.
* @param ctx the parse tree
*/
exitSimple_stmt?: (ctx: Simple_stmtContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.small_stmt`.
* @param ctx the parse tree
*/
enterSmall_stmt?: (ctx: Small_stmtContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.small_stmt`.
* @param ctx the parse tree
*/
exitSmall_stmt?: (ctx: Small_stmtContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.expr_stmt`.
* @param ctx the parse tree
*/
enterExpr_stmt?: (ctx: Expr_stmtContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.expr_stmt`.
* @param ctx the parse tree
*/
exitExpr_stmt?: (ctx: Expr_stmtContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.annassign`.
* @param ctx the parse tree
*/
enterAnnassign?: (ctx: AnnassignContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.annassign`.
* @param ctx the parse tree
*/
exitAnnassign?: (ctx: AnnassignContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.testlist_star_expr`.
* @param ctx the parse tree
*/
enterTestlist_star_expr?: (ctx: Testlist_star_exprContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.testlist_star_expr`.
* @param ctx the parse tree
*/
exitTestlist_star_expr?: (ctx: Testlist_star_exprContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.augassign`.
* @param ctx the parse tree
*/
enterAugassign?: (ctx: AugassignContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.augassign`.
* @param ctx the parse tree
*/
exitAugassign?: (ctx: AugassignContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.del_stmt`.
* @param ctx the parse tree
*/
enterDel_stmt?: (ctx: Del_stmtContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.del_stmt`.
* @param ctx the parse tree
*/
exitDel_stmt?: (ctx: Del_stmtContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.pass_stmt`.
* @param ctx the parse tree
*/
enterPass_stmt?: (ctx: Pass_stmtContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.pass_stmt`.
* @param ctx the parse tree
*/
exitPass_stmt?: (ctx: Pass_stmtContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.flow_stmt`.
* @param ctx the parse tree
*/
enterFlow_stmt?: (ctx: Flow_stmtContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.flow_stmt`.
* @param ctx the parse tree
*/
exitFlow_stmt?: (ctx: Flow_stmtContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.break_stmt`.
* @param ctx the parse tree
*/
enterBreak_stmt?: (ctx: Break_stmtContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.break_stmt`.
* @param ctx the parse tree
*/
exitBreak_stmt?: (ctx: Break_stmtContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.continue_stmt`.
* @param ctx the parse tree
*/
enterContinue_stmt?: (ctx: Continue_stmtContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.continue_stmt`.
* @param ctx the parse tree
*/
exitContinue_stmt?: (ctx: Continue_stmtContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.return_stmt`.
* @param ctx the parse tree
*/
enterReturn_stmt?: (ctx: Return_stmtContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.return_stmt`.
* @param ctx the parse tree
*/
exitReturn_stmt?: (ctx: Return_stmtContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.yield_stmt`.
* @param ctx the parse tree
*/
enterYield_stmt?: (ctx: Yield_stmtContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.yield_stmt`.
* @param ctx the parse tree
*/
exitYield_stmt?: (ctx: Yield_stmtContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.raise_stmt`.
* @param ctx the parse tree
*/
enterRaise_stmt?: (ctx: Raise_stmtContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.raise_stmt`.
* @param ctx the parse tree
*/
exitRaise_stmt?: (ctx: Raise_stmtContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.import_stmt`.
* @param ctx the parse tree
*/
enterImport_stmt?: (ctx: Import_stmtContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.import_stmt`.
* @param ctx the parse tree
*/
exitImport_stmt?: (ctx: Import_stmtContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.import_name`.
* @param ctx the parse tree
*/
enterImport_name?: (ctx: Import_nameContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.import_name`.
* @param ctx the parse tree
*/
exitImport_name?: (ctx: Import_nameContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.import_from`.
* @param ctx the parse tree
*/
enterImport_from?: (ctx: Import_fromContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.import_from`.
* @param ctx the parse tree
*/
exitImport_from?: (ctx: Import_fromContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.import_as_name`.
* @param ctx the parse tree
*/
enterImport_as_name?: (ctx: Import_as_nameContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.import_as_name`.
* @param ctx the parse tree
*/
exitImport_as_name?: (ctx: Import_as_nameContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.dotted_as_name`.
* @param ctx the parse tree
*/
enterDotted_as_name?: (ctx: Dotted_as_nameContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.dotted_as_name`.
* @param ctx the parse tree
*/
exitDotted_as_name?: (ctx: Dotted_as_nameContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.import_as_names`.
* @param ctx the parse tree
*/
enterImport_as_names?: (ctx: Import_as_namesContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.import_as_names`.
* @param ctx the parse tree
*/
exitImport_as_names?: (ctx: Import_as_namesContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.dotted_as_names`.
* @param ctx the parse tree
*/
enterDotted_as_names?: (ctx: Dotted_as_namesContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.dotted_as_names`.
* @param ctx the parse tree
*/
exitDotted_as_names?: (ctx: Dotted_as_namesContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.dotted_name`.
* @param ctx the parse tree
*/
enterDotted_name?: (ctx: Dotted_nameContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.dotted_name`.
* @param ctx the parse tree
*/
exitDotted_name?: (ctx: Dotted_nameContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.global_stmt`.
* @param ctx the parse tree
*/
enterGlobal_stmt?: (ctx: Global_stmtContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.global_stmt`.
* @param ctx the parse tree
*/
exitGlobal_stmt?: (ctx: Global_stmtContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.nonlocal_stmt`.
* @param ctx the parse tree
*/
enterNonlocal_stmt?: (ctx: Nonlocal_stmtContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.nonlocal_stmt`.
* @param ctx the parse tree
*/
exitNonlocal_stmt?: (ctx: Nonlocal_stmtContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.assert_stmt`.
* @param ctx the parse tree
*/
enterAssert_stmt?: (ctx: Assert_stmtContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.assert_stmt`.
* @param ctx the parse tree
*/
exitAssert_stmt?: (ctx: Assert_stmtContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.compound_stmt`.
* @param ctx the parse tree
*/
enterCompound_stmt?: (ctx: Compound_stmtContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.compound_stmt`.
* @param ctx the parse tree
*/
exitCompound_stmt?: (ctx: Compound_stmtContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.async_stmt`.
* @param ctx the parse tree
*/
enterAsync_stmt?: (ctx: Async_stmtContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.async_stmt`.
* @param ctx the parse tree
*/
exitAsync_stmt?: (ctx: Async_stmtContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.if_stmt`.
* @param ctx the parse tree
*/
enterIf_stmt?: (ctx: If_stmtContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.if_stmt`.
* @param ctx the parse tree
*/
exitIf_stmt?: (ctx: If_stmtContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.while_stmt`.
* @param ctx the parse tree
*/
enterWhile_stmt?: (ctx: While_stmtContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.while_stmt`.
* @param ctx the parse tree
*/
exitWhile_stmt?: (ctx: While_stmtContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.for_stmt`.
* @param ctx the parse tree
*/
enterFor_stmt?: (ctx: For_stmtContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.for_stmt`.
* @param ctx the parse tree
*/
exitFor_stmt?: (ctx: For_stmtContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.try_stmt`.
* @param ctx the parse tree
*/
enterTry_stmt?: (ctx: Try_stmtContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.try_stmt`.
* @param ctx the parse tree
*/
exitTry_stmt?: (ctx: Try_stmtContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.with_stmt`.
* @param ctx the parse tree
*/
enterWith_stmt?: (ctx: With_stmtContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.with_stmt`.
* @param ctx the parse tree
*/
exitWith_stmt?: (ctx: With_stmtContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.with_item`.
* @param ctx the parse tree
*/
enterWith_item?: (ctx: With_itemContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.with_item`.
* @param ctx the parse tree
*/
exitWith_item?: (ctx: With_itemContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.except_clause`.
* @param ctx the parse tree
*/
enterExcept_clause?: (ctx: Except_clauseContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.except_clause`.
* @param ctx the parse tree
*/
exitExcept_clause?: (ctx: Except_clauseContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.suite`.
* @param ctx the parse tree
*/
enterSuite?: (ctx: SuiteContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.suite`.
* @param ctx the parse tree
*/
exitSuite?: (ctx: SuiteContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.test`.
* @param ctx the parse tree
*/
enterTest?: (ctx: TestContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.test`.
* @param ctx the parse tree
*/
exitTest?: (ctx: TestContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.test_nocond`.
* @param ctx the parse tree
*/
enterTest_nocond?: (ctx: Test_nocondContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.test_nocond`.
* @param ctx the parse tree
*/
exitTest_nocond?: (ctx: Test_nocondContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.lambdef`.
* @param ctx the parse tree
*/
enterLambdef?: (ctx: LambdefContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.lambdef`.
* @param ctx the parse tree
*/
exitLambdef?: (ctx: LambdefContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.lambdef_nocond`.
* @param ctx the parse tree
*/
enterLambdef_nocond?: (ctx: Lambdef_nocondContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.lambdef_nocond`.
* @param ctx the parse tree
*/
exitLambdef_nocond?: (ctx: Lambdef_nocondContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.or_test`.
* @param ctx the parse tree
*/
enterOr_test?: (ctx: Or_testContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.or_test`.
* @param ctx the parse tree
*/
exitOr_test?: (ctx: Or_testContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.and_test`.
* @param ctx the parse tree
*/
enterAnd_test?: (ctx: And_testContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.and_test`.
* @param ctx the parse tree
*/
exitAnd_test?: (ctx: And_testContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.not_test`.
* @param ctx the parse tree
*/
enterNot_test?: (ctx: Not_testContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.not_test`.
* @param ctx the parse tree
*/
exitNot_test?: (ctx: Not_testContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.comparison`.
* @param ctx the parse tree
*/
enterComparison?: (ctx: ComparisonContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.comparison`.
* @param ctx the parse tree
*/
exitComparison?: (ctx: ComparisonContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.comp_op`.
* @param ctx the parse tree
*/
enterComp_op?: (ctx: Comp_opContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.comp_op`.
* @param ctx the parse tree
*/
exitComp_op?: (ctx: Comp_opContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.star_expr`.
* @param ctx the parse tree
*/
enterStar_expr?: (ctx: Star_exprContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.star_expr`.
* @param ctx the parse tree
*/
exitStar_expr?: (ctx: Star_exprContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.expr`.
* @param ctx the parse tree
*/
enterExpr?: (ctx: ExprContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.expr`.
* @param ctx the parse tree
*/
exitExpr?: (ctx: ExprContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.xor_expr`.
* @param ctx the parse tree
*/
enterXor_expr?: (ctx: Xor_exprContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.xor_expr`.
* @param ctx the parse tree
*/
exitXor_expr?: (ctx: Xor_exprContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.and_expr`.
* @param ctx the parse tree
*/
enterAnd_expr?: (ctx: And_exprContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.and_expr`.
* @param ctx the parse tree
*/
exitAnd_expr?: (ctx: And_exprContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.shift_expr`.
* @param ctx the parse tree
*/
enterShift_expr?: (ctx: Shift_exprContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.shift_expr`.
* @param ctx the parse tree
*/
exitShift_expr?: (ctx: Shift_exprContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.arith_expr`.
* @param ctx the parse tree
*/
enterArith_expr?: (ctx: Arith_exprContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.arith_expr`.
* @param ctx the parse tree
*/
exitArith_expr?: (ctx: Arith_exprContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.term`.
* @param ctx the parse tree
*/
enterTerm?: (ctx: TermContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.term`.
* @param ctx the parse tree
*/
exitTerm?: (ctx: TermContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.factor`.
* @param ctx the parse tree
*/
enterFactor?: (ctx: FactorContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.factor`.
* @param ctx the parse tree
*/
exitFactor?: (ctx: FactorContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.power`.
* @param ctx the parse tree
*/
enterPower?: (ctx: PowerContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.power`.
* @param ctx the parse tree
*/
exitPower?: (ctx: PowerContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.atom_expr`.
* @param ctx the parse tree
*/
enterAtom_expr?: (ctx: Atom_exprContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.atom_expr`.
* @param ctx the parse tree
*/
exitAtom_expr?: (ctx: Atom_exprContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.atom`.
* @param ctx the parse tree
*/
enterAtom?: (ctx: AtomContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.atom`.
* @param ctx the parse tree
*/
exitAtom?: (ctx: AtomContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.testlist_comp`.
* @param ctx the parse tree
*/
enterTestlist_comp?: (ctx: Testlist_compContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.testlist_comp`.
* @param ctx the parse tree
*/
exitTestlist_comp?: (ctx: Testlist_compContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.trailer`.
* @param ctx the parse tree
*/
enterTrailer?: (ctx: TrailerContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.trailer`.
* @param ctx the parse tree
*/
exitTrailer?: (ctx: TrailerContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.subscriptlist`.
* @param ctx the parse tree
*/
enterSubscriptlist?: (ctx: SubscriptlistContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.subscriptlist`.
* @param ctx the parse tree
*/
exitSubscriptlist?: (ctx: SubscriptlistContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.subscript`.
* @param ctx the parse tree
*/
enterSubscript?: (ctx: SubscriptContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.subscript`.
* @param ctx the parse tree
*/
exitSubscript?: (ctx: SubscriptContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.sliceop`.
* @param ctx the parse tree
*/
enterSliceop?: (ctx: SliceopContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.sliceop`.
* @param ctx the parse tree
*/
exitSliceop?: (ctx: SliceopContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.exprlist`.
* @param ctx the parse tree
*/
enterExprlist?: (ctx: ExprlistContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.exprlist`.
* @param ctx the parse tree
*/
exitExprlist?: (ctx: ExprlistContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.testlist`.
* @param ctx the parse tree
*/
enterTestlist?: (ctx: TestlistContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.testlist`.
* @param ctx the parse tree
*/
exitTestlist?: (ctx: TestlistContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.dictorsetmaker`.
* @param ctx the parse tree
*/
enterDictorsetmaker?: (ctx: DictorsetmakerContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.dictorsetmaker`.
* @param ctx the parse tree
*/
exitDictorsetmaker?: (ctx: DictorsetmakerContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.classdef`.
* @param ctx the parse tree
*/
enterClassdef?: (ctx: ClassdefContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.classdef`.
* @param ctx the parse tree
*/
exitClassdef?: (ctx: ClassdefContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.arglist`.
* @param ctx the parse tree
*/
enterArglist?: (ctx: ArglistContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.arglist`.
* @param ctx the parse tree
*/
exitArglist?: (ctx: ArglistContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.argument`.
* @param ctx the parse tree
*/
enterArgument?: (ctx: ArgumentContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.argument`.
* @param ctx the parse tree
*/
exitArgument?: (ctx: ArgumentContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.comp_iter`.
* @param ctx the parse tree
*/
enterComp_iter?: (ctx: Comp_iterContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.comp_iter`.
* @param ctx the parse tree
*/
exitComp_iter?: (ctx: Comp_iterContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.comp_for`.
* @param ctx the parse tree
*/
enterComp_for?: (ctx: Comp_forContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.comp_for`.
* @param ctx the parse tree
*/
exitComp_for?: (ctx: Comp_forContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.comp_if`.
* @param ctx the parse tree
*/
enterComp_if?: (ctx: Comp_ifContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.comp_if`.
* @param ctx the parse tree
*/
exitComp_if?: (ctx: Comp_ifContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.encoding_decl`.
* @param ctx the parse tree
*/
enterEncoding_decl?: (ctx: Encoding_declContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.encoding_decl`.
* @param ctx the parse tree
*/
exitEncoding_decl?: (ctx: Encoding_declContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.yield_expr`.
* @param ctx the parse tree
*/
enterYield_expr?: (ctx: Yield_exprContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.yield_expr`.
* @param ctx the parse tree
*/
exitYield_expr?: (ctx: Yield_exprContext) => void;
/**
* Enter a parse tree produced by `Python3Parser.yield_arg`.
* @param ctx the parse tree
*/
enterYield_arg?: (ctx: Yield_argContext) => void;
/**
* Exit a parse tree produced by `Python3Parser.yield_arg`.
* @param ctx the parse tree
*/
exitYield_arg?: (ctx: Yield_argContext) => void;
}

View File

@@ -0,0 +1,3 @@
"use strict";
// Generated from src/parser/Python3.g4 by ANTLR 4.7.3-SNAPSHOT
Object.defineProperty(exports, "__esModule", { value: true });

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,612 @@
import { ParseTreeVisitor } from "antlr4ts/tree/ParseTreeVisitor";
import { Single_inputContext } from "./Python3Parser";
import { File_inputContext } from "./Python3Parser";
import { Eval_inputContext } from "./Python3Parser";
import { DecoratorContext } from "./Python3Parser";
import { DecoratorsContext } from "./Python3Parser";
import { DecoratedContext } from "./Python3Parser";
import { Async_funcdefContext } from "./Python3Parser";
import { FuncdefContext } from "./Python3Parser";
import { ParametersContext } from "./Python3Parser";
import { TypedargslistContext } from "./Python3Parser";
import { TfpdefContext } from "./Python3Parser";
import { VarargslistContext } from "./Python3Parser";
import { VfpdefContext } from "./Python3Parser";
import { StmtContext } from "./Python3Parser";
import { Simple_stmtContext } from "./Python3Parser";
import { Small_stmtContext } from "./Python3Parser";
import { Expr_stmtContext } from "./Python3Parser";
import { AnnassignContext } from "./Python3Parser";
import { Testlist_star_exprContext } from "./Python3Parser";
import { AugassignContext } from "./Python3Parser";
import { Del_stmtContext } from "./Python3Parser";
import { Pass_stmtContext } from "./Python3Parser";
import { Flow_stmtContext } from "./Python3Parser";
import { Break_stmtContext } from "./Python3Parser";
import { Continue_stmtContext } from "./Python3Parser";
import { Return_stmtContext } from "./Python3Parser";
import { Yield_stmtContext } from "./Python3Parser";
import { Raise_stmtContext } from "./Python3Parser";
import { Import_stmtContext } from "./Python3Parser";
import { Import_nameContext } from "./Python3Parser";
import { Import_fromContext } from "./Python3Parser";
import { Import_as_nameContext } from "./Python3Parser";
import { Dotted_as_nameContext } from "./Python3Parser";
import { Import_as_namesContext } from "./Python3Parser";
import { Dotted_as_namesContext } from "./Python3Parser";
import { Dotted_nameContext } from "./Python3Parser";
import { Global_stmtContext } from "./Python3Parser";
import { Nonlocal_stmtContext } from "./Python3Parser";
import { Assert_stmtContext } from "./Python3Parser";
import { Compound_stmtContext } from "./Python3Parser";
import { Async_stmtContext } from "./Python3Parser";
import { If_stmtContext } from "./Python3Parser";
import { While_stmtContext } from "./Python3Parser";
import { For_stmtContext } from "./Python3Parser";
import { Try_stmtContext } from "./Python3Parser";
import { With_stmtContext } from "./Python3Parser";
import { With_itemContext } from "./Python3Parser";
import { Except_clauseContext } from "./Python3Parser";
import { SuiteContext } from "./Python3Parser";
import { TestContext } from "./Python3Parser";
import { Test_nocondContext } from "./Python3Parser";
import { LambdefContext } from "./Python3Parser";
import { Lambdef_nocondContext } from "./Python3Parser";
import { Or_testContext } from "./Python3Parser";
import { And_testContext } from "./Python3Parser";
import { Not_testContext } from "./Python3Parser";
import { ComparisonContext } from "./Python3Parser";
import { Comp_opContext } from "./Python3Parser";
import { Star_exprContext } from "./Python3Parser";
import { ExprContext } from "./Python3Parser";
import { Xor_exprContext } from "./Python3Parser";
import { And_exprContext } from "./Python3Parser";
import { Shift_exprContext } from "./Python3Parser";
import { Arith_exprContext } from "./Python3Parser";
import { TermContext } from "./Python3Parser";
import { FactorContext } from "./Python3Parser";
import { PowerContext } from "./Python3Parser";
import { Atom_exprContext } from "./Python3Parser";
import { AtomContext } from "./Python3Parser";
import { Testlist_compContext } from "./Python3Parser";
import { TrailerContext } from "./Python3Parser";
import { SubscriptlistContext } from "./Python3Parser";
import { SubscriptContext } from "./Python3Parser";
import { SliceopContext } from "./Python3Parser";
import { ExprlistContext } from "./Python3Parser";
import { TestlistContext } from "./Python3Parser";
import { DictorsetmakerContext } from "./Python3Parser";
import { ClassdefContext } from "./Python3Parser";
import { ArglistContext } from "./Python3Parser";
import { ArgumentContext } from "./Python3Parser";
import { Comp_iterContext } from "./Python3Parser";
import { Comp_forContext } from "./Python3Parser";
import { Comp_ifContext } from "./Python3Parser";
import { Encoding_declContext } from "./Python3Parser";
import { Yield_exprContext } from "./Python3Parser";
import { Yield_argContext } from "./Python3Parser";
/**
* This interface defines a complete generic visitor for a parse tree produced
* by `Python3Parser`.
*
* @param <Result> The return type of the visit operation. Use `void` for
* operations with no return type.
*/
export interface Python3Visitor<Result> extends ParseTreeVisitor<Result> {
/**
* Visit a parse tree produced by `Python3Parser.single_input`.
* @param ctx the parse tree
* @return the visitor result
*/
visitSingle_input?: (ctx: Single_inputContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.file_input`.
* @param ctx the parse tree
* @return the visitor result
*/
visitFile_input?: (ctx: File_inputContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.eval_input`.
* @param ctx the parse tree
* @return the visitor result
*/
visitEval_input?: (ctx: Eval_inputContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.decorator`.
* @param ctx the parse tree
* @return the visitor result
*/
visitDecorator?: (ctx: DecoratorContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.decorators`.
* @param ctx the parse tree
* @return the visitor result
*/
visitDecorators?: (ctx: DecoratorsContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.decorated`.
* @param ctx the parse tree
* @return the visitor result
*/
visitDecorated?: (ctx: DecoratedContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.async_funcdef`.
* @param ctx the parse tree
* @return the visitor result
*/
visitAsync_funcdef?: (ctx: Async_funcdefContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.funcdef`.
* @param ctx the parse tree
* @return the visitor result
*/
visitFuncdef?: (ctx: FuncdefContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.parameters`.
* @param ctx the parse tree
* @return the visitor result
*/
visitParameters?: (ctx: ParametersContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.typedargslist`.
* @param ctx the parse tree
* @return the visitor result
*/
visitTypedargslist?: (ctx: TypedargslistContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.tfpdef`.
* @param ctx the parse tree
* @return the visitor result
*/
visitTfpdef?: (ctx: TfpdefContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.varargslist`.
* @param ctx the parse tree
* @return the visitor result
*/
visitVarargslist?: (ctx: VarargslistContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.vfpdef`.
* @param ctx the parse tree
* @return the visitor result
*/
visitVfpdef?: (ctx: VfpdefContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.stmt`.
* @param ctx the parse tree
* @return the visitor result
*/
visitStmt?: (ctx: StmtContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.simple_stmt`.
* @param ctx the parse tree
* @return the visitor result
*/
visitSimple_stmt?: (ctx: Simple_stmtContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.small_stmt`.
* @param ctx the parse tree
* @return the visitor result
*/
visitSmall_stmt?: (ctx: Small_stmtContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.expr_stmt`.
* @param ctx the parse tree
* @return the visitor result
*/
visitExpr_stmt?: (ctx: Expr_stmtContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.annassign`.
* @param ctx the parse tree
* @return the visitor result
*/
visitAnnassign?: (ctx: AnnassignContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.testlist_star_expr`.
* @param ctx the parse tree
* @return the visitor result
*/
visitTestlist_star_expr?: (ctx: Testlist_star_exprContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.augassign`.
* @param ctx the parse tree
* @return the visitor result
*/
visitAugassign?: (ctx: AugassignContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.del_stmt`.
* @param ctx the parse tree
* @return the visitor result
*/
visitDel_stmt?: (ctx: Del_stmtContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.pass_stmt`.
* @param ctx the parse tree
* @return the visitor result
*/
visitPass_stmt?: (ctx: Pass_stmtContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.flow_stmt`.
* @param ctx the parse tree
* @return the visitor result
*/
visitFlow_stmt?: (ctx: Flow_stmtContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.break_stmt`.
* @param ctx the parse tree
* @return the visitor result
*/
visitBreak_stmt?: (ctx: Break_stmtContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.continue_stmt`.
* @param ctx the parse tree
* @return the visitor result
*/
visitContinue_stmt?: (ctx: Continue_stmtContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.return_stmt`.
* @param ctx the parse tree
* @return the visitor result
*/
visitReturn_stmt?: (ctx: Return_stmtContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.yield_stmt`.
* @param ctx the parse tree
* @return the visitor result
*/
visitYield_stmt?: (ctx: Yield_stmtContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.raise_stmt`.
* @param ctx the parse tree
* @return the visitor result
*/
visitRaise_stmt?: (ctx: Raise_stmtContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.import_stmt`.
* @param ctx the parse tree
* @return the visitor result
*/
visitImport_stmt?: (ctx: Import_stmtContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.import_name`.
* @param ctx the parse tree
* @return the visitor result
*/
visitImport_name?: (ctx: Import_nameContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.import_from`.
* @param ctx the parse tree
* @return the visitor result
*/
visitImport_from?: (ctx: Import_fromContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.import_as_name`.
* @param ctx the parse tree
* @return the visitor result
*/
visitImport_as_name?: (ctx: Import_as_nameContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.dotted_as_name`.
* @param ctx the parse tree
* @return the visitor result
*/
visitDotted_as_name?: (ctx: Dotted_as_nameContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.import_as_names`.
* @param ctx the parse tree
* @return the visitor result
*/
visitImport_as_names?: (ctx: Import_as_namesContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.dotted_as_names`.
* @param ctx the parse tree
* @return the visitor result
*/
visitDotted_as_names?: (ctx: Dotted_as_namesContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.dotted_name`.
* @param ctx the parse tree
* @return the visitor result
*/
visitDotted_name?: (ctx: Dotted_nameContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.global_stmt`.
* @param ctx the parse tree
* @return the visitor result
*/
visitGlobal_stmt?: (ctx: Global_stmtContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.nonlocal_stmt`.
* @param ctx the parse tree
* @return the visitor result
*/
visitNonlocal_stmt?: (ctx: Nonlocal_stmtContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.assert_stmt`.
* @param ctx the parse tree
* @return the visitor result
*/
visitAssert_stmt?: (ctx: Assert_stmtContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.compound_stmt`.
* @param ctx the parse tree
* @return the visitor result
*/
visitCompound_stmt?: (ctx: Compound_stmtContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.async_stmt`.
* @param ctx the parse tree
* @return the visitor result
*/
visitAsync_stmt?: (ctx: Async_stmtContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.if_stmt`.
* @param ctx the parse tree
* @return the visitor result
*/
visitIf_stmt?: (ctx: If_stmtContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.while_stmt`.
* @param ctx the parse tree
* @return the visitor result
*/
visitWhile_stmt?: (ctx: While_stmtContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.for_stmt`.
* @param ctx the parse tree
* @return the visitor result
*/
visitFor_stmt?: (ctx: For_stmtContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.try_stmt`.
* @param ctx the parse tree
* @return the visitor result
*/
visitTry_stmt?: (ctx: Try_stmtContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.with_stmt`.
* @param ctx the parse tree
* @return the visitor result
*/
visitWith_stmt?: (ctx: With_stmtContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.with_item`.
* @param ctx the parse tree
* @return the visitor result
*/
visitWith_item?: (ctx: With_itemContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.except_clause`.
* @param ctx the parse tree
* @return the visitor result
*/
visitExcept_clause?: (ctx: Except_clauseContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.suite`.
* @param ctx the parse tree
* @return the visitor result
*/
visitSuite?: (ctx: SuiteContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.test`.
* @param ctx the parse tree
* @return the visitor result
*/
visitTest?: (ctx: TestContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.test_nocond`.
* @param ctx the parse tree
* @return the visitor result
*/
visitTest_nocond?: (ctx: Test_nocondContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.lambdef`.
* @param ctx the parse tree
* @return the visitor result
*/
visitLambdef?: (ctx: LambdefContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.lambdef_nocond`.
* @param ctx the parse tree
* @return the visitor result
*/
visitLambdef_nocond?: (ctx: Lambdef_nocondContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.or_test`.
* @param ctx the parse tree
* @return the visitor result
*/
visitOr_test?: (ctx: Or_testContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.and_test`.
* @param ctx the parse tree
* @return the visitor result
*/
visitAnd_test?: (ctx: And_testContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.not_test`.
* @param ctx the parse tree
* @return the visitor result
*/
visitNot_test?: (ctx: Not_testContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.comparison`.
* @param ctx the parse tree
* @return the visitor result
*/
visitComparison?: (ctx: ComparisonContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.comp_op`.
* @param ctx the parse tree
* @return the visitor result
*/
visitComp_op?: (ctx: Comp_opContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.star_expr`.
* @param ctx the parse tree
* @return the visitor result
*/
visitStar_expr?: (ctx: Star_exprContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.expr`.
* @param ctx the parse tree
* @return the visitor result
*/
visitExpr?: (ctx: ExprContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.xor_expr`.
* @param ctx the parse tree
* @return the visitor result
*/
visitXor_expr?: (ctx: Xor_exprContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.and_expr`.
* @param ctx the parse tree
* @return the visitor result
*/
visitAnd_expr?: (ctx: And_exprContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.shift_expr`.
* @param ctx the parse tree
* @return the visitor result
*/
visitShift_expr?: (ctx: Shift_exprContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.arith_expr`.
* @param ctx the parse tree
* @return the visitor result
*/
visitArith_expr?: (ctx: Arith_exprContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.term`.
* @param ctx the parse tree
* @return the visitor result
*/
visitTerm?: (ctx: TermContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.factor`.
* @param ctx the parse tree
* @return the visitor result
*/
visitFactor?: (ctx: FactorContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.power`.
* @param ctx the parse tree
* @return the visitor result
*/
visitPower?: (ctx: PowerContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.atom_expr`.
* @param ctx the parse tree
* @return the visitor result
*/
visitAtom_expr?: (ctx: Atom_exprContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.atom`.
* @param ctx the parse tree
* @return the visitor result
*/
visitAtom?: (ctx: AtomContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.testlist_comp`.
* @param ctx the parse tree
* @return the visitor result
*/
visitTestlist_comp?: (ctx: Testlist_compContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.trailer`.
* @param ctx the parse tree
* @return the visitor result
*/
visitTrailer?: (ctx: TrailerContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.subscriptlist`.
* @param ctx the parse tree
* @return the visitor result
*/
visitSubscriptlist?: (ctx: SubscriptlistContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.subscript`.
* @param ctx the parse tree
* @return the visitor result
*/
visitSubscript?: (ctx: SubscriptContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.sliceop`.
* @param ctx the parse tree
* @return the visitor result
*/
visitSliceop?: (ctx: SliceopContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.exprlist`.
* @param ctx the parse tree
* @return the visitor result
*/
visitExprlist?: (ctx: ExprlistContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.testlist`.
* @param ctx the parse tree
* @return the visitor result
*/
visitTestlist?: (ctx: TestlistContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.dictorsetmaker`.
* @param ctx the parse tree
* @return the visitor result
*/
visitDictorsetmaker?: (ctx: DictorsetmakerContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.classdef`.
* @param ctx the parse tree
* @return the visitor result
*/
visitClassdef?: (ctx: ClassdefContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.arglist`.
* @param ctx the parse tree
* @return the visitor result
*/
visitArglist?: (ctx: ArglistContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.argument`.
* @param ctx the parse tree
* @return the visitor result
*/
visitArgument?: (ctx: ArgumentContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.comp_iter`.
* @param ctx the parse tree
* @return the visitor result
*/
visitComp_iter?: (ctx: Comp_iterContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.comp_for`.
* @param ctx the parse tree
* @return the visitor result
*/
visitComp_for?: (ctx: Comp_forContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.comp_if`.
* @param ctx the parse tree
* @return the visitor result
*/
visitComp_if?: (ctx: Comp_ifContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.encoding_decl`.
* @param ctx the parse tree
* @return the visitor result
*/
visitEncoding_decl?: (ctx: Encoding_declContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.yield_expr`.
* @param ctx the parse tree
* @return the visitor result
*/
visitYield_expr?: (ctx: Yield_exprContext) => Result;
/**
* Visit a parse tree produced by `Python3Parser.yield_arg`.
* @param ctx the parse tree
* @return the visitor result
*/
visitYield_arg?: (ctx: Yield_argContext) => Result;
}

View File

@@ -0,0 +1,3 @@
"use strict";
// Generated from src/parser/Python3.g4 by ANTLR 4.7.3-SNAPSHOT
Object.defineProperty(exports, "__esModule", { value: true });