diff --git a/.gitignore b/.gitignore index b4d84d9..7160a8f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,134 +1,74 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* -.pnpm-debug.log* - -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories node_modules/ -jspm_packages/ - -# Snowpack dependency directory (https://snowpack.dev/) -web_modules/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache +.node_modules/ +built/* +tests/cases/rwc/* +tests/cases/perf/* +!tests/cases/webharness/compilerToString.js +test-args.txt +~*.docx +\#*\# +.\#* +tests/baselines/local/* +tests/baselines/local.old/* +tests/services/baselines/local/* +tests/baselines/prototyping/local/* +tests/baselines/rwc/* +tests/baselines/reference/projectOutput/* +tests/baselines/local/projectOutput/* +tests/baselines/reference/testresults.tap +tests/baselines/symlinks/* +tests/services/baselines/prototyping/local/* +tests/services/browser/typescriptServices.js +src/harness/*.js +src/compiler/diagnosticInformationMap.generated.ts +src/compiler/diagnosticMessages.generated.json +src/parser/diagnosticInformationMap.generated.ts +src/parser/diagnosticMessages.generated.json +rwc-report.html +*.swp +build.json +*.actual +tests/webTestServer.js +tests/webTestServer.js.map +tests/webhost/*.d.ts +tests/webhost/webtsc.js +tests/cases/**/*.js +tests/cases/**/*.js.map +*.config +scripts/eslint/built/ +scripts/debug.bat +scripts/run.bat +scripts/**/*.js +scripts/**/*.js.map +coverage/ +internal/ +**/.DS_Store +.settings +**/.vs +**/.vscode/* +!**/.vscode/tasks.json +!**/.vscode/settings.template.json +!**/.vscode/launch.template.json +!**/.vscode/extensions.json +!tests/cases/projects/projectOption/**/node_modules +!tests/cases/projects/NodeModulesSearch/**/* +!tests/baselines/reference/project/nodeModules*/**/* +.idea +yarn.lock +yarn-error.log +.parallelperf.* +tests/baselines/reference/dt +.failed-tests +TEST-results.xml +package-lock.json .eslintcache - -# Optional stylelint cache -.stylelintcache - -# Microbundle cache -.rpt2_cache/ -.rts2_cache_cjs/ -.rts2_cache_es/ -.rts2_cache_umd/ - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variable files -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - -# parcel-bundler cache (https://parceljs.org/) -.cache -.parcel-cache - -# Next.js build output -.next -out - -# Nuxt.js build / generate output -.nuxt -dist - -# Gatsby files -.cache/ -# Comment in the public line in if your project uses Gatsby and not Next.js -# https://nextjs.org/blog/next-9-1#public-directory-support -# public - -# vuepress build output -.vuepress/dist - -# vuepress v2.x temp and cache directory -.temp -.cache - -# Docusaurus cache and generated files -.docusaurus - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# TernJS port file -.tern-port - -# Stores VSCode versions used for testing VSCode extensions -.vscode-test - -# yarn v2 -.yarn/cache -.yarn/unplugged -.yarn/build-state.yml -.yarn/install-state.gz -.pnp.* +*v8.log +/lib/ ## Custom .gitignore rules ## -antlr-*.jar \ No newline at end of file +antlr-*.jar +.antlr +build/ +dist/ +website/ diff --git a/README.md b/README.md index 78650c8..e04fea4 100644 --- a/README.md +++ b/README.md @@ -1,176 +1,176 @@ -# codemetrica - -########################EXhibit B ######### - -To design an elegant and scalable solution for extracting different metrics (e.g., Lines of Code, comments) and detecting code smells (e.g., god class, complex conditionals), with varying implementations across programming languages, you can use the Strategy Pattern combined with Factory Pattern for each language. Here's how: - -Design Steps: -Define Common Interfaces for Metrics and Code Smells: Create abstract interfaces or base classes for the metrics and code smells you want to calculate/detect. Each programming language will implement these interfaces according to its specifics. - -Create Separate Implementations for Each Programming Language: Implement the metrics and code smells for each programming language in its own class, adhering to the interface. This allows flexibility when adding new languages or code smells. - -Factory or Registry Pattern for Language-Specific Metrics/Smells: Use a factory pattern or registry to instantiate the correct metric/smell detection class based on the programming language. This keeps the code modular and extensible. - -Composite Pattern for Combining Metrics and Smells: Since you need multiple metrics and code smells, consider using the Composite Pattern to group multiple checks (metrics + smells) together. - -Example Implementation: -1. Define Common Interfaces -First, define common interfaces or abstract classes for metrics and code smells that will be implemented by each language-specific class. - -javascript -Copy code -// Abstract interface for calculating metrics -class Metrics { - calculateLOC() { - throw new Error('Method calculateLOC() must be implemented'); - } - - calculateComments() { - throw new Error('Method calculateComments() must be implemented'); - } -} - -// Abstract interface for detecting code smells -class CodeSmells { - detectGodClass() { - throw new Error('Method detectGodClass() must be implemented'); - } - - detectComplexConditional() { - throw new Error('Method detectComplexConditional() must be implemented'); - } -} -2. Language-Specific Implementations -Each programming language (e.g., Python, JavaScript) will have its own implementation of the metrics and code smells interface. - -javascript -Copy code -// Python-specific implementation for metrics -class PythonMetrics extends Metrics { - constructor(sourceCode) { - super(); - this.sourceCode = sourceCode; - } - - calculateLOC() { - // Count lines of code excluding comments - return this.sourceCode.split('\n').filter(line => line.trim() !== '').length; - } - - calculateComments() { - // Count the number of comment lines in Python (starting with #) - return this.sourceCode.split('\n').filter(line => line.trim().startsWith('#')).length; - } -} - -// Python-specific implementation for code smells -class PythonCodeSmells extends CodeSmells { - constructor(ast) { - super(); - this.ast = ast; // Assume this is the AST from an ANTLR parser or similar - } - - detectGodClass() { - // Logic to detect god class in Python - // Based on class size, number of methods, etc. - } - - detectComplexConditional() { - // Logic to detect complex conditionals in Python - // Look for long chains of if-else statements - } -} -Similarly, you can create JavaScript or other language implementations. - -javascript -Copy code -// JavaScript-specific implementation for metrics -class JavaScriptMetrics extends Metrics { - constructor(sourceCode) { - super(); - this.sourceCode = sourceCode; - } - - calculateLOC() { - // Count lines of code in JavaScript - } - - calculateComments() { - // Count comments in JavaScript (// or /* */) - } -} - -// JavaScript-specific implementation for code smells -class JavaScriptCodeSmells extends CodeSmells { - constructor(ast) { - super(); - this.ast = ast; - } - - detectGodClass() { - // Logic for detecting god class in JavaScript - } - - detectComplexConditional() { - // Logic for detecting complex conditionals in JavaScript - } -} -3. Factory Pattern to Choose Implementation -Now, use the Factory Pattern to instantiate the appropriate class based on the programming language. - -javascript -Copy code -class MetricsFactory { - static getMetrics(language, sourceCode) { - if (language === 'python') { - return new PythonMetrics(sourceCode); - } else if (language === 'javascript') { - return new JavaScriptMetrics(sourceCode); - } - throw new Error(`Metrics for language ${language} are not supported.`); - } -} - -class CodeSmellsFactory { - static getCodeSmells(language, ast) { - if (language === 'python') { - return new PythonCodeSmells(ast); - } else if (language === 'javascript') { - return new JavaScriptCodeSmells(ast); - } - throw new Error(`Code smells for language ${language} are not supported.`); - } -} -4. Usage Example -You can now use the factories to calculate metrics and detect code smells based on the source code and language. - -javascript -Copy code -const sourceCode = `# Python sample code\nclass MyClass:\n pass`; -const language = 'python'; - -// Get Python-specific metrics -const metrics = MetricsFactory.getMetrics(language, sourceCode); -console.log('Lines of Code:', metrics.calculateLOC()); -console.log('Number of Comments:', metrics.calculateComments()); - -// Assume we have the AST (Abstract Syntax Tree) from parsing the code -const ast = {}; // Placeholder for actual AST - -// Get Python-specific code smells -const smells = CodeSmellsFactory.getCodeSmells(language, ast); -console.log('God Class Detected:', smells.detectGodClass()); -console.log('Complex Conditional Detected:', smells.detectComplexConditional()); -Extending to Other Languages -To support another language, such as Java, you simply create new classes JavaMetrics and JavaCodeSmells, then add them to the factories. - -Benefits of This Design: -Modularity: Each language’s specific logic for calculating metrics and detecting code smells is encapsulated in separate classes, which makes the code easy to maintain and extend. - -Flexibility: You can easily add new programming languages by implementing their own Metrics and CodeSmells classes without affecting the rest of the system. - -Separation of Concerns: Each class is responsible for a single aspect of the problem (e.g., detecting smells, calculating metrics), ensuring the code follows SOLID principles. - -Factory Pattern: The factory pattern provides an elegant way to choose the correct implementation at runtime, based on the input programming language. - +# codemetrica + +########################EXhibit B ######### + +To design an elegant and scalable solution for extracting different metrics (e.g., Lines of Code, comments) and detecting code smells (e.g., god class, complex conditionals), with varying implementations across programming languages, you can use the Strategy Pattern combined with Factory Pattern for each language. Here's how: + +Design Steps: +Define Common Interfaces for Metrics and Code Smells: Create abstract interfaces or base classes for the metrics and code smells you want to calculate/detect. Each programming language will implement these interfaces according to its specifics. + +Create Separate Implementations for Each Programming Language: Implement the metrics and code smells for each programming language in its own class, adhering to the interface. This allows flexibility when adding new languages or code smells. + +Factory or Registry Pattern for Language-Specific Metrics/Smells: Use a factory pattern or registry to instantiate the correct metric/smell detection class based on the programming language. This keeps the code modular and extensible. + +Composite Pattern for Combining Metrics and Smells: Since you need multiple metrics and code smells, consider using the Composite Pattern to group multiple checks (metrics + smells) together. + +Example Implementation: +1. Define Common Interfaces +First, define common interfaces or abstract classes for metrics and code smells that will be implemented by each language-specific class. + +javascript +Copy code +// Abstract interface for calculating metrics +class Metrics { + calculateLOC() { + throw new Error('Method calculateLOC() must be implemented'); + } + + calculateComments() { + throw new Error('Method calculateComments() must be implemented'); + } +} + +// Abstract interface for detecting code smells +class CodeSmells { + detectGodClass() { + throw new Error('Method detectGodClass() must be implemented'); + } + + detectComplexConditional() { + throw new Error('Method detectComplexConditional() must be implemented'); + } +} +2. Language-Specific Implementations +Each programming language (e.g., Python, JavaScript) will have its own implementation of the metrics and code smells interface. + +javascript +Copy code +// Python-specific implementation for metrics +class PythonMetrics extends Metrics { + constructor(sourceCode) { + super(); + this.sourceCode = sourceCode; + } + + calculateLOC() { + // Count lines of code excluding comments + return this.sourceCode.split('\n').filter(line => line.trim() !== '').length; + } + + calculateComments() { + // Count the number of comment lines in Python (starting with #) + return this.sourceCode.split('\n').filter(line => line.trim().startsWith('#')).length; + } +} + +// Python-specific implementation for code smells +class PythonCodeSmells extends CodeSmells { + constructor(ast) { + super(); + this.ast = ast; // Assume this is the AST from an ANTLR parser or similar + } + + detectGodClass() { + // Logic to detect god class in Python + // Based on class size, number of methods, etc. + } + + detectComplexConditional() { + // Logic to detect complex conditionals in Python + // Look for long chains of if-else statements + } +} +Similarly, you can create JavaScript or other language implementations. + +javascript +Copy code +// JavaScript-specific implementation for metrics +class JavaScriptMetrics extends Metrics { + constructor(sourceCode) { + super(); + this.sourceCode = sourceCode; + } + + calculateLOC() { + // Count lines of code in JavaScript + } + + calculateComments() { + // Count comments in JavaScript (// or /* */) + } +} + +// JavaScript-specific implementation for code smells +class JavaScriptCodeSmells extends CodeSmells { + constructor(ast) { + super(); + this.ast = ast; + } + + detectGodClass() { + // Logic for detecting god class in JavaScript + } + + detectComplexConditional() { + // Logic for detecting complex conditionals in JavaScript + } +} +3. Factory Pattern to Choose Implementation +Now, use the Factory Pattern to instantiate the appropriate class based on the programming language. + +javascript +Copy code +class MetricsFactory { + static getMetrics(language, sourceCode) { + if (language === 'python') { + return new PythonMetrics(sourceCode); + } else if (language === 'javascript') { + return new JavaScriptMetrics(sourceCode); + } + throw new Error(`Metrics for language ${language} are not supported.`); + } +} + +class CodeSmellsFactory { + static getCodeSmells(language, ast) { + if (language === 'python') { + return new PythonCodeSmells(ast); + } else if (language === 'javascript') { + return new JavaScriptCodeSmells(ast); + } + throw new Error(`Code smells for language ${language} are not supported.`); + } +} +4. Usage Example +You can now use the factories to calculate metrics and detect code smells based on the source code and language. + +javascript +Copy code +const sourceCode = `# Python sample code\nclass MyClass:\n pass`; +const language = 'python'; + +// Get Python-specific metrics +const metrics = MetricsFactory.getMetrics(language, sourceCode); +console.log('Lines of Code:', metrics.calculateLOC()); +console.log('Number of Comments:', metrics.calculateComments()); + +// Assume we have the AST (Abstract Syntax Tree) from parsing the code +const ast = {}; // Placeholder for actual AST + +// Get Python-specific code smells +const smells = CodeSmellsFactory.getCodeSmells(language, ast); +console.log('God Class Detected:', smells.detectGodClass()); +console.log('Complex Conditional Detected:', smells.detectComplexConditional()); +Extending to Other Languages +To support another language, such as Java, you simply create new classes JavaMetrics and JavaCodeSmells, then add them to the factories. + +Benefits of This Design: +Modularity: Each language’s specific logic for calculating metrics and detecting code smells is encapsulated in separate classes, which makes the code easy to maintain and extend. + +Flexibility: You can easily add new programming languages by implementing their own Metrics and CodeSmells classes without affecting the rest of the system. + +Separation of Concerns: Each class is responsible for a single aspect of the problem (e.g., detecting smells, calculating metrics), ensuring the code follows SOLID principles. + +Factory Pattern: The factory pattern provides an elegant way to choose the correct implementation at runtime, based on the input programming language. + This design allows for flexibility and scalability while keeping the code clean and easy to maintain. \ No newline at end of file diff --git a/codemetrica/index.ts b/codemetrica/index.ts new file mode 100644 index 0000000..b07412e --- /dev/null +++ b/codemetrica/index.ts @@ -0,0 +1,8 @@ +/** + * This is the doc comment for file1.ts + * + * Specify this is a module comment and rename it to my-module: + * @module codemetrica + */ + +export * from "./thresholds"; \ No newline at end of file diff --git a/codemetrica/py/class.js b/codemetrica/py/class.js deleted file mode 100644 index d689979..0000000 --- a/codemetrica/py/class.js +++ /dev/null @@ -1,31 +0,0 @@ -import CodeBlock from "./codeblock.js"; -import Function from "./function.js"; -import PythonParserVisitor from "./parser/python3_12_1/PythonParserVisitor.js"; - -export default class Class extends CodeBlock { - constructor(ctx) { - super(); - this.ctx = ctx; - } - - get name() { - return this.ctx.class_def_raw().NAME().getText(); - } - - getMethods() { - class FunctionVisitor extends PythonParserVisitor { - constructor() { - super(); - this.methods = []; - } - - visitFunction_def(ctx) { - this.methods.push(new Function(ctx)); - } - } - - const visitor = new FunctionVisitor(); - visitor.visit(this.ctx); - return visitor.methods; - } -} \ No newline at end of file diff --git a/codemetrica/py/file.js b/codemetrica/py/file.js deleted file mode 100644 index 315df7b..0000000 --- a/codemetrica/py/file.js +++ /dev/null @@ -1,59 +0,0 @@ -import PythonParserVisitor from "./parser/python3_12_1/PythonParserVisitor.js"; -import CodeBlock from "./codeblock.js"; -import Class from "./class.js"; -import Function from "./function.js"; -import Parser from "./parser/parser.js"; - -export default class File extends CodeBlock { - constructor(path) { - super(); - this.path = path; - this.ctx = Parser.getAST(path); - } - - get name() { - return this.path.split('/').pop(); - } - - get extension() { - return this.path.includes('.') ? this.path.split('.').pop() : null; - } - - get LOC() { - return this.ctx.stop.line - this.ctx.start.line + 1; - } - - getClasses() { - class ClassVisitor extends PythonParserVisitor { - constructor() { - super(); - this.classes = []; - } - - visitClass_def(ctx) { - this.classes.push(new Class(ctx)); - } - } - - const visitor = new ClassVisitor(); - visitor.visit(this.ctx); - return visitor.classes; - } - - getFunctions() { - class FunctionVisitor extends PythonParserVisitor { - constructor() { - super(); - this.functions = []; - } - - visitFunction_def(ctx) { - this.functions.push(new Function(ctx)); - } - } - - const visitor = new FunctionVisitor(); - visitor.visit(this.ctx); - return visitor.functions; - } -} \ No newline at end of file diff --git a/codemetrica/py/function.js b/codemetrica/py/function.js deleted file mode 100644 index a3c2a3d..0000000 --- a/codemetrica/py/function.js +++ /dev/null @@ -1,35 +0,0 @@ -import CodeBlock from "./codeblock.js"; -import PythonParserVisitor from "./parser/python3_12_1/PythonParserVisitor.js"; - -export default class Function extends CodeBlock { - constructor(ctx) { - super(); - this.ctx = ctx; - } - - get name() { - return this.ctx.function_def_raw().NAME().getText(); - } - - get length() { - return this.ctx.stop.line - this.ctx.start.line; - } - - getParameters() { - class Parameter { - constructor(name, type) { - this.name = name; - this.type = type; - } - } - - const parameters = []; - - const paramCtx = this.ctx.function_def_raw().params().parameters().children(); - paramCtx.forEach((param) => { - parameters.push(new Parameter(param.getText(), "lol")); - }); - - return parameters; - } -} diff --git a/codemetrica/py/parser/parser.js b/codemetrica/py/parser/parser.js deleted file mode 100644 index 1f31cd7..0000000 --- a/codemetrica/py/parser/parser.js +++ /dev/null @@ -1,26 +0,0 @@ -import antlr4 from 'antlr4'; -import PythonLexer from './python3_12_1/PythonLexer.js'; -import PythonParser from './python3_12_1/PythonParser.js'; - -export default class Parser { - constructor() { - this.parser = null; - } - - static getAST(fileName) { - const inputStream = new antlr4.FileStream(fileName); - const lexer = new PythonLexer(inputStream); - const tokenStream = new antlr4.CommonTokenStream(lexer); - - this.parser = new PythonParser(tokenStream); - const tree = this.parser.file_input(); - return tree; - } - - toString() { - if (!this.parser) { - return 'No parser initialized'; - } - return this.parser.file_input().toStringTree(this.parser); - } -} diff --git a/codemetrica/py/parser/python3_12_1/PythonLexer.js b/codemetrica/py/parser/python3_12_1/PythonLexer.js deleted file mode 100644 index 4e4fbe1..0000000 --- a/codemetrica/py/parser/python3_12_1/PythonLexer.js +++ /dev/null @@ -1,769 +0,0 @@ -// Generated from PythonLexer.g4 by ANTLR 4.13.2 -// jshint ignore: start -import antlr4 from 'antlr4'; - - -import PythonLexerBase from './PythonLexerBase.js'; - -const serializedATN = [4,0,97,1160,6,-1,6,-1,6,-1,6,-1,6,-1,6,-1,6,-1,2, -0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2, -9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7, -16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23, -2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2, -31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38, -7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7, -45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,52,7,52, -2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2, -60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67, -7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7, -74,2,75,7,75,2,76,7,76,2,77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81, -2,82,7,82,2,83,7,83,2,84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2, -89,7,89,2,90,7,90,2,91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96, -7,96,2,97,7,97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2, -103,7,103,2,104,7,104,2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108,2, -109,7,109,2,110,7,110,2,111,7,111,2,112,7,112,2,113,7,113,2,114,7,114,2, -115,7,115,2,116,7,116,2,117,7,117,2,118,7,118,2,119,7,119,2,120,7,120,2, -121,7,121,2,122,7,122,2,123,7,123,2,124,7,124,2,125,7,125,2,126,7,126,2, -127,7,127,2,128,7,128,2,129,7,129,2,130,7,130,2,131,7,131,2,132,7,132,2, -133,7,133,2,134,7,134,2,135,7,135,2,136,7,136,2,137,7,137,2,138,7,138,2, -139,7,139,2,140,7,140,2,141,7,141,2,142,7,142,2,143,7,143,2,144,7,144,2, -145,7,145,2,146,7,146,2,147,7,147,2,148,7,148,2,149,7,149,2,150,7,150,2, -151,7,151,2,152,7,152,2,153,7,153,2,154,7,154,2,155,7,155,2,156,7,156,2, -157,7,157,2,158,7,158,2,159,7,159,2,160,7,160,2,161,7,161,1,0,1,0,1,0,1, -0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,2,1,2,1,3,1,3,1,3,1,3,1, -3,1,3,1,3,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,5,1,6,1,6,1,6,1,6,1,6,1, -6,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,8,1,9,1,9,1,9,1,9,1,9,1,9,1,10,1, -10,1,10,1,10,1,10,1,11,1,11,1,11,1,11,1,11,1,11,1,12,1,12,1,12,1,12,1,12, -1,12,1,12,1,12,1,13,1,13,1,13,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,15,1, -15,1,15,1,15,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,17,1,17,1,17, -1,17,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,20,1,20,1, -20,1,21,1,21,1,21,1,21,1,22,1,22,1,22,1,22,1,22,1,23,1,23,1,23,1,23,1,23, -1,23,1,23,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1,24,1,25,1,25,1,25,1,25,1, -25,1,25,1,25,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,28, -1,28,1,28,1,28,1,29,1,29,1,29,1,29,1,29,1,30,1,30,1,30,1,30,1,30,1,30,1, -31,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1,33,1,33,1,33,1,34,1,34,1,34,1,34, -1,34,1,34,1,35,1,35,1,36,1,36,1,37,1,37,1,38,1,38,1,39,1,39,1,40,1,40,1, -41,1,41,1,42,1,42,1,43,1,43,1,44,1,44,1,45,1,45,1,46,1,46,1,47,1,47,1,48, -1,48,1,49,1,49,1,50,1,50,1,51,1,51,1,52,1,52,1,53,1,53,1,54,1,54,1,55,1, -55,1,55,1,56,1,56,1,56,1,57,1,57,1,57,1,58,1,58,1,58,1,59,1,59,1,60,1,60, -1,61,1,61,1,61,1,62,1,62,1,62,1,63,1,63,1,63,1,64,1,64,1,64,1,65,1,65,1, -65,1,66,1,66,1,66,1,67,1,67,1,67,1,68,1,68,1,68,1,69,1,69,1,69,1,70,1,70, -1,70,1,71,1,71,1,71,1,72,1,72,1,72,1,72,1,73,1,73,1,73,1,73,1,74,1,74,1, -74,1,74,1,75,1,75,1,75,1,76,1,76,1,76,1,76,1,77,1,77,1,78,1,78,1,78,1,79, -1,79,1,79,1,80,1,80,1,80,1,80,1,81,1,81,1,81,1,82,1,82,1,83,1,83,5,83,649, -8,83,10,83,12,83,652,9,83,1,84,1,84,1,84,3,84,657,8,84,1,85,1,85,3,85,661, -8,85,1,86,1,86,3,86,665,8,86,1,86,1,86,1,86,1,86,1,86,1,86,1,86,5,86,674, -8,86,10,86,12,86,677,9,86,1,87,1,87,1,88,1,88,5,88,683,8,88,10,88,12,88, -686,9,88,1,88,1,88,1,89,4,89,691,8,89,11,89,12,89,692,1,89,1,89,1,90,1,90, -1,90,1,90,1,90,1,91,1,91,1,91,1,91,1,91,1,91,1,92,1,92,1,92,1,92,1,92,1, -92,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,94,1,94,1,94,1,94,1,94,1,94, -1,94,1,94,1,95,1,95,1,96,1,96,1,96,1,96,1,96,1,97,1,97,1,97,1,97,1,98,1, -98,1,98,1,98,1,99,1,99,1,99,1,99,1,99,1,100,1,100,1,100,1,100,1,101,1,101, -1,101,1,101,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,103,1,103,1,103, -1,103,1,104,1,104,1,104,1,104,1,105,1,105,1,105,1,105,1,105,1,105,1,105, -1,106,1,106,1,106,1,106,1,107,1,107,1,107,1,107,1,108,4,108,789,8,108,11, -108,12,108,790,1,108,1,108,1,109,1,109,1,109,1,109,1,110,1,110,1,110,1,110, -1,111,4,111,804,8,111,11,111,12,111,805,1,111,1,111,1,112,1,112,1,112,1, -112,1,113,1,113,1,113,1,113,1,114,3,114,819,8,114,1,114,1,114,3,114,823, -8,114,1,115,1,115,1,116,1,116,5,116,829,8,116,10,116,12,116,832,9,116,1, -116,1,116,1,116,5,116,837,8,116,10,116,12,116,840,9,116,1,116,3,116,843, -8,116,1,117,1,117,1,117,1,117,1,117,5,117,850,8,117,10,117,12,117,853,9, -117,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,117,5,117,863,8,117,10,117, -12,117,866,9,117,1,117,1,117,1,117,3,117,871,8,117,1,118,1,118,3,118,875, -8,118,1,119,1,119,3,119,879,8,119,1,120,1,120,3,120,883,8,120,1,121,1,121, -1,122,1,122,1,123,1,123,1,124,1,124,1,124,1,124,3,124,895,8,124,1,125,1, -125,1,125,3,125,900,8,125,1,126,1,126,1,126,1,126,1,126,1,126,1,126,1,126, -1,126,1,126,1,126,1,126,1,126,1,126,1,126,1,126,1,126,3,126,919,8,126,1, -127,1,127,5,127,923,8,127,10,127,12,127,926,9,127,1,127,1,127,1,127,5,127, -931,8,127,10,127,12,127,934,9,127,1,127,3,127,937,8,127,1,128,1,128,1,128, -1,128,1,128,5,128,944,8,128,10,128,12,128,947,9,128,1,128,1,128,1,128,1, -128,1,128,1,128,1,128,1,128,5,128,957,8,128,10,128,12,128,960,9,128,1,128, -1,128,1,128,3,128,965,8,128,1,129,1,129,3,129,969,8,129,1,130,1,130,3,130, -973,8,130,1,131,1,131,3,131,977,8,131,1,132,3,132,980,8,132,1,133,3,133, -983,8,133,1,134,3,134,986,8,134,1,135,1,135,1,135,1,136,1,136,4,136,993, -8,136,11,136,12,136,994,1,137,1,137,4,137,999,8,137,11,137,12,137,1000,1, -138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1, -138,1,138,1,138,1,138,1,138,3,138,1020,8,138,1,139,1,139,1,140,1,140,1,141, -1,141,1,141,1,141,3,141,1030,8,141,1,142,1,142,1,142,1,142,3,142,1036,8, -142,1,143,1,143,3,143,1040,8,143,1,143,5,143,1043,8,143,10,143,12,143,1046, -9,143,1,143,4,143,1049,8,143,11,143,12,143,1050,1,143,3,143,1054,8,143,1, -143,5,143,1057,8,143,10,143,12,143,1060,9,143,3,143,1062,8,143,1,144,1,144, -1,144,3,144,1067,8,144,1,144,4,144,1070,8,144,11,144,12,144,1071,1,145,1, -145,1,145,3,145,1077,8,145,1,145,4,145,1080,8,145,11,145,12,145,1081,1,146, -1,146,1,146,3,146,1087,8,146,1,146,4,146,1090,8,146,11,146,12,146,1091,1, -147,1,147,1,148,1,148,1,149,1,149,1,150,1,150,1,151,1,151,3,151,1104,8,151, -1,152,1,152,3,152,1108,8,152,1,153,3,153,1111,8,153,1,153,1,153,1,153,1, -153,3,153,1117,8,153,1,154,1,154,3,154,1121,8,154,1,154,1,154,1,155,1,155, -3,155,1127,8,155,1,155,5,155,1130,8,155,10,155,12,155,1133,9,155,1,156,1, -156,1,156,1,157,1,157,3,157,1140,8,157,1,157,1,157,1,158,1,158,3,158,1146, -8,158,1,158,1,158,1,159,3,159,1151,8,159,1,159,1,159,1,160,1,160,3,160,1157, -8,160,1,161,1,161,4,851,864,945,958,0,162,7,6,9,7,11,8,13,9,15,10,17,11, -19,12,21,13,23,14,25,15,27,16,29,17,31,18,33,19,35,20,37,21,39,22,41,23, -43,24,45,25,47,26,49,27,51,28,53,29,55,30,57,31,59,32,61,33,63,34,65,35, -67,36,69,37,71,38,73,39,75,40,77,41,79,42,81,43,83,44,85,45,87,46,89,47, -91,48,93,49,95,50,97,51,99,52,101,53,103,54,105,55,107,56,109,57,111,58, -113,59,115,60,117,61,119,62,121,63,123,64,125,65,127,66,129,67,131,68,133, -69,135,70,137,71,139,72,141,73,143,74,145,75,147,76,149,77,151,78,153,79, -155,80,157,81,159,82,161,83,163,84,165,85,167,86,169,87,171,88,173,89,175, -90,177,91,179,92,181,93,183,94,185,95,187,96,189,0,191,0,193,0,195,0,197, -97,199,0,201,0,203,0,205,0,207,0,209,0,211,0,213,0,215,0,217,0,219,0,221, -0,223,0,225,0,227,0,229,0,231,0,233,0,235,0,237,0,239,0,241,0,243,0,245, -0,247,0,249,0,251,0,253,0,255,0,257,0,259,0,261,0,263,0,265,0,267,0,269, -0,271,0,273,0,275,0,277,0,279,0,281,0,283,0,285,0,287,0,289,0,291,0,293, -0,295,0,297,0,299,0,301,0,303,0,305,0,307,0,309,0,311,0,313,0,315,0,317, -0,319,0,321,0,323,0,325,0,327,0,329,0,7,0,1,2,3,4,5,6,27,2,0,10,10,13,13, -3,0,9,9,12,12,32,32,1,0,39,39,1,0,34,34,4,0,82,82,85,85,114,114,117,117, -4,0,10,10,13,13,39,39,92,92,4,0,10,10,13,13,34,34,92,92,1,0,92,92,2,0,66, -66,98,98,5,0,0,9,11,12,14,38,40,91,93,127,5,0,0,9,11,12,14,33,35,91,93,127, -2,0,0,91,93,127,1,0,0,127,2,0,70,70,102,102,3,0,39,39,123,123,125,125,3, -0,34,34,123,123,125,125,2,0,79,79,111,111,2,0,88,88,120,120,1,0,49,57,1, -0,48,57,1,0,48,55,2,0,65,70,97,102,2,0,69,69,101,101,2,0,43,43,45,45,2,0, -74,74,106,106,374,0,48,57,183,183,768,879,903,903,1155,1159,1425,1469,1471, -1471,1473,1474,1476,1477,1479,1479,1552,1562,1611,1641,1648,1648,1750,1756, -1759,1764,1767,1768,1770,1773,1776,1785,1809,1809,1840,1866,1958,1968,1984, -1993,2027,2035,2045,2045,2070,2073,2075,2083,2085,2087,2089,2093,2137,2139, -2200,2207,2250,2273,2275,2307,2362,2364,2366,2383,2385,2391,2402,2403,2406, -2415,2433,2435,2492,2492,2494,2500,2503,2504,2507,2509,2519,2519,2530,2531, -2534,2543,2558,2558,2561,2563,2620,2620,2622,2626,2631,2632,2635,2637,2641, -2641,2662,2673,2677,2677,2689,2691,2748,2748,2750,2757,2759,2761,2763,2765, -2786,2787,2790,2799,2810,2815,2817,2819,2876,2876,2878,2884,2887,2888,2891, -2893,2901,2903,2914,2915,2918,2927,2946,2946,3006,3010,3014,3016,3018,3021, -3031,3031,3046,3055,3072,3076,3132,3132,3134,3140,3142,3144,3146,3149,3157, -3158,3170,3171,3174,3183,3201,3203,3260,3260,3262,3268,3270,3272,3274,3277, -3285,3286,3298,3299,3302,3311,3315,3315,3328,3331,3387,3388,3390,3396,3398, -3400,3402,3405,3415,3415,3426,3427,3430,3439,3457,3459,3530,3530,3535,3540, -3542,3542,3544,3551,3558,3567,3570,3571,3633,3633,3635,3642,3655,3662,3664, -3673,3761,3761,3763,3772,3784,3790,3792,3801,3864,3865,3872,3881,3893,3893, -3895,3895,3897,3897,3902,3903,3953,3972,3974,3975,3981,3991,3993,4028,4038, -4038,4139,4158,4160,4169,4182,4185,4190,4192,4194,4196,4199,4205,4209,4212, -4226,4237,4239,4253,4957,4959,4969,4977,5906,5909,5938,5940,5970,5971,6002, -6003,6068,6099,6109,6109,6112,6121,6155,6157,6159,6169,6313,6313,6432,6443, -6448,6459,6470,6479,6608,6618,6679,6683,6741,6750,6752,6780,6783,6793,6800, -6809,6832,6845,6847,6862,6912,6916,6964,6980,6992,7001,7019,7027,7040,7042, -7073,7085,7088,7097,7142,7155,7204,7223,7232,7241,7248,7257,7376,7378,7380, -7400,7405,7405,7412,7412,7415,7417,7616,7679,8255,8256,8276,8276,8400,8412, -8417,8417,8421,8432,11503,11505,11647,11647,11744,11775,12330,12335,12441, -12442,42528,42537,42607,42607,42612,42621,42654,42655,42736,42737,43010, -43010,43014,43014,43019,43019,43043,43047,43052,43052,43136,43137,43188, -43205,43216,43225,43232,43249,43263,43273,43302,43309,43335,43347,43392, -43395,43443,43456,43472,43481,43493,43493,43504,43513,43561,43574,43587, -43587,43596,43597,43600,43609,43643,43645,43696,43696,43698,43700,43703, -43704,43710,43711,43713,43713,43755,43759,43765,43766,44003,44010,44012, -44013,44016,44025,64286,64286,65024,65039,65056,65071,65075,65076,65101, -65103,65296,65305,65343,65343,65438,65439,66045,66045,66272,66272,66422, -66426,66720,66729,68097,68099,68101,68102,68108,68111,68152,68154,68159, -68159,68325,68326,68900,68903,68912,68921,69291,69292,69373,69375,69446, -69456,69506,69509,69632,69634,69688,69702,69734,69744,69747,69748,69759, -69762,69808,69818,69826,69826,69872,69881,69888,69890,69927,69940,69942, -69951,69957,69958,70003,70003,70016,70018,70067,70080,70089,70092,70094, -70105,70188,70199,70206,70206,70209,70209,70367,70378,70384,70393,70400, -70403,70459,70460,70462,70468,70471,70472,70475,70477,70487,70487,70498, -70499,70502,70508,70512,70516,70709,70726,70736,70745,70750,70750,70832, -70851,70864,70873,71087,71093,71096,71104,71132,71133,71216,71232,71248, -71257,71339,71351,71360,71369,71453,71467,71472,71481,71724,71738,71904, -71913,71984,71989,71991,71992,71995,71998,72000,72000,72002,72003,72016, -72025,72145,72151,72154,72160,72164,72164,72193,72202,72243,72249,72251, -72254,72263,72263,72273,72283,72330,72345,72751,72758,72760,72767,72784, -72793,72850,72871,72873,72886,73009,73014,73018,73018,73020,73021,73023, -73029,73031,73031,73040,73049,73098,73102,73104,73105,73107,73111,73120, -73129,73459,73462,73472,73473,73475,73475,73524,73530,73534,73538,73552, -73561,78912,78912,78919,78933,92768,92777,92864,92873,92912,92916,92976, -92982,93008,93017,94031,94031,94033,94087,94095,94098,94180,94180,94192, -94193,113821,113822,118528,118573,118576,118598,119141,119145,119149,119154, -119163,119170,119173,119179,119210,119213,119362,119364,120782,120831,121344, -121398,121403,121452,121461,121461,121476,121476,121499,121503,121505,121519, -122880,122886,122888,122904,122907,122913,122915,122916,122918,122922,123023, -123023,123184,123190,123200,123209,123566,123566,123628,123641,124140,124153, -125136,125142,125252,125258,125264,125273,130032,130041,917760,917999,667, -0,65,90,95,95,97,122,170,170,181,181,186,186,192,214,216,246,248,705,710, -721,736,740,748,748,750,750,880,884,886,887,891,893,895,895,902,902,904, -906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,1369,1376, -1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766, -1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994, -2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136, -2144,2154,2160,2183,2185,2190,2208,2249,2308,2361,2365,2365,2384,2384,2392, -2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489, -2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565,2570,2575, -2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654, -2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749, -2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864, -2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949, -2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986, -2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160, -3162,3165,3165,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240,3242,3251, -3253,3257,3261,3261,3293,3294,3296,3297,3313,3314,3332,3340,3342,3344,3346, -3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,3461,3478,3482,3505, -3507,3515,3517,3517,3520,3526,3585,3632,3634,3634,3648,3654,3713,3714,3716, -3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3762,3773,3773,3776,3780, -3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159, -4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238, -4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696, -4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800, -4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5109,5112, -5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5905,5919,5937, -5952,5969,5984,5996,5998,6000,6016,6067,6103,6103,6108,6108,6176,6264,6272, -6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516,6528,6571,6576,6601, -6656,6678,6688,6740,6823,6823,6917,6963,6981,6988,7043,7072,7086,7087,7098, -7141,7168,7203,7245,7247,7258,7293,7296,7304,7312,7354,7357,7359,7401,7404, -7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960,7965,7968,8005,8008, -8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124, -8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182, -8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469, -8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526, -8526,8544,8584,11264,11492,11499,11502,11506,11507,11520,11557,11559,11559, -11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694, -11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742, -12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12445,12447, -12449,12538,12540,12543,12549,12591,12593,12686,12704,12735,12784,12799, -13312,19903,19968,42124,42192,42237,42240,42508,42512,42527,42538,42539, -42560,42606,42623,42653,42656,42735,42775,42783,42786,42888,42891,42954, -42960,42961,42963,42963,42965,42969,42994,43009,43011,43013,43015,43018, -43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43261,43262, -43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43488,43492, -43494,43503,43514,43518,43520,43560,43584,43586,43588,43595,43616,43638, -43642,43642,43646,43695,43697,43697,43701,43702,43705,43709,43712,43712, -43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790, -43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44002, -44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262, -64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318, -64320,64321,64323,64324,64326,64433,64467,64605,64612,64829,64848,64911, -64914,64967,65008,65017,65137,65137,65139,65139,65143,65143,65145,65145, -65147,65147,65149,65149,65151,65276,65313,65338,65345,65370,65382,65437, -65440,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547, -65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786, -65856,65908,66176,66204,66208,66256,66304,66335,66349,66378,66384,66421, -66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66736,66771, -66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962, -66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67072,67382, -67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589, -67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702, -67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023, -68030,68031,68096,68096,68112,68115,68117,68119,68121,68149,68192,68220, -68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448,68466, -68480,68497,68608,68680,68736,68786,68800,68850,68864,68899,69248,69289, -69296,69297,69376,69404,69415,69415,69424,69445,69488,69505,69552,69572, -69600,69622,69635,69687,69745,69746,69749,69749,69763,69807,69840,69864, -69891,69926,69956,69956,69959,69959,69968,70002,70006,70006,70019,70066, -70081,70084,70106,70106,70108,70108,70144,70161,70163,70187,70207,70208, -70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70366, -70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457, -70461,70461,70480,70480,70493,70497,70656,70708,70727,70730,70751,70753, -70784,70831,70852,70853,70855,70855,71040,71086,71128,71131,71168,71215, -71236,71236,71296,71338,71352,71352,71424,71450,71488,71494,71680,71723, -71840,71903,71935,71942,71945,71945,71948,71955,71957,71958,71960,71983, -71999,71999,72001,72001,72096,72103,72106,72144,72161,72161,72163,72163, -72192,72192,72203,72242,72250,72250,72272,72272,72284,72329,72349,72349, -72368,72440,72704,72712,72714,72750,72768,72768,72818,72847,72960,72966, -72968,72969,72971,73008,73030,73030,73056,73061,73063,73064,73066,73097, -73112,73112,73440,73458,73474,73474,73476,73488,73490,73523,73648,73648, -73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78913,78918, -82944,83526,92160,92728,92736,92766,92784,92862,92880,92909,92928,92975, -92992,92995,93027,93047,93053,93071,93760,93823,93952,94026,94032,94032, -94099,94111,94176,94177,94179,94179,94208,100343,100352,101589,101632,101640, -110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928, -110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788, -113792,113800,113808,113817,119808,119892,119894,119964,119966,119967,119970, -119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003, -120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123, -120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512, -120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656, -120686,120688,120712,120714,120744,120746,120770,120772,120779,122624,122654, -122661,122666,122928,122989,123136,123180,123191,123197,123214,123214,123536, -123565,123584,123627,124112,124139,124896,124902,124904,124907,124909,124910, -124912,124926,124928,125124,125184,125251,125259,125259,126464,126467,126469, -126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519, -126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539, -126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553, -126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567, -126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601, -126603,126619,126625,126627,126629,126633,126635,126651,131072,173791,173824, -177977,177984,178205,178208,183969,183984,191456,194560,195101,196608,201546, -201552,205743,1184,0,7,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15, -1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0, -0,27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,1, -0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0, -49,1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0,0,55,1,0,0,0,0,57,1,0,0,0,0,59,1,0, -0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,65,1,0,0,0,0,67,1,0,0,0,0,69,1,0,0,0,0,71, -1,0,0,0,0,73,1,0,0,0,0,75,1,0,0,0,0,77,1,0,0,0,0,79,1,0,0,0,0,81,1,0,0,0, -0,83,1,0,0,0,0,85,1,0,0,0,0,87,1,0,0,0,0,89,1,0,0,0,0,91,1,0,0,0,0,93,1, -0,0,0,0,95,1,0,0,0,0,97,1,0,0,0,0,99,1,0,0,0,0,101,1,0,0,0,0,103,1,0,0,0, -0,105,1,0,0,0,0,107,1,0,0,0,0,109,1,0,0,0,0,111,1,0,0,0,0,113,1,0,0,0,0, -115,1,0,0,0,0,117,1,0,0,0,0,119,1,0,0,0,0,121,1,0,0,0,0,123,1,0,0,0,0,125, -1,0,0,0,0,127,1,0,0,0,0,129,1,0,0,0,0,131,1,0,0,0,0,133,1,0,0,0,0,135,1, -0,0,0,0,137,1,0,0,0,0,139,1,0,0,0,0,141,1,0,0,0,0,143,1,0,0,0,0,145,1,0, -0,0,0,147,1,0,0,0,0,149,1,0,0,0,0,151,1,0,0,0,0,153,1,0,0,0,0,155,1,0,0, -0,0,157,1,0,0,0,0,159,1,0,0,0,0,161,1,0,0,0,0,163,1,0,0,0,0,165,1,0,0,0, -0,167,1,0,0,0,0,169,1,0,0,0,0,171,1,0,0,0,0,173,1,0,0,0,0,175,1,0,0,0,0, -177,1,0,0,0,0,179,1,0,0,0,0,181,1,0,0,0,0,183,1,0,0,0,0,185,1,0,0,0,0,187, -1,0,0,0,0,189,1,0,0,0,0,191,1,0,0,0,0,193,1,0,0,0,0,195,1,0,0,0,0,197,1, -0,0,0,1,199,1,0,0,0,1,201,1,0,0,0,1,203,1,0,0,0,2,205,1,0,0,0,2,207,1,0, -0,0,2,209,1,0,0,0,3,211,1,0,0,0,3,213,1,0,0,0,3,215,1,0,0,0,4,217,1,0,0, -0,4,219,1,0,0,0,4,221,1,0,0,0,5,223,1,0,0,0,5,225,1,0,0,0,5,227,1,0,0,0, -6,229,1,0,0,0,6,231,1,0,0,0,6,233,1,0,0,0,7,331,1,0,0,0,9,337,1,0,0,0,11, -343,1,0,0,0,13,348,1,0,0,0,15,355,1,0,0,0,17,360,1,0,0,0,19,365,1,0,0,0, -21,371,1,0,0,0,23,378,1,0,0,0,25,381,1,0,0,0,27,387,1,0,0,0,29,392,1,0,0, -0,31,398,1,0,0,0,33,406,1,0,0,0,35,409,1,0,0,0,37,416,1,0,0,0,39,420,1,0, -0,0,41,429,1,0,0,0,43,433,1,0,0,0,45,440,1,0,0,0,47,444,1,0,0,0,49,447,1, -0,0,0,51,451,1,0,0,0,53,456,1,0,0,0,55,465,1,0,0,0,57,471,1,0,0,0,59,478, -1,0,0,0,61,482,1,0,0,0,63,489,1,0,0,0,65,493,1,0,0,0,67,498,1,0,0,0,69,504, -1,0,0,0,71,509,1,0,0,0,73,512,1,0,0,0,75,515,1,0,0,0,77,521,1,0,0,0,79,523, -1,0,0,0,81,525,1,0,0,0,83,527,1,0,0,0,85,529,1,0,0,0,87,531,1,0,0,0,89,533, -1,0,0,0,91,535,1,0,0,0,93,537,1,0,0,0,95,539,1,0,0,0,97,541,1,0,0,0,99,543, -1,0,0,0,101,545,1,0,0,0,103,547,1,0,0,0,105,549,1,0,0,0,107,551,1,0,0,0, -109,553,1,0,0,0,111,555,1,0,0,0,113,557,1,0,0,0,115,559,1,0,0,0,117,561, -1,0,0,0,119,564,1,0,0,0,121,567,1,0,0,0,123,570,1,0,0,0,125,573,1,0,0,0, -127,575,1,0,0,0,129,577,1,0,0,0,131,580,1,0,0,0,133,583,1,0,0,0,135,586, -1,0,0,0,137,589,1,0,0,0,139,592,1,0,0,0,141,595,1,0,0,0,143,598,1,0,0,0, -145,601,1,0,0,0,147,604,1,0,0,0,149,607,1,0,0,0,151,610,1,0,0,0,153,614, -1,0,0,0,155,618,1,0,0,0,157,622,1,0,0,0,159,625,1,0,0,0,161,629,1,0,0,0, -163,631,1,0,0,0,165,634,1,0,0,0,167,637,1,0,0,0,169,641,1,0,0,0,171,644, -1,0,0,0,173,646,1,0,0,0,175,656,1,0,0,0,177,660,1,0,0,0,179,662,1,0,0,0, -181,678,1,0,0,0,183,680,1,0,0,0,185,690,1,0,0,0,187,696,1,0,0,0,189,701, -1,0,0,0,191,707,1,0,0,0,193,713,1,0,0,0,195,721,1,0,0,0,197,729,1,0,0,0, -199,731,1,0,0,0,201,736,1,0,0,0,203,740,1,0,0,0,205,744,1,0,0,0,207,749, -1,0,0,0,209,753,1,0,0,0,211,757,1,0,0,0,213,764,1,0,0,0,215,768,1,0,0,0, -217,772,1,0,0,0,219,779,1,0,0,0,221,783,1,0,0,0,223,788,1,0,0,0,225,794, -1,0,0,0,227,798,1,0,0,0,229,803,1,0,0,0,231,809,1,0,0,0,233,813,1,0,0,0, -235,818,1,0,0,0,237,824,1,0,0,0,239,842,1,0,0,0,241,870,1,0,0,0,243,874, -1,0,0,0,245,878,1,0,0,0,247,882,1,0,0,0,249,884,1,0,0,0,251,886,1,0,0,0, -253,888,1,0,0,0,255,894,1,0,0,0,257,896,1,0,0,0,259,918,1,0,0,0,261,936, -1,0,0,0,263,964,1,0,0,0,265,968,1,0,0,0,267,972,1,0,0,0,269,976,1,0,0,0, -271,979,1,0,0,0,273,982,1,0,0,0,275,985,1,0,0,0,277,987,1,0,0,0,279,992, -1,0,0,0,281,998,1,0,0,0,283,1019,1,0,0,0,285,1021,1,0,0,0,287,1023,1,0,0, -0,289,1029,1,0,0,0,291,1035,1,0,0,0,293,1061,1,0,0,0,295,1063,1,0,0,0,297, -1073,1,0,0,0,299,1083,1,0,0,0,301,1093,1,0,0,0,303,1095,1,0,0,0,305,1097, -1,0,0,0,307,1099,1,0,0,0,309,1103,1,0,0,0,311,1107,1,0,0,0,313,1116,1,0, -0,0,315,1120,1,0,0,0,317,1124,1,0,0,0,319,1134,1,0,0,0,321,1137,1,0,0,0, -323,1145,1,0,0,0,325,1150,1,0,0,0,327,1156,1,0,0,0,329,1158,1,0,0,0,331, -332,5,70,0,0,332,333,5,97,0,0,333,334,5,108,0,0,334,335,5,115,0,0,335,336, -5,101,0,0,336,8,1,0,0,0,337,338,5,97,0,0,338,339,5,119,0,0,339,340,5,97, -0,0,340,341,5,105,0,0,341,342,5,116,0,0,342,10,1,0,0,0,343,344,5,101,0,0, -344,345,5,108,0,0,345,346,5,115,0,0,346,347,5,101,0,0,347,12,1,0,0,0,348, -349,5,105,0,0,349,350,5,109,0,0,350,351,5,112,0,0,351,352,5,111,0,0,352, -353,5,114,0,0,353,354,5,116,0,0,354,14,1,0,0,0,355,356,5,112,0,0,356,357, -5,97,0,0,357,358,5,115,0,0,358,359,5,115,0,0,359,16,1,0,0,0,360,361,5,78, -0,0,361,362,5,111,0,0,362,363,5,110,0,0,363,364,5,101,0,0,364,18,1,0,0,0, -365,366,5,98,0,0,366,367,5,114,0,0,367,368,5,101,0,0,368,369,5,97,0,0,369, -370,5,107,0,0,370,20,1,0,0,0,371,372,5,101,0,0,372,373,5,120,0,0,373,374, -5,99,0,0,374,375,5,101,0,0,375,376,5,112,0,0,376,377,5,116,0,0,377,22,1, -0,0,0,378,379,5,105,0,0,379,380,5,110,0,0,380,24,1,0,0,0,381,382,5,114,0, -0,382,383,5,97,0,0,383,384,5,105,0,0,384,385,5,115,0,0,385,386,5,101,0,0, -386,26,1,0,0,0,387,388,5,84,0,0,388,389,5,114,0,0,389,390,5,117,0,0,390, -391,5,101,0,0,391,28,1,0,0,0,392,393,5,99,0,0,393,394,5,108,0,0,394,395, -5,97,0,0,395,396,5,115,0,0,396,397,5,115,0,0,397,30,1,0,0,0,398,399,5,102, -0,0,399,400,5,105,0,0,400,401,5,110,0,0,401,402,5,97,0,0,402,403,5,108,0, -0,403,404,5,108,0,0,404,405,5,121,0,0,405,32,1,0,0,0,406,407,5,105,0,0,407, -408,5,115,0,0,408,34,1,0,0,0,409,410,5,114,0,0,410,411,5,101,0,0,411,412, -5,116,0,0,412,413,5,117,0,0,413,414,5,114,0,0,414,415,5,110,0,0,415,36,1, -0,0,0,416,417,5,97,0,0,417,418,5,110,0,0,418,419,5,100,0,0,419,38,1,0,0, -0,420,421,5,99,0,0,421,422,5,111,0,0,422,423,5,110,0,0,423,424,5,116,0,0, -424,425,5,105,0,0,425,426,5,110,0,0,426,427,5,117,0,0,427,428,5,101,0,0, -428,40,1,0,0,0,429,430,5,102,0,0,430,431,5,111,0,0,431,432,5,114,0,0,432, -42,1,0,0,0,433,434,5,108,0,0,434,435,5,97,0,0,435,436,5,109,0,0,436,437, -5,98,0,0,437,438,5,100,0,0,438,439,5,97,0,0,439,44,1,0,0,0,440,441,5,116, -0,0,441,442,5,114,0,0,442,443,5,121,0,0,443,46,1,0,0,0,444,445,5,97,0,0, -445,446,5,115,0,0,446,48,1,0,0,0,447,448,5,100,0,0,448,449,5,101,0,0,449, -450,5,102,0,0,450,50,1,0,0,0,451,452,5,102,0,0,452,453,5,114,0,0,453,454, -5,111,0,0,454,455,5,109,0,0,455,52,1,0,0,0,456,457,5,110,0,0,457,458,5,111, -0,0,458,459,5,110,0,0,459,460,5,108,0,0,460,461,5,111,0,0,461,462,5,99,0, -0,462,463,5,97,0,0,463,464,5,108,0,0,464,54,1,0,0,0,465,466,5,119,0,0,466, -467,5,104,0,0,467,468,5,105,0,0,468,469,5,108,0,0,469,470,5,101,0,0,470, -56,1,0,0,0,471,472,5,97,0,0,472,473,5,115,0,0,473,474,5,115,0,0,474,475, -5,101,0,0,475,476,5,114,0,0,476,477,5,116,0,0,477,58,1,0,0,0,478,479,5,100, -0,0,479,480,5,101,0,0,480,481,5,108,0,0,481,60,1,0,0,0,482,483,5,103,0,0, -483,484,5,108,0,0,484,485,5,111,0,0,485,486,5,98,0,0,486,487,5,97,0,0,487, -488,5,108,0,0,488,62,1,0,0,0,489,490,5,110,0,0,490,491,5,111,0,0,491,492, -5,116,0,0,492,64,1,0,0,0,493,494,5,119,0,0,494,495,5,105,0,0,495,496,5,116, -0,0,496,497,5,104,0,0,497,66,1,0,0,0,498,499,5,97,0,0,499,500,5,115,0,0, -500,501,5,121,0,0,501,502,5,110,0,0,502,503,5,99,0,0,503,68,1,0,0,0,504, -505,5,101,0,0,505,506,5,108,0,0,506,507,5,105,0,0,507,508,5,102,0,0,508, -70,1,0,0,0,509,510,5,105,0,0,510,511,5,102,0,0,511,72,1,0,0,0,512,513,5, -111,0,0,513,514,5,114,0,0,514,74,1,0,0,0,515,516,5,121,0,0,516,517,5,105, -0,0,517,518,5,101,0,0,518,519,5,108,0,0,519,520,5,100,0,0,520,76,1,0,0,0, -521,522,5,40,0,0,522,78,1,0,0,0,523,524,5,91,0,0,524,80,1,0,0,0,525,526, -5,123,0,0,526,82,1,0,0,0,527,528,5,41,0,0,528,84,1,0,0,0,529,530,5,93,0, -0,530,86,1,0,0,0,531,532,5,125,0,0,532,88,1,0,0,0,533,534,5,46,0,0,534,90, -1,0,0,0,535,536,5,58,0,0,536,92,1,0,0,0,537,538,5,44,0,0,538,94,1,0,0,0, -539,540,5,59,0,0,540,96,1,0,0,0,541,542,5,43,0,0,542,98,1,0,0,0,543,544, -5,45,0,0,544,100,1,0,0,0,545,546,5,42,0,0,546,102,1,0,0,0,547,548,5,47,0, -0,548,104,1,0,0,0,549,550,5,124,0,0,550,106,1,0,0,0,551,552,5,38,0,0,552, -108,1,0,0,0,553,554,5,60,0,0,554,110,1,0,0,0,555,556,5,62,0,0,556,112,1, -0,0,0,557,558,5,61,0,0,558,114,1,0,0,0,559,560,5,37,0,0,560,116,1,0,0,0, -561,562,5,61,0,0,562,563,5,61,0,0,563,118,1,0,0,0,564,565,5,33,0,0,565,566, -5,61,0,0,566,120,1,0,0,0,567,568,5,60,0,0,568,569,5,61,0,0,569,122,1,0,0, -0,570,571,5,62,0,0,571,572,5,61,0,0,572,124,1,0,0,0,573,574,5,126,0,0,574, -126,1,0,0,0,575,576,5,94,0,0,576,128,1,0,0,0,577,578,5,60,0,0,578,579,5, -60,0,0,579,130,1,0,0,0,580,581,5,62,0,0,581,582,5,62,0,0,582,132,1,0,0,0, -583,584,5,42,0,0,584,585,5,42,0,0,585,134,1,0,0,0,586,587,5,43,0,0,587,588, -5,61,0,0,588,136,1,0,0,0,589,590,5,45,0,0,590,591,5,61,0,0,591,138,1,0,0, -0,592,593,5,42,0,0,593,594,5,61,0,0,594,140,1,0,0,0,595,596,5,47,0,0,596, -597,5,61,0,0,597,142,1,0,0,0,598,599,5,37,0,0,599,600,5,61,0,0,600,144,1, -0,0,0,601,602,5,38,0,0,602,603,5,61,0,0,603,146,1,0,0,0,604,605,5,124,0, -0,605,606,5,61,0,0,606,148,1,0,0,0,607,608,5,94,0,0,608,609,5,61,0,0,609, -150,1,0,0,0,610,611,5,60,0,0,611,612,5,60,0,0,612,613,5,61,0,0,613,152,1, -0,0,0,614,615,5,62,0,0,615,616,5,62,0,0,616,617,5,61,0,0,617,154,1,0,0,0, -618,619,5,42,0,0,619,620,5,42,0,0,620,621,5,61,0,0,621,156,1,0,0,0,622,623, -5,47,0,0,623,624,5,47,0,0,624,158,1,0,0,0,625,626,5,47,0,0,626,627,5,47, -0,0,627,628,5,61,0,0,628,160,1,0,0,0,629,630,5,64,0,0,630,162,1,0,0,0,631, -632,5,64,0,0,632,633,5,61,0,0,633,164,1,0,0,0,634,635,5,45,0,0,635,636,5, -62,0,0,636,166,1,0,0,0,637,638,5,46,0,0,638,639,5,46,0,0,639,640,5,46,0, -0,640,168,1,0,0,0,641,642,5,58,0,0,642,643,5,61,0,0,643,170,1,0,0,0,644, -645,5,33,0,0,645,172,1,0,0,0,646,650,3,329,161,0,647,649,3,327,160,0,648, -647,1,0,0,0,649,652,1,0,0,0,650,648,1,0,0,0,650,651,1,0,0,0,651,174,1,0, -0,0,652,650,1,0,0,0,653,657,3,291,142,0,654,657,3,311,152,0,655,657,3,323, -158,0,656,653,1,0,0,0,656,654,1,0,0,0,656,655,1,0,0,0,657,176,1,0,0,0,658, -661,3,235,114,0,659,661,3,257,125,0,660,658,1,0,0,0,660,659,1,0,0,0,661, -178,1,0,0,0,662,664,5,35,0,0,663,665,3,185,89,0,664,663,1,0,0,0,664,665, -1,0,0,0,665,666,1,0,0,0,666,667,5,116,0,0,667,668,5,121,0,0,668,669,5,112, -0,0,669,670,5,101,0,0,670,671,5,58,0,0,671,675,1,0,0,0,672,674,8,0,0,0,673, -672,1,0,0,0,674,677,1,0,0,0,675,673,1,0,0,0,675,676,1,0,0,0,676,180,1,0, -0,0,677,675,1,0,0,0,678,679,3,325,159,0,679,182,1,0,0,0,680,684,5,35,0,0, -681,683,8,0,0,0,682,681,1,0,0,0,683,686,1,0,0,0,684,682,1,0,0,0,684,685, -1,0,0,0,685,687,1,0,0,0,686,684,1,0,0,0,687,688,6,88,0,0,688,184,1,0,0,0, -689,691,7,1,0,0,690,689,1,0,0,0,691,692,1,0,0,0,692,690,1,0,0,0,692,693, -1,0,0,0,693,694,1,0,0,0,694,695,6,89,0,0,695,186,1,0,0,0,696,697,5,92,0, -0,697,698,3,181,87,0,698,699,1,0,0,0,699,700,6,90,0,0,700,188,1,0,0,0,701, -702,3,283,138,0,702,703,7,2,0,0,703,704,1,0,0,0,704,705,6,91,1,0,705,706, -6,91,2,0,706,190,1,0,0,0,707,708,3,283,138,0,708,709,7,3,0,0,709,710,1,0, -0,0,710,711,6,92,1,0,711,712,6,92,3,0,712,192,1,0,0,0,713,714,3,283,138, -0,714,715,7,2,0,0,715,716,7,2,0,0,716,717,7,2,0,0,717,718,1,0,0,0,718,719, -6,93,1,0,719,720,6,93,4,0,720,194,1,0,0,0,721,722,3,283,138,0,722,723,7, -3,0,0,723,724,7,3,0,0,724,725,7,3,0,0,725,726,1,0,0,0,726,727,6,94,1,0,727, -728,6,94,5,0,728,196,1,0,0,0,729,730,9,0,0,0,730,198,1,0,0,0,731,732,7,2, -0,0,732,733,1,0,0,0,733,734,6,96,6,0,734,735,6,96,7,0,735,200,1,0,0,0,736, -737,3,279,136,0,737,738,1,0,0,0,738,739,6,97,8,0,739,202,1,0,0,0,740,741, -5,123,0,0,741,742,1,0,0,0,742,743,6,98,9,0,743,204,1,0,0,0,744,745,7,3,0, -0,745,746,1,0,0,0,746,747,6,99,6,0,747,748,6,99,7,0,748,206,1,0,0,0,749, -750,3,281,137,0,750,751,1,0,0,0,751,752,6,100,8,0,752,208,1,0,0,0,753,754, -5,123,0,0,754,755,1,0,0,0,755,756,6,101,9,0,756,210,1,0,0,0,757,758,7,2, -0,0,758,759,7,2,0,0,759,760,7,2,0,0,760,761,1,0,0,0,761,762,6,102,6,0,762, -763,6,102,7,0,763,212,1,0,0,0,764,765,3,279,136,0,765,766,1,0,0,0,766,767, -6,103,8,0,767,214,1,0,0,0,768,769,5,123,0,0,769,770,1,0,0,0,770,771,6,104, -9,0,771,216,1,0,0,0,772,773,7,3,0,0,773,774,7,3,0,0,774,775,7,3,0,0,775, -776,1,0,0,0,776,777,6,105,6,0,777,778,6,105,7,0,778,218,1,0,0,0,779,780, -3,281,137,0,780,781,1,0,0,0,781,782,6,106,8,0,782,220,1,0,0,0,783,784,5, -123,0,0,784,785,1,0,0,0,785,786,6,107,9,0,786,222,1,0,0,0,787,789,3,285, -139,0,788,787,1,0,0,0,789,790,1,0,0,0,790,788,1,0,0,0,790,791,1,0,0,0,791, -792,1,0,0,0,792,793,6,108,8,0,793,224,1,0,0,0,794,795,5,123,0,0,795,796, -1,0,0,0,796,797,6,109,9,0,797,226,1,0,0,0,798,799,5,125,0,0,799,800,1,0, -0,0,800,801,6,110,10,0,801,228,1,0,0,0,802,804,3,287,140,0,803,802,1,0,0, -0,804,805,1,0,0,0,805,803,1,0,0,0,805,806,1,0,0,0,806,807,1,0,0,0,807,808, -6,111,8,0,808,230,1,0,0,0,809,810,5,123,0,0,810,811,1,0,0,0,811,812,6,112, -9,0,812,232,1,0,0,0,813,814,5,125,0,0,814,815,1,0,0,0,815,816,6,113,10,0, -816,234,1,0,0,0,817,819,3,237,115,0,818,817,1,0,0,0,818,819,1,0,0,0,819, -822,1,0,0,0,820,823,3,239,116,0,821,823,3,241,117,0,822,820,1,0,0,0,822, -821,1,0,0,0,823,236,1,0,0,0,824,825,7,4,0,0,825,238,1,0,0,0,826,830,5,39, -0,0,827,829,3,243,118,0,828,827,1,0,0,0,829,832,1,0,0,0,830,828,1,0,0,0, -830,831,1,0,0,0,831,833,1,0,0,0,832,830,1,0,0,0,833,843,5,39,0,0,834,838, -5,34,0,0,835,837,3,245,119,0,836,835,1,0,0,0,837,840,1,0,0,0,838,836,1,0, -0,0,838,839,1,0,0,0,839,841,1,0,0,0,840,838,1,0,0,0,841,843,5,34,0,0,842, -826,1,0,0,0,842,834,1,0,0,0,843,240,1,0,0,0,844,845,5,39,0,0,845,846,5,39, -0,0,846,847,5,39,0,0,847,851,1,0,0,0,848,850,3,247,120,0,849,848,1,0,0,0, -850,853,1,0,0,0,851,852,1,0,0,0,851,849,1,0,0,0,852,854,1,0,0,0,853,851, -1,0,0,0,854,855,5,39,0,0,855,856,5,39,0,0,856,871,5,39,0,0,857,858,5,34, -0,0,858,859,5,34,0,0,859,860,5,34,0,0,860,864,1,0,0,0,861,863,3,247,120, -0,862,861,1,0,0,0,863,866,1,0,0,0,864,865,1,0,0,0,864,862,1,0,0,0,865,867, -1,0,0,0,866,864,1,0,0,0,867,868,5,34,0,0,868,869,5,34,0,0,869,871,5,34,0, -0,870,844,1,0,0,0,870,857,1,0,0,0,871,242,1,0,0,0,872,875,3,249,121,0,873, -875,3,255,124,0,874,872,1,0,0,0,874,873,1,0,0,0,875,244,1,0,0,0,876,879, -3,251,122,0,877,879,3,255,124,0,878,876,1,0,0,0,878,877,1,0,0,0,879,246, -1,0,0,0,880,883,3,253,123,0,881,883,3,255,124,0,882,880,1,0,0,0,882,881, -1,0,0,0,883,248,1,0,0,0,884,885,8,5,0,0,885,250,1,0,0,0,886,887,8,6,0,0, -887,252,1,0,0,0,888,889,8,7,0,0,889,254,1,0,0,0,890,891,5,92,0,0,891,895, -3,325,159,0,892,893,5,92,0,0,893,895,9,0,0,0,894,890,1,0,0,0,894,892,1,0, -0,0,895,256,1,0,0,0,896,899,3,259,126,0,897,900,3,261,127,0,898,900,3,263, -128,0,899,897,1,0,0,0,899,898,1,0,0,0,900,258,1,0,0,0,901,919,7,8,0,0,902, -903,5,98,0,0,903,919,5,114,0,0,904,905,5,66,0,0,905,919,5,114,0,0,906,907, -5,98,0,0,907,919,5,82,0,0,908,909,5,66,0,0,909,919,5,82,0,0,910,911,5,114, -0,0,911,919,5,98,0,0,912,913,5,114,0,0,913,919,5,66,0,0,914,915,5,82,0,0, -915,919,5,98,0,0,916,917,5,82,0,0,917,919,5,66,0,0,918,901,1,0,0,0,918,902, -1,0,0,0,918,904,1,0,0,0,918,906,1,0,0,0,918,908,1,0,0,0,918,910,1,0,0,0, -918,912,1,0,0,0,918,914,1,0,0,0,918,916,1,0,0,0,919,260,1,0,0,0,920,924, -5,39,0,0,921,923,3,265,129,0,922,921,1,0,0,0,923,926,1,0,0,0,924,922,1,0, -0,0,924,925,1,0,0,0,925,927,1,0,0,0,926,924,1,0,0,0,927,937,5,39,0,0,928, -932,5,34,0,0,929,931,3,267,130,0,930,929,1,0,0,0,931,934,1,0,0,0,932,930, -1,0,0,0,932,933,1,0,0,0,933,935,1,0,0,0,934,932,1,0,0,0,935,937,5,34,0,0, -936,920,1,0,0,0,936,928,1,0,0,0,937,262,1,0,0,0,938,939,5,39,0,0,939,940, -5,39,0,0,940,941,5,39,0,0,941,945,1,0,0,0,942,944,3,269,131,0,943,942,1, -0,0,0,944,947,1,0,0,0,945,946,1,0,0,0,945,943,1,0,0,0,946,948,1,0,0,0,947, -945,1,0,0,0,948,949,5,39,0,0,949,950,5,39,0,0,950,965,5,39,0,0,951,952,5, -34,0,0,952,953,5,34,0,0,953,954,5,34,0,0,954,958,1,0,0,0,955,957,3,269,131, -0,956,955,1,0,0,0,957,960,1,0,0,0,958,959,1,0,0,0,958,956,1,0,0,0,959,961, -1,0,0,0,960,958,1,0,0,0,961,962,5,34,0,0,962,963,5,34,0,0,963,965,5,34,0, -0,964,938,1,0,0,0,964,951,1,0,0,0,965,264,1,0,0,0,966,969,3,271,132,0,967, -969,3,277,135,0,968,966,1,0,0,0,968,967,1,0,0,0,969,266,1,0,0,0,970,973, -3,273,133,0,971,973,3,277,135,0,972,970,1,0,0,0,972,971,1,0,0,0,973,268, -1,0,0,0,974,977,3,275,134,0,975,977,3,277,135,0,976,974,1,0,0,0,976,975, -1,0,0,0,977,270,1,0,0,0,978,980,7,9,0,0,979,978,1,0,0,0,980,272,1,0,0,0, -981,983,7,10,0,0,982,981,1,0,0,0,983,274,1,0,0,0,984,986,7,11,0,0,985,984, -1,0,0,0,986,276,1,0,0,0,987,988,5,92,0,0,988,989,7,12,0,0,989,278,1,0,0, -0,990,993,3,285,139,0,991,993,3,289,141,0,992,990,1,0,0,0,992,991,1,0,0, -0,993,994,1,0,0,0,994,992,1,0,0,0,994,995,1,0,0,0,995,280,1,0,0,0,996,999, -3,287,140,0,997,999,3,289,141,0,998,996,1,0,0,0,998,997,1,0,0,0,999,1000, -1,0,0,0,1000,998,1,0,0,0,1000,1001,1,0,0,0,1001,282,1,0,0,0,1002,1020,7, -13,0,0,1003,1004,5,102,0,0,1004,1020,5,114,0,0,1005,1006,5,70,0,0,1006,1020, -5,114,0,0,1007,1008,5,102,0,0,1008,1020,5,82,0,0,1009,1010,5,70,0,0,1010, -1020,5,82,0,0,1011,1012,5,114,0,0,1012,1020,5,102,0,0,1013,1014,5,114,0, -0,1014,1020,5,70,0,0,1015,1016,5,82,0,0,1016,1020,5,102,0,0,1017,1018,5, -82,0,0,1018,1020,5,70,0,0,1019,1002,1,0,0,0,1019,1003,1,0,0,0,1019,1005, -1,0,0,0,1019,1007,1,0,0,0,1019,1009,1,0,0,0,1019,1011,1,0,0,0,1019,1013, -1,0,0,0,1019,1015,1,0,0,0,1019,1017,1,0,0,0,1020,284,1,0,0,0,1021,1022,8, -14,0,0,1022,286,1,0,0,0,1023,1024,8,15,0,0,1024,288,1,0,0,0,1025,1026,5, -123,0,0,1026,1030,5,123,0,0,1027,1028,5,125,0,0,1028,1030,5,125,0,0,1029, -1025,1,0,0,0,1029,1027,1,0,0,0,1030,290,1,0,0,0,1031,1036,3,293,143,0,1032, -1036,3,295,144,0,1033,1036,3,297,145,0,1034,1036,3,299,146,0,1035,1031,1, -0,0,0,1035,1032,1,0,0,0,1035,1033,1,0,0,0,1035,1034,1,0,0,0,1036,292,1,0, -0,0,1037,1044,3,301,147,0,1038,1040,5,95,0,0,1039,1038,1,0,0,0,1039,1040, -1,0,0,0,1040,1041,1,0,0,0,1041,1043,3,303,148,0,1042,1039,1,0,0,0,1043,1046, -1,0,0,0,1044,1042,1,0,0,0,1044,1045,1,0,0,0,1045,1062,1,0,0,0,1046,1044, -1,0,0,0,1047,1049,5,48,0,0,1048,1047,1,0,0,0,1049,1050,1,0,0,0,1050,1048, -1,0,0,0,1050,1051,1,0,0,0,1051,1058,1,0,0,0,1052,1054,5,95,0,0,1053,1052, -1,0,0,0,1053,1054,1,0,0,0,1054,1055,1,0,0,0,1055,1057,5,48,0,0,1056,1053, -1,0,0,0,1057,1060,1,0,0,0,1058,1056,1,0,0,0,1058,1059,1,0,0,0,1059,1062, -1,0,0,0,1060,1058,1,0,0,0,1061,1037,1,0,0,0,1061,1048,1,0,0,0,1062,294,1, -0,0,0,1063,1064,5,48,0,0,1064,1069,7,8,0,0,1065,1067,5,95,0,0,1066,1065, -1,0,0,0,1066,1067,1,0,0,0,1067,1068,1,0,0,0,1068,1070,3,305,149,0,1069,1066, -1,0,0,0,1070,1071,1,0,0,0,1071,1069,1,0,0,0,1071,1072,1,0,0,0,1072,296,1, -0,0,0,1073,1074,5,48,0,0,1074,1079,7,16,0,0,1075,1077,5,95,0,0,1076,1075, -1,0,0,0,1076,1077,1,0,0,0,1077,1078,1,0,0,0,1078,1080,3,307,150,0,1079,1076, -1,0,0,0,1080,1081,1,0,0,0,1081,1079,1,0,0,0,1081,1082,1,0,0,0,1082,298,1, -0,0,0,1083,1084,5,48,0,0,1084,1089,7,17,0,0,1085,1087,5,95,0,0,1086,1085, -1,0,0,0,1086,1087,1,0,0,0,1087,1088,1,0,0,0,1088,1090,3,309,151,0,1089,1086, -1,0,0,0,1090,1091,1,0,0,0,1091,1089,1,0,0,0,1091,1092,1,0,0,0,1092,300,1, -0,0,0,1093,1094,7,18,0,0,1094,302,1,0,0,0,1095,1096,7,19,0,0,1096,304,1, -0,0,0,1097,1098,2,48,49,0,1098,306,1,0,0,0,1099,1100,7,20,0,0,1100,308,1, -0,0,0,1101,1104,3,303,148,0,1102,1104,7,21,0,0,1103,1101,1,0,0,0,1103,1102, -1,0,0,0,1104,310,1,0,0,0,1105,1108,3,313,153,0,1106,1108,3,315,154,0,1107, -1105,1,0,0,0,1107,1106,1,0,0,0,1108,312,1,0,0,0,1109,1111,3,317,155,0,1110, -1109,1,0,0,0,1110,1111,1,0,0,0,1111,1112,1,0,0,0,1112,1117,3,319,156,0,1113, -1114,3,317,155,0,1114,1115,5,46,0,0,1115,1117,1,0,0,0,1116,1110,1,0,0,0, -1116,1113,1,0,0,0,1117,314,1,0,0,0,1118,1121,3,317,155,0,1119,1121,3,313, -153,0,1120,1118,1,0,0,0,1120,1119,1,0,0,0,1121,1122,1,0,0,0,1122,1123,3, -321,157,0,1123,316,1,0,0,0,1124,1131,3,303,148,0,1125,1127,5,95,0,0,1126, -1125,1,0,0,0,1126,1127,1,0,0,0,1127,1128,1,0,0,0,1128,1130,3,303,148,0,1129, -1126,1,0,0,0,1130,1133,1,0,0,0,1131,1129,1,0,0,0,1131,1132,1,0,0,0,1132, -318,1,0,0,0,1133,1131,1,0,0,0,1134,1135,5,46,0,0,1135,1136,3,317,155,0,1136, -320,1,0,0,0,1137,1139,7,22,0,0,1138,1140,7,23,0,0,1139,1138,1,0,0,0,1139, -1140,1,0,0,0,1140,1141,1,0,0,0,1141,1142,3,317,155,0,1142,322,1,0,0,0,1143, -1146,3,311,152,0,1144,1146,3,317,155,0,1145,1143,1,0,0,0,1145,1144,1,0,0, -0,1146,1147,1,0,0,0,1147,1148,7,24,0,0,1148,324,1,0,0,0,1149,1151,5,13,0, -0,1150,1149,1,0,0,0,1150,1151,1,0,0,0,1151,1152,1,0,0,0,1152,1153,5,10,0, -0,1153,326,1,0,0,0,1154,1157,3,329,161,0,1155,1157,7,25,0,0,1156,1154,1, -0,0,0,1156,1155,1,0,0,0,1157,328,1,0,0,0,1158,1159,7,26,0,0,1159,330,1,0, -0,0,72,0,1,2,3,4,5,6,650,656,660,664,675,684,692,790,805,818,822,830,838, -842,851,864,870,874,878,882,894,899,918,924,932,936,945,958,964,968,972, -976,979,982,985,992,994,998,1000,1019,1029,1035,1039,1044,1050,1053,1058, -1061,1066,1071,1076,1081,1086,1091,1103,1107,1110,1116,1120,1126,1131,1139, -1145,1150,1156,11,0,1,0,7,3,0,5,1,0,5,2,0,5,3,0,5,4,0,7,5,0,4,0,0,7,4,0, -7,43,0,7,46,0]; - - -const atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); - -const decisionsToDFA = atn.decisionToState.map( (ds, index) => new antlr4.dfa.DFA(ds, index) ); - -export default class PythonLexer extends PythonLexerBase { - - static grammarFileName = "PythonLexer.g4"; - static channelNames = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN" ]; - static modeNames = [ "DEFAULT_MODE", "SINGLE_QUOTE_FSTRING_MODE", "DOUBLE_QUOTE_FSTRING_MODE", - "LONG_SINGLE_QUOTE_FSTRING_MODE", "LONG_DOUBLE_QUOTE_FSTRING_MODE", - "SINGLE_QUOTE_FORMAT_SPECIFICATION_MODE", "DOUBLE_QUOTE_FORMAT_SPECIFICATION_MODE" ]; - static literalNames = [ null, null, null, null, null, null, "'False'", - "'await'", "'else'", "'import'", "'pass'", "'None'", - "'break'", "'except'", "'in'", "'raise'", "'True'", - "'class'", "'finally'", "'is'", "'return'", "'and'", - "'continue'", "'for'", "'lambda'", "'try'", "'as'", - "'def'", "'from'", "'nonlocal'", "'while'", "'assert'", - "'del'", "'global'", "'not'", "'with'", "'async'", - "'elif'", "'if'", "'or'", "'yield'", "'('", "'['", - null, "')'", "']'", null, "'.'", "':'", "','", - "';'", "'+'", "'-'", "'*'", "'/'", "'|'", "'&'", - "'<'", "'>'", "'='", "'%'", "'=='", "'!='", "'<='", - "'>='", "'~'", "'^'", "'<<'", "'>>'", "'**'", "'+='", - "'-='", "'*='", "'/='", "'%='", "'&='", "'|='", - "'^='", "'<<='", "'>>='", "'**='", "'//'", "'//='", - "'@'", "'@='", "'->'", "'...'", "':='", "'!'" ]; - static symbolicNames = [ null, "INDENT", "DEDENT", "FSTRING_START", "FSTRING_MIDDLE", - "FSTRING_END", "FALSE", "AWAIT", "ELSE", "IMPORT", - "PASS", "NONE", "BREAK", "EXCEPT", "IN", "RAISE", - "TRUE", "CLASS", "FINALLY", "IS", "RETURN", "AND", - "CONTINUE", "FOR", "LAMBDA", "TRY", "AS", "DEF", - "FROM", "NONLOCAL", "WHILE", "ASSERT", "DEL", - "GLOBAL", "NOT", "WITH", "ASYNC", "ELIF", "IF", - "OR", "YIELD", "LPAR", "LSQB", "LBRACE", "RPAR", - "RSQB", "RBRACE", "DOT", "COLON", "COMMA", "SEMI", - "PLUS", "MINUS", "STAR", "SLASH", "VBAR", "AMPER", - "LESS", "GREATER", "EQUAL", "PERCENT", "EQEQUAL", - "NOTEQUAL", "LESSEQUAL", "GREATEREQUAL", "TILDE", - "CIRCUMFLEX", "LEFTSHIFT", "RIGHTSHIFT", "DOUBLESTAR", - "PLUSEQUAL", "MINEQUAL", "STAREQUAL", "SLASHEQUAL", - "PERCENTEQUAL", "AMPEREQUAL", "VBAREQUAL", "CIRCUMFLEXEQUAL", - "LEFTSHIFTEQUAL", "RIGHTSHIFTEQUAL", "DOUBLESTAREQUAL", - "DOUBLESLASH", "DOUBLESLASHEQUAL", "AT", "ATEQUAL", - "RARROW", "ELLIPSIS", "COLONEQUAL", "EXCLAMATION", - "NAME", "NUMBER", "STRING", "TYPE_COMMENT", "NEWLINE", - "COMMENT", "WS", "EXPLICIT_LINE_JOINING", "ERROR_TOKEN" ]; - static ruleNames = [ "FALSE", "AWAIT", "ELSE", "IMPORT", "PASS", "NONE", - "BREAK", "EXCEPT", "IN", "RAISE", "TRUE", "CLASS", - "FINALLY", "IS", "RETURN", "AND", "CONTINUE", "FOR", - "LAMBDA", "TRY", "AS", "DEF", "FROM", "NONLOCAL", - "WHILE", "ASSERT", "DEL", "GLOBAL", "NOT", "WITH", - "ASYNC", "ELIF", "IF", "OR", "YIELD", "LPAR", "LSQB", - "LBRACE", "RPAR", "RSQB", "RBRACE", "DOT", "COLON", - "COMMA", "SEMI", "PLUS", "MINUS", "STAR", "SLASH", - "VBAR", "AMPER", "LESS", "GREATER", "EQUAL", "PERCENT", - "EQEQUAL", "NOTEQUAL", "LESSEQUAL", "GREATEREQUAL", - "TILDE", "CIRCUMFLEX", "LEFTSHIFT", "RIGHTSHIFT", - "DOUBLESTAR", "PLUSEQUAL", "MINEQUAL", "STAREQUAL", - "SLASHEQUAL", "PERCENTEQUAL", "AMPEREQUAL", "VBAREQUAL", - "CIRCUMFLEXEQUAL", "LEFTSHIFTEQUAL", "RIGHTSHIFTEQUAL", - "DOUBLESTAREQUAL", "DOUBLESLASH", "DOUBLESLASHEQUAL", - "AT", "ATEQUAL", "RARROW", "ELLIPSIS", "COLONEQUAL", - "EXCLAMATION", "NAME", "NUMBER", "STRING", "TYPE_COMMENT", - "NEWLINE", "COMMENT", "WS", "EXPLICIT_LINE_JOINING", - "SINGLE_QUOTE_FSTRING_START", "DOUBLE_QUOTE_FSTRING_START", - "LONG_SINGLE_QUOTE_FSTRING_START", "LONG_DOUBLE_QUOTE_FSTRING_START", - "ERROR_TOKEN", "SINGLE_QUOTE_FSTRING_END", "SINGLE_QUOTE_FSTRING_MIDDLE", - "SINGLE_QUOTE_FSTRING_LBRACE", "DOUBLE_QUOTE_FSTRING_END", - "DOUBLE_QUOTE_FSTRING_MIDDLE", "DOUBLE_QUOTE_FSTRING_LBRACE", - "LONG_SINGLE_QUOTE_FSTRING_END", "LONG_SINGLE_QUOTE_FSTRING_MIDDLE", - "LONG_SINGLE_QUOTE_FSTRING_LBRACE", "LONG_DOUBLE_QUOTE_FSTRING_END", - "LONG_DOUBLE_QUOTE_FSTRING_MIDDLE", "LONG_DOUBLE_QUOTE_FSTRING_LBRACE", - "SINGLE_QUOTE_FORMAT_SPECIFICATION_FSTRING_MIDDLE", - "SINGLE_QUOTE_FORMAT_SPECIFICATION_LBRACE", "SINGLE_QUOTE_FORMAT_SPECIFICATION_RBRACE", - "DOUBLE_QUOTE_FORMAT_SPECIFICATION_FSTRING_MIDDLE", - "DOUBLE_QUOTE_FORMAT_SPECIFICATION_LBRACE", "DOUBLE_QUOTE_FORMAT_SPECIFICATION_RBRACE", - "STRING_LITERAL", "STRING_PREFIX", "SHORT_STRING", - "LONG_STRING", "SHORT_STRING_ITEM_FOR_SINGLE_QUOTE", - "SHORT_STRING_ITEM_FOR_DOUBLE_QUOTE", "LONG_STRING_ITEM", - "SHORT_STRING_CHAR_NO_SINGLE_QUOTE", "SHORT_STRING_CHAR_NO_DOUBLE_QUOTE", - "LONG_STRING_CHAR", "STRING_ESCAPE_SEQ", "BYTES_LITERAL", - "BYTES_PREFIX", "SHORT_BYTES", "LONG_BYTES", "SHORT_BYTES_ITEM_FOR_SINGLE_QUOTE", - "SHORT_BYTES_ITEM_FOR_DOUBLE_QUOTE", "LONG_BYTES_ITEM", - "SHORT_BYTES_CHAR_NO_SINGLE_QUOTE", "SHORT_BYTES_CHAR_NO_DOUBLE_QUOTE", - "LONG_BYTES_CHAR", "BYTES_ESCAPE_SEQ", "SINGLE_QUOTE_FSTRING_LITERAL", - "DOUBLE_QUOTE_FSTRING_LITERAL", "F_STRING_PREFIX", - "FORMAT_SPEC_CHAR_NO_SINGLE_QUOTE", "FORMAT_SPEC_CHAR_NO_DOUBLE_QUOTE", - "DOUBLE_BRACES", "INTEGER", "DEC_INTEGER", "BIN_INTEGER", - "OCT_INTEGER", "HEX_INTEGER", "NON_ZERO_DIGIT", "DIGIT", - "BIN_DIGIT", "OCT_DIGIT", "HEX_DIGIT", "FLOAT_NUMBER", - "POINT_FLOAT", "EXPONENT_FLOAT", "DIGIT_PART", "FRACTION", - "EXPONENT", "IMAG_NUMBER", "OS_INDEPENDENT_NL", "ID_CONTINUE", - "ID_START" ]; - - constructor(input) { - super(input) - this._interp = new antlr4.atn.LexerATNSimulator(this, atn, decisionsToDFA, new antlr4.atn.PredictionContextCache()); - } -} - -PythonLexer.EOF = antlr4.Token.EOF; -PythonLexer.INDENT = 1; -PythonLexer.DEDENT = 2; -PythonLexer.FSTRING_START = 3; -PythonLexer.FSTRING_MIDDLE = 4; -PythonLexer.FSTRING_END = 5; -PythonLexer.FALSE = 6; -PythonLexer.AWAIT = 7; -PythonLexer.ELSE = 8; -PythonLexer.IMPORT = 9; -PythonLexer.PASS = 10; -PythonLexer.NONE = 11; -PythonLexer.BREAK = 12; -PythonLexer.EXCEPT = 13; -PythonLexer.IN = 14; -PythonLexer.RAISE = 15; -PythonLexer.TRUE = 16; -PythonLexer.CLASS = 17; -PythonLexer.FINALLY = 18; -PythonLexer.IS = 19; -PythonLexer.RETURN = 20; -PythonLexer.AND = 21; -PythonLexer.CONTINUE = 22; -PythonLexer.FOR = 23; -PythonLexer.LAMBDA = 24; -PythonLexer.TRY = 25; -PythonLexer.AS = 26; -PythonLexer.DEF = 27; -PythonLexer.FROM = 28; -PythonLexer.NONLOCAL = 29; -PythonLexer.WHILE = 30; -PythonLexer.ASSERT = 31; -PythonLexer.DEL = 32; -PythonLexer.GLOBAL = 33; -PythonLexer.NOT = 34; -PythonLexer.WITH = 35; -PythonLexer.ASYNC = 36; -PythonLexer.ELIF = 37; -PythonLexer.IF = 38; -PythonLexer.OR = 39; -PythonLexer.YIELD = 40; -PythonLexer.LPAR = 41; -PythonLexer.LSQB = 42; -PythonLexer.LBRACE = 43; -PythonLexer.RPAR = 44; -PythonLexer.RSQB = 45; -PythonLexer.RBRACE = 46; -PythonLexer.DOT = 47; -PythonLexer.COLON = 48; -PythonLexer.COMMA = 49; -PythonLexer.SEMI = 50; -PythonLexer.PLUS = 51; -PythonLexer.MINUS = 52; -PythonLexer.STAR = 53; -PythonLexer.SLASH = 54; -PythonLexer.VBAR = 55; -PythonLexer.AMPER = 56; -PythonLexer.LESS = 57; -PythonLexer.GREATER = 58; -PythonLexer.EQUAL = 59; -PythonLexer.PERCENT = 60; -PythonLexer.EQEQUAL = 61; -PythonLexer.NOTEQUAL = 62; -PythonLexer.LESSEQUAL = 63; -PythonLexer.GREATEREQUAL = 64; -PythonLexer.TILDE = 65; -PythonLexer.CIRCUMFLEX = 66; -PythonLexer.LEFTSHIFT = 67; -PythonLexer.RIGHTSHIFT = 68; -PythonLexer.DOUBLESTAR = 69; -PythonLexer.PLUSEQUAL = 70; -PythonLexer.MINEQUAL = 71; -PythonLexer.STAREQUAL = 72; -PythonLexer.SLASHEQUAL = 73; -PythonLexer.PERCENTEQUAL = 74; -PythonLexer.AMPEREQUAL = 75; -PythonLexer.VBAREQUAL = 76; -PythonLexer.CIRCUMFLEXEQUAL = 77; -PythonLexer.LEFTSHIFTEQUAL = 78; -PythonLexer.RIGHTSHIFTEQUAL = 79; -PythonLexer.DOUBLESTAREQUAL = 80; -PythonLexer.DOUBLESLASH = 81; -PythonLexer.DOUBLESLASHEQUAL = 82; -PythonLexer.AT = 83; -PythonLexer.ATEQUAL = 84; -PythonLexer.RARROW = 85; -PythonLexer.ELLIPSIS = 86; -PythonLexer.COLONEQUAL = 87; -PythonLexer.EXCLAMATION = 88; -PythonLexer.NAME = 89; -PythonLexer.NUMBER = 90; -PythonLexer.STRING = 91; -PythonLexer.TYPE_COMMENT = 92; -PythonLexer.NEWLINE = 93; -PythonLexer.COMMENT = 94; -PythonLexer.WS = 95; -PythonLexer.EXPLICIT_LINE_JOINING = 96; -PythonLexer.ERROR_TOKEN = 97; - -PythonLexer.SINGLE_QUOTE_FSTRING_MODE = 1; -PythonLexer.DOUBLE_QUOTE_FSTRING_MODE = 2; -PythonLexer.LONG_SINGLE_QUOTE_FSTRING_MODE = 3; -PythonLexer.LONG_DOUBLE_QUOTE_FSTRING_MODE = 4; -PythonLexer.SINGLE_QUOTE_FORMAT_SPECIFICATION_MODE = 5; -PythonLexer.DOUBLE_QUOTE_FORMAT_SPECIFICATION_MODE = 6; - - - - diff --git a/codemetrica/py/parser/python3_12_1/PythonParser.js b/codemetrica/py/parser/python3_12_1/PythonParser.js deleted file mode 100644 index 6189741..0000000 --- a/codemetrica/py/parser/python3_12_1/PythonParser.js +++ /dev/null @@ -1,22239 +0,0 @@ -// Generated from PythonParser.g4 by ANTLR 4.13.2 -// jshint ignore: start -import antlr4 from 'antlr4'; -import PythonParserListener from './PythonParserListener.js'; -import PythonParserVisitor from './PythonParserVisitor.js'; - -import PythonParserBase from './PythonParserBase.js'; - -const serializedATN = [4,1,97,2187,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7, -4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12, -2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2, -20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27, -7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7, -34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41, -2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2, -49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56, -7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7, -63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70, -2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,2, -78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,7,84,2,85, -7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2,91,7,91,2,92,7, -92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2,98,7,98,2,99,7,99, -2,100,7,100,2,101,7,101,2,102,7,102,2,103,7,103,2,104,7,104,2,105,7,105, -2,106,7,106,2,107,7,107,2,108,7,108,2,109,7,109,2,110,7,110,2,111,7,111, -2,112,7,112,2,113,7,113,2,114,7,114,2,115,7,115,2,116,7,116,2,117,7,117, -2,118,7,118,2,119,7,119,2,120,7,120,2,121,7,121,2,122,7,122,2,123,7,123, -2,124,7,124,2,125,7,125,2,126,7,126,2,127,7,127,2,128,7,128,2,129,7,129, -2,130,7,130,2,131,7,131,2,132,7,132,2,133,7,133,2,134,7,134,2,135,7,135, -2,136,7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140,7,140,2,141,7,141, -2,142,7,142,2,143,7,143,2,144,7,144,2,145,7,145,2,146,7,146,2,147,7,147, -2,148,7,148,2,149,7,149,2,150,7,150,2,151,7,151,2,152,7,152,2,153,7,153, -2,154,7,154,2,155,7,155,2,156,7,156,2,157,7,157,2,158,7,158,2,159,7,159, -2,160,7,160,2,161,7,161,2,162,7,162,2,163,7,163,2,164,7,164,2,165,7,165, -2,166,7,166,2,167,7,167,2,168,7,168,2,169,7,169,2,170,7,170,2,171,7,171, -2,172,7,172,2,173,7,173,2,174,7,174,2,175,7,175,2,176,7,176,2,177,7,177, -2,178,7,178,2,179,7,179,2,180,7,180,2,181,7,181,2,182,7,182,2,183,7,183, -2,184,7,184,2,185,7,185,2,186,7,186,2,187,7,187,2,188,7,188,2,189,7,189, -2,190,7,190,2,191,7,191,2,192,7,192,2,193,7,193,2,194,7,194,2,195,7,195, -2,196,7,196,2,197,7,197,1,0,3,0,398,8,0,1,0,1,0,1,1,1,1,1,2,1,2,5,2,406, -8,2,10,2,12,2,409,9,2,1,2,1,2,1,3,1,3,3,3,415,8,3,1,3,1,3,1,3,1,3,5,3,421, -8,3,10,3,12,3,424,9,3,1,3,1,3,1,4,1,4,1,5,4,5,431,8,5,11,5,12,5,432,1,6, -1,6,3,6,437,8,6,1,7,1,7,1,7,1,7,1,7,1,7,3,7,445,8,7,1,8,1,8,1,8,5,8,450, -8,8,10,8,12,8,453,9,8,1,8,3,8,456,8,8,1,8,1,8,1,9,1,9,1,9,1,9,1,9,1,9,1, -9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,3,9,474,8,9,1,10,1,10,1,10,1,10,1,10,1,10, -1,10,1,10,3,10,484,8,10,1,11,1,11,1,11,1,11,1,11,3,11,491,8,11,1,11,1,11, -1,11,1,11,1,11,3,11,498,8,11,1,11,1,11,1,11,1,11,3,11,504,8,11,1,11,1,11, -1,11,4,11,509,8,11,11,11,12,11,510,1,11,1,11,3,11,515,8,11,1,11,3,11,518, -8,11,1,11,1,11,1,11,1,11,3,11,524,8,11,3,11,526,8,11,1,12,1,12,3,12,530, -8,12,1,13,1,13,1,14,1,14,3,14,536,8,14,1,15,1,15,1,15,1,15,3,15,542,8,15, -3,15,544,8,15,1,16,1,16,1,16,1,16,5,16,550,8,16,10,16,12,16,553,9,16,1,17, -1,17,1,17,1,17,5,17,559,8,17,10,17,12,17,562,9,17,1,18,1,18,1,18,1,19,1, -19,1,20,1,20,1,20,1,20,3,20,573,8,20,1,21,1,21,3,21,577,8,21,1,22,1,22,1, -22,1,23,1,23,5,23,584,8,23,10,23,12,23,587,9,23,1,23,1,23,1,23,1,23,1,23, -1,23,4,23,595,8,23,11,23,12,23,596,1,23,1,23,3,23,601,8,23,1,24,1,24,1,24, -3,24,606,8,24,1,24,1,24,1,24,1,24,3,24,612,8,24,1,25,1,25,1,25,5,25,617, -8,25,10,25,12,25,620,9,25,1,26,1,26,1,26,3,26,625,8,26,1,27,1,27,1,27,5, -27,630,8,27,10,27,12,27,633,9,27,1,28,1,28,1,28,3,28,638,8,28,1,29,1,29, -1,29,1,29,1,29,1,29,5,29,646,8,29,10,29,12,29,649,9,29,1,30,1,30,1,30,1, -30,1,30,1,30,3,30,657,8,30,1,31,1,31,1,31,1,31,4,31,663,8,31,11,31,12,31, -664,1,32,1,32,1,32,1,32,3,32,671,8,32,1,33,1,33,1,33,3,33,676,8,33,1,33, -1,33,3,33,680,8,33,1,33,3,33,683,8,33,1,33,1,33,1,33,1,34,1,34,1,34,1,34, -3,34,692,8,34,1,35,1,35,1,35,3,35,697,8,35,1,35,1,35,3,35,701,8,35,1,35, -1,35,1,35,3,35,706,8,35,1,35,1,35,3,35,710,8,35,1,35,1,35,1,35,1,35,1,35, -3,35,717,8,35,1,35,1,35,3,35,721,8,35,1,35,1,35,1,35,3,35,726,8,35,1,35, -1,35,3,35,730,8,35,1,35,3,35,733,8,35,1,36,1,36,1,37,1,37,5,37,739,8,37, -10,37,12,37,742,9,37,1,37,5,37,745,8,37,10,37,12,37,748,9,37,1,37,3,37,751, -8,37,1,37,1,37,5,37,755,8,37,10,37,12,37,758,9,37,1,37,3,37,761,8,37,1,37, -4,37,764,8,37,11,37,12,37,765,1,37,5,37,769,8,37,10,37,12,37,772,9,37,1, -37,3,37,775,8,37,1,37,4,37,778,8,37,11,37,12,37,779,1,37,3,37,783,8,37,1, -37,3,37,786,8,37,1,38,4,38,789,8,38,11,38,12,38,790,1,38,1,38,3,38,795,8, -38,1,39,5,39,798,8,39,10,39,12,39,801,9,39,1,39,4,39,804,8,39,11,39,12,39, -805,1,39,1,39,3,39,810,8,39,1,40,1,40,1,40,5,40,815,8,40,10,40,12,40,818, -9,40,1,40,3,40,821,8,40,1,40,1,40,1,40,5,40,826,8,40,10,40,12,40,829,9,40, -1,40,3,40,832,8,40,1,40,1,40,1,40,4,40,837,8,40,11,40,12,40,838,1,40,3,40, -842,8,40,1,40,3,40,845,8,40,1,41,1,41,1,41,1,42,1,42,3,42,852,8,42,1,42, -3,42,855,8,42,1,43,1,43,3,43,859,8,43,1,43,3,43,862,8,43,1,44,1,44,1,44, -3,44,867,8,44,1,44,3,44,870,8,44,1,45,1,45,3,45,874,8,45,1,45,3,45,877,8, -45,1,45,3,45,880,8,45,1,46,1,46,3,46,884,8,46,1,47,1,47,1,47,1,48,1,48,1, -48,1,49,1,49,1,49,1,50,1,50,1,50,1,51,1,51,1,51,1,51,1,51,1,51,3,51,904, -8,51,3,51,906,8,51,1,52,1,52,1,52,1,52,1,52,1,52,3,52,914,8,52,3,52,916, -8,52,1,53,1,53,1,53,1,53,1,54,1,54,1,54,1,54,1,54,3,54,927,8,54,1,55,3,55, -930,8,55,1,55,1,55,1,55,1,55,1,55,1,55,3,55,938,8,55,1,55,1,55,3,55,942, -8,55,1,56,3,56,945,8,56,1,56,1,56,1,56,1,56,1,56,5,56,952,8,56,10,56,12, -56,955,9,56,1,56,3,56,958,8,56,1,56,1,56,1,56,1,56,1,56,1,56,5,56,966,8, -56,10,56,12,56,969,9,56,1,56,1,56,3,56,973,8,56,3,56,975,8,56,1,56,1,56, -1,57,1,57,1,57,3,57,982,8,57,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58, -4,58,993,8,58,11,58,12,58,994,1,58,3,58,998,8,58,1,58,3,58,1001,8,58,1,58, -1,58,1,58,1,58,4,58,1007,8,58,11,58,12,58,1008,1,58,3,58,1012,8,58,1,58, -3,58,1015,8,58,3,58,1017,8,58,1,59,1,59,1,59,1,59,3,59,1023,8,59,3,59,1025, -8,59,1,59,1,59,1,59,1,60,1,60,1,60,1,60,1,60,3,60,1035,8,60,1,60,1,60,1, -60,1,61,1,61,1,61,1,61,1,62,1,62,1,62,1,62,1,62,1,62,4,62,1050,8,62,11,62, -12,62,1051,1,62,1,62,1,63,1,63,1,63,3,63,1059,8,63,1,63,3,63,1062,8,63,1, -64,1,64,1,64,3,64,1067,8,64,1,64,1,64,1,64,1,65,1,65,1,65,1,66,1,66,3,66, -1077,8,66,1,67,1,67,3,67,1081,8,67,1,68,1,68,1,68,1,68,1,69,1,69,1,69,5, -69,1090,8,69,10,69,12,69,1093,9,69,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1, -70,3,70,1103,8,70,1,71,1,71,1,71,1,71,1,71,1,71,3,71,1111,8,71,1,72,1,72, -1,72,1,72,1,72,1,72,3,72,1119,8,72,1,73,1,73,1,73,1,73,1,74,3,74,1126,8, -74,1,74,1,74,1,75,3,75,1131,8,75,1,75,1,75,1,76,1,76,1,77,1,77,1,78,1,78, -1,79,1,79,1,80,1,80,1,81,1,81,1,82,1,82,1,82,4,82,1150,8,82,11,82,12,82, -1151,1,83,1,83,1,83,5,83,1157,8,83,10,83,12,83,1160,9,83,1,84,1,84,1,84, -1,84,1,85,1,85,3,85,1168,8,85,1,85,1,85,1,85,3,85,1173,8,85,1,85,3,85,1176, -8,85,1,86,1,86,1,86,3,86,1181,8,86,1,87,1,87,1,87,5,87,1186,8,87,10,87,12, -87,1189,9,87,1,87,3,87,1192,8,87,1,88,1,88,3,88,1196,8,88,1,89,1,89,1,89, -1,89,3,89,1202,8,89,1,90,1,90,1,90,1,90,1,90,3,90,1209,8,90,1,90,1,90,1, -90,1,90,1,90,1,90,3,90,1217,8,90,1,90,3,90,1220,8,90,1,90,1,90,3,90,1224, -8,90,1,91,1,91,1,91,5,91,1229,8,91,10,91,12,91,1232,9,91,1,92,1,92,3,92, -1236,8,92,1,92,1,92,1,92,1,93,1,93,1,93,1,94,1,94,1,94,1,94,1,94,3,94,1249, -8,94,1,94,3,94,1252,8,94,1,94,3,94,1255,8,94,3,94,1257,8,94,1,94,1,94,1, -95,1,95,1,95,5,95,1264,8,95,10,95,12,95,1267,9,95,1,96,1,96,1,96,5,96,1272, -8,96,10,96,12,96,1275,9,96,1,97,1,97,1,97,1,97,1,98,1,98,1,98,3,98,1284, -8,98,1,98,1,98,1,98,1,99,1,99,1,99,1,99,1,100,1,100,1,100,5,100,1296,8,100, -10,100,12,100,1299,9,100,1,100,3,100,1302,8,100,1,101,1,101,3,101,1306,8, -101,1,101,1,101,1,101,1,101,3,101,1312,8,101,1,101,1,101,1,101,1,101,3,101, -1318,8,101,3,101,1320,8,101,1,102,1,102,1,102,1,103,1,103,1,103,5,103,1328, -8,103,10,103,12,103,1331,9,103,1,103,3,103,1334,8,103,1,104,1,104,1,104, -1,104,1,104,1,104,3,104,1342,8,104,1,104,3,104,1345,8,104,1,105,1,105,1, -105,1,105,3,105,1351,8,105,3,105,1353,8,105,1,106,1,106,1,106,5,106,1358, -8,106,10,106,12,106,1361,9,106,1,106,3,106,1364,8,106,1,107,1,107,1,107, -3,107,1369,8,107,1,108,1,108,1,108,5,108,1374,8,108,10,108,12,108,1377,9, -108,1,108,3,108,1380,8,108,1,109,1,109,1,109,3,109,1385,8,109,1,110,1,110, -1,110,1,110,1,111,1,111,3,111,1393,8,111,1,112,1,112,1,112,5,112,1398,8, -112,10,112,12,112,1401,9,112,1,113,1,113,1,113,5,113,1406,8,113,10,113,12, -113,1409,9,113,1,114,1,114,1,114,3,114,1414,8,114,1,115,1,115,5,115,1418, -8,115,10,115,12,115,1421,9,115,1,116,1,116,1,116,1,116,1,116,1,116,1,116, -1,116,1,116,1,116,3,116,1433,8,116,1,117,1,117,1,117,1,118,1,118,1,118,1, -119,1,119,1,119,1,120,1,120,1,120,1,121,1,121,1,121,1,122,1,122,1,122,1, -123,1,123,1,123,1,123,1,124,1,124,1,124,1,125,1,125,1,125,1,125,1,126,1, -126,1,126,1,127,1,127,1,127,1,127,1,127,1,127,5,127,1473,8,127,10,127,12, -127,1476,9,127,1,128,1,128,1,128,1,128,1,128,1,128,5,128,1484,8,128,10,128, -12,128,1487,9,128,1,129,1,129,1,129,1,129,1,129,1,129,5,129,1495,8,129,10, -129,12,129,1498,9,129,1,130,1,130,1,130,1,130,1,130,1,130,5,130,1506,8,130, -10,130,12,130,1509,9,130,1,131,1,131,1,131,1,131,1,131,1,131,5,131,1517, -8,131,10,131,12,131,1520,9,131,1,132,1,132,1,132,1,132,1,132,1,132,5,132, -1528,8,132,10,132,12,132,1531,9,132,1,133,1,133,1,133,1,133,1,133,1,133, -1,133,3,133,1540,8,133,1,134,1,134,1,134,3,134,1545,8,134,1,135,1,135,1, -135,3,135,1550,8,135,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136, -3,136,1561,8,136,1,136,1,136,1,136,1,136,1,136,3,136,1568,8,136,5,136,1570, -8,136,10,136,12,136,1573,9,136,1,137,1,137,1,137,3,137,1578,8,137,1,137, -1,137,1,137,3,137,1583,8,137,5,137,1585,8,137,10,137,12,137,1588,9,137,1, -137,3,137,1591,8,137,3,137,1593,8,137,1,138,3,138,1596,8,138,1,138,1,138, -3,138,1600,8,138,1,138,1,138,3,138,1604,8,138,3,138,1606,8,138,1,138,3,138, -1609,8,138,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,3,139,1620, -8,139,1,139,1,139,3,139,1624,8,139,1,139,1,139,1,139,1,139,3,139,1630,8, -139,1,139,3,139,1633,8,139,1,140,1,140,1,140,3,140,1638,8,140,1,140,1,140, -1,141,1,141,3,141,1644,8,141,1,141,1,141,1,141,1,142,1,142,1,143,1,143,5, -143,1653,8,143,10,143,12,143,1656,9,143,1,143,5,143,1659,8,143,10,143,12, -143,1662,9,143,1,143,3,143,1665,8,143,1,143,1,143,5,143,1669,8,143,10,143, -12,143,1672,9,143,1,143,3,143,1675,8,143,1,143,4,143,1678,8,143,11,143,12, -143,1679,1,143,5,143,1683,8,143,10,143,12,143,1686,9,143,1,143,3,143,1689, -8,143,1,143,4,143,1692,8,143,11,143,12,143,1693,1,143,3,143,1697,8,143,1, -143,3,143,1700,8,143,1,144,4,144,1703,8,144,11,144,12,144,1704,1,144,1,144, -3,144,1709,8,144,1,145,5,145,1712,8,145,10,145,12,145,1715,9,145,1,145,4, -145,1718,8,145,11,145,12,145,1719,1,145,1,145,3,145,1724,8,145,1,146,1,146, -1,146,5,146,1729,8,146,10,146,12,146,1732,9,146,1,146,3,146,1735,8,146,1, -146,1,146,1,146,4,146,1740,8,146,11,146,12,146,1741,1,146,3,146,1745,8,146, -1,146,3,146,1748,8,146,1,147,1,147,1,147,1,148,1,148,3,148,1755,8,148,1, -149,1,149,1,149,3,149,1760,8,149,1,150,1,150,3,150,1764,8,150,1,150,3,150, -1767,8,150,1,151,1,151,1,152,1,152,3,152,1773,8,152,1,153,1,153,1,153,3, -153,1778,8,153,1,153,3,153,1781,8,153,1,153,3,153,1784,8,153,1,153,3,153, -1787,8,153,1,153,1,153,1,154,1,154,1,154,1,155,1,155,5,155,1796,8,155,10, -155,12,155,1799,9,155,1,156,1,156,3,156,1803,8,156,1,157,1,157,5,157,1807, -8,157,10,157,12,157,1810,9,157,1,157,1,157,1,158,1,158,1,159,1,159,4,159, -1818,8,159,11,159,12,159,1819,1,160,1,160,3,160,1824,8,160,1,160,1,160,1, -161,1,161,1,161,1,161,3,161,1832,8,161,3,161,1834,8,161,1,161,1,161,1,162, -1,162,1,162,1,162,1,163,1,163,3,163,1844,8,163,1,163,1,163,1,164,1,164,1, -164,5,164,1851,8,164,10,164,12,164,1854,9,164,1,164,3,164,1857,8,164,1,165, -1,165,1,165,3,165,1862,8,165,1,166,1,166,1,166,1,166,1,167,4,167,1869,8, -167,11,167,12,167,1870,1,168,3,168,1874,8,168,1,168,1,168,1,168,1,168,1, -168,1,168,5,168,1882,8,168,10,168,12,168,1885,9,168,1,169,1,169,1,169,1, -169,1,169,1,170,1,170,1,170,1,170,1,170,1,171,1,171,1,171,3,171,1900,8,171, -1,171,1,171,1,171,1,172,1,172,1,172,1,172,1,172,1,173,1,173,3,173,1912,8, -173,1,174,1,174,1,174,3,174,1917,8,174,3,174,1919,8,174,1,174,1,174,1,174, -1,174,3,174,1925,8,174,3,174,1927,8,174,5,174,1929,8,174,10,174,12,174,1932, -9,174,1,174,1,174,3,174,1936,8,174,1,174,3,174,1939,8,174,1,175,1,175,1, -175,5,175,1944,8,175,10,175,12,175,1947,9,175,1,175,1,175,1,175,1,175,5, -175,1953,8,175,10,175,12,175,1956,9,175,3,175,1958,8,175,1,175,1,175,1,175, -5,175,1963,8,175,10,175,12,175,1966,9,175,3,175,1968,8,175,1,176,1,176,1, -176,1,177,1,177,1,177,1,177,3,177,1977,8,177,1,178,1,178,1,178,1,178,1,178, -3,178,1984,8,178,1,179,1,179,1,179,5,179,1989,8,179,10,179,12,179,1992,9, -179,1,179,3,179,1995,8,179,1,180,1,180,1,180,4,180,2000,8,180,11,180,12, -180,2001,1,180,3,180,2005,8,180,1,181,1,181,1,181,1,181,4,181,2011,8,181, -11,181,12,181,2012,1,181,3,181,2016,8,181,3,181,2018,8,181,1,182,1,182,1, -182,3,182,2023,8,182,1,183,1,183,1,183,1,183,1,183,1,183,1,183,3,183,2032, -8,183,1,183,3,183,2035,8,183,1,184,1,184,1,184,1,184,1,184,1,184,1,184,3, -184,2044,8,184,1,184,1,184,1,184,3,184,2049,8,184,1,184,3,184,2052,8,184, -1,185,1,185,1,185,1,185,1,185,1,185,3,185,2060,8,185,1,186,1,186,1,186,1, -186,1,186,1,186,1,186,3,186,2069,8,186,1,187,1,187,1,187,1,187,1,187,1,187, -1,187,1,187,1,187,1,187,1,187,1,187,1,187,3,187,2084,8,187,1,187,3,187,2087, -8,187,5,187,2089,8,187,10,187,12,187,2092,9,187,1,188,1,188,1,188,5,188, -2097,8,188,10,188,12,188,2100,9,188,1,188,3,188,2103,8,188,1,189,1,189,1, -189,1,189,1,189,1,189,1,189,3,189,2112,8,189,1,189,3,189,2115,8,189,1,190, -1,190,1,190,1,190,1,190,1,190,1,190,3,190,2124,8,190,1,190,1,190,1,190,3, -190,2129,8,190,1,190,3,190,2132,8,190,1,191,1,191,1,191,5,191,2137,8,191, -10,191,12,191,2140,9,191,1,191,1,191,1,191,1,191,1,191,1,191,3,191,2148, -8,191,1,191,1,191,3,191,2152,8,191,3,191,2154,8,191,1,191,1,191,1,191,1, -191,1,191,3,191,2161,8,191,1,191,1,191,3,191,2165,8,191,1,192,1,192,1,192, -3,192,2170,8,192,1,193,1,193,1,193,1,194,1,194,1,194,1,195,1,195,1,195,1, -196,1,196,1,196,1,197,1,197,1,197,1,197,0,9,58,254,256,258,260,262,264,272, -374,198,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44, -46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92, -94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,130, -132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,166, -168,170,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202, -204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238, -240,242,244,246,248,250,252,254,256,258,260,262,264,266,268,270,272,274, -276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310, -312,314,316,318,320,322,324,326,328,330,332,334,336,338,340,342,344,346, -348,350,352,354,356,358,360,362,364,366,368,370,372,374,376,378,380,382, -384,386,388,390,392,394,0,5,3,0,70,80,82,82,84,84,2,0,47,47,86,86,1,0,51, -52,1,0,67,68,4,0,53,54,60,60,81,81,83,83,2359,0,397,1,0,0,0,2,401,1,0,0, -0,4,403,1,0,0,0,6,412,1,0,0,0,8,427,1,0,0,0,10,430,1,0,0,0,12,436,1,0,0, -0,14,444,1,0,0,0,16,446,1,0,0,0,18,473,1,0,0,0,20,483,1,0,0,0,22,525,1,0, -0,0,24,529,1,0,0,0,26,531,1,0,0,0,28,533,1,0,0,0,30,537,1,0,0,0,32,545,1, -0,0,0,34,554,1,0,0,0,36,563,1,0,0,0,38,566,1,0,0,0,40,568,1,0,0,0,42,576, -1,0,0,0,44,578,1,0,0,0,46,600,1,0,0,0,48,611,1,0,0,0,50,613,1,0,0,0,52,621, -1,0,0,0,54,626,1,0,0,0,56,634,1,0,0,0,58,639,1,0,0,0,60,656,1,0,0,0,62,662, -1,0,0,0,64,670,1,0,0,0,66,672,1,0,0,0,68,691,1,0,0,0,70,732,1,0,0,0,72,734, -1,0,0,0,74,785,1,0,0,0,76,788,1,0,0,0,78,799,1,0,0,0,80,844,1,0,0,0,82,846, -1,0,0,0,84,849,1,0,0,0,86,856,1,0,0,0,88,863,1,0,0,0,90,871,1,0,0,0,92,881, -1,0,0,0,94,885,1,0,0,0,96,888,1,0,0,0,98,891,1,0,0,0,100,894,1,0,0,0,102, -897,1,0,0,0,104,907,1,0,0,0,106,917,1,0,0,0,108,921,1,0,0,0,110,929,1,0, -0,0,112,944,1,0,0,0,114,978,1,0,0,0,116,1016,1,0,0,0,118,1018,1,0,0,0,120, -1029,1,0,0,0,122,1039,1,0,0,0,124,1043,1,0,0,0,126,1061,1,0,0,0,128,1063, -1,0,0,0,130,1071,1,0,0,0,132,1076,1,0,0,0,134,1080,1,0,0,0,136,1082,1,0, -0,0,138,1086,1,0,0,0,140,1102,1,0,0,0,142,1110,1,0,0,0,144,1118,1,0,0,0, -146,1120,1,0,0,0,148,1125,1,0,0,0,150,1130,1,0,0,0,152,1134,1,0,0,0,154, -1136,1,0,0,0,156,1138,1,0,0,0,158,1140,1,0,0,0,160,1142,1,0,0,0,162,1144, -1,0,0,0,164,1146,1,0,0,0,166,1153,1,0,0,0,168,1161,1,0,0,0,170,1175,1,0, -0,0,172,1177,1,0,0,0,174,1182,1,0,0,0,176,1195,1,0,0,0,178,1201,1,0,0,0, -180,1223,1,0,0,0,182,1225,1,0,0,0,184,1235,1,0,0,0,186,1240,1,0,0,0,188, -1243,1,0,0,0,190,1260,1,0,0,0,192,1268,1,0,0,0,194,1276,1,0,0,0,196,1280, -1,0,0,0,198,1288,1,0,0,0,200,1292,1,0,0,0,202,1319,1,0,0,0,204,1321,1,0, -0,0,206,1324,1,0,0,0,208,1344,1,0,0,0,210,1346,1,0,0,0,212,1354,1,0,0,0, -214,1368,1,0,0,0,216,1370,1,0,0,0,218,1384,1,0,0,0,220,1386,1,0,0,0,222, -1392,1,0,0,0,224,1394,1,0,0,0,226,1402,1,0,0,0,228,1413,1,0,0,0,230,1415, -1,0,0,0,232,1432,1,0,0,0,234,1434,1,0,0,0,236,1437,1,0,0,0,238,1440,1,0, -0,0,240,1443,1,0,0,0,242,1446,1,0,0,0,244,1449,1,0,0,0,246,1452,1,0,0,0, -248,1456,1,0,0,0,250,1459,1,0,0,0,252,1463,1,0,0,0,254,1466,1,0,0,0,256, -1477,1,0,0,0,258,1488,1,0,0,0,260,1499,1,0,0,0,262,1510,1,0,0,0,264,1521, -1,0,0,0,266,1539,1,0,0,0,268,1541,1,0,0,0,270,1549,1,0,0,0,272,1551,1,0, -0,0,274,1592,1,0,0,0,276,1608,1,0,0,0,278,1632,1,0,0,0,280,1634,1,0,0,0, -282,1641,1,0,0,0,284,1648,1,0,0,0,286,1699,1,0,0,0,288,1702,1,0,0,0,290, -1713,1,0,0,0,292,1747,1,0,0,0,294,1749,1,0,0,0,296,1752,1,0,0,0,298,1756, -1,0,0,0,300,1761,1,0,0,0,302,1768,1,0,0,0,304,1772,1,0,0,0,306,1774,1,0, -0,0,308,1790,1,0,0,0,310,1793,1,0,0,0,312,1802,1,0,0,0,314,1804,1,0,0,0, -316,1813,1,0,0,0,318,1817,1,0,0,0,320,1821,1,0,0,0,322,1827,1,0,0,0,324, -1837,1,0,0,0,326,1841,1,0,0,0,328,1847,1,0,0,0,330,1861,1,0,0,0,332,1863, -1,0,0,0,334,1868,1,0,0,0,336,1873,1,0,0,0,338,1886,1,0,0,0,340,1891,1,0, -0,0,342,1896,1,0,0,0,344,1904,1,0,0,0,346,1909,1,0,0,0,348,1938,1,0,0,0, -350,1967,1,0,0,0,352,1969,1,0,0,0,354,1976,1,0,0,0,356,1983,1,0,0,0,358, -1985,1,0,0,0,360,1996,1,0,0,0,362,2006,1,0,0,0,364,2022,1,0,0,0,366,2034, -1,0,0,0,368,2051,1,0,0,0,370,2059,1,0,0,0,372,2061,1,0,0,0,374,2070,1,0, -0,0,376,2093,1,0,0,0,378,2114,1,0,0,0,380,2131,1,0,0,0,382,2164,1,0,0,0, -384,2169,1,0,0,0,386,2171,1,0,0,0,388,2174,1,0,0,0,390,2177,1,0,0,0,392, -2180,1,0,0,0,394,2183,1,0,0,0,396,398,3,10,5,0,397,396,1,0,0,0,397,398,1, -0,0,0,398,399,1,0,0,0,399,400,5,0,0,1,400,1,1,0,0,0,401,402,3,14,7,0,402, -3,1,0,0,0,403,407,3,206,103,0,404,406,5,93,0,0,405,404,1,0,0,0,406,409,1, -0,0,0,407,405,1,0,0,0,407,408,1,0,0,0,408,410,1,0,0,0,409,407,1,0,0,0,410, -411,5,0,0,1,411,5,1,0,0,0,412,414,5,41,0,0,413,415,3,382,191,0,414,413,1, -0,0,0,414,415,1,0,0,0,415,416,1,0,0,0,416,417,5,44,0,0,417,418,5,85,0,0, -418,422,3,208,104,0,419,421,5,93,0,0,420,419,1,0,0,0,421,424,1,0,0,0,422, -420,1,0,0,0,422,423,1,0,0,0,423,425,1,0,0,0,424,422,1,0,0,0,425,426,5,0, -0,1,426,7,1,0,0,0,427,428,3,212,106,0,428,9,1,0,0,0,429,431,3,12,6,0,430, -429,1,0,0,0,431,432,1,0,0,0,432,430,1,0,0,0,432,433,1,0,0,0,433,11,1,0,0, -0,434,437,3,20,10,0,435,437,3,16,8,0,436,434,1,0,0,0,436,435,1,0,0,0,437, -13,1,0,0,0,438,439,3,20,10,0,439,440,5,93,0,0,440,445,1,0,0,0,441,445,3, -16,8,0,442,445,5,93,0,0,443,445,5,0,0,1,444,438,1,0,0,0,444,441,1,0,0,0, -444,442,1,0,0,0,444,443,1,0,0,0,445,15,1,0,0,0,446,451,3,18,9,0,447,448, -5,50,0,0,448,450,3,18,9,0,449,447,1,0,0,0,450,453,1,0,0,0,451,449,1,0,0, -0,451,452,1,0,0,0,452,455,1,0,0,0,453,451,1,0,0,0,454,456,5,50,0,0,455,454, -1,0,0,0,455,456,1,0,0,0,456,457,1,0,0,0,457,458,5,93,0,0,458,17,1,0,0,0, -459,474,3,22,11,0,460,474,3,196,98,0,461,474,3,212,106,0,462,474,3,28,14, -0,463,474,3,42,21,0,464,474,3,30,15,0,465,474,5,10,0,0,466,474,3,36,18,0, -467,474,3,38,19,0,468,474,3,40,20,0,469,474,5,12,0,0,470,474,5,22,0,0,471, -474,3,32,16,0,472,474,3,34,17,0,473,459,1,0,0,0,473,460,1,0,0,0,473,461, -1,0,0,0,473,462,1,0,0,0,473,463,1,0,0,0,473,464,1,0,0,0,473,465,1,0,0,0, -473,466,1,0,0,0,473,467,1,0,0,0,473,468,1,0,0,0,473,469,1,0,0,0,473,470, -1,0,0,0,473,471,1,0,0,0,473,472,1,0,0,0,474,19,1,0,0,0,475,484,3,68,34,0, -476,484,3,102,51,0,477,484,3,64,32,0,478,484,3,112,56,0,479,484,3,110,55, -0,480,484,3,116,58,0,481,484,3,108,54,0,482,484,3,124,62,0,483,475,1,0,0, -0,483,476,1,0,0,0,483,477,1,0,0,0,483,478,1,0,0,0,483,479,1,0,0,0,483,480, -1,0,0,0,483,481,1,0,0,0,483,482,1,0,0,0,484,21,1,0,0,0,485,486,5,89,0,0, -486,487,5,48,0,0,487,490,3,208,104,0,488,489,5,59,0,0,489,491,3,24,12,0, -490,488,1,0,0,0,490,491,1,0,0,0,491,526,1,0,0,0,492,493,5,41,0,0,493,494, -3,370,185,0,494,495,5,44,0,0,495,498,1,0,0,0,496,498,3,372,186,0,497,492, -1,0,0,0,497,496,1,0,0,0,498,499,1,0,0,0,499,500,5,48,0,0,500,503,3,208,104, -0,501,502,5,59,0,0,502,504,3,24,12,0,503,501,1,0,0,0,503,504,1,0,0,0,504, -526,1,0,0,0,505,506,3,358,179,0,506,507,5,59,0,0,507,509,1,0,0,0,508,505, -1,0,0,0,509,510,1,0,0,0,510,508,1,0,0,0,510,511,1,0,0,0,511,514,1,0,0,0, -512,515,3,210,105,0,513,515,3,212,106,0,514,512,1,0,0,0,514,513,1,0,0,0, -515,517,1,0,0,0,516,518,5,92,0,0,517,516,1,0,0,0,517,518,1,0,0,0,518,526, -1,0,0,0,519,520,3,370,185,0,520,523,3,26,13,0,521,524,3,210,105,0,522,524, -3,212,106,0,523,521,1,0,0,0,523,522,1,0,0,0,524,526,1,0,0,0,525,485,1,0, -0,0,525,497,1,0,0,0,525,508,1,0,0,0,525,519,1,0,0,0,526,23,1,0,0,0,527,530, -3,210,105,0,528,530,3,212,106,0,529,527,1,0,0,0,529,528,1,0,0,0,530,25,1, -0,0,0,531,532,7,0,0,0,532,27,1,0,0,0,533,535,5,20,0,0,534,536,3,212,106, -0,535,534,1,0,0,0,535,536,1,0,0,0,536,29,1,0,0,0,537,543,5,15,0,0,538,541, -3,208,104,0,539,540,5,28,0,0,540,542,3,208,104,0,541,539,1,0,0,0,541,542, -1,0,0,0,542,544,1,0,0,0,543,538,1,0,0,0,543,544,1,0,0,0,544,31,1,0,0,0,545, -546,5,33,0,0,546,551,5,89,0,0,547,548,5,49,0,0,548,550,5,89,0,0,549,547, -1,0,0,0,550,553,1,0,0,0,551,549,1,0,0,0,551,552,1,0,0,0,552,33,1,0,0,0,553, -551,1,0,0,0,554,555,5,29,0,0,555,560,5,89,0,0,556,557,5,49,0,0,557,559,5, -89,0,0,558,556,1,0,0,0,559,562,1,0,0,0,560,558,1,0,0,0,560,561,1,0,0,0,561, -35,1,0,0,0,562,560,1,0,0,0,563,564,5,32,0,0,564,565,3,376,188,0,565,37,1, -0,0,0,566,567,3,210,105,0,567,39,1,0,0,0,568,569,5,31,0,0,569,572,3,208, -104,0,570,571,5,49,0,0,571,573,3,208,104,0,572,570,1,0,0,0,572,573,1,0,0, -0,573,41,1,0,0,0,574,577,3,44,22,0,575,577,3,46,23,0,576,574,1,0,0,0,576, -575,1,0,0,0,577,43,1,0,0,0,578,579,5,9,0,0,579,580,3,54,27,0,580,45,1,0, -0,0,581,585,5,28,0,0,582,584,7,1,0,0,583,582,1,0,0,0,584,587,1,0,0,0,585, -583,1,0,0,0,585,586,1,0,0,0,586,588,1,0,0,0,587,585,1,0,0,0,588,589,3,58, -29,0,589,590,5,9,0,0,590,591,3,48,24,0,591,601,1,0,0,0,592,594,5,28,0,0, -593,595,7,1,0,0,594,593,1,0,0,0,595,596,1,0,0,0,596,594,1,0,0,0,596,597, -1,0,0,0,597,598,1,0,0,0,598,599,5,9,0,0,599,601,3,48,24,0,600,581,1,0,0, -0,600,592,1,0,0,0,601,47,1,0,0,0,602,603,5,41,0,0,603,605,3,50,25,0,604, -606,5,49,0,0,605,604,1,0,0,0,605,606,1,0,0,0,606,607,1,0,0,0,607,608,5,44, -0,0,608,612,1,0,0,0,609,612,3,50,25,0,610,612,5,53,0,0,611,602,1,0,0,0,611, -609,1,0,0,0,611,610,1,0,0,0,612,49,1,0,0,0,613,618,3,52,26,0,614,615,5,49, -0,0,615,617,3,52,26,0,616,614,1,0,0,0,617,620,1,0,0,0,618,616,1,0,0,0,618, -619,1,0,0,0,619,51,1,0,0,0,620,618,1,0,0,0,621,624,5,89,0,0,622,623,5,26, -0,0,623,625,5,89,0,0,624,622,1,0,0,0,624,625,1,0,0,0,625,53,1,0,0,0,626, -631,3,56,28,0,627,628,5,49,0,0,628,630,3,56,28,0,629,627,1,0,0,0,630,633, -1,0,0,0,631,629,1,0,0,0,631,632,1,0,0,0,632,55,1,0,0,0,633,631,1,0,0,0,634, -637,3,58,29,0,635,636,5,26,0,0,636,638,5,89,0,0,637,635,1,0,0,0,637,638, -1,0,0,0,638,57,1,0,0,0,639,640,6,29,-1,0,640,641,5,89,0,0,641,647,1,0,0, -0,642,643,10,2,0,0,643,644,5,47,0,0,644,646,5,89,0,0,645,642,1,0,0,0,646, -649,1,0,0,0,647,645,1,0,0,0,647,648,1,0,0,0,648,59,1,0,0,0,649,647,1,0,0, -0,650,651,5,93,0,0,651,652,5,1,0,0,652,653,3,10,5,0,653,654,5,2,0,0,654, -657,1,0,0,0,655,657,3,16,8,0,656,650,1,0,0,0,656,655,1,0,0,0,657,61,1,0, -0,0,658,659,5,83,0,0,659,660,3,222,111,0,660,661,5,93,0,0,661,663,1,0,0, -0,662,658,1,0,0,0,663,664,1,0,0,0,664,662,1,0,0,0,664,665,1,0,0,0,665,63, -1,0,0,0,666,667,3,62,31,0,667,668,3,66,33,0,668,671,1,0,0,0,669,671,3,66, -33,0,670,666,1,0,0,0,670,669,1,0,0,0,671,65,1,0,0,0,672,673,5,17,0,0,673, -675,5,89,0,0,674,676,3,198,99,0,675,674,1,0,0,0,675,676,1,0,0,0,676,682, -1,0,0,0,677,679,5,41,0,0,678,680,3,346,173,0,679,678,1,0,0,0,679,680,1,0, -0,0,680,681,1,0,0,0,681,683,5,44,0,0,682,677,1,0,0,0,682,683,1,0,0,0,683, -684,1,0,0,0,684,685,5,48,0,0,685,686,3,60,30,0,686,67,1,0,0,0,687,688,3, -62,31,0,688,689,3,70,35,0,689,692,1,0,0,0,690,692,3,70,35,0,691,687,1,0, -0,0,691,690,1,0,0,0,692,69,1,0,0,0,693,694,5,27,0,0,694,696,5,89,0,0,695, -697,3,198,99,0,696,695,1,0,0,0,696,697,1,0,0,0,697,698,1,0,0,0,698,700,5, -41,0,0,699,701,3,72,36,0,700,699,1,0,0,0,700,701,1,0,0,0,701,702,1,0,0,0, -702,705,5,44,0,0,703,704,5,85,0,0,704,706,3,208,104,0,705,703,1,0,0,0,705, -706,1,0,0,0,706,707,1,0,0,0,707,709,5,48,0,0,708,710,3,384,192,0,709,708, -1,0,0,0,709,710,1,0,0,0,710,711,1,0,0,0,711,733,3,60,30,0,712,713,5,36,0, -0,713,714,5,27,0,0,714,716,5,89,0,0,715,717,3,198,99,0,716,715,1,0,0,0,716, -717,1,0,0,0,717,718,1,0,0,0,718,720,5,41,0,0,719,721,3,72,36,0,720,719,1, -0,0,0,720,721,1,0,0,0,721,722,1,0,0,0,722,725,5,44,0,0,723,724,5,85,0,0, -724,726,3,208,104,0,725,723,1,0,0,0,725,726,1,0,0,0,726,727,1,0,0,0,727, -729,5,48,0,0,728,730,3,384,192,0,729,728,1,0,0,0,729,730,1,0,0,0,730,731, -1,0,0,0,731,733,3,60,30,0,732,693,1,0,0,0,732,712,1,0,0,0,733,71,1,0,0,0, -734,735,3,74,37,0,735,73,1,0,0,0,736,740,3,76,38,0,737,739,3,84,42,0,738, -737,1,0,0,0,739,742,1,0,0,0,740,738,1,0,0,0,740,741,1,0,0,0,741,746,1,0, -0,0,742,740,1,0,0,0,743,745,3,88,44,0,744,743,1,0,0,0,745,748,1,0,0,0,746, -744,1,0,0,0,746,747,1,0,0,0,747,750,1,0,0,0,748,746,1,0,0,0,749,751,3,80, -40,0,750,749,1,0,0,0,750,751,1,0,0,0,751,786,1,0,0,0,752,756,3,78,39,0,753, -755,3,88,44,0,754,753,1,0,0,0,755,758,1,0,0,0,756,754,1,0,0,0,756,757,1, -0,0,0,757,760,1,0,0,0,758,756,1,0,0,0,759,761,3,80,40,0,760,759,1,0,0,0, -760,761,1,0,0,0,761,786,1,0,0,0,762,764,3,84,42,0,763,762,1,0,0,0,764,765, -1,0,0,0,765,763,1,0,0,0,765,766,1,0,0,0,766,770,1,0,0,0,767,769,3,88,44, -0,768,767,1,0,0,0,769,772,1,0,0,0,770,768,1,0,0,0,770,771,1,0,0,0,771,774, -1,0,0,0,772,770,1,0,0,0,773,775,3,80,40,0,774,773,1,0,0,0,774,775,1,0,0, -0,775,786,1,0,0,0,776,778,3,88,44,0,777,776,1,0,0,0,778,779,1,0,0,0,779, -777,1,0,0,0,779,780,1,0,0,0,780,782,1,0,0,0,781,783,3,80,40,0,782,781,1, -0,0,0,782,783,1,0,0,0,783,786,1,0,0,0,784,786,3,80,40,0,785,736,1,0,0,0, -785,752,1,0,0,0,785,763,1,0,0,0,785,777,1,0,0,0,785,784,1,0,0,0,786,75,1, -0,0,0,787,789,3,84,42,0,788,787,1,0,0,0,789,790,1,0,0,0,790,788,1,0,0,0, -790,791,1,0,0,0,791,792,1,0,0,0,792,794,5,54,0,0,793,795,5,49,0,0,794,793, -1,0,0,0,794,795,1,0,0,0,795,77,1,0,0,0,796,798,3,84,42,0,797,796,1,0,0,0, -798,801,1,0,0,0,799,797,1,0,0,0,799,800,1,0,0,0,800,803,1,0,0,0,801,799, -1,0,0,0,802,804,3,88,44,0,803,802,1,0,0,0,804,805,1,0,0,0,805,803,1,0,0, -0,805,806,1,0,0,0,806,807,1,0,0,0,807,809,5,54,0,0,808,810,5,49,0,0,809, -808,1,0,0,0,809,810,1,0,0,0,810,79,1,0,0,0,811,812,5,53,0,0,812,816,3,84, -42,0,813,815,3,90,45,0,814,813,1,0,0,0,815,818,1,0,0,0,816,814,1,0,0,0,816, -817,1,0,0,0,817,820,1,0,0,0,818,816,1,0,0,0,819,821,3,82,41,0,820,819,1, -0,0,0,820,821,1,0,0,0,821,845,1,0,0,0,822,823,5,53,0,0,823,827,3,86,43,0, -824,826,3,90,45,0,825,824,1,0,0,0,826,829,1,0,0,0,827,825,1,0,0,0,827,828, -1,0,0,0,828,831,1,0,0,0,829,827,1,0,0,0,830,832,3,82,41,0,831,830,1,0,0, -0,831,832,1,0,0,0,832,845,1,0,0,0,833,834,5,53,0,0,834,836,5,49,0,0,835, -837,3,90,45,0,836,835,1,0,0,0,837,838,1,0,0,0,838,836,1,0,0,0,838,839,1, -0,0,0,839,841,1,0,0,0,840,842,3,82,41,0,841,840,1,0,0,0,841,842,1,0,0,0, -842,845,1,0,0,0,843,845,3,82,41,0,844,811,1,0,0,0,844,822,1,0,0,0,844,833, -1,0,0,0,844,843,1,0,0,0,845,81,1,0,0,0,846,847,5,69,0,0,847,848,3,84,42, -0,848,83,1,0,0,0,849,851,3,92,46,0,850,852,5,49,0,0,851,850,1,0,0,0,851, -852,1,0,0,0,852,854,1,0,0,0,853,855,5,92,0,0,854,853,1,0,0,0,854,855,1,0, -0,0,855,85,1,0,0,0,856,858,3,94,47,0,857,859,5,49,0,0,858,857,1,0,0,0,858, -859,1,0,0,0,859,861,1,0,0,0,860,862,5,92,0,0,861,860,1,0,0,0,861,862,1,0, -0,0,862,87,1,0,0,0,863,864,3,92,46,0,864,866,3,100,50,0,865,867,5,49,0,0, -866,865,1,0,0,0,866,867,1,0,0,0,867,869,1,0,0,0,868,870,5,92,0,0,869,868, -1,0,0,0,869,870,1,0,0,0,870,89,1,0,0,0,871,873,3,92,46,0,872,874,3,100,50, -0,873,872,1,0,0,0,873,874,1,0,0,0,874,876,1,0,0,0,875,877,5,49,0,0,876,875, -1,0,0,0,876,877,1,0,0,0,877,879,1,0,0,0,878,880,5,92,0,0,879,878,1,0,0,0, -879,880,1,0,0,0,880,91,1,0,0,0,881,883,5,89,0,0,882,884,3,96,48,0,883,882, -1,0,0,0,883,884,1,0,0,0,884,93,1,0,0,0,885,886,5,89,0,0,886,887,3,98,49, -0,887,95,1,0,0,0,888,889,5,48,0,0,889,890,3,208,104,0,890,97,1,0,0,0,891, -892,5,48,0,0,892,893,3,214,107,0,893,99,1,0,0,0,894,895,5,59,0,0,895,896, -3,208,104,0,896,101,1,0,0,0,897,898,5,38,0,0,898,899,3,222,111,0,899,900, -5,48,0,0,900,905,3,60,30,0,901,906,3,104,52,0,902,904,3,106,53,0,903,902, -1,0,0,0,903,904,1,0,0,0,904,906,1,0,0,0,905,901,1,0,0,0,905,903,1,0,0,0, -906,103,1,0,0,0,907,908,5,37,0,0,908,909,3,222,111,0,909,910,5,48,0,0,910, -915,3,60,30,0,911,916,3,104,52,0,912,914,3,106,53,0,913,912,1,0,0,0,913, -914,1,0,0,0,914,916,1,0,0,0,915,911,1,0,0,0,915,913,1,0,0,0,916,105,1,0, -0,0,917,918,5,8,0,0,918,919,5,48,0,0,919,920,3,60,30,0,920,107,1,0,0,0,921, -922,5,30,0,0,922,923,3,222,111,0,923,924,5,48,0,0,924,926,3,60,30,0,925, -927,3,106,53,0,926,925,1,0,0,0,926,927,1,0,0,0,927,109,1,0,0,0,928,930,5, -36,0,0,929,928,1,0,0,0,929,930,1,0,0,0,930,931,1,0,0,0,931,932,5,23,0,0, -932,933,3,358,179,0,933,934,5,14,0,0,934,935,3,212,106,0,935,937,5,48,0, -0,936,938,5,92,0,0,937,936,1,0,0,0,937,938,1,0,0,0,938,939,1,0,0,0,939,941, -3,60,30,0,940,942,3,106,53,0,941,940,1,0,0,0,941,942,1,0,0,0,942,111,1,0, -0,0,943,945,5,36,0,0,944,943,1,0,0,0,944,945,1,0,0,0,945,946,1,0,0,0,946, -974,5,35,0,0,947,948,5,41,0,0,948,953,3,114,57,0,949,950,5,49,0,0,950,952, -3,114,57,0,951,949,1,0,0,0,952,955,1,0,0,0,953,951,1,0,0,0,953,954,1,0,0, -0,954,957,1,0,0,0,955,953,1,0,0,0,956,958,5,49,0,0,957,956,1,0,0,0,957,958, -1,0,0,0,958,959,1,0,0,0,959,960,5,44,0,0,960,961,5,48,0,0,961,975,1,0,0, -0,962,967,3,114,57,0,963,964,5,49,0,0,964,966,3,114,57,0,965,963,1,0,0,0, -966,969,1,0,0,0,967,965,1,0,0,0,967,968,1,0,0,0,968,970,1,0,0,0,969,967, -1,0,0,0,970,972,5,48,0,0,971,973,5,92,0,0,972,971,1,0,0,0,972,973,1,0,0, -0,973,975,1,0,0,0,974,947,1,0,0,0,974,962,1,0,0,0,975,976,1,0,0,0,976,977, -3,60,30,0,977,113,1,0,0,0,978,981,3,208,104,0,979,980,5,26,0,0,980,982,3, -364,182,0,981,979,1,0,0,0,981,982,1,0,0,0,982,115,1,0,0,0,983,984,5,25,0, -0,984,985,5,48,0,0,985,986,3,60,30,0,986,987,3,122,61,0,987,1017,1,0,0,0, -988,989,5,25,0,0,989,990,5,48,0,0,990,992,3,60,30,0,991,993,3,118,59,0,992, -991,1,0,0,0,993,994,1,0,0,0,994,992,1,0,0,0,994,995,1,0,0,0,995,997,1,0, -0,0,996,998,3,106,53,0,997,996,1,0,0,0,997,998,1,0,0,0,998,1000,1,0,0,0, -999,1001,3,122,61,0,1000,999,1,0,0,0,1000,1001,1,0,0,0,1001,1017,1,0,0,0, -1002,1003,5,25,0,0,1003,1004,5,48,0,0,1004,1006,3,60,30,0,1005,1007,3,120, -60,0,1006,1005,1,0,0,0,1007,1008,1,0,0,0,1008,1006,1,0,0,0,1008,1009,1,0, -0,0,1009,1011,1,0,0,0,1010,1012,3,106,53,0,1011,1010,1,0,0,0,1011,1012,1, -0,0,0,1012,1014,1,0,0,0,1013,1015,3,122,61,0,1014,1013,1,0,0,0,1014,1015, -1,0,0,0,1015,1017,1,0,0,0,1016,983,1,0,0,0,1016,988,1,0,0,0,1016,1002,1, -0,0,0,1017,117,1,0,0,0,1018,1024,5,13,0,0,1019,1022,3,208,104,0,1020,1021, -5,26,0,0,1021,1023,5,89,0,0,1022,1020,1,0,0,0,1022,1023,1,0,0,0,1023,1025, -1,0,0,0,1024,1019,1,0,0,0,1024,1025,1,0,0,0,1025,1026,1,0,0,0,1026,1027, -5,48,0,0,1027,1028,3,60,30,0,1028,119,1,0,0,0,1029,1030,5,13,0,0,1030,1031, -5,53,0,0,1031,1034,3,208,104,0,1032,1033,5,26,0,0,1033,1035,5,89,0,0,1034, -1032,1,0,0,0,1034,1035,1,0,0,0,1035,1036,1,0,0,0,1036,1037,5,48,0,0,1037, -1038,3,60,30,0,1038,121,1,0,0,0,1039,1040,5,18,0,0,1040,1041,5,48,0,0,1041, -1042,3,60,30,0,1042,123,1,0,0,0,1043,1044,3,388,194,0,1044,1045,3,126,63, -0,1045,1046,5,48,0,0,1046,1047,5,93,0,0,1047,1049,5,1,0,0,1048,1050,3,128, -64,0,1049,1048,1,0,0,0,1050,1051,1,0,0,0,1051,1049,1,0,0,0,1051,1052,1,0, -0,0,1052,1053,1,0,0,0,1053,1054,5,2,0,0,1054,125,1,0,0,0,1055,1056,3,218, -109,0,1056,1058,5,49,0,0,1057,1059,3,216,108,0,1058,1057,1,0,0,0,1058,1059, -1,0,0,0,1059,1062,1,0,0,0,1060,1062,3,222,111,0,1061,1055,1,0,0,0,1061,1060, -1,0,0,0,1062,127,1,0,0,0,1063,1064,3,390,195,0,1064,1066,3,132,66,0,1065, -1067,3,130,65,0,1066,1065,1,0,0,0,1066,1067,1,0,0,0,1067,1068,1,0,0,0,1068, -1069,5,48,0,0,1069,1070,3,60,30,0,1070,129,1,0,0,0,1071,1072,5,38,0,0,1072, -1073,3,222,111,0,1073,131,1,0,0,0,1074,1077,3,172,86,0,1075,1077,3,134,67, -0,1076,1074,1,0,0,0,1076,1075,1,0,0,0,1077,133,1,0,0,0,1078,1081,3,136,68, -0,1079,1081,3,138,69,0,1080,1078,1,0,0,0,1080,1079,1,0,0,0,1081,135,1,0, -0,0,1082,1083,3,138,69,0,1083,1084,5,26,0,0,1084,1085,3,158,79,0,1085,137, -1,0,0,0,1086,1091,3,140,70,0,1087,1088,5,55,0,0,1088,1090,3,140,70,0,1089, -1087,1,0,0,0,1090,1093,1,0,0,0,1091,1089,1,0,0,0,1091,1092,1,0,0,0,1092, -139,1,0,0,0,1093,1091,1,0,0,0,1094,1103,3,142,71,0,1095,1103,3,156,78,0, -1096,1103,3,160,80,0,1097,1103,3,162,81,0,1098,1103,3,168,84,0,1099,1103, -3,170,85,0,1100,1103,3,180,90,0,1101,1103,3,188,94,0,1102,1094,1,0,0,0,1102, -1095,1,0,0,0,1102,1096,1,0,0,0,1102,1097,1,0,0,0,1102,1098,1,0,0,0,1102, -1099,1,0,0,0,1102,1100,1,0,0,0,1102,1101,1,0,0,0,1103,141,1,0,0,0,1104,1111, -3,148,74,0,1105,1111,3,146,73,0,1106,1111,3,318,159,0,1107,1111,5,11,0,0, -1108,1111,5,16,0,0,1109,1111,5,6,0,0,1110,1104,1,0,0,0,1110,1105,1,0,0,0, -1110,1106,1,0,0,0,1110,1107,1,0,0,0,1110,1108,1,0,0,0,1110,1109,1,0,0,0, -1111,143,1,0,0,0,1112,1119,3,148,74,0,1113,1119,3,146,73,0,1114,1119,3,318, -159,0,1115,1119,5,11,0,0,1116,1119,5,16,0,0,1117,1119,5,6,0,0,1118,1112, -1,0,0,0,1118,1113,1,0,0,0,1118,1114,1,0,0,0,1118,1115,1,0,0,0,1118,1116, -1,0,0,0,1118,1117,1,0,0,0,1119,145,1,0,0,0,1120,1121,3,150,75,0,1121,1122, -7,2,0,0,1122,1123,3,154,77,0,1123,147,1,0,0,0,1124,1126,5,52,0,0,1125,1124, -1,0,0,0,1125,1126,1,0,0,0,1126,1127,1,0,0,0,1127,1128,5,90,0,0,1128,149, -1,0,0,0,1129,1131,5,52,0,0,1130,1129,1,0,0,0,1130,1131,1,0,0,0,1131,1132, -1,0,0,0,1132,1133,3,152,76,0,1133,151,1,0,0,0,1134,1135,5,90,0,0,1135,153, -1,0,0,0,1136,1137,5,90,0,0,1137,155,1,0,0,0,1138,1139,3,158,79,0,1139,157, -1,0,0,0,1140,1141,3,394,197,0,1141,159,1,0,0,0,1142,1143,3,392,196,0,1143, -161,1,0,0,0,1144,1145,3,164,82,0,1145,163,1,0,0,0,1146,1149,5,89,0,0,1147, -1148,5,47,0,0,1148,1150,5,89,0,0,1149,1147,1,0,0,0,1150,1151,1,0,0,0,1151, -1149,1,0,0,0,1151,1152,1,0,0,0,1152,165,1,0,0,0,1153,1158,5,89,0,0,1154, -1155,5,47,0,0,1155,1157,5,89,0,0,1156,1154,1,0,0,0,1157,1160,1,0,0,0,1158, -1156,1,0,0,0,1158,1159,1,0,0,0,1159,167,1,0,0,0,1160,1158,1,0,0,0,1161,1162, -5,41,0,0,1162,1163,3,134,67,0,1163,1164,5,44,0,0,1164,169,1,0,0,0,1165,1167, -5,42,0,0,1166,1168,3,174,87,0,1167,1166,1,0,0,0,1167,1168,1,0,0,0,1168,1169, -1,0,0,0,1169,1176,5,45,0,0,1170,1172,5,41,0,0,1171,1173,3,172,86,0,1172, -1171,1,0,0,0,1172,1173,1,0,0,0,1173,1174,1,0,0,0,1174,1176,5,44,0,0,1175, -1165,1,0,0,0,1175,1170,1,0,0,0,1176,171,1,0,0,0,1177,1178,3,176,88,0,1178, -1180,5,49,0,0,1179,1181,3,174,87,0,1180,1179,1,0,0,0,1180,1181,1,0,0,0,1181, -173,1,0,0,0,1182,1187,3,176,88,0,1183,1184,5,49,0,0,1184,1186,3,176,88,0, -1185,1183,1,0,0,0,1186,1189,1,0,0,0,1187,1185,1,0,0,0,1187,1188,1,0,0,0, -1188,1191,1,0,0,0,1189,1187,1,0,0,0,1190,1192,5,49,0,0,1191,1190,1,0,0,0, -1191,1192,1,0,0,0,1192,175,1,0,0,0,1193,1196,3,178,89,0,1194,1196,3,134, -67,0,1195,1193,1,0,0,0,1195,1194,1,0,0,0,1196,177,1,0,0,0,1197,1198,5,53, -0,0,1198,1202,3,158,79,0,1199,1200,5,53,0,0,1200,1202,3,160,80,0,1201,1197, -1,0,0,0,1201,1199,1,0,0,0,1202,179,1,0,0,0,1203,1204,5,43,0,0,1204,1224, -5,46,0,0,1205,1206,5,43,0,0,1206,1208,3,186,93,0,1207,1209,5,49,0,0,1208, -1207,1,0,0,0,1208,1209,1,0,0,0,1209,1210,1,0,0,0,1210,1211,5,46,0,0,1211, -1224,1,0,0,0,1212,1213,5,43,0,0,1213,1216,3,182,91,0,1214,1215,5,49,0,0, -1215,1217,3,186,93,0,1216,1214,1,0,0,0,1216,1217,1,0,0,0,1217,1219,1,0,0, -0,1218,1220,5,49,0,0,1219,1218,1,0,0,0,1219,1220,1,0,0,0,1220,1221,1,0,0, -0,1221,1222,5,46,0,0,1222,1224,1,0,0,0,1223,1203,1,0,0,0,1223,1205,1,0,0, -0,1223,1212,1,0,0,0,1224,181,1,0,0,0,1225,1230,3,184,92,0,1226,1227,5,49, -0,0,1227,1229,3,184,92,0,1228,1226,1,0,0,0,1229,1232,1,0,0,0,1230,1228,1, -0,0,0,1230,1231,1,0,0,0,1231,183,1,0,0,0,1232,1230,1,0,0,0,1233,1236,3,144, -72,0,1234,1236,3,164,82,0,1235,1233,1,0,0,0,1235,1234,1,0,0,0,1236,1237, -1,0,0,0,1237,1238,5,48,0,0,1238,1239,3,134,67,0,1239,185,1,0,0,0,1240,1241, -5,69,0,0,1241,1242,3,158,79,0,1242,187,1,0,0,0,1243,1244,3,166,83,0,1244, -1256,5,41,0,0,1245,1248,3,190,95,0,1246,1247,5,49,0,0,1247,1249,3,192,96, -0,1248,1246,1,0,0,0,1248,1249,1,0,0,0,1249,1252,1,0,0,0,1250,1252,3,192, -96,0,1251,1245,1,0,0,0,1251,1250,1,0,0,0,1252,1254,1,0,0,0,1253,1255,5,49, -0,0,1254,1253,1,0,0,0,1254,1255,1,0,0,0,1255,1257,1,0,0,0,1256,1251,1,0, -0,0,1256,1257,1,0,0,0,1257,1258,1,0,0,0,1258,1259,5,44,0,0,1259,189,1,0, -0,0,1260,1265,3,134,67,0,1261,1262,5,49,0,0,1262,1264,3,134,67,0,1263,1261, -1,0,0,0,1264,1267,1,0,0,0,1265,1263,1,0,0,0,1265,1266,1,0,0,0,1266,191,1, -0,0,0,1267,1265,1,0,0,0,1268,1273,3,194,97,0,1269,1270,5,49,0,0,1270,1272, -3,194,97,0,1271,1269,1,0,0,0,1272,1275,1,0,0,0,1273,1271,1,0,0,0,1273,1274, -1,0,0,0,1274,193,1,0,0,0,1275,1273,1,0,0,0,1276,1277,5,89,0,0,1277,1278, -5,59,0,0,1278,1279,3,134,67,0,1279,195,1,0,0,0,1280,1281,3,386,193,0,1281, -1283,5,89,0,0,1282,1284,3,198,99,0,1283,1282,1,0,0,0,1283,1284,1,0,0,0,1284, -1285,1,0,0,0,1285,1286,5,59,0,0,1286,1287,3,208,104,0,1287,197,1,0,0,0,1288, -1289,5,42,0,0,1289,1290,3,200,100,0,1290,1291,5,45,0,0,1291,199,1,0,0,0, -1292,1297,3,202,101,0,1293,1294,5,49,0,0,1294,1296,3,202,101,0,1295,1293, -1,0,0,0,1296,1299,1,0,0,0,1297,1295,1,0,0,0,1297,1298,1,0,0,0,1298,1301, -1,0,0,0,1299,1297,1,0,0,0,1300,1302,5,49,0,0,1301,1300,1,0,0,0,1301,1302, -1,0,0,0,1302,201,1,0,0,0,1303,1305,5,89,0,0,1304,1306,3,204,102,0,1305,1304, -1,0,0,0,1305,1306,1,0,0,0,1306,1320,1,0,0,0,1307,1308,5,53,0,0,1308,1311, -5,89,0,0,1309,1310,5,48,0,0,1310,1312,3,208,104,0,1311,1309,1,0,0,0,1311, -1312,1,0,0,0,1312,1320,1,0,0,0,1313,1314,5,69,0,0,1314,1317,5,89,0,0,1315, -1316,5,48,0,0,1316,1318,3,208,104,0,1317,1315,1,0,0,0,1317,1318,1,0,0,0, -1318,1320,1,0,0,0,1319,1303,1,0,0,0,1319,1307,1,0,0,0,1319,1313,1,0,0,0, -1320,203,1,0,0,0,1321,1322,5,48,0,0,1322,1323,3,208,104,0,1323,205,1,0,0, -0,1324,1329,3,208,104,0,1325,1326,5,49,0,0,1326,1328,3,208,104,0,1327,1325, -1,0,0,0,1328,1331,1,0,0,0,1329,1327,1,0,0,0,1329,1330,1,0,0,0,1330,1333, -1,0,0,0,1331,1329,1,0,0,0,1332,1334,5,49,0,0,1333,1332,1,0,0,0,1333,1334, -1,0,0,0,1334,207,1,0,0,0,1335,1341,3,224,112,0,1336,1337,5,38,0,0,1337,1338, -3,224,112,0,1338,1339,5,8,0,0,1339,1340,3,208,104,0,1340,1342,1,0,0,0,1341, -1336,1,0,0,0,1341,1342,1,0,0,0,1342,1345,1,0,0,0,1343,1345,3,282,141,0,1344, -1335,1,0,0,0,1344,1343,1,0,0,0,1345,209,1,0,0,0,1346,1352,5,40,0,0,1347, -1348,5,28,0,0,1348,1353,3,208,104,0,1349,1351,3,212,106,0,1350,1349,1,0, -0,0,1350,1351,1,0,0,0,1351,1353,1,0,0,0,1352,1347,1,0,0,0,1352,1350,1,0, -0,0,1353,211,1,0,0,0,1354,1359,3,214,107,0,1355,1356,5,49,0,0,1356,1358, -3,214,107,0,1357,1355,1,0,0,0,1358,1361,1,0,0,0,1359,1357,1,0,0,0,1359,1360, -1,0,0,0,1360,1363,1,0,0,0,1361,1359,1,0,0,0,1362,1364,5,49,0,0,1363,1362, -1,0,0,0,1363,1364,1,0,0,0,1364,213,1,0,0,0,1365,1366,5,53,0,0,1366,1369, -3,254,127,0,1367,1369,3,208,104,0,1368,1365,1,0,0,0,1368,1367,1,0,0,0,1369, -215,1,0,0,0,1370,1375,3,218,109,0,1371,1372,5,49,0,0,1372,1374,3,218,109, -0,1373,1371,1,0,0,0,1374,1377,1,0,0,0,1375,1373,1,0,0,0,1375,1376,1,0,0, -0,1376,1379,1,0,0,0,1377,1375,1,0,0,0,1378,1380,5,49,0,0,1379,1378,1,0,0, -0,1379,1380,1,0,0,0,1380,217,1,0,0,0,1381,1382,5,53,0,0,1382,1385,3,254, -127,0,1383,1385,3,222,111,0,1384,1381,1,0,0,0,1384,1383,1,0,0,0,1385,219, -1,0,0,0,1386,1387,5,89,0,0,1387,1388,5,87,0,0,1388,1389,3,208,104,0,1389, -221,1,0,0,0,1390,1393,3,220,110,0,1391,1393,3,208,104,0,1392,1390,1,0,0, -0,1392,1391,1,0,0,0,1393,223,1,0,0,0,1394,1399,3,226,113,0,1395,1396,5,39, -0,0,1396,1398,3,226,113,0,1397,1395,1,0,0,0,1398,1401,1,0,0,0,1399,1397, -1,0,0,0,1399,1400,1,0,0,0,1400,225,1,0,0,0,1401,1399,1,0,0,0,1402,1407,3, -228,114,0,1403,1404,5,21,0,0,1404,1406,3,228,114,0,1405,1403,1,0,0,0,1406, -1409,1,0,0,0,1407,1405,1,0,0,0,1407,1408,1,0,0,0,1408,227,1,0,0,0,1409,1407, -1,0,0,0,1410,1411,5,34,0,0,1411,1414,3,228,114,0,1412,1414,3,230,115,0,1413, -1410,1,0,0,0,1413,1412,1,0,0,0,1414,229,1,0,0,0,1415,1419,3,254,127,0,1416, -1418,3,232,116,0,1417,1416,1,0,0,0,1418,1421,1,0,0,0,1419,1417,1,0,0,0,1419, -1420,1,0,0,0,1420,231,1,0,0,0,1421,1419,1,0,0,0,1422,1433,3,234,117,0,1423, -1433,3,236,118,0,1424,1433,3,238,119,0,1425,1433,3,240,120,0,1426,1433,3, -242,121,0,1427,1433,3,244,122,0,1428,1433,3,246,123,0,1429,1433,3,248,124, -0,1430,1433,3,250,125,0,1431,1433,3,252,126,0,1432,1422,1,0,0,0,1432,1423, -1,0,0,0,1432,1424,1,0,0,0,1432,1425,1,0,0,0,1432,1426,1,0,0,0,1432,1427, -1,0,0,0,1432,1428,1,0,0,0,1432,1429,1,0,0,0,1432,1430,1,0,0,0,1432,1431, -1,0,0,0,1433,233,1,0,0,0,1434,1435,5,61,0,0,1435,1436,3,254,127,0,1436,235, -1,0,0,0,1437,1438,5,62,0,0,1438,1439,3,254,127,0,1439,237,1,0,0,0,1440,1441, -5,63,0,0,1441,1442,3,254,127,0,1442,239,1,0,0,0,1443,1444,5,57,0,0,1444, -1445,3,254,127,0,1445,241,1,0,0,0,1446,1447,5,64,0,0,1447,1448,3,254,127, -0,1448,243,1,0,0,0,1449,1450,5,58,0,0,1450,1451,3,254,127,0,1451,245,1,0, -0,0,1452,1453,5,34,0,0,1453,1454,5,14,0,0,1454,1455,3,254,127,0,1455,247, -1,0,0,0,1456,1457,5,14,0,0,1457,1458,3,254,127,0,1458,249,1,0,0,0,1459,1460, -5,19,0,0,1460,1461,5,34,0,0,1461,1462,3,254,127,0,1462,251,1,0,0,0,1463, -1464,5,19,0,0,1464,1465,3,254,127,0,1465,253,1,0,0,0,1466,1467,6,127,-1, -0,1467,1468,3,256,128,0,1468,1474,1,0,0,0,1469,1470,10,2,0,0,1470,1471,5, -55,0,0,1471,1473,3,256,128,0,1472,1469,1,0,0,0,1473,1476,1,0,0,0,1474,1472, -1,0,0,0,1474,1475,1,0,0,0,1475,255,1,0,0,0,1476,1474,1,0,0,0,1477,1478,6, -128,-1,0,1478,1479,3,258,129,0,1479,1485,1,0,0,0,1480,1481,10,2,0,0,1481, -1482,5,66,0,0,1482,1484,3,258,129,0,1483,1480,1,0,0,0,1484,1487,1,0,0,0, -1485,1483,1,0,0,0,1485,1486,1,0,0,0,1486,257,1,0,0,0,1487,1485,1,0,0,0,1488, -1489,6,129,-1,0,1489,1490,3,260,130,0,1490,1496,1,0,0,0,1491,1492,10,2,0, -0,1492,1493,5,56,0,0,1493,1495,3,260,130,0,1494,1491,1,0,0,0,1495,1498,1, -0,0,0,1496,1494,1,0,0,0,1496,1497,1,0,0,0,1497,259,1,0,0,0,1498,1496,1,0, -0,0,1499,1500,6,130,-1,0,1500,1501,3,262,131,0,1501,1507,1,0,0,0,1502,1503, -10,2,0,0,1503,1504,7,3,0,0,1504,1506,3,262,131,0,1505,1502,1,0,0,0,1506, -1509,1,0,0,0,1507,1505,1,0,0,0,1507,1508,1,0,0,0,1508,261,1,0,0,0,1509,1507, -1,0,0,0,1510,1511,6,131,-1,0,1511,1512,3,264,132,0,1512,1518,1,0,0,0,1513, -1514,10,2,0,0,1514,1515,7,2,0,0,1515,1517,3,264,132,0,1516,1513,1,0,0,0, -1517,1520,1,0,0,0,1518,1516,1,0,0,0,1518,1519,1,0,0,0,1519,263,1,0,0,0,1520, -1518,1,0,0,0,1521,1522,6,132,-1,0,1522,1523,3,266,133,0,1523,1529,1,0,0, -0,1524,1525,10,2,0,0,1525,1526,7,4,0,0,1526,1528,3,266,133,0,1527,1524,1, -0,0,0,1528,1531,1,0,0,0,1529,1527,1,0,0,0,1529,1530,1,0,0,0,1530,265,1,0, -0,0,1531,1529,1,0,0,0,1532,1533,5,51,0,0,1533,1540,3,266,133,0,1534,1535, -5,52,0,0,1535,1540,3,266,133,0,1536,1537,5,65,0,0,1537,1540,3,266,133,0, -1538,1540,3,268,134,0,1539,1532,1,0,0,0,1539,1534,1,0,0,0,1539,1536,1,0, -0,0,1539,1538,1,0,0,0,1540,267,1,0,0,0,1541,1544,3,270,135,0,1542,1543,5, -69,0,0,1543,1545,3,266,133,0,1544,1542,1,0,0,0,1544,1545,1,0,0,0,1545,269, -1,0,0,0,1546,1547,5,7,0,0,1547,1550,3,272,136,0,1548,1550,3,272,136,0,1549, -1546,1,0,0,0,1549,1548,1,0,0,0,1550,271,1,0,0,0,1551,1552,6,136,-1,0,1552, -1553,3,278,139,0,1553,1571,1,0,0,0,1554,1567,10,2,0,0,1555,1556,5,47,0,0, -1556,1568,5,89,0,0,1557,1568,3,342,171,0,1558,1560,5,41,0,0,1559,1561,3, -346,173,0,1560,1559,1,0,0,0,1560,1561,1,0,0,0,1561,1562,1,0,0,0,1562,1568, -5,44,0,0,1563,1564,5,42,0,0,1564,1565,3,274,137,0,1565,1566,5,45,0,0,1566, -1568,1,0,0,0,1567,1555,1,0,0,0,1567,1557,1,0,0,0,1567,1558,1,0,0,0,1567, -1563,1,0,0,0,1568,1570,1,0,0,0,1569,1554,1,0,0,0,1570,1573,1,0,0,0,1571, -1569,1,0,0,0,1571,1572,1,0,0,0,1572,273,1,0,0,0,1573,1571,1,0,0,0,1574,1593, -3,276,138,0,1575,1578,3,276,138,0,1576,1578,3,352,176,0,1577,1575,1,0,0, -0,1577,1576,1,0,0,0,1578,1586,1,0,0,0,1579,1582,5,49,0,0,1580,1583,3,276, -138,0,1581,1583,3,352,176,0,1582,1580,1,0,0,0,1582,1581,1,0,0,0,1583,1585, -1,0,0,0,1584,1579,1,0,0,0,1585,1588,1,0,0,0,1586,1584,1,0,0,0,1586,1587, -1,0,0,0,1587,1590,1,0,0,0,1588,1586,1,0,0,0,1589,1591,5,49,0,0,1590,1589, -1,0,0,0,1590,1591,1,0,0,0,1591,1593,1,0,0,0,1592,1574,1,0,0,0,1592,1577, -1,0,0,0,1593,275,1,0,0,0,1594,1596,3,208,104,0,1595,1594,1,0,0,0,1595,1596, -1,0,0,0,1596,1597,1,0,0,0,1597,1599,5,48,0,0,1598,1600,3,208,104,0,1599, -1598,1,0,0,0,1599,1600,1,0,0,0,1600,1605,1,0,0,0,1601,1603,5,48,0,0,1602, -1604,3,208,104,0,1603,1602,1,0,0,0,1603,1604,1,0,0,0,1604,1606,1,0,0,0,1605, -1601,1,0,0,0,1605,1606,1,0,0,0,1606,1609,1,0,0,0,1607,1609,3,222,111,0,1608, -1595,1,0,0,0,1608,1607,1,0,0,0,1609,277,1,0,0,0,1610,1633,5,89,0,0,1611, -1633,5,16,0,0,1612,1633,5,6,0,0,1613,1633,5,11,0,0,1614,1633,3,318,159,0, -1615,1633,5,90,0,0,1616,1620,3,322,161,0,1617,1620,3,280,140,0,1618,1620, -3,342,171,0,1619,1616,1,0,0,0,1619,1617,1,0,0,0,1619,1618,1,0,0,0,1620,1633, -1,0,0,0,1621,1624,3,320,160,0,1622,1624,3,338,169,0,1623,1621,1,0,0,0,1623, -1622,1,0,0,0,1624,1633,1,0,0,0,1625,1630,3,326,163,0,1626,1630,3,324,162, -0,1627,1630,3,344,172,0,1628,1630,3,340,170,0,1629,1625,1,0,0,0,1629,1626, -1,0,0,0,1629,1627,1,0,0,0,1629,1628,1,0,0,0,1630,1633,1,0,0,0,1631,1633, -5,86,0,0,1632,1610,1,0,0,0,1632,1611,1,0,0,0,1632,1612,1,0,0,0,1632,1613, -1,0,0,0,1632,1614,1,0,0,0,1632,1615,1,0,0,0,1632,1619,1,0,0,0,1632,1623, -1,0,0,0,1632,1629,1,0,0,0,1632,1631,1,0,0,0,1633,279,1,0,0,0,1634,1637,5, -41,0,0,1635,1638,3,210,105,0,1636,1638,3,222,111,0,1637,1635,1,0,0,0,1637, -1636,1,0,0,0,1638,1639,1,0,0,0,1639,1640,5,44,0,0,1640,281,1,0,0,0,1641, -1643,5,24,0,0,1642,1644,3,284,142,0,1643,1642,1,0,0,0,1643,1644,1,0,0,0, -1644,1645,1,0,0,0,1645,1646,5,48,0,0,1646,1647,3,208,104,0,1647,283,1,0, -0,0,1648,1649,3,286,143,0,1649,285,1,0,0,0,1650,1654,3,288,144,0,1651,1653, -3,296,148,0,1652,1651,1,0,0,0,1653,1656,1,0,0,0,1654,1652,1,0,0,0,1654,1655, -1,0,0,0,1655,1660,1,0,0,0,1656,1654,1,0,0,0,1657,1659,3,298,149,0,1658,1657, -1,0,0,0,1659,1662,1,0,0,0,1660,1658,1,0,0,0,1660,1661,1,0,0,0,1661,1664, -1,0,0,0,1662,1660,1,0,0,0,1663,1665,3,292,146,0,1664,1663,1,0,0,0,1664,1665, -1,0,0,0,1665,1700,1,0,0,0,1666,1670,3,290,145,0,1667,1669,3,298,149,0,1668, -1667,1,0,0,0,1669,1672,1,0,0,0,1670,1668,1,0,0,0,1670,1671,1,0,0,0,1671, -1674,1,0,0,0,1672,1670,1,0,0,0,1673,1675,3,292,146,0,1674,1673,1,0,0,0,1674, -1675,1,0,0,0,1675,1700,1,0,0,0,1676,1678,3,296,148,0,1677,1676,1,0,0,0,1678, -1679,1,0,0,0,1679,1677,1,0,0,0,1679,1680,1,0,0,0,1680,1684,1,0,0,0,1681, -1683,3,298,149,0,1682,1681,1,0,0,0,1683,1686,1,0,0,0,1684,1682,1,0,0,0,1684, -1685,1,0,0,0,1685,1688,1,0,0,0,1686,1684,1,0,0,0,1687,1689,3,292,146,0,1688, -1687,1,0,0,0,1688,1689,1,0,0,0,1689,1700,1,0,0,0,1690,1692,3,298,149,0,1691, -1690,1,0,0,0,1692,1693,1,0,0,0,1693,1691,1,0,0,0,1693,1694,1,0,0,0,1694, -1696,1,0,0,0,1695,1697,3,292,146,0,1696,1695,1,0,0,0,1696,1697,1,0,0,0,1697, -1700,1,0,0,0,1698,1700,3,292,146,0,1699,1650,1,0,0,0,1699,1666,1,0,0,0,1699, -1677,1,0,0,0,1699,1691,1,0,0,0,1699,1698,1,0,0,0,1700,287,1,0,0,0,1701,1703, -3,296,148,0,1702,1701,1,0,0,0,1703,1704,1,0,0,0,1704,1702,1,0,0,0,1704,1705, -1,0,0,0,1705,1706,1,0,0,0,1706,1708,5,54,0,0,1707,1709,5,49,0,0,1708,1707, -1,0,0,0,1708,1709,1,0,0,0,1709,289,1,0,0,0,1710,1712,3,296,148,0,1711,1710, -1,0,0,0,1712,1715,1,0,0,0,1713,1711,1,0,0,0,1713,1714,1,0,0,0,1714,1717, -1,0,0,0,1715,1713,1,0,0,0,1716,1718,3,298,149,0,1717,1716,1,0,0,0,1718,1719, -1,0,0,0,1719,1717,1,0,0,0,1719,1720,1,0,0,0,1720,1721,1,0,0,0,1721,1723, -5,54,0,0,1722,1724,5,49,0,0,1723,1722,1,0,0,0,1723,1724,1,0,0,0,1724,291, -1,0,0,0,1725,1726,5,53,0,0,1726,1730,3,296,148,0,1727,1729,3,300,150,0,1728, -1727,1,0,0,0,1729,1732,1,0,0,0,1730,1728,1,0,0,0,1730,1731,1,0,0,0,1731, -1734,1,0,0,0,1732,1730,1,0,0,0,1733,1735,3,294,147,0,1734,1733,1,0,0,0,1734, -1735,1,0,0,0,1735,1748,1,0,0,0,1736,1737,5,53,0,0,1737,1739,5,49,0,0,1738, -1740,3,300,150,0,1739,1738,1,0,0,0,1740,1741,1,0,0,0,1741,1739,1,0,0,0,1741, -1742,1,0,0,0,1742,1744,1,0,0,0,1743,1745,3,294,147,0,1744,1743,1,0,0,0,1744, -1745,1,0,0,0,1745,1748,1,0,0,0,1746,1748,3,294,147,0,1747,1725,1,0,0,0,1747, -1736,1,0,0,0,1747,1746,1,0,0,0,1748,293,1,0,0,0,1749,1750,5,69,0,0,1750, -1751,3,296,148,0,1751,295,1,0,0,0,1752,1754,3,302,151,0,1753,1755,5,49,0, -0,1754,1753,1,0,0,0,1754,1755,1,0,0,0,1755,297,1,0,0,0,1756,1757,3,302,151, -0,1757,1759,3,100,50,0,1758,1760,5,49,0,0,1759,1758,1,0,0,0,1759,1760,1, -0,0,0,1760,299,1,0,0,0,1761,1763,3,302,151,0,1762,1764,3,100,50,0,1763,1762, -1,0,0,0,1763,1764,1,0,0,0,1764,1766,1,0,0,0,1765,1767,5,49,0,0,1766,1765, -1,0,0,0,1766,1767,1,0,0,0,1767,301,1,0,0,0,1768,1769,5,89,0,0,1769,303,1, -0,0,0,1770,1773,3,306,153,0,1771,1773,5,4,0,0,1772,1770,1,0,0,0,1772,1771, -1,0,0,0,1773,305,1,0,0,0,1774,1777,5,43,0,0,1775,1778,3,210,105,0,1776,1778, -3,212,106,0,1777,1775,1,0,0,0,1777,1776,1,0,0,0,1778,1780,1,0,0,0,1779,1781, -5,59,0,0,1780,1779,1,0,0,0,1780,1781,1,0,0,0,1781,1783,1,0,0,0,1782,1784, -3,308,154,0,1783,1782,1,0,0,0,1783,1784,1,0,0,0,1784,1786,1,0,0,0,1785,1787, -3,310,155,0,1786,1785,1,0,0,0,1786,1787,1,0,0,0,1787,1788,1,0,0,0,1788,1789, -5,46,0,0,1789,307,1,0,0,0,1790,1791,5,88,0,0,1791,1792,5,89,0,0,1792,309, -1,0,0,0,1793,1797,5,48,0,0,1794,1796,3,312,156,0,1795,1794,1,0,0,0,1796, -1799,1,0,0,0,1797,1795,1,0,0,0,1797,1798,1,0,0,0,1798,311,1,0,0,0,1799,1797, -1,0,0,0,1800,1803,5,4,0,0,1801,1803,3,306,153,0,1802,1800,1,0,0,0,1802,1801, -1,0,0,0,1803,313,1,0,0,0,1804,1808,5,3,0,0,1805,1807,3,304,152,0,1806,1805, -1,0,0,0,1807,1810,1,0,0,0,1808,1806,1,0,0,0,1808,1809,1,0,0,0,1809,1811, -1,0,0,0,1810,1808,1,0,0,0,1811,1812,5,5,0,0,1812,315,1,0,0,0,1813,1814,5, -91,0,0,1814,317,1,0,0,0,1815,1818,3,314,157,0,1816,1818,3,316,158,0,1817, -1815,1,0,0,0,1817,1816,1,0,0,0,1818,1819,1,0,0,0,1819,1817,1,0,0,0,1819, -1820,1,0,0,0,1820,319,1,0,0,0,1821,1823,5,42,0,0,1822,1824,3,216,108,0,1823, -1822,1,0,0,0,1823,1824,1,0,0,0,1824,1825,1,0,0,0,1825,1826,5,45,0,0,1826, -321,1,0,0,0,1827,1833,5,41,0,0,1828,1829,3,218,109,0,1829,1831,5,49,0,0, -1830,1832,3,216,108,0,1831,1830,1,0,0,0,1831,1832,1,0,0,0,1832,1834,1,0, -0,0,1833,1828,1,0,0,0,1833,1834,1,0,0,0,1834,1835,1,0,0,0,1835,1836,5,44, -0,0,1836,323,1,0,0,0,1837,1838,5,43,0,0,1838,1839,3,216,108,0,1839,1840, -5,46,0,0,1840,325,1,0,0,0,1841,1843,5,43,0,0,1842,1844,3,328,164,0,1843, -1842,1,0,0,0,1843,1844,1,0,0,0,1844,1845,1,0,0,0,1845,1846,5,46,0,0,1846, -327,1,0,0,0,1847,1852,3,330,165,0,1848,1849,5,49,0,0,1849,1851,3,330,165, -0,1850,1848,1,0,0,0,1851,1854,1,0,0,0,1852,1850,1,0,0,0,1852,1853,1,0,0, -0,1853,1856,1,0,0,0,1854,1852,1,0,0,0,1855,1857,5,49,0,0,1856,1855,1,0,0, -0,1856,1857,1,0,0,0,1857,329,1,0,0,0,1858,1859,5,69,0,0,1859,1862,3,254, -127,0,1860,1862,3,332,166,0,1861,1858,1,0,0,0,1861,1860,1,0,0,0,1862,331, -1,0,0,0,1863,1864,3,208,104,0,1864,1865,5,48,0,0,1865,1866,3,208,104,0,1866, -333,1,0,0,0,1867,1869,3,336,168,0,1868,1867,1,0,0,0,1869,1870,1,0,0,0,1870, -1868,1,0,0,0,1870,1871,1,0,0,0,1871,335,1,0,0,0,1872,1874,5,36,0,0,1873, -1872,1,0,0,0,1873,1874,1,0,0,0,1874,1875,1,0,0,0,1875,1876,5,23,0,0,1876, -1877,3,358,179,0,1877,1878,5,14,0,0,1878,1883,3,224,112,0,1879,1880,5,38, -0,0,1880,1882,3,224,112,0,1881,1879,1,0,0,0,1882,1885,1,0,0,0,1883,1881, -1,0,0,0,1883,1884,1,0,0,0,1884,337,1,0,0,0,1885,1883,1,0,0,0,1886,1887,5, -42,0,0,1887,1888,3,222,111,0,1888,1889,3,334,167,0,1889,1890,5,45,0,0,1890, -339,1,0,0,0,1891,1892,5,43,0,0,1892,1893,3,222,111,0,1893,1894,3,334,167, -0,1894,1895,5,46,0,0,1895,341,1,0,0,0,1896,1899,5,41,0,0,1897,1900,3,220, -110,0,1898,1900,3,208,104,0,1899,1897,1,0,0,0,1899,1898,1,0,0,0,1900,1901, -1,0,0,0,1901,1902,3,334,167,0,1902,1903,5,44,0,0,1903,343,1,0,0,0,1904,1905, -5,43,0,0,1905,1906,3,332,166,0,1906,1907,3,334,167,0,1907,1908,5,46,0,0, -1908,345,1,0,0,0,1909,1911,3,348,174,0,1910,1912,5,49,0,0,1911,1910,1,0, -0,0,1911,1912,1,0,0,0,1912,347,1,0,0,0,1913,1919,3,352,176,0,1914,1917,3, -220,110,0,1915,1917,3,208,104,0,1916,1914,1,0,0,0,1916,1915,1,0,0,0,1917, -1919,1,0,0,0,1918,1913,1,0,0,0,1918,1916,1,0,0,0,1919,1930,1,0,0,0,1920, -1926,5,49,0,0,1921,1927,3,352,176,0,1922,1925,3,220,110,0,1923,1925,3,208, -104,0,1924,1922,1,0,0,0,1924,1923,1,0,0,0,1925,1927,1,0,0,0,1926,1921,1, -0,0,0,1926,1924,1,0,0,0,1927,1929,1,0,0,0,1928,1920,1,0,0,0,1929,1932,1, -0,0,0,1930,1928,1,0,0,0,1930,1931,1,0,0,0,1931,1935,1,0,0,0,1932,1930,1, -0,0,0,1933,1934,5,49,0,0,1934,1936,3,350,175,0,1935,1933,1,0,0,0,1935,1936, -1,0,0,0,1936,1939,1,0,0,0,1937,1939,3,350,175,0,1938,1918,1,0,0,0,1938,1937, -1,0,0,0,1939,349,1,0,0,0,1940,1945,3,354,177,0,1941,1942,5,49,0,0,1942,1944, -3,354,177,0,1943,1941,1,0,0,0,1944,1947,1,0,0,0,1945,1943,1,0,0,0,1945,1946, -1,0,0,0,1946,1957,1,0,0,0,1947,1945,1,0,0,0,1948,1949,5,49,0,0,1949,1954, -3,356,178,0,1950,1951,5,49,0,0,1951,1953,3,356,178,0,1952,1950,1,0,0,0,1953, -1956,1,0,0,0,1954,1952,1,0,0,0,1954,1955,1,0,0,0,1955,1958,1,0,0,0,1956, -1954,1,0,0,0,1957,1948,1,0,0,0,1957,1958,1,0,0,0,1958,1968,1,0,0,0,1959, -1964,3,356,178,0,1960,1961,5,49,0,0,1961,1963,3,356,178,0,1962,1960,1,0, -0,0,1963,1966,1,0,0,0,1964,1962,1,0,0,0,1964,1965,1,0,0,0,1965,1968,1,0, -0,0,1966,1964,1,0,0,0,1967,1940,1,0,0,0,1967,1959,1,0,0,0,1968,351,1,0,0, -0,1969,1970,5,53,0,0,1970,1971,3,208,104,0,1971,353,1,0,0,0,1972,1973,5, -89,0,0,1973,1974,5,59,0,0,1974,1977,3,208,104,0,1975,1977,3,352,176,0,1976, -1972,1,0,0,0,1976,1975,1,0,0,0,1977,355,1,0,0,0,1978,1979,5,89,0,0,1979, -1980,5,59,0,0,1980,1984,3,208,104,0,1981,1982,5,69,0,0,1982,1984,3,208,104, -0,1983,1978,1,0,0,0,1983,1981,1,0,0,0,1984,357,1,0,0,0,1985,1990,3,364,182, -0,1986,1987,5,49,0,0,1987,1989,3,364,182,0,1988,1986,1,0,0,0,1989,1992,1, -0,0,0,1990,1988,1,0,0,0,1990,1991,1,0,0,0,1991,1994,1,0,0,0,1992,1990,1, -0,0,0,1993,1995,5,49,0,0,1994,1993,1,0,0,0,1994,1995,1,0,0,0,1995,359,1, -0,0,0,1996,1999,3,364,182,0,1997,1998,5,49,0,0,1998,2000,3,364,182,0,1999, -1997,1,0,0,0,2000,2001,1,0,0,0,2001,1999,1,0,0,0,2001,2002,1,0,0,0,2002, -2004,1,0,0,0,2003,2005,5,49,0,0,2004,2003,1,0,0,0,2004,2005,1,0,0,0,2005, -361,1,0,0,0,2006,2017,3,364,182,0,2007,2018,5,49,0,0,2008,2009,5,49,0,0, -2009,2011,3,364,182,0,2010,2008,1,0,0,0,2011,2012,1,0,0,0,2012,2010,1,0, -0,0,2012,2013,1,0,0,0,2013,2015,1,0,0,0,2014,2016,5,49,0,0,2015,2014,1,0, -0,0,2015,2016,1,0,0,0,2016,2018,1,0,0,0,2017,2007,1,0,0,0,2017,2010,1,0, -0,0,2018,363,1,0,0,0,2019,2020,5,53,0,0,2020,2023,3,364,182,0,2021,2023, -3,366,183,0,2022,2019,1,0,0,0,2022,2021,1,0,0,0,2023,365,1,0,0,0,2024,2031, -3,374,187,0,2025,2026,5,47,0,0,2026,2032,5,89,0,0,2027,2028,5,42,0,0,2028, -2029,3,274,137,0,2029,2030,5,45,0,0,2030,2032,1,0,0,0,2031,2025,1,0,0,0, -2031,2027,1,0,0,0,2032,2035,1,0,0,0,2033,2035,3,368,184,0,2034,2024,1,0, -0,0,2034,2033,1,0,0,0,2035,367,1,0,0,0,2036,2052,5,89,0,0,2037,2038,5,41, -0,0,2038,2039,3,366,183,0,2039,2040,5,44,0,0,2040,2052,1,0,0,0,2041,2043, -5,41,0,0,2042,2044,3,362,181,0,2043,2042,1,0,0,0,2043,2044,1,0,0,0,2044, -2045,1,0,0,0,2045,2052,5,44,0,0,2046,2048,5,42,0,0,2047,2049,3,360,180,0, -2048,2047,1,0,0,0,2048,2049,1,0,0,0,2049,2050,1,0,0,0,2050,2052,5,45,0,0, -2051,2036,1,0,0,0,2051,2037,1,0,0,0,2051,2041,1,0,0,0,2051,2046,1,0,0,0, -2052,369,1,0,0,0,2053,2060,3,372,186,0,2054,2060,5,89,0,0,2055,2056,5,41, -0,0,2056,2057,3,370,185,0,2057,2058,5,44,0,0,2058,2060,1,0,0,0,2059,2053, -1,0,0,0,2059,2054,1,0,0,0,2059,2055,1,0,0,0,2060,371,1,0,0,0,2061,2068,3, -374,187,0,2062,2063,5,47,0,0,2063,2069,5,89,0,0,2064,2065,5,42,0,0,2065, -2066,3,274,137,0,2066,2067,5,45,0,0,2067,2069,1,0,0,0,2068,2062,1,0,0,0, -2068,2064,1,0,0,0,2069,373,1,0,0,0,2070,2071,6,187,-1,0,2071,2072,3,278, -139,0,2072,2090,1,0,0,0,2073,2086,10,2,0,0,2074,2075,5,47,0,0,2075,2087, -5,89,0,0,2076,2077,5,42,0,0,2077,2078,3,274,137,0,2078,2079,5,45,0,0,2079, -2087,1,0,0,0,2080,2087,3,342,171,0,2081,2083,5,41,0,0,2082,2084,3,346,173, -0,2083,2082,1,0,0,0,2083,2084,1,0,0,0,2084,2085,1,0,0,0,2085,2087,5,44,0, -0,2086,2074,1,0,0,0,2086,2076,1,0,0,0,2086,2080,1,0,0,0,2086,2081,1,0,0, -0,2087,2089,1,0,0,0,2088,2073,1,0,0,0,2089,2092,1,0,0,0,2090,2088,1,0,0, -0,2090,2091,1,0,0,0,2091,375,1,0,0,0,2092,2090,1,0,0,0,2093,2098,3,378,189, -0,2094,2095,5,49,0,0,2095,2097,3,378,189,0,2096,2094,1,0,0,0,2097,2100,1, -0,0,0,2098,2096,1,0,0,0,2098,2099,1,0,0,0,2099,2102,1,0,0,0,2100,2098,1, -0,0,0,2101,2103,5,49,0,0,2102,2101,1,0,0,0,2102,2103,1,0,0,0,2103,377,1, -0,0,0,2104,2111,3,374,187,0,2105,2106,5,47,0,0,2106,2112,5,89,0,0,2107,2108, -5,42,0,0,2108,2109,3,274,137,0,2109,2110,5,45,0,0,2110,2112,1,0,0,0,2111, -2105,1,0,0,0,2111,2107,1,0,0,0,2112,2115,1,0,0,0,2113,2115,3,380,190,0,2114, -2104,1,0,0,0,2114,2113,1,0,0,0,2115,379,1,0,0,0,2116,2132,5,89,0,0,2117, -2118,5,41,0,0,2118,2119,3,378,189,0,2119,2120,5,44,0,0,2120,2132,1,0,0,0, -2121,2123,5,41,0,0,2122,2124,3,376,188,0,2123,2122,1,0,0,0,2123,2124,1,0, -0,0,2124,2125,1,0,0,0,2125,2132,5,44,0,0,2126,2128,5,42,0,0,2127,2129,3, -376,188,0,2128,2127,1,0,0,0,2128,2129,1,0,0,0,2129,2130,1,0,0,0,2130,2132, -5,45,0,0,2131,2116,1,0,0,0,2131,2117,1,0,0,0,2131,2121,1,0,0,0,2131,2126, -1,0,0,0,2132,381,1,0,0,0,2133,2138,3,208,104,0,2134,2135,5,49,0,0,2135,2137, -3,208,104,0,2136,2134,1,0,0,0,2137,2140,1,0,0,0,2138,2136,1,0,0,0,2138,2139, -1,0,0,0,2139,2153,1,0,0,0,2140,2138,1,0,0,0,2141,2151,5,49,0,0,2142,2143, -5,53,0,0,2143,2147,3,208,104,0,2144,2145,5,49,0,0,2145,2146,5,69,0,0,2146, -2148,3,208,104,0,2147,2144,1,0,0,0,2147,2148,1,0,0,0,2148,2152,1,0,0,0,2149, -2150,5,69,0,0,2150,2152,3,208,104,0,2151,2142,1,0,0,0,2151,2149,1,0,0,0, -2152,2154,1,0,0,0,2153,2141,1,0,0,0,2153,2154,1,0,0,0,2154,2165,1,0,0,0, -2155,2156,5,53,0,0,2156,2160,3,208,104,0,2157,2158,5,49,0,0,2158,2159,5, -69,0,0,2159,2161,3,208,104,0,2160,2157,1,0,0,0,2160,2161,1,0,0,0,2161,2165, -1,0,0,0,2162,2163,5,69,0,0,2163,2165,3,208,104,0,2164,2133,1,0,0,0,2164, -2155,1,0,0,0,2164,2162,1,0,0,0,2165,383,1,0,0,0,2166,2167,5,93,0,0,2167, -2170,5,92,0,0,2168,2170,5,92,0,0,2169,2166,1,0,0,0,2169,2168,1,0,0,0,2170, -385,1,0,0,0,2171,2172,4,193,9,0,2172,2173,5,89,0,0,2173,387,1,0,0,0,2174, -2175,4,194,10,0,2175,2176,5,89,0,0,2176,389,1,0,0,0,2177,2178,4,195,11,0, -2178,2179,5,89,0,0,2179,391,1,0,0,0,2180,2181,4,196,12,0,2181,2182,5,89, -0,0,2182,393,1,0,0,0,2183,2184,4,197,13,0,2184,2185,5,89,0,0,2185,395,1, -0,0,0,291,397,407,414,422,432,436,444,451,455,473,483,490,497,503,510,514, -517,523,525,529,535,541,543,551,560,572,576,585,596,600,605,611,618,624, -631,637,647,656,664,670,675,679,682,691,696,700,705,709,716,720,725,729, -732,740,746,750,756,760,765,770,774,779,782,785,790,794,799,805,809,816, -820,827,831,838,841,844,851,854,858,861,866,869,873,876,879,883,903,905, -913,915,926,929,937,941,944,953,957,967,972,974,981,994,997,1000,1008,1011, -1014,1016,1022,1024,1034,1051,1058,1061,1066,1076,1080,1091,1102,1110,1118, -1125,1130,1151,1158,1167,1172,1175,1180,1187,1191,1195,1201,1208,1216,1219, -1223,1230,1235,1248,1251,1254,1256,1265,1273,1283,1297,1301,1305,1311,1317, -1319,1329,1333,1341,1344,1350,1352,1359,1363,1368,1375,1379,1384,1392,1399, -1407,1413,1419,1432,1474,1485,1496,1507,1518,1529,1539,1544,1549,1560,1567, -1571,1577,1582,1586,1590,1592,1595,1599,1603,1605,1608,1619,1623,1629,1632, -1637,1643,1654,1660,1664,1670,1674,1679,1684,1688,1693,1696,1699,1704,1708, -1713,1719,1723,1730,1734,1741,1744,1747,1754,1759,1763,1766,1772,1777,1780, -1783,1786,1797,1802,1808,1817,1819,1823,1831,1833,1843,1852,1856,1861,1870, -1873,1883,1899,1911,1916,1918,1924,1926,1930,1935,1938,1945,1954,1957,1964, -1967,1976,1983,1990,1994,2001,2004,2012,2015,2017,2022,2031,2034,2043,2048, -2051,2059,2068,2083,2086,2090,2098,2102,2111,2114,2123,2128,2131,2138,2147, -2151,2153,2160,2164,2169]; - - -const atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); - -const decisionsToDFA = atn.decisionToState.map( (ds, index) => new antlr4.dfa.DFA(ds, index) ); - -const sharedContextCache = new antlr4.atn.PredictionContextCache(); - -export default class PythonParser extends PythonParserBase { - - static grammarFileName = "PythonParser.g4"; - static literalNames = [ null, null, null, null, null, null, "'False'", - "'await'", "'else'", "'import'", "'pass'", "'None'", - "'break'", "'except'", "'in'", "'raise'", "'True'", - "'class'", "'finally'", "'is'", "'return'", - "'and'", "'continue'", "'for'", "'lambda'", - "'try'", "'as'", "'def'", "'from'", "'nonlocal'", - "'while'", "'assert'", "'del'", "'global'", - "'not'", "'with'", "'async'", "'elif'", "'if'", - "'or'", "'yield'", "'('", "'['", null, "')'", - "']'", null, "'.'", "':'", "','", "';'", "'+'", - "'-'", "'*'", "'/'", "'|'", "'&'", "'<'", "'>'", - "'='", "'%'", "'=='", "'!='", "'<='", "'>='", - "'~'", "'^'", "'<<'", "'>>'", "'**'", "'+='", - "'-='", "'*='", "'/='", "'%='", "'&='", "'|='", - "'^='", "'<<='", "'>>='", "'**='", "'//'", "'//='", - "'@'", "'@='", "'->'", "'...'", "':='", "'!'" ]; - static symbolicNames = [ null, "INDENT", "DEDENT", "FSTRING_START", - "FSTRING_MIDDLE", "FSTRING_END", "FALSE", "AWAIT", - "ELSE", "IMPORT", "PASS", "NONE", "BREAK", - "EXCEPT", "IN", "RAISE", "TRUE", "CLASS", "FINALLY", - "IS", "RETURN", "AND", "CONTINUE", "FOR", "LAMBDA", - "TRY", "AS", "DEF", "FROM", "NONLOCAL", "WHILE", - "ASSERT", "DEL", "GLOBAL", "NOT", "WITH", "ASYNC", - "ELIF", "IF", "OR", "YIELD", "LPAR", "LSQB", - "LBRACE", "RPAR", "RSQB", "RBRACE", "DOT", - "COLON", "COMMA", "SEMI", "PLUS", "MINUS", - "STAR", "SLASH", "VBAR", "AMPER", "LESS", "GREATER", - "EQUAL", "PERCENT", "EQEQUAL", "NOTEQUAL", - "LESSEQUAL", "GREATEREQUAL", "TILDE", "CIRCUMFLEX", - "LEFTSHIFT", "RIGHTSHIFT", "DOUBLESTAR", "PLUSEQUAL", - "MINEQUAL", "STAREQUAL", "SLASHEQUAL", "PERCENTEQUAL", - "AMPEREQUAL", "VBAREQUAL", "CIRCUMFLEXEQUAL", - "LEFTSHIFTEQUAL", "RIGHTSHIFTEQUAL", "DOUBLESTAREQUAL", - "DOUBLESLASH", "DOUBLESLASHEQUAL", "AT", "ATEQUAL", - "RARROW", "ELLIPSIS", "COLONEQUAL", "EXCLAMATION", - "NAME", "NUMBER", "STRING", "TYPE_COMMENT", - "NEWLINE", "COMMENT", "WS", "EXPLICIT_LINE_JOINING", - "ERROR_TOKEN" ]; - static ruleNames = [ "file_input", "interactive", "eval", "func_type", - "fstring_input", "statements", "statement", "statement_newline", - "simple_stmts", "simple_stmt", "compound_stmt", - "assignment", "annotated_rhs", "augassign", "return_stmt", - "raise_stmt", "global_stmt", "nonlocal_stmt", "del_stmt", - "yield_stmt", "assert_stmt", "import_stmt", "import_name", - "import_from", "import_from_targets", "import_from_as_names", - "import_from_as_name", "dotted_as_names", "dotted_as_name", - "dotted_name", "block", "decorators", "class_def", - "class_def_raw", "function_def", "function_def_raw", - "params", "parameters", "slash_no_default", "slash_with_default", - "star_etc", "kwds", "param_no_default", "param_no_default_star_annotation", - "param_with_default", "param_maybe_default", "param", - "param_star_annotation", "annotation", "star_annotation", - "default_assignment", "if_stmt", "elif_stmt", "else_block", - "while_stmt", "for_stmt", "with_stmt", "with_item", - "try_stmt", "except_block", "except_star_block", - "finally_block", "match_stmt", "subject_expr", - "case_block", "guard", "patterns", "pattern", "as_pattern", - "or_pattern", "closed_pattern", "literal_pattern", - "literal_expr", "complex_number", "signed_number", - "signed_real_number", "real_number", "imaginary_number", - "capture_pattern", "pattern_capture_target", "wildcard_pattern", - "value_pattern", "attr", "name_or_attr", "group_pattern", - "sequence_pattern", "open_sequence_pattern", "maybe_sequence_pattern", - "maybe_star_pattern", "star_pattern", "mapping_pattern", - "items_pattern", "key_value_pattern", "double_star_pattern", - "class_pattern", "positional_patterns", "keyword_patterns", - "keyword_pattern", "type_alias", "type_params", - "type_param_seq", "type_param", "type_param_bound", - "expressions", "expression", "yield_expr", "star_expressions", - "star_expression", "star_named_expressions", "star_named_expression", - "assignment_expression", "named_expression", "disjunction", - "conjunction", "inversion", "comparison", "compare_op_bitwise_or_pair", - "eq_bitwise_or", "noteq_bitwise_or", "lte_bitwise_or", - "lt_bitwise_or", "gte_bitwise_or", "gt_bitwise_or", - "notin_bitwise_or", "in_bitwise_or", "isnot_bitwise_or", - "is_bitwise_or", "bitwise_or", "bitwise_xor", "bitwise_and", - "shift_expr", "sum", "term", "factor", "power", - "await_primary", "primary", "slices", "slice", - "atom", "group", "lambdef", "lambda_params", "lambda_parameters", - "lambda_slash_no_default", "lambda_slash_with_default", - "lambda_star_etc", "lambda_kwds", "lambda_param_no_default", - "lambda_param_with_default", "lambda_param_maybe_default", - "lambda_param", "fstring_middle", "fstring_replacement_field", - "fstring_conversion", "fstring_full_format_spec", - "fstring_format_spec", "fstring", "string", "strings", - "list", "tuple", "set", "dict", "double_starred_kvpairs", - "double_starred_kvpair", "kvpair", "for_if_clauses", - "for_if_clause", "listcomp", "setcomp", "genexp", - "dictcomp", "arguments", "args", "kwargs", "starred_expression", - "kwarg_or_starred", "kwarg_or_double_starred", - "star_targets", "star_targets_list_seq", "star_targets_tuple_seq", - "star_target", "target_with_star_atom", "star_atom", - "single_target", "single_subscript_attribute_target", - "t_primary", "del_targets", "del_target", "del_t_atom", - "type_expressions", "func_type_comment", "soft_kw_type", - "soft_kw_match", "soft_kw_case", "soft_kw_wildcard", - "soft_kw__not__wildcard" ]; - - constructor(input) { - super(input); - this._interp = new antlr4.atn.ParserATNSimulator(this, atn, decisionsToDFA, sharedContextCache); - this.ruleNames = PythonParser.ruleNames; - this.literalNames = PythonParser.literalNames; - this.symbolicNames = PythonParser.symbolicNames; - } - - sempred(localctx, ruleIndex, predIndex) { - switch(ruleIndex) { - case 29: - return this.dotted_name_sempred(localctx, predIndex); - case 127: - return this.bitwise_or_sempred(localctx, predIndex); - case 128: - return this.bitwise_xor_sempred(localctx, predIndex); - case 129: - return this.bitwise_and_sempred(localctx, predIndex); - case 130: - return this.shift_expr_sempred(localctx, predIndex); - case 131: - return this.sum_sempred(localctx, predIndex); - case 132: - return this.term_sempred(localctx, predIndex); - case 136: - return this.primary_sempred(localctx, predIndex); - case 187: - return this.t_primary_sempred(localctx, predIndex); - case 193: - return this.soft_kw_type_sempred(localctx, predIndex); - case 194: - return this.soft_kw_match_sempred(localctx, predIndex); - case 195: - return this.soft_kw_case_sempred(localctx, predIndex); - case 196: - return this.soft_kw_wildcard_sempred(localctx, predIndex); - case 197: - return this.soft_kw__not__wildcard_sempred(localctx, predIndex); - default: - throw "No predicate with index:" + ruleIndex; - } - } - - dotted_name_sempred(localctx, predIndex) { - switch(predIndex) { - case 0: - return this.precpred(this._ctx, 2); - default: - throw "No predicate with index:" + predIndex; - } - }; - - bitwise_or_sempred(localctx, predIndex) { - switch(predIndex) { - case 1: - return this.precpred(this._ctx, 2); - default: - throw "No predicate with index:" + predIndex; - } - }; - - bitwise_xor_sempred(localctx, predIndex) { - switch(predIndex) { - case 2: - return this.precpred(this._ctx, 2); - default: - throw "No predicate with index:" + predIndex; - } - }; - - bitwise_and_sempred(localctx, predIndex) { - switch(predIndex) { - case 3: - return this.precpred(this._ctx, 2); - default: - throw "No predicate with index:" + predIndex; - } - }; - - shift_expr_sempred(localctx, predIndex) { - switch(predIndex) { - case 4: - return this.precpred(this._ctx, 2); - default: - throw "No predicate with index:" + predIndex; - } - }; - - sum_sempred(localctx, predIndex) { - switch(predIndex) { - case 5: - return this.precpred(this._ctx, 2); - default: - throw "No predicate with index:" + predIndex; - } - }; - - term_sempred(localctx, predIndex) { - switch(predIndex) { - case 6: - return this.precpred(this._ctx, 2); - default: - throw "No predicate with index:" + predIndex; - } - }; - - primary_sempred(localctx, predIndex) { - switch(predIndex) { - case 7: - return this.precpred(this._ctx, 2); - default: - throw "No predicate with index:" + predIndex; - } - }; - - t_primary_sempred(localctx, predIndex) { - switch(predIndex) { - case 8: - return this.precpred(this._ctx, 2); - default: - throw "No predicate with index:" + predIndex; - } - }; - - soft_kw_type_sempred(localctx, predIndex) { - switch(predIndex) { - case 9: - return this.isEqualToCurrentTokenText("type"); - default: - throw "No predicate with index:" + predIndex; - } - }; - - soft_kw_match_sempred(localctx, predIndex) { - switch(predIndex) { - case 10: - return this.isEqualToCurrentTokenText("match"); - default: - throw "No predicate with index:" + predIndex; - } - }; - - soft_kw_case_sempred(localctx, predIndex) { - switch(predIndex) { - case 11: - return this.isEqualToCurrentTokenText("case"); - default: - throw "No predicate with index:" + predIndex; - } - }; - - soft_kw_wildcard_sempred(localctx, predIndex) { - switch(predIndex) { - case 12: - return this.isEqualToCurrentTokenText("_"); - default: - throw "No predicate with index:" + predIndex; - } - }; - - soft_kw__not__wildcard_sempred(localctx, predIndex) { - switch(predIndex) { - case 13: - return this.isnotEqualToCurrentTokenText("_"); - default: - throw "No predicate with index:" + predIndex; - } - }; - - - - - file_input() { - let localctx = new File_inputContext(this, this._ctx, this.state); - this.enterRule(localctx, 0, PythonParser.RULE_file_input); - try { - this.enterOuterAlt(localctx, 1); - this.state = 397; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,0,this._ctx); - if(la_===1) { - this.state = 396; - this.statements(); - - } - this.state = 399; - this.match(PythonParser.EOF); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - interactive() { - let localctx = new InteractiveContext(this, this._ctx, this.state); - this.enterRule(localctx, 2, PythonParser.RULE_interactive); - try { - this.enterOuterAlt(localctx, 1); - this.state = 401; - this.statement_newline(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - eval() { - let localctx = new EvalContext(this, this._ctx, this.state); - this.enterRule(localctx, 4, PythonParser.RULE_eval); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 403; - this.expressions(); - this.state = 407; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===93) { - this.state = 404; - this.match(PythonParser.NEWLINE); - this.state = 409; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 410; - this.match(PythonParser.EOF); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - func_type() { - let localctx = new Func_typeContext(this, this._ctx, this.state); - this.enterRule(localctx, 6, PythonParser.RULE_func_type); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 412; - this.match(PythonParser.LPAR); - this.state = 414; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1f) === 0 && ((1 << (_la - 34)) & 2148402049) !== 0) || ((((_la - 69)) & ~0x1f) === 0 && ((1 << (_la - 69)) & 7471105) !== 0)) { - this.state = 413; - this.type_expressions(); - } - - this.state = 416; - this.match(PythonParser.RPAR); - this.state = 417; - this.match(PythonParser.RARROW); - this.state = 418; - this.expression(); - this.state = 422; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===93) { - this.state = 419; - this.match(PythonParser.NEWLINE); - this.state = 424; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 425; - this.match(PythonParser.EOF); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - fstring_input() { - let localctx = new Fstring_inputContext(this, this._ctx, this.state); - this.enterRule(localctx, 8, PythonParser.RULE_fstring_input); - try { - this.enterOuterAlt(localctx, 1); - this.state = 427; - this.star_expressions(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - statements() { - let localctx = new StatementsContext(this, this._ctx, this.state); - this.enterRule(localctx, 10, PythonParser.RULE_statements); - try { - this.enterOuterAlt(localctx, 1); - this.state = 430; - this._errHandler.sync(this); - var _alt = 1; - do { - switch (_alt) { - case 1: - this.state = 429; - this.statement(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 432; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,4, this._ctx); - } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - statement() { - let localctx = new StatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 12, PythonParser.RULE_statement); - try { - this.state = 436; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,5,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 434; - this.compound_stmt(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 435; - this.simple_stmts(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - statement_newline() { - let localctx = new Statement_newlineContext(this, this._ctx, this.state); - this.enterRule(localctx, 14, PythonParser.RULE_statement_newline); - try { - this.state = 444; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,6,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 438; - this.compound_stmt(); - this.state = 439; - this.match(PythonParser.NEWLINE); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 441; - this.simple_stmts(); - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 442; - this.match(PythonParser.NEWLINE); - break; - - case 4: - this.enterOuterAlt(localctx, 4); - this.state = 443; - this.match(PythonParser.EOF); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - simple_stmts() { - let localctx = new Simple_stmtsContext(this, this._ctx, this.state); - this.enterRule(localctx, 16, PythonParser.RULE_simple_stmts); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 446; - this.simple_stmt(); - this.state = 451; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,7,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 447; - this.match(PythonParser.SEMI); - this.state = 448; - this.simple_stmt(); - } - this.state = 453; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,7,this._ctx); - } - - this.state = 455; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===50) { - this.state = 454; - this.match(PythonParser.SEMI); - } - - this.state = 457; - this.match(PythonParser.NEWLINE); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - simple_stmt() { - let localctx = new Simple_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 18, PythonParser.RULE_simple_stmt); - try { - this.state = 473; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,9,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 459; - this.assignment(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 460; - this.type_alias(); - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 461; - this.star_expressions(); - break; - - case 4: - this.enterOuterAlt(localctx, 4); - this.state = 462; - this.return_stmt(); - break; - - case 5: - this.enterOuterAlt(localctx, 5); - this.state = 463; - this.import_stmt(); - break; - - case 6: - this.enterOuterAlt(localctx, 6); - this.state = 464; - this.raise_stmt(); - break; - - case 7: - this.enterOuterAlt(localctx, 7); - this.state = 465; - this.match(PythonParser.PASS); - break; - - case 8: - this.enterOuterAlt(localctx, 8); - this.state = 466; - this.del_stmt(); - break; - - case 9: - this.enterOuterAlt(localctx, 9); - this.state = 467; - this.yield_stmt(); - break; - - case 10: - this.enterOuterAlt(localctx, 10); - this.state = 468; - this.assert_stmt(); - break; - - case 11: - this.enterOuterAlt(localctx, 11); - this.state = 469; - this.match(PythonParser.BREAK); - break; - - case 12: - this.enterOuterAlt(localctx, 12); - this.state = 470; - this.match(PythonParser.CONTINUE); - break; - - case 13: - this.enterOuterAlt(localctx, 13); - this.state = 471; - this.global_stmt(); - break; - - case 14: - this.enterOuterAlt(localctx, 14); - this.state = 472; - this.nonlocal_stmt(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - compound_stmt() { - let localctx = new Compound_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 20, PythonParser.RULE_compound_stmt); - try { - this.state = 483; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,10,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 475; - this.function_def(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 476; - this.if_stmt(); - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 477; - this.class_def(); - break; - - case 4: - this.enterOuterAlt(localctx, 4); - this.state = 478; - this.with_stmt(); - break; - - case 5: - this.enterOuterAlt(localctx, 5); - this.state = 479; - this.for_stmt(); - break; - - case 6: - this.enterOuterAlt(localctx, 6); - this.state = 480; - this.try_stmt(); - break; - - case 7: - this.enterOuterAlt(localctx, 7); - this.state = 481; - this.while_stmt(); - break; - - case 8: - this.enterOuterAlt(localctx, 8); - this.state = 482; - this.match_stmt(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - assignment() { - let localctx = new AssignmentContext(this, this._ctx, this.state); - this.enterRule(localctx, 22, PythonParser.RULE_assignment); - var _la = 0; - try { - this.state = 525; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,18,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 485; - this.match(PythonParser.NAME); - this.state = 486; - this.match(PythonParser.COLON); - this.state = 487; - this.expression(); - this.state = 490; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===59) { - this.state = 488; - this.match(PythonParser.EQUAL); - this.state = 489; - this.annotated_rhs(); - } - - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 497; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,12,this._ctx); - switch(la_) { - case 1: - this.state = 492; - this.match(PythonParser.LPAR); - this.state = 493; - this.single_target(); - this.state = 494; - this.match(PythonParser.RPAR); - break; - - case 2: - this.state = 496; - this.single_subscript_attribute_target(); - break; - - } - this.state = 499; - this.match(PythonParser.COLON); - this.state = 500; - this.expression(); - this.state = 503; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===59) { - this.state = 501; - this.match(PythonParser.EQUAL); - this.state = 502; - this.annotated_rhs(); - } - - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 508; - this._errHandler.sync(this); - var _alt = 1; - do { - switch (_alt) { - case 1: - this.state = 505; - this.star_targets(); - this.state = 506; - this.match(PythonParser.EQUAL); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 510; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,14, this._ctx); - } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); - this.state = 514; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 40: - this.state = 512; - this.yield_expr(); - break; - case 3: - case 6: - case 7: - case 11: - case 16: - case 24: - case 34: - case 41: - case 42: - case 43: - case 51: - case 52: - case 53: - case 65: - case 86: - case 89: - case 90: - case 91: - this.state = 513; - this.star_expressions(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 517; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===92) { - this.state = 516; - this.match(PythonParser.TYPE_COMMENT); - } - - break; - - case 4: - this.enterOuterAlt(localctx, 4); - this.state = 519; - this.single_target(); - this.state = 520; - this.augassign(); - this.state = 523; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 40: - this.state = 521; - this.yield_expr(); - break; - case 3: - case 6: - case 7: - case 11: - case 16: - case 24: - case 34: - case 41: - case 42: - case 43: - case 51: - case 52: - case 53: - case 65: - case 86: - case 89: - case 90: - case 91: - this.state = 522; - this.star_expressions(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - annotated_rhs() { - let localctx = new Annotated_rhsContext(this, this._ctx, this.state); - this.enterRule(localctx, 24, PythonParser.RULE_annotated_rhs); - try { - this.state = 529; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 40: - this.enterOuterAlt(localctx, 1); - this.state = 527; - this.yield_expr(); - break; - case 3: - case 6: - case 7: - case 11: - case 16: - case 24: - case 34: - case 41: - case 42: - case 43: - case 51: - case 52: - case 53: - case 65: - case 86: - case 89: - case 90: - case 91: - this.enterOuterAlt(localctx, 2); - this.state = 528; - this.star_expressions(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - augassign() { - let localctx = new AugassignContext(this, this._ctx, this.state); - this.enterRule(localctx, 26, PythonParser.RULE_augassign); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 531; - _la = this._input.LA(1); - if(!(((((_la - 70)) & ~0x1f) === 0 && ((1 << (_la - 70)) & 22527) !== 0))) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - return_stmt() { - let localctx = new Return_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 28, PythonParser.RULE_return_stmt); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 533; - this.match(PythonParser.RETURN); - this.state = 535; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1f) === 0 && ((1 << (_la - 34)) & 2148402049) !== 0) || ((((_la - 86)) & ~0x1f) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { - this.state = 534; - this.star_expressions(); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - raise_stmt() { - let localctx = new Raise_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 30, PythonParser.RULE_raise_stmt); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 537; - this.match(PythonParser.RAISE); - this.state = 543; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1f) === 0 && ((1 << (_la - 34)) & 2147877761) !== 0) || ((((_la - 86)) & ~0x1f) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { - this.state = 538; - this.expression(); - this.state = 541; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===28) { - this.state = 539; - this.match(PythonParser.FROM); - this.state = 540; - this.expression(); - } - - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - global_stmt() { - let localctx = new Global_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 32, PythonParser.RULE_global_stmt); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 545; - this.match(PythonParser.GLOBAL); - this.state = 546; - this.match(PythonParser.NAME); - this.state = 551; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===49) { - this.state = 547; - this.match(PythonParser.COMMA); - this.state = 548; - this.match(PythonParser.NAME); - this.state = 553; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - nonlocal_stmt() { - let localctx = new Nonlocal_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 34, PythonParser.RULE_nonlocal_stmt); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 554; - this.match(PythonParser.NONLOCAL); - this.state = 555; - this.match(PythonParser.NAME); - this.state = 560; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===49) { - this.state = 556; - this.match(PythonParser.COMMA); - this.state = 557; - this.match(PythonParser.NAME); - this.state = 562; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - del_stmt() { - let localctx = new Del_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 36, PythonParser.RULE_del_stmt); - try { - this.enterOuterAlt(localctx, 1); - this.state = 563; - this.match(PythonParser.DEL); - this.state = 564; - this.del_targets(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - yield_stmt() { - let localctx = new Yield_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 38, PythonParser.RULE_yield_stmt); - try { - this.enterOuterAlt(localctx, 1); - this.state = 566; - this.yield_expr(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - assert_stmt() { - let localctx = new Assert_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 40, PythonParser.RULE_assert_stmt); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 568; - this.match(PythonParser.ASSERT); - this.state = 569; - this.expression(); - this.state = 572; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 570; - this.match(PythonParser.COMMA); - this.state = 571; - this.expression(); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - import_stmt() { - let localctx = new Import_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 42, PythonParser.RULE_import_stmt); - try { - this.state = 576; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 9: - this.enterOuterAlt(localctx, 1); - this.state = 574; - this.import_name(); - break; - case 28: - this.enterOuterAlt(localctx, 2); - this.state = 575; - this.import_from(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - import_name() { - let localctx = new Import_nameContext(this, this._ctx, this.state); - this.enterRule(localctx, 44, PythonParser.RULE_import_name); - try { - this.enterOuterAlt(localctx, 1); - this.state = 578; - this.match(PythonParser.IMPORT); - this.state = 579; - this.dotted_as_names(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - import_from() { - let localctx = new Import_fromContext(this, this._ctx, this.state); - this.enterRule(localctx, 46, PythonParser.RULE_import_from); - var _la = 0; - try { - this.state = 600; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,29,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 581; - this.match(PythonParser.FROM); - this.state = 585; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===47 || _la===86) { - this.state = 582; - _la = this._input.LA(1); - if(!(_la===47 || _la===86)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 587; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 588; - this.dotted_name(0); - this.state = 589; - this.match(PythonParser.IMPORT); - this.state = 590; - this.import_from_targets(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 592; - this.match(PythonParser.FROM); - this.state = 594; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - this.state = 593; - _la = this._input.LA(1); - if(!(_la===47 || _la===86)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 596; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while(_la===47 || _la===86); - this.state = 598; - this.match(PythonParser.IMPORT); - this.state = 599; - this.import_from_targets(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - import_from_targets() { - let localctx = new Import_from_targetsContext(this, this._ctx, this.state); - this.enterRule(localctx, 48, PythonParser.RULE_import_from_targets); - var _la = 0; - try { - this.state = 611; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 41: - this.enterOuterAlt(localctx, 1); - this.state = 602; - this.match(PythonParser.LPAR); - this.state = 603; - this.import_from_as_names(); - this.state = 605; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 604; - this.match(PythonParser.COMMA); - } - - this.state = 607; - this.match(PythonParser.RPAR); - break; - case 89: - this.enterOuterAlt(localctx, 2); - this.state = 609; - this.import_from_as_names(); - break; - case 53: - this.enterOuterAlt(localctx, 3); - this.state = 610; - this.match(PythonParser.STAR); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - import_from_as_names() { - let localctx = new Import_from_as_namesContext(this, this._ctx, this.state); - this.enterRule(localctx, 50, PythonParser.RULE_import_from_as_names); - try { - this.enterOuterAlt(localctx, 1); - this.state = 613; - this.import_from_as_name(); - this.state = 618; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,32,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 614; - this.match(PythonParser.COMMA); - this.state = 615; - this.import_from_as_name(); - } - this.state = 620; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,32,this._ctx); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - import_from_as_name() { - let localctx = new Import_from_as_nameContext(this, this._ctx, this.state); - this.enterRule(localctx, 52, PythonParser.RULE_import_from_as_name); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 621; - this.match(PythonParser.NAME); - this.state = 624; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===26) { - this.state = 622; - this.match(PythonParser.AS); - this.state = 623; - this.match(PythonParser.NAME); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - dotted_as_names() { - let localctx = new Dotted_as_namesContext(this, this._ctx, this.state); - this.enterRule(localctx, 54, PythonParser.RULE_dotted_as_names); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 626; - this.dotted_as_name(); - this.state = 631; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===49) { - this.state = 627; - this.match(PythonParser.COMMA); - this.state = 628; - this.dotted_as_name(); - this.state = 633; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - dotted_as_name() { - let localctx = new Dotted_as_nameContext(this, this._ctx, this.state); - this.enterRule(localctx, 56, PythonParser.RULE_dotted_as_name); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 634; - this.dotted_name(0); - this.state = 637; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===26) { - this.state = 635; - this.match(PythonParser.AS); - this.state = 636; - this.match(PythonParser.NAME); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - dotted_name(_p) { - if(_p===undefined) { - _p = 0; - } - const _parentctx = this._ctx; - const _parentState = this.state; - let localctx = new Dotted_nameContext(this, this._ctx, _parentState); - let _prevctx = localctx; - const _startState = 58; - this.enterRecursionRule(localctx, 58, PythonParser.RULE_dotted_name, _p); - try { - this.enterOuterAlt(localctx, 1); - this.state = 640; - this.match(PythonParser.NAME); - this._ctx.stop = this._input.LT(-1); - this.state = 647; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,36,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - if(this._parseListeners!==null) { - this.triggerExitRuleEvent(); - } - _prevctx = localctx; - localctx = new Dotted_nameContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, PythonParser.RULE_dotted_name); - this.state = 642; - if (!( this.precpred(this._ctx, 2))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); - } - this.state = 643; - this.match(PythonParser.DOT); - this.state = 644; - this.match(PythonParser.NAME); - } - this.state = 649; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,36,this._ctx); - } - - } catch( error) { - if(error instanceof antlr4.error.RecognitionException) { - localctx.exception = error; - this._errHandler.reportError(this, error); - this._errHandler.recover(this, error); - } else { - throw error; - } - } finally { - this.unrollRecursionContexts(_parentctx) - } - return localctx; - } - - - - block() { - let localctx = new BlockContext(this, this._ctx, this.state); - this.enterRule(localctx, 60, PythonParser.RULE_block); - try { - this.state = 656; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,37,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 650; - this.match(PythonParser.NEWLINE); - this.state = 651; - this.match(PythonParser.INDENT); - this.state = 652; - this.statements(); - this.state = 653; - this.match(PythonParser.DEDENT); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 655; - this.simple_stmts(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - decorators() { - let localctx = new DecoratorsContext(this, this._ctx, this.state); - this.enterRule(localctx, 62, PythonParser.RULE_decorators); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 662; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - this.state = 658; - this.match(PythonParser.AT); - this.state = 659; - this.named_expression(); - this.state = 660; - this.match(PythonParser.NEWLINE); - this.state = 664; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while(_la===83); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - class_def() { - let localctx = new Class_defContext(this, this._ctx, this.state); - this.enterRule(localctx, 64, PythonParser.RULE_class_def); - try { - this.state = 670; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 83: - this.enterOuterAlt(localctx, 1); - this.state = 666; - this.decorators(); - this.state = 667; - this.class_def_raw(); - break; - case 17: - this.enterOuterAlt(localctx, 2); - this.state = 669; - this.class_def_raw(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - class_def_raw() { - let localctx = new Class_def_rawContext(this, this._ctx, this.state); - this.enterRule(localctx, 66, PythonParser.RULE_class_def_raw); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 672; - this.match(PythonParser.CLASS); - this.state = 673; - this.match(PythonParser.NAME); - this.state = 675; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===42) { - this.state = 674; - this.type_params(); - } - - this.state = 682; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===41) { - this.state = 677; - this.match(PythonParser.LPAR); - this.state = 679; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1f) === 0 && ((1 << (_la - 34)) & 2148402049) !== 0) || ((((_la - 69)) & ~0x1f) === 0 && ((1 << (_la - 69)) & 7471105) !== 0)) { - this.state = 678; - this.arguments(); - } - - this.state = 681; - this.match(PythonParser.RPAR); - } - - this.state = 684; - this.match(PythonParser.COLON); - this.state = 685; - this.block(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - function_def() { - let localctx = new Function_defContext(this, this._ctx, this.state); - this.enterRule(localctx, 68, PythonParser.RULE_function_def); - try { - this.state = 691; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 83: - this.enterOuterAlt(localctx, 1); - this.state = 687; - this.decorators(); - this.state = 688; - this.function_def_raw(); - break; - case 27: - case 36: - this.enterOuterAlt(localctx, 2); - this.state = 690; - this.function_def_raw(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - function_def_raw() { - let localctx = new Function_def_rawContext(this, this._ctx, this.state); - this.enterRule(localctx, 70, PythonParser.RULE_function_def_raw); - var _la = 0; - try { - this.state = 732; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 27: - this.enterOuterAlt(localctx, 1); - this.state = 693; - this.match(PythonParser.DEF); - this.state = 694; - this.match(PythonParser.NAME); - this.state = 696; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===42) { - this.state = 695; - this.type_params(); - } - - this.state = 698; - this.match(PythonParser.LPAR); - this.state = 700; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===53 || _la===69 || _la===89) { - this.state = 699; - this.params(); - } - - this.state = 702; - this.match(PythonParser.RPAR); - this.state = 705; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===85) { - this.state = 703; - this.match(PythonParser.RARROW); - this.state = 704; - this.expression(); - } - - this.state = 707; - this.match(PythonParser.COLON); - this.state = 709; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,47,this._ctx); - if(la_===1) { - this.state = 708; - this.func_type_comment(); - - } - this.state = 711; - this.block(); - break; - case 36: - this.enterOuterAlt(localctx, 2); - this.state = 712; - this.match(PythonParser.ASYNC); - this.state = 713; - this.match(PythonParser.DEF); - this.state = 714; - this.match(PythonParser.NAME); - this.state = 716; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===42) { - this.state = 715; - this.type_params(); - } - - this.state = 718; - this.match(PythonParser.LPAR); - this.state = 720; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===53 || _la===69 || _la===89) { - this.state = 719; - this.params(); - } - - this.state = 722; - this.match(PythonParser.RPAR); - this.state = 725; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===85) { - this.state = 723; - this.match(PythonParser.RARROW); - this.state = 724; - this.expression(); - } - - this.state = 727; - this.match(PythonParser.COLON); - this.state = 729; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,51,this._ctx); - if(la_===1) { - this.state = 728; - this.func_type_comment(); - - } - this.state = 731; - this.block(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - params() { - let localctx = new ParamsContext(this, this._ctx, this.state); - this.enterRule(localctx, 72, PythonParser.RULE_params); - try { - this.enterOuterAlt(localctx, 1); - this.state = 734; - this.parameters(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - parameters() { - let localctx = new ParametersContext(this, this._ctx, this.state); - this.enterRule(localctx, 74, PythonParser.RULE_parameters); - var _la = 0; - try { - this.state = 785; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,63,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 736; - this.slash_no_default(); - this.state = 740; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,53,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 737; - this.param_no_default(); - } - this.state = 742; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,53,this._ctx); - } - - this.state = 746; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===89) { - this.state = 743; - this.param_with_default(); - this.state = 748; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 750; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===53 || _la===69) { - this.state = 749; - this.star_etc(); - } - - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 752; - this.slash_with_default(); - this.state = 756; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===89) { - this.state = 753; - this.param_with_default(); - this.state = 758; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 760; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===53 || _la===69) { - this.state = 759; - this.star_etc(); - } - - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 763; - this._errHandler.sync(this); - var _alt = 1; - do { - switch (_alt) { - case 1: - this.state = 762; - this.param_no_default(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 765; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,58, this._ctx); - } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); - this.state = 770; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===89) { - this.state = 767; - this.param_with_default(); - this.state = 772; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 774; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===53 || _la===69) { - this.state = 773; - this.star_etc(); - } - - break; - - case 4: - this.enterOuterAlt(localctx, 4); - this.state = 777; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - this.state = 776; - this.param_with_default(); - this.state = 779; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while(_la===89); - this.state = 782; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===53 || _la===69) { - this.state = 781; - this.star_etc(); - } - - break; - - case 5: - this.enterOuterAlt(localctx, 5); - this.state = 784; - this.star_etc(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - slash_no_default() { - let localctx = new Slash_no_defaultContext(this, this._ctx, this.state); - this.enterRule(localctx, 76, PythonParser.RULE_slash_no_default); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 788; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - this.state = 787; - this.param_no_default(); - this.state = 790; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while(_la===89); - this.state = 792; - this.match(PythonParser.SLASH); - this.state = 794; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 793; - this.match(PythonParser.COMMA); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - slash_with_default() { - let localctx = new Slash_with_defaultContext(this, this._ctx, this.state); - this.enterRule(localctx, 78, PythonParser.RULE_slash_with_default); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 799; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,66,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 796; - this.param_no_default(); - } - this.state = 801; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,66,this._ctx); - } - - this.state = 803; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - this.state = 802; - this.param_with_default(); - this.state = 805; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while(_la===89); - this.state = 807; - this.match(PythonParser.SLASH); - this.state = 809; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 808; - this.match(PythonParser.COMMA); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - star_etc() { - let localctx = new Star_etcContext(this, this._ctx, this.state); - this.enterRule(localctx, 80, PythonParser.RULE_star_etc); - var _la = 0; - try { - this.state = 844; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,75,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 811; - this.match(PythonParser.STAR); - this.state = 812; - this.param_no_default(); - this.state = 816; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===89) { - this.state = 813; - this.param_maybe_default(); - this.state = 818; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 820; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===69) { - this.state = 819; - this.kwds(); - } - - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 822; - this.match(PythonParser.STAR); - this.state = 823; - this.param_no_default_star_annotation(); - this.state = 827; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===89) { - this.state = 824; - this.param_maybe_default(); - this.state = 829; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 831; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===69) { - this.state = 830; - this.kwds(); - } - - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 833; - this.match(PythonParser.STAR); - this.state = 834; - this.match(PythonParser.COMMA); - this.state = 836; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - this.state = 835; - this.param_maybe_default(); - this.state = 838; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while(_la===89); - this.state = 841; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===69) { - this.state = 840; - this.kwds(); - } - - break; - - case 4: - this.enterOuterAlt(localctx, 4); - this.state = 843; - this.kwds(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - kwds() { - let localctx = new KwdsContext(this, this._ctx, this.state); - this.enterRule(localctx, 82, PythonParser.RULE_kwds); - try { - this.enterOuterAlt(localctx, 1); - this.state = 846; - this.match(PythonParser.DOUBLESTAR); - this.state = 847; - this.param_no_default(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - param_no_default() { - let localctx = new Param_no_defaultContext(this, this._ctx, this.state); - this.enterRule(localctx, 84, PythonParser.RULE_param_no_default); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 849; - this.param(); - this.state = 851; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 850; - this.match(PythonParser.COMMA); - } - - this.state = 854; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===92) { - this.state = 853; - this.match(PythonParser.TYPE_COMMENT); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - param_no_default_star_annotation() { - let localctx = new Param_no_default_star_annotationContext(this, this._ctx, this.state); - this.enterRule(localctx, 86, PythonParser.RULE_param_no_default_star_annotation); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 856; - this.param_star_annotation(); - this.state = 858; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 857; - this.match(PythonParser.COMMA); - } - - this.state = 861; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===92) { - this.state = 860; - this.match(PythonParser.TYPE_COMMENT); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - param_with_default() { - let localctx = new Param_with_defaultContext(this, this._ctx, this.state); - this.enterRule(localctx, 88, PythonParser.RULE_param_with_default); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 863; - this.param(); - this.state = 864; - this.default_assignment(); - this.state = 866; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 865; - this.match(PythonParser.COMMA); - } - - this.state = 869; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===92) { - this.state = 868; - this.match(PythonParser.TYPE_COMMENT); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - param_maybe_default() { - let localctx = new Param_maybe_defaultContext(this, this._ctx, this.state); - this.enterRule(localctx, 90, PythonParser.RULE_param_maybe_default); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 871; - this.param(); - this.state = 873; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===59) { - this.state = 872; - this.default_assignment(); - } - - this.state = 876; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 875; - this.match(PythonParser.COMMA); - } - - this.state = 879; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===92) { - this.state = 878; - this.match(PythonParser.TYPE_COMMENT); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - param() { - let localctx = new ParamContext(this, this._ctx, this.state); - this.enterRule(localctx, 92, PythonParser.RULE_param); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 881; - this.match(PythonParser.NAME); - this.state = 883; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===48) { - this.state = 882; - this.annotation(); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - param_star_annotation() { - let localctx = new Param_star_annotationContext(this, this._ctx, this.state); - this.enterRule(localctx, 94, PythonParser.RULE_param_star_annotation); - try { - this.enterOuterAlt(localctx, 1); - this.state = 885; - this.match(PythonParser.NAME); - this.state = 886; - this.star_annotation(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - annotation() { - let localctx = new AnnotationContext(this, this._ctx, this.state); - this.enterRule(localctx, 96, PythonParser.RULE_annotation); - try { - this.enterOuterAlt(localctx, 1); - this.state = 888; - this.match(PythonParser.COLON); - this.state = 889; - this.expression(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - star_annotation() { - let localctx = new Star_annotationContext(this, this._ctx, this.state); - this.enterRule(localctx, 98, PythonParser.RULE_star_annotation); - try { - this.enterOuterAlt(localctx, 1); - this.state = 891; - this.match(PythonParser.COLON); - this.state = 892; - this.star_expression(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - default_assignment() { - let localctx = new Default_assignmentContext(this, this._ctx, this.state); - this.enterRule(localctx, 100, PythonParser.RULE_default_assignment); - try { - this.enterOuterAlt(localctx, 1); - this.state = 894; - this.match(PythonParser.EQUAL); - this.state = 895; - this.expression(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - if_stmt() { - let localctx = new If_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 102, PythonParser.RULE_if_stmt); - try { - this.enterOuterAlt(localctx, 1); - this.state = 897; - this.match(PythonParser.IF); - this.state = 898; - this.named_expression(); - this.state = 899; - this.match(PythonParser.COLON); - this.state = 900; - this.block(); - this.state = 905; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,87,this._ctx); - switch(la_) { - case 1: - this.state = 901; - this.elif_stmt(); - break; - - case 2: - this.state = 903; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,86,this._ctx); - if(la_===1) { - this.state = 902; - this.else_block(); - - } - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - elif_stmt() { - let localctx = new Elif_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 104, PythonParser.RULE_elif_stmt); - try { - this.enterOuterAlt(localctx, 1); - this.state = 907; - this.match(PythonParser.ELIF); - this.state = 908; - this.named_expression(); - this.state = 909; - this.match(PythonParser.COLON); - this.state = 910; - this.block(); - this.state = 915; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,89,this._ctx); - switch(la_) { - case 1: - this.state = 911; - this.elif_stmt(); - break; - - case 2: - this.state = 913; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,88,this._ctx); - if(la_===1) { - this.state = 912; - this.else_block(); - - } - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - else_block() { - let localctx = new Else_blockContext(this, this._ctx, this.state); - this.enterRule(localctx, 106, PythonParser.RULE_else_block); - try { - this.enterOuterAlt(localctx, 1); - this.state = 917; - this.match(PythonParser.ELSE); - this.state = 918; - this.match(PythonParser.COLON); - this.state = 919; - this.block(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - while_stmt() { - let localctx = new While_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 108, PythonParser.RULE_while_stmt); - try { - this.enterOuterAlt(localctx, 1); - this.state = 921; - this.match(PythonParser.WHILE); - this.state = 922; - this.named_expression(); - this.state = 923; - this.match(PythonParser.COLON); - this.state = 924; - this.block(); - this.state = 926; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,90,this._ctx); - if(la_===1) { - this.state = 925; - this.else_block(); - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - for_stmt() { - let localctx = new For_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 110, PythonParser.RULE_for_stmt); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 929; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===36) { - this.state = 928; - this.match(PythonParser.ASYNC); - } - - this.state = 931; - this.match(PythonParser.FOR); - this.state = 932; - this.star_targets(); - this.state = 933; - this.match(PythonParser.IN); - this.state = 934; - this.star_expressions(); - this.state = 935; - this.match(PythonParser.COLON); - this.state = 937; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,92,this._ctx); - if(la_===1) { - this.state = 936; - this.match(PythonParser.TYPE_COMMENT); - - } - this.state = 939; - this.block(); - this.state = 941; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,93,this._ctx); - if(la_===1) { - this.state = 940; - this.else_block(); - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - with_stmt() { - let localctx = new With_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 112, PythonParser.RULE_with_stmt); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 944; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===36) { - this.state = 943; - this.match(PythonParser.ASYNC); - } - - this.state = 946; - this.match(PythonParser.WITH); - this.state = 974; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,99,this._ctx); - switch(la_) { - case 1: - this.state = 947; - this.match(PythonParser.LPAR); - this.state = 948; - this.with_item(); - this.state = 953; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,95,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 949; - this.match(PythonParser.COMMA); - this.state = 950; - this.with_item(); - } - this.state = 955; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,95,this._ctx); - } - - this.state = 957; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 956; - this.match(PythonParser.COMMA); - } - - this.state = 959; - this.match(PythonParser.RPAR); - this.state = 960; - this.match(PythonParser.COLON); - break; - - case 2: - this.state = 962; - this.with_item(); - this.state = 967; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===49) { - this.state = 963; - this.match(PythonParser.COMMA); - this.state = 964; - this.with_item(); - this.state = 969; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 970; - this.match(PythonParser.COLON); - this.state = 972; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,98,this._ctx); - if(la_===1) { - this.state = 971; - this.match(PythonParser.TYPE_COMMENT); - - } - break; - - } - this.state = 976; - this.block(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - with_item() { - let localctx = new With_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 114, PythonParser.RULE_with_item); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 978; - this.expression(); - this.state = 981; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===26) { - this.state = 979; - this.match(PythonParser.AS); - this.state = 980; - this.star_target(); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - try_stmt() { - let localctx = new Try_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 116, PythonParser.RULE_try_stmt); - try { - this.state = 1016; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,107,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 983; - this.match(PythonParser.TRY); - this.state = 984; - this.match(PythonParser.COLON); - this.state = 985; - this.block(); - this.state = 986; - this.finally_block(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 988; - this.match(PythonParser.TRY); - this.state = 989; - this.match(PythonParser.COLON); - this.state = 990; - this.block(); - this.state = 992; - this._errHandler.sync(this); - var _alt = 1; - do { - switch (_alt) { - case 1: - this.state = 991; - this.except_block(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 994; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,101, this._ctx); - } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); - this.state = 997; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,102,this._ctx); - if(la_===1) { - this.state = 996; - this.else_block(); - - } - this.state = 1000; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,103,this._ctx); - if(la_===1) { - this.state = 999; - this.finally_block(); - - } - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 1002; - this.match(PythonParser.TRY); - this.state = 1003; - this.match(PythonParser.COLON); - this.state = 1004; - this.block(); - this.state = 1006; - this._errHandler.sync(this); - var _alt = 1; - do { - switch (_alt) { - case 1: - this.state = 1005; - this.except_star_block(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 1008; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,104, this._ctx); - } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); - this.state = 1011; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,105,this._ctx); - if(la_===1) { - this.state = 1010; - this.else_block(); - - } - this.state = 1014; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,106,this._ctx); - if(la_===1) { - this.state = 1013; - this.finally_block(); - - } - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - except_block() { - let localctx = new Except_blockContext(this, this._ctx, this.state); - this.enterRule(localctx, 118, PythonParser.RULE_except_block); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1018; - this.match(PythonParser.EXCEPT); - this.state = 1024; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1f) === 0 && ((1 << (_la - 34)) & 2147877761) !== 0) || ((((_la - 86)) & ~0x1f) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { - this.state = 1019; - this.expression(); - this.state = 1022; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===26) { - this.state = 1020; - this.match(PythonParser.AS); - this.state = 1021; - this.match(PythonParser.NAME); - } - - } - - this.state = 1026; - this.match(PythonParser.COLON); - this.state = 1027; - this.block(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - except_star_block() { - let localctx = new Except_star_blockContext(this, this._ctx, this.state); - this.enterRule(localctx, 120, PythonParser.RULE_except_star_block); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1029; - this.match(PythonParser.EXCEPT); - this.state = 1030; - this.match(PythonParser.STAR); - this.state = 1031; - this.expression(); - this.state = 1034; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===26) { - this.state = 1032; - this.match(PythonParser.AS); - this.state = 1033; - this.match(PythonParser.NAME); - } - - this.state = 1036; - this.match(PythonParser.COLON); - this.state = 1037; - this.block(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - finally_block() { - let localctx = new Finally_blockContext(this, this._ctx, this.state); - this.enterRule(localctx, 122, PythonParser.RULE_finally_block); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1039; - this.match(PythonParser.FINALLY); - this.state = 1040; - this.match(PythonParser.COLON); - this.state = 1041; - this.block(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - match_stmt() { - let localctx = new Match_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 124, PythonParser.RULE_match_stmt); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1043; - this.soft_kw_match(); - this.state = 1044; - this.subject_expr(); - this.state = 1045; - this.match(PythonParser.COLON); - this.state = 1046; - this.match(PythonParser.NEWLINE); - this.state = 1047; - this.match(PythonParser.INDENT); - this.state = 1049; - this._errHandler.sync(this); - var _alt = 1; - do { - switch (_alt) { - case 1: - this.state = 1048; - this.case_block(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 1051; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,111, this._ctx); - } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); - this.state = 1053; - this.match(PythonParser.DEDENT); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - subject_expr() { - let localctx = new Subject_exprContext(this, this._ctx, this.state); - this.enterRule(localctx, 126, PythonParser.RULE_subject_expr); - var _la = 0; - try { - this.state = 1061; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,113,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 1055; - this.star_named_expression(); - this.state = 1056; - this.match(PythonParser.COMMA); - this.state = 1058; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1f) === 0 && ((1 << (_la - 34)) & 2148402049) !== 0) || ((((_la - 86)) & ~0x1f) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { - this.state = 1057; - this.star_named_expressions(); - } - - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 1060; - this.named_expression(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - case_block() { - let localctx = new Case_blockContext(this, this._ctx, this.state); - this.enterRule(localctx, 128, PythonParser.RULE_case_block); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1063; - this.soft_kw_case(); - this.state = 1064; - this.patterns(); - this.state = 1066; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===38) { - this.state = 1065; - this.guard(); - } - - this.state = 1068; - this.match(PythonParser.COLON); - this.state = 1069; - this.block(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - guard() { - let localctx = new GuardContext(this, this._ctx, this.state); - this.enterRule(localctx, 130, PythonParser.RULE_guard); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1071; - this.match(PythonParser.IF); - this.state = 1072; - this.named_expression(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - patterns() { - let localctx = new PatternsContext(this, this._ctx, this.state); - this.enterRule(localctx, 132, PythonParser.RULE_patterns); - try { - this.state = 1076; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,115,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 1074; - this.open_sequence_pattern(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 1075; - this.pattern(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - pattern() { - let localctx = new PatternContext(this, this._ctx, this.state); - this.enterRule(localctx, 134, PythonParser.RULE_pattern); - try { - this.state = 1080; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,116,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 1078; - this.as_pattern(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 1079; - this.or_pattern(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - as_pattern() { - let localctx = new As_patternContext(this, this._ctx, this.state); - this.enterRule(localctx, 136, PythonParser.RULE_as_pattern); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1082; - this.or_pattern(); - this.state = 1083; - this.match(PythonParser.AS); - this.state = 1084; - this.pattern_capture_target(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - or_pattern() { - let localctx = new Or_patternContext(this, this._ctx, this.state); - this.enterRule(localctx, 138, PythonParser.RULE_or_pattern); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1086; - this.closed_pattern(); - this.state = 1091; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===55) { - this.state = 1087; - this.match(PythonParser.VBAR); - this.state = 1088; - this.closed_pattern(); - this.state = 1093; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - closed_pattern() { - let localctx = new Closed_patternContext(this, this._ctx, this.state); - this.enterRule(localctx, 140, PythonParser.RULE_closed_pattern); - try { - this.state = 1102; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,118,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 1094; - this.literal_pattern(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 1095; - this.capture_pattern(); - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 1096; - this.wildcard_pattern(); - break; - - case 4: - this.enterOuterAlt(localctx, 4); - this.state = 1097; - this.value_pattern(); - break; - - case 5: - this.enterOuterAlt(localctx, 5); - this.state = 1098; - this.group_pattern(); - break; - - case 6: - this.enterOuterAlt(localctx, 6); - this.state = 1099; - this.sequence_pattern(); - break; - - case 7: - this.enterOuterAlt(localctx, 7); - this.state = 1100; - this.mapping_pattern(); - break; - - case 8: - this.enterOuterAlt(localctx, 8); - this.state = 1101; - this.class_pattern(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - literal_pattern() { - let localctx = new Literal_patternContext(this, this._ctx, this.state); - this.enterRule(localctx, 142, PythonParser.RULE_literal_pattern); - try { - this.state = 1110; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,119,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 1104; - this.signed_number(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 1105; - this.complex_number(); - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 1106; - this.strings(); - break; - - case 4: - this.enterOuterAlt(localctx, 4); - this.state = 1107; - this.match(PythonParser.NONE); - break; - - case 5: - this.enterOuterAlt(localctx, 5); - this.state = 1108; - this.match(PythonParser.TRUE); - break; - - case 6: - this.enterOuterAlt(localctx, 6); - this.state = 1109; - this.match(PythonParser.FALSE); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - literal_expr() { - let localctx = new Literal_exprContext(this, this._ctx, this.state); - this.enterRule(localctx, 144, PythonParser.RULE_literal_expr); - try { - this.state = 1118; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,120,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 1112; - this.signed_number(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 1113; - this.complex_number(); - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 1114; - this.strings(); - break; - - case 4: - this.enterOuterAlt(localctx, 4); - this.state = 1115; - this.match(PythonParser.NONE); - break; - - case 5: - this.enterOuterAlt(localctx, 5); - this.state = 1116; - this.match(PythonParser.TRUE); - break; - - case 6: - this.enterOuterAlt(localctx, 6); - this.state = 1117; - this.match(PythonParser.FALSE); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - complex_number() { - let localctx = new Complex_numberContext(this, this._ctx, this.state); - this.enterRule(localctx, 146, PythonParser.RULE_complex_number); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1120; - this.signed_real_number(); - this.state = 1121; - _la = this._input.LA(1); - if(!(_la===51 || _la===52)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 1122; - this.imaginary_number(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - signed_number() { - let localctx = new Signed_numberContext(this, this._ctx, this.state); - this.enterRule(localctx, 148, PythonParser.RULE_signed_number); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1125; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===52) { - this.state = 1124; - this.match(PythonParser.MINUS); - } - - this.state = 1127; - this.match(PythonParser.NUMBER); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - signed_real_number() { - let localctx = new Signed_real_numberContext(this, this._ctx, this.state); - this.enterRule(localctx, 150, PythonParser.RULE_signed_real_number); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1130; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===52) { - this.state = 1129; - this.match(PythonParser.MINUS); - } - - this.state = 1132; - this.real_number(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - real_number() { - let localctx = new Real_numberContext(this, this._ctx, this.state); - this.enterRule(localctx, 152, PythonParser.RULE_real_number); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1134; - this.match(PythonParser.NUMBER); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - imaginary_number() { - let localctx = new Imaginary_numberContext(this, this._ctx, this.state); - this.enterRule(localctx, 154, PythonParser.RULE_imaginary_number); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1136; - this.match(PythonParser.NUMBER); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - capture_pattern() { - let localctx = new Capture_patternContext(this, this._ctx, this.state); - this.enterRule(localctx, 156, PythonParser.RULE_capture_pattern); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1138; - this.pattern_capture_target(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - pattern_capture_target() { - let localctx = new Pattern_capture_targetContext(this, this._ctx, this.state); - this.enterRule(localctx, 158, PythonParser.RULE_pattern_capture_target); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1140; - this.soft_kw__not__wildcard(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - wildcard_pattern() { - let localctx = new Wildcard_patternContext(this, this._ctx, this.state); - this.enterRule(localctx, 160, PythonParser.RULE_wildcard_pattern); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1142; - this.soft_kw_wildcard(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - value_pattern() { - let localctx = new Value_patternContext(this, this._ctx, this.state); - this.enterRule(localctx, 162, PythonParser.RULE_value_pattern); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1144; - this.attr(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - attr() { - let localctx = new AttrContext(this, this._ctx, this.state); - this.enterRule(localctx, 164, PythonParser.RULE_attr); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1146; - this.match(PythonParser.NAME); - this.state = 1149; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - this.state = 1147; - this.match(PythonParser.DOT); - this.state = 1148; - this.match(PythonParser.NAME); - this.state = 1151; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while(_la===47); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - name_or_attr() { - let localctx = new Name_or_attrContext(this, this._ctx, this.state); - this.enterRule(localctx, 166, PythonParser.RULE_name_or_attr); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1153; - this.match(PythonParser.NAME); - this.state = 1158; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===47) { - this.state = 1154; - this.match(PythonParser.DOT); - this.state = 1155; - this.match(PythonParser.NAME); - this.state = 1160; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - group_pattern() { - let localctx = new Group_patternContext(this, this._ctx, this.state); - this.enterRule(localctx, 168, PythonParser.RULE_group_pattern); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1161; - this.match(PythonParser.LPAR); - this.state = 1162; - this.pattern(); - this.state = 1163; - this.match(PythonParser.RPAR); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - sequence_pattern() { - let localctx = new Sequence_patternContext(this, this._ctx, this.state); - this.enterRule(localctx, 170, PythonParser.RULE_sequence_pattern); - try { - this.state = 1175; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 42: - this.enterOuterAlt(localctx, 1); - this.state = 1165; - this.match(PythonParser.LSQB); - this.state = 1167; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,125,this._ctx); - if(la_===1) { - this.state = 1166; - this.maybe_sequence_pattern(); - - } - this.state = 1169; - this.match(PythonParser.RSQB); - break; - case 41: - this.enterOuterAlt(localctx, 2); - this.state = 1170; - this.match(PythonParser.LPAR); - this.state = 1172; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,126,this._ctx); - if(la_===1) { - this.state = 1171; - this.open_sequence_pattern(); - - } - this.state = 1174; - this.match(PythonParser.RPAR); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - open_sequence_pattern() { - let localctx = new Open_sequence_patternContext(this, this._ctx, this.state); - this.enterRule(localctx, 172, PythonParser.RULE_open_sequence_pattern); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1177; - this.maybe_star_pattern(); - this.state = 1178; - this.match(PythonParser.COMMA); - this.state = 1180; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,128,this._ctx); - if(la_===1) { - this.state = 1179; - this.maybe_sequence_pattern(); - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - maybe_sequence_pattern() { - let localctx = new Maybe_sequence_patternContext(this, this._ctx, this.state); - this.enterRule(localctx, 174, PythonParser.RULE_maybe_sequence_pattern); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1182; - this.maybe_star_pattern(); - this.state = 1187; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,129,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 1183; - this.match(PythonParser.COMMA); - this.state = 1184; - this.maybe_star_pattern(); - } - this.state = 1189; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,129,this._ctx); - } - - this.state = 1191; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 1190; - this.match(PythonParser.COMMA); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - maybe_star_pattern() { - let localctx = new Maybe_star_patternContext(this, this._ctx, this.state); - this.enterRule(localctx, 176, PythonParser.RULE_maybe_star_pattern); - try { - this.state = 1195; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,131,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 1193; - this.star_pattern(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 1194; - this.pattern(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - star_pattern() { - let localctx = new Star_patternContext(this, this._ctx, this.state); - this.enterRule(localctx, 178, PythonParser.RULE_star_pattern); - try { - this.state = 1201; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,132,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 1197; - this.match(PythonParser.STAR); - this.state = 1198; - this.pattern_capture_target(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 1199; - this.match(PythonParser.STAR); - this.state = 1200; - this.wildcard_pattern(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - mapping_pattern() { - let localctx = new Mapping_patternContext(this, this._ctx, this.state); - this.enterRule(localctx, 180, PythonParser.RULE_mapping_pattern); - var _la = 0; - try { - this.state = 1223; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,136,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 1203; - this.match(PythonParser.LBRACE); - this.state = 1204; - this.match(PythonParser.RBRACE); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 1205; - this.match(PythonParser.LBRACE); - this.state = 1206; - this.double_star_pattern(); - this.state = 1208; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 1207; - this.match(PythonParser.COMMA); - } - - this.state = 1210; - this.match(PythonParser.RBRACE); - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 1212; - this.match(PythonParser.LBRACE); - this.state = 1213; - this.items_pattern(); - this.state = 1216; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,134,this._ctx); - if(la_===1) { - this.state = 1214; - this.match(PythonParser.COMMA); - this.state = 1215; - this.double_star_pattern(); - - } - this.state = 1219; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 1218; - this.match(PythonParser.COMMA); - } - - this.state = 1221; - this.match(PythonParser.RBRACE); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - items_pattern() { - let localctx = new Items_patternContext(this, this._ctx, this.state); - this.enterRule(localctx, 182, PythonParser.RULE_items_pattern); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1225; - this.key_value_pattern(); - this.state = 1230; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,137,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 1226; - this.match(PythonParser.COMMA); - this.state = 1227; - this.key_value_pattern(); - } - this.state = 1232; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,137,this._ctx); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - key_value_pattern() { - let localctx = new Key_value_patternContext(this, this._ctx, this.state); - this.enterRule(localctx, 184, PythonParser.RULE_key_value_pattern); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1235; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 3: - case 6: - case 11: - case 16: - case 52: - case 90: - case 91: - this.state = 1233; - this.literal_expr(); - break; - case 89: - this.state = 1234; - this.attr(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 1237; - this.match(PythonParser.COLON); - this.state = 1238; - this.pattern(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - double_star_pattern() { - let localctx = new Double_star_patternContext(this, this._ctx, this.state); - this.enterRule(localctx, 186, PythonParser.RULE_double_star_pattern); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1240; - this.match(PythonParser.DOUBLESTAR); - this.state = 1241; - this.pattern_capture_target(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - class_pattern() { - let localctx = new Class_patternContext(this, this._ctx, this.state); - this.enterRule(localctx, 188, PythonParser.RULE_class_pattern); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1243; - this.name_or_attr(); - this.state = 1244; - this.match(PythonParser.LPAR); - this.state = 1256; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,142,this._ctx); - if(la_===1) { - this.state = 1251; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,140,this._ctx); - switch(la_) { - case 1: - this.state = 1245; - this.positional_patterns(); - this.state = 1248; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,139,this._ctx); - if(la_===1) { - this.state = 1246; - this.match(PythonParser.COMMA); - this.state = 1247; - this.keyword_patterns(); - - } - break; - - case 2: - this.state = 1250; - this.keyword_patterns(); - break; - - } - this.state = 1254; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 1253; - this.match(PythonParser.COMMA); - } - - - } - this.state = 1258; - this.match(PythonParser.RPAR); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - positional_patterns() { - let localctx = new Positional_patternsContext(this, this._ctx, this.state); - this.enterRule(localctx, 190, PythonParser.RULE_positional_patterns); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1260; - this.pattern(); - this.state = 1265; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,143,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 1261; - this.match(PythonParser.COMMA); - this.state = 1262; - this.pattern(); - } - this.state = 1267; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,143,this._ctx); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - keyword_patterns() { - let localctx = new Keyword_patternsContext(this, this._ctx, this.state); - this.enterRule(localctx, 192, PythonParser.RULE_keyword_patterns); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1268; - this.keyword_pattern(); - this.state = 1273; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,144,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 1269; - this.match(PythonParser.COMMA); - this.state = 1270; - this.keyword_pattern(); - } - this.state = 1275; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,144,this._ctx); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - keyword_pattern() { - let localctx = new Keyword_patternContext(this, this._ctx, this.state); - this.enterRule(localctx, 194, PythonParser.RULE_keyword_pattern); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1276; - this.match(PythonParser.NAME); - this.state = 1277; - this.match(PythonParser.EQUAL); - this.state = 1278; - this.pattern(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - type_alias() { - let localctx = new Type_aliasContext(this, this._ctx, this.state); - this.enterRule(localctx, 196, PythonParser.RULE_type_alias); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1280; - this.soft_kw_type(); - this.state = 1281; - this.match(PythonParser.NAME); - this.state = 1283; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===42) { - this.state = 1282; - this.type_params(); - } - - this.state = 1285; - this.match(PythonParser.EQUAL); - this.state = 1286; - this.expression(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - type_params() { - let localctx = new Type_paramsContext(this, this._ctx, this.state); - this.enterRule(localctx, 198, PythonParser.RULE_type_params); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1288; - this.match(PythonParser.LSQB); - this.state = 1289; - this.type_param_seq(); - this.state = 1290; - this.match(PythonParser.RSQB); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - type_param_seq() { - let localctx = new Type_param_seqContext(this, this._ctx, this.state); - this.enterRule(localctx, 200, PythonParser.RULE_type_param_seq); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1292; - this.type_param(); - this.state = 1297; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,146,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 1293; - this.match(PythonParser.COMMA); - this.state = 1294; - this.type_param(); - } - this.state = 1299; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,146,this._ctx); - } - - this.state = 1301; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 1300; - this.match(PythonParser.COMMA); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - type_param() { - let localctx = new Type_paramContext(this, this._ctx, this.state); - this.enterRule(localctx, 202, PythonParser.RULE_type_param); - var _la = 0; - try { - this.state = 1319; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 89: - this.enterOuterAlt(localctx, 1); - this.state = 1303; - this.match(PythonParser.NAME); - this.state = 1305; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===48) { - this.state = 1304; - this.type_param_bound(); - } - - break; - case 53: - this.enterOuterAlt(localctx, 2); - this.state = 1307; - this.match(PythonParser.STAR); - this.state = 1308; - this.match(PythonParser.NAME); - this.state = 1311; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===48) { - this.state = 1309; - this.match(PythonParser.COLON); - this.state = 1310; - this.expression(); - } - - break; - case 69: - this.enterOuterAlt(localctx, 3); - this.state = 1313; - this.match(PythonParser.DOUBLESTAR); - this.state = 1314; - this.match(PythonParser.NAME); - this.state = 1317; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===48) { - this.state = 1315; - this.match(PythonParser.COLON); - this.state = 1316; - this.expression(); - } - - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - type_param_bound() { - let localctx = new Type_param_boundContext(this, this._ctx, this.state); - this.enterRule(localctx, 204, PythonParser.RULE_type_param_bound); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1321; - this.match(PythonParser.COLON); - this.state = 1322; - this.expression(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - expressions() { - let localctx = new ExpressionsContext(this, this._ctx, this.state); - this.enterRule(localctx, 206, PythonParser.RULE_expressions); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1324; - this.expression(); - this.state = 1329; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,152,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 1325; - this.match(PythonParser.COMMA); - this.state = 1326; - this.expression(); - } - this.state = 1331; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,152,this._ctx); - } - - this.state = 1333; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 1332; - this.match(PythonParser.COMMA); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - expression() { - let localctx = new ExpressionContext(this, this._ctx, this.state); - this.enterRule(localctx, 208, PythonParser.RULE_expression); - var _la = 0; - try { - this.state = 1344; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 3: - case 6: - case 7: - case 11: - case 16: - case 34: - case 41: - case 42: - case 43: - case 51: - case 52: - case 65: - case 86: - case 89: - case 90: - case 91: - this.enterOuterAlt(localctx, 1); - this.state = 1335; - this.disjunction(); - this.state = 1341; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===38) { - this.state = 1336; - this.match(PythonParser.IF); - this.state = 1337; - this.disjunction(); - this.state = 1338; - this.match(PythonParser.ELSE); - this.state = 1339; - this.expression(); - } - - break; - case 24: - this.enterOuterAlt(localctx, 2); - this.state = 1343; - this.lambdef(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - yield_expr() { - let localctx = new Yield_exprContext(this, this._ctx, this.state); - this.enterRule(localctx, 210, PythonParser.RULE_yield_expr); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1346; - this.match(PythonParser.YIELD); - this.state = 1352; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 28: - this.state = 1347; - this.match(PythonParser.FROM); - this.state = 1348; - this.expression(); - break; - case 3: - case 6: - case 7: - case 11: - case 16: - case 24: - case 34: - case 41: - case 42: - case 43: - case 44: - case 46: - case 48: - case 50: - case 51: - case 52: - case 53: - case 59: - case 65: - case 86: - case 88: - case 89: - case 90: - case 91: - case 92: - case 93: - this.state = 1350; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1f) === 0 && ((1 << (_la - 34)) & 2148402049) !== 0) || ((((_la - 86)) & ~0x1f) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { - this.state = 1349; - this.star_expressions(); - } - - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - star_expressions() { - let localctx = new Star_expressionsContext(this, this._ctx, this.state); - this.enterRule(localctx, 212, PythonParser.RULE_star_expressions); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1354; - this.star_expression(); - this.state = 1359; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,158,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 1355; - this.match(PythonParser.COMMA); - this.state = 1356; - this.star_expression(); - } - this.state = 1361; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,158,this._ctx); - } - - this.state = 1363; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 1362; - this.match(PythonParser.COMMA); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - star_expression() { - let localctx = new Star_expressionContext(this, this._ctx, this.state); - this.enterRule(localctx, 214, PythonParser.RULE_star_expression); - try { - this.state = 1368; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 53: - this.enterOuterAlt(localctx, 1); - this.state = 1365; - this.match(PythonParser.STAR); - this.state = 1366; - this.bitwise_or(0); - break; - case 3: - case 6: - case 7: - case 11: - case 16: - case 24: - case 34: - case 41: - case 42: - case 43: - case 51: - case 52: - case 65: - case 86: - case 89: - case 90: - case 91: - this.enterOuterAlt(localctx, 2); - this.state = 1367; - this.expression(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - star_named_expressions() { - let localctx = new Star_named_expressionsContext(this, this._ctx, this.state); - this.enterRule(localctx, 216, PythonParser.RULE_star_named_expressions); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1370; - this.star_named_expression(); - this.state = 1375; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,161,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 1371; - this.match(PythonParser.COMMA); - this.state = 1372; - this.star_named_expression(); - } - this.state = 1377; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,161,this._ctx); - } - - this.state = 1379; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 1378; - this.match(PythonParser.COMMA); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - star_named_expression() { - let localctx = new Star_named_expressionContext(this, this._ctx, this.state); - this.enterRule(localctx, 218, PythonParser.RULE_star_named_expression); - try { - this.state = 1384; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 53: - this.enterOuterAlt(localctx, 1); - this.state = 1381; - this.match(PythonParser.STAR); - this.state = 1382; - this.bitwise_or(0); - break; - case 3: - case 6: - case 7: - case 11: - case 16: - case 24: - case 34: - case 41: - case 42: - case 43: - case 51: - case 52: - case 65: - case 86: - case 89: - case 90: - case 91: - this.enterOuterAlt(localctx, 2); - this.state = 1383; - this.named_expression(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - assignment_expression() { - let localctx = new Assignment_expressionContext(this, this._ctx, this.state); - this.enterRule(localctx, 220, PythonParser.RULE_assignment_expression); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1386; - this.match(PythonParser.NAME); - this.state = 1387; - this.match(PythonParser.COLONEQUAL); - this.state = 1388; - this.expression(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - named_expression() { - let localctx = new Named_expressionContext(this, this._ctx, this.state); - this.enterRule(localctx, 222, PythonParser.RULE_named_expression); - try { - this.state = 1392; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,164,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 1390; - this.assignment_expression(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 1391; - this.expression(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - disjunction() { - let localctx = new DisjunctionContext(this, this._ctx, this.state); - this.enterRule(localctx, 224, PythonParser.RULE_disjunction); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1394; - this.conjunction(); - this.state = 1399; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===39) { - this.state = 1395; - this.match(PythonParser.OR); - this.state = 1396; - this.conjunction(); - this.state = 1401; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - conjunction() { - let localctx = new ConjunctionContext(this, this._ctx, this.state); - this.enterRule(localctx, 226, PythonParser.RULE_conjunction); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1402; - this.inversion(); - this.state = 1407; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===21) { - this.state = 1403; - this.match(PythonParser.AND); - this.state = 1404; - this.inversion(); - this.state = 1409; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - inversion() { - let localctx = new InversionContext(this, this._ctx, this.state); - this.enterRule(localctx, 228, PythonParser.RULE_inversion); - try { - this.state = 1413; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 34: - this.enterOuterAlt(localctx, 1); - this.state = 1410; - this.match(PythonParser.NOT); - this.state = 1411; - this.inversion(); - break; - case 3: - case 6: - case 7: - case 11: - case 16: - case 41: - case 42: - case 43: - case 51: - case 52: - case 65: - case 86: - case 89: - case 90: - case 91: - this.enterOuterAlt(localctx, 2); - this.state = 1412; - this.comparison(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - comparison() { - let localctx = new ComparisonContext(this, this._ctx, this.state); - this.enterRule(localctx, 230, PythonParser.RULE_comparison); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1415; - this.bitwise_or(0); - this.state = 1419; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===14 || _la===19 || ((((_la - 34)) & ~0x1f) === 0 && ((1 << (_la - 34)) & 2038431745) !== 0)) { - this.state = 1416; - this.compare_op_bitwise_or_pair(); - this.state = 1421; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - compare_op_bitwise_or_pair() { - let localctx = new Compare_op_bitwise_or_pairContext(this, this._ctx, this.state); - this.enterRule(localctx, 232, PythonParser.RULE_compare_op_bitwise_or_pair); - try { - this.state = 1432; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,169,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 1422; - this.eq_bitwise_or(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 1423; - this.noteq_bitwise_or(); - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 1424; - this.lte_bitwise_or(); - break; - - case 4: - this.enterOuterAlt(localctx, 4); - this.state = 1425; - this.lt_bitwise_or(); - break; - - case 5: - this.enterOuterAlt(localctx, 5); - this.state = 1426; - this.gte_bitwise_or(); - break; - - case 6: - this.enterOuterAlt(localctx, 6); - this.state = 1427; - this.gt_bitwise_or(); - break; - - case 7: - this.enterOuterAlt(localctx, 7); - this.state = 1428; - this.notin_bitwise_or(); - break; - - case 8: - this.enterOuterAlt(localctx, 8); - this.state = 1429; - this.in_bitwise_or(); - break; - - case 9: - this.enterOuterAlt(localctx, 9); - this.state = 1430; - this.isnot_bitwise_or(); - break; - - case 10: - this.enterOuterAlt(localctx, 10); - this.state = 1431; - this.is_bitwise_or(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - eq_bitwise_or() { - let localctx = new Eq_bitwise_orContext(this, this._ctx, this.state); - this.enterRule(localctx, 234, PythonParser.RULE_eq_bitwise_or); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1434; - this.match(PythonParser.EQEQUAL); - this.state = 1435; - this.bitwise_or(0); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - noteq_bitwise_or() { - let localctx = new Noteq_bitwise_orContext(this, this._ctx, this.state); - this.enterRule(localctx, 236, PythonParser.RULE_noteq_bitwise_or); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1437; - this.match(PythonParser.NOTEQUAL); - this.state = 1438; - this.bitwise_or(0); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - lte_bitwise_or() { - let localctx = new Lte_bitwise_orContext(this, this._ctx, this.state); - this.enterRule(localctx, 238, PythonParser.RULE_lte_bitwise_or); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1440; - this.match(PythonParser.LESSEQUAL); - this.state = 1441; - this.bitwise_or(0); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - lt_bitwise_or() { - let localctx = new Lt_bitwise_orContext(this, this._ctx, this.state); - this.enterRule(localctx, 240, PythonParser.RULE_lt_bitwise_or); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1443; - this.match(PythonParser.LESS); - this.state = 1444; - this.bitwise_or(0); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - gte_bitwise_or() { - let localctx = new Gte_bitwise_orContext(this, this._ctx, this.state); - this.enterRule(localctx, 242, PythonParser.RULE_gte_bitwise_or); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1446; - this.match(PythonParser.GREATEREQUAL); - this.state = 1447; - this.bitwise_or(0); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - gt_bitwise_or() { - let localctx = new Gt_bitwise_orContext(this, this._ctx, this.state); - this.enterRule(localctx, 244, PythonParser.RULE_gt_bitwise_or); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1449; - this.match(PythonParser.GREATER); - this.state = 1450; - this.bitwise_or(0); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - notin_bitwise_or() { - let localctx = new Notin_bitwise_orContext(this, this._ctx, this.state); - this.enterRule(localctx, 246, PythonParser.RULE_notin_bitwise_or); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1452; - this.match(PythonParser.NOT); - this.state = 1453; - this.match(PythonParser.IN); - this.state = 1454; - this.bitwise_or(0); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - in_bitwise_or() { - let localctx = new In_bitwise_orContext(this, this._ctx, this.state); - this.enterRule(localctx, 248, PythonParser.RULE_in_bitwise_or); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1456; - this.match(PythonParser.IN); - this.state = 1457; - this.bitwise_or(0); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - isnot_bitwise_or() { - let localctx = new Isnot_bitwise_orContext(this, this._ctx, this.state); - this.enterRule(localctx, 250, PythonParser.RULE_isnot_bitwise_or); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1459; - this.match(PythonParser.IS); - this.state = 1460; - this.match(PythonParser.NOT); - this.state = 1461; - this.bitwise_or(0); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - is_bitwise_or() { - let localctx = new Is_bitwise_orContext(this, this._ctx, this.state); - this.enterRule(localctx, 252, PythonParser.RULE_is_bitwise_or); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1463; - this.match(PythonParser.IS); - this.state = 1464; - this.bitwise_or(0); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - bitwise_or(_p) { - if(_p===undefined) { - _p = 0; - } - const _parentctx = this._ctx; - const _parentState = this.state; - let localctx = new Bitwise_orContext(this, this._ctx, _parentState); - let _prevctx = localctx; - const _startState = 254; - this.enterRecursionRule(localctx, 254, PythonParser.RULE_bitwise_or, _p); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1467; - this.bitwise_xor(0); - this._ctx.stop = this._input.LT(-1); - this.state = 1474; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,170,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - if(this._parseListeners!==null) { - this.triggerExitRuleEvent(); - } - _prevctx = localctx; - localctx = new Bitwise_orContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, PythonParser.RULE_bitwise_or); - this.state = 1469; - if (!( this.precpred(this._ctx, 2))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); - } - this.state = 1470; - this.match(PythonParser.VBAR); - this.state = 1471; - this.bitwise_xor(0); - } - this.state = 1476; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,170,this._ctx); - } - - } catch( error) { - if(error instanceof antlr4.error.RecognitionException) { - localctx.exception = error; - this._errHandler.reportError(this, error); - this._errHandler.recover(this, error); - } else { - throw error; - } - } finally { - this.unrollRecursionContexts(_parentctx) - } - return localctx; - } - - - bitwise_xor(_p) { - if(_p===undefined) { - _p = 0; - } - const _parentctx = this._ctx; - const _parentState = this.state; - let localctx = new Bitwise_xorContext(this, this._ctx, _parentState); - let _prevctx = localctx; - const _startState = 256; - this.enterRecursionRule(localctx, 256, PythonParser.RULE_bitwise_xor, _p); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1478; - this.bitwise_and(0); - this._ctx.stop = this._input.LT(-1); - this.state = 1485; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,171,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - if(this._parseListeners!==null) { - this.triggerExitRuleEvent(); - } - _prevctx = localctx; - localctx = new Bitwise_xorContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, PythonParser.RULE_bitwise_xor); - this.state = 1480; - if (!( this.precpred(this._ctx, 2))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); - } - this.state = 1481; - this.match(PythonParser.CIRCUMFLEX); - this.state = 1482; - this.bitwise_and(0); - } - this.state = 1487; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,171,this._ctx); - } - - } catch( error) { - if(error instanceof antlr4.error.RecognitionException) { - localctx.exception = error; - this._errHandler.reportError(this, error); - this._errHandler.recover(this, error); - } else { - throw error; - } - } finally { - this.unrollRecursionContexts(_parentctx) - } - return localctx; - } - - - bitwise_and(_p) { - if(_p===undefined) { - _p = 0; - } - const _parentctx = this._ctx; - const _parentState = this.state; - let localctx = new Bitwise_andContext(this, this._ctx, _parentState); - let _prevctx = localctx; - const _startState = 258; - this.enterRecursionRule(localctx, 258, PythonParser.RULE_bitwise_and, _p); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1489; - this.shift_expr(0); - this._ctx.stop = this._input.LT(-1); - this.state = 1496; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,172,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - if(this._parseListeners!==null) { - this.triggerExitRuleEvent(); - } - _prevctx = localctx; - localctx = new Bitwise_andContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, PythonParser.RULE_bitwise_and); - this.state = 1491; - if (!( this.precpred(this._ctx, 2))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); - } - this.state = 1492; - this.match(PythonParser.AMPER); - this.state = 1493; - this.shift_expr(0); - } - this.state = 1498; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,172,this._ctx); - } - - } catch( error) { - if(error instanceof antlr4.error.RecognitionException) { - localctx.exception = error; - this._errHandler.reportError(this, error); - this._errHandler.recover(this, error); - } else { - throw error; - } - } finally { - this.unrollRecursionContexts(_parentctx) - } - return localctx; - } - - - shift_expr(_p) { - if(_p===undefined) { - _p = 0; - } - const _parentctx = this._ctx; - const _parentState = this.state; - let localctx = new Shift_exprContext(this, this._ctx, _parentState); - let _prevctx = localctx; - const _startState = 260; - this.enterRecursionRule(localctx, 260, PythonParser.RULE_shift_expr, _p); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1500; - this.sum(0); - this._ctx.stop = this._input.LT(-1); - this.state = 1507; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,173,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - if(this._parseListeners!==null) { - this.triggerExitRuleEvent(); - } - _prevctx = localctx; - localctx = new Shift_exprContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, PythonParser.RULE_shift_expr); - this.state = 1502; - if (!( this.precpred(this._ctx, 2))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); - } - this.state = 1503; - _la = this._input.LA(1); - if(!(_la===67 || _la===68)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 1504; - this.sum(0); - } - this.state = 1509; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,173,this._ctx); - } - - } catch( error) { - if(error instanceof antlr4.error.RecognitionException) { - localctx.exception = error; - this._errHandler.reportError(this, error); - this._errHandler.recover(this, error); - } else { - throw error; - } - } finally { - this.unrollRecursionContexts(_parentctx) - } - return localctx; - } - - - sum(_p) { - if(_p===undefined) { - _p = 0; - } - const _parentctx = this._ctx; - const _parentState = this.state; - let localctx = new SumContext(this, this._ctx, _parentState); - let _prevctx = localctx; - const _startState = 262; - this.enterRecursionRule(localctx, 262, PythonParser.RULE_sum, _p); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1511; - this.term(0); - this._ctx.stop = this._input.LT(-1); - this.state = 1518; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,174,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - if(this._parseListeners!==null) { - this.triggerExitRuleEvent(); - } - _prevctx = localctx; - localctx = new SumContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, PythonParser.RULE_sum); - this.state = 1513; - if (!( this.precpred(this._ctx, 2))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); - } - this.state = 1514; - _la = this._input.LA(1); - if(!(_la===51 || _la===52)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 1515; - this.term(0); - } - this.state = 1520; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,174,this._ctx); - } - - } catch( error) { - if(error instanceof antlr4.error.RecognitionException) { - localctx.exception = error; - this._errHandler.reportError(this, error); - this._errHandler.recover(this, error); - } else { - throw error; - } - } finally { - this.unrollRecursionContexts(_parentctx) - } - return localctx; - } - - - term(_p) { - if(_p===undefined) { - _p = 0; - } - const _parentctx = this._ctx; - const _parentState = this.state; - let localctx = new TermContext(this, this._ctx, _parentState); - let _prevctx = localctx; - const _startState = 264; - this.enterRecursionRule(localctx, 264, PythonParser.RULE_term, _p); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1522; - this.factor(); - this._ctx.stop = this._input.LT(-1); - this.state = 1529; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,175,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - if(this._parseListeners!==null) { - this.triggerExitRuleEvent(); - } - _prevctx = localctx; - localctx = new TermContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, PythonParser.RULE_term); - this.state = 1524; - if (!( this.precpred(this._ctx, 2))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); - } - this.state = 1525; - _la = this._input.LA(1); - if(!(((((_la - 53)) & ~0x1f) === 0 && ((1 << (_la - 53)) & 1342177411) !== 0))) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 1526; - this.factor(); - } - this.state = 1531; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,175,this._ctx); - } - - } catch( error) { - if(error instanceof antlr4.error.RecognitionException) { - localctx.exception = error; - this._errHandler.reportError(this, error); - this._errHandler.recover(this, error); - } else { - throw error; - } - } finally { - this.unrollRecursionContexts(_parentctx) - } - return localctx; - } - - - - factor() { - let localctx = new FactorContext(this, this._ctx, this.state); - this.enterRule(localctx, 266, PythonParser.RULE_factor); - try { - this.state = 1539; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 51: - this.enterOuterAlt(localctx, 1); - this.state = 1532; - this.match(PythonParser.PLUS); - this.state = 1533; - this.factor(); - break; - case 52: - this.enterOuterAlt(localctx, 2); - this.state = 1534; - this.match(PythonParser.MINUS); - this.state = 1535; - this.factor(); - break; - case 65: - this.enterOuterAlt(localctx, 3); - this.state = 1536; - this.match(PythonParser.TILDE); - this.state = 1537; - this.factor(); - break; - case 3: - case 6: - case 7: - case 11: - case 16: - case 41: - case 42: - case 43: - case 86: - case 89: - case 90: - case 91: - this.enterOuterAlt(localctx, 4); - this.state = 1538; - this.power(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - power() { - let localctx = new PowerContext(this, this._ctx, this.state); - this.enterRule(localctx, 268, PythonParser.RULE_power); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1541; - this.await_primary(); - this.state = 1544; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,177,this._ctx); - if(la_===1) { - this.state = 1542; - this.match(PythonParser.DOUBLESTAR); - this.state = 1543; - this.factor(); - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - await_primary() { - let localctx = new Await_primaryContext(this, this._ctx, this.state); - this.enterRule(localctx, 270, PythonParser.RULE_await_primary); - try { - this.state = 1549; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 7: - this.enterOuterAlt(localctx, 1); - this.state = 1546; - this.match(PythonParser.AWAIT); - this.state = 1547; - this.primary(0); - break; - case 3: - case 6: - case 11: - case 16: - case 41: - case 42: - case 43: - case 86: - case 89: - case 90: - case 91: - this.enterOuterAlt(localctx, 2); - this.state = 1548; - this.primary(0); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - primary(_p) { - if(_p===undefined) { - _p = 0; - } - const _parentctx = this._ctx; - const _parentState = this.state; - let localctx = new PrimaryContext(this, this._ctx, _parentState); - let _prevctx = localctx; - const _startState = 272; - this.enterRecursionRule(localctx, 272, PythonParser.RULE_primary, _p); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1552; - this.atom(); - this._ctx.stop = this._input.LT(-1); - this.state = 1571; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,181,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - if(this._parseListeners!==null) { - this.triggerExitRuleEvent(); - } - _prevctx = localctx; - localctx = new PrimaryContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, PythonParser.RULE_primary); - this.state = 1554; - if (!( this.precpred(this._ctx, 2))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); - } - this.state = 1567; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,180,this._ctx); - switch(la_) { - case 1: - this.state = 1555; - this.match(PythonParser.DOT); - this.state = 1556; - this.match(PythonParser.NAME); - break; - - case 2: - this.state = 1557; - this.genexp(); - break; - - case 3: - this.state = 1558; - this.match(PythonParser.LPAR); - this.state = 1560; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1f) === 0 && ((1 << (_la - 34)) & 2148402049) !== 0) || ((((_la - 69)) & ~0x1f) === 0 && ((1 << (_la - 69)) & 7471105) !== 0)) { - this.state = 1559; - this.arguments(); - } - - this.state = 1562; - this.match(PythonParser.RPAR); - break; - - case 4: - this.state = 1563; - this.match(PythonParser.LSQB); - this.state = 1564; - this.slices(); - this.state = 1565; - this.match(PythonParser.RSQB); - break; - - } - } - this.state = 1573; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,181,this._ctx); - } - - } catch( error) { - if(error instanceof antlr4.error.RecognitionException) { - localctx.exception = error; - this._errHandler.reportError(this, error); - this._errHandler.recover(this, error); - } else { - throw error; - } - } finally { - this.unrollRecursionContexts(_parentctx) - } - return localctx; - } - - - - slices() { - let localctx = new SlicesContext(this, this._ctx, this.state); - this.enterRule(localctx, 274, PythonParser.RULE_slices); - var _la = 0; - try { - this.state = 1592; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,186,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 1574; - this.slice(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 1577; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 3: - case 6: - case 7: - case 11: - case 16: - case 24: - case 34: - case 41: - case 42: - case 43: - case 48: - case 51: - case 52: - case 65: - case 86: - case 89: - case 90: - case 91: - this.state = 1575; - this.slice(); - break; - case 53: - this.state = 1576; - this.starred_expression(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 1586; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,184,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 1579; - this.match(PythonParser.COMMA); - this.state = 1582; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 3: - case 6: - case 7: - case 11: - case 16: - case 24: - case 34: - case 41: - case 42: - case 43: - case 48: - case 51: - case 52: - case 65: - case 86: - case 89: - case 90: - case 91: - this.state = 1580; - this.slice(); - break; - case 53: - this.state = 1581; - this.starred_expression(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } - this.state = 1588; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,184,this._ctx); - } - - this.state = 1590; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 1589; - this.match(PythonParser.COMMA); - } - - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - slice() { - let localctx = new SliceContext(this, this._ctx, this.state); - this.enterRule(localctx, 276, PythonParser.RULE_slice); - var _la = 0; - try { - this.state = 1608; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,191,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 1595; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1f) === 0 && ((1 << (_la - 34)) & 2147877761) !== 0) || ((((_la - 86)) & ~0x1f) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { - this.state = 1594; - this.expression(); - } - - this.state = 1597; - this.match(PythonParser.COLON); - this.state = 1599; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1f) === 0 && ((1 << (_la - 34)) & 2147877761) !== 0) || ((((_la - 86)) & ~0x1f) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { - this.state = 1598; - this.expression(); - } - - this.state = 1605; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===48) { - this.state = 1601; - this.match(PythonParser.COLON); - this.state = 1603; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1f) === 0 && ((1 << (_la - 34)) & 2147877761) !== 0) || ((((_la - 86)) & ~0x1f) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { - this.state = 1602; - this.expression(); - } - - } - - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 1607; - this.named_expression(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - atom() { - let localctx = new AtomContext(this, this._ctx, this.state); - this.enterRule(localctx, 278, PythonParser.RULE_atom); - try { - this.state = 1632; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 89: - this.enterOuterAlt(localctx, 1); - this.state = 1610; - this.match(PythonParser.NAME); - break; - case 16: - this.enterOuterAlt(localctx, 2); - this.state = 1611; - this.match(PythonParser.TRUE); - break; - case 6: - this.enterOuterAlt(localctx, 3); - this.state = 1612; - this.match(PythonParser.FALSE); - break; - case 11: - this.enterOuterAlt(localctx, 4); - this.state = 1613; - this.match(PythonParser.NONE); - break; - case 3: - case 91: - this.enterOuterAlt(localctx, 5); - this.state = 1614; - this.strings(); - break; - case 90: - this.enterOuterAlt(localctx, 6); - this.state = 1615; - this.match(PythonParser.NUMBER); - break; - case 41: - this.enterOuterAlt(localctx, 7); - this.state = 1619; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,192,this._ctx); - switch(la_) { - case 1: - this.state = 1616; - this.tuple(); - break; - - case 2: - this.state = 1617; - this.group(); - break; - - case 3: - this.state = 1618; - this.genexp(); - break; - - } - break; - case 42: - this.enterOuterAlt(localctx, 8); - this.state = 1623; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,193,this._ctx); - switch(la_) { - case 1: - this.state = 1621; - this.list(); - break; - - case 2: - this.state = 1622; - this.listcomp(); - break; - - } - break; - case 43: - this.enterOuterAlt(localctx, 9); - this.state = 1629; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,194,this._ctx); - switch(la_) { - case 1: - this.state = 1625; - this.dict(); - break; - - case 2: - this.state = 1626; - this.set(); - break; - - case 3: - this.state = 1627; - this.dictcomp(); - break; - - case 4: - this.state = 1628; - this.setcomp(); - break; - - } - break; - case 86: - this.enterOuterAlt(localctx, 10); - this.state = 1631; - this.match(PythonParser.ELLIPSIS); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - group() { - let localctx = new GroupContext(this, this._ctx, this.state); - this.enterRule(localctx, 280, PythonParser.RULE_group); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1634; - this.match(PythonParser.LPAR); - this.state = 1637; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 40: - this.state = 1635; - this.yield_expr(); - break; - case 3: - case 6: - case 7: - case 11: - case 16: - case 24: - case 34: - case 41: - case 42: - case 43: - case 51: - case 52: - case 65: - case 86: - case 89: - case 90: - case 91: - this.state = 1636; - this.named_expression(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 1639; - this.match(PythonParser.RPAR); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - lambdef() { - let localctx = new LambdefContext(this, this._ctx, this.state); - this.enterRule(localctx, 282, PythonParser.RULE_lambdef); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1641; - this.match(PythonParser.LAMBDA); - this.state = 1643; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===53 || _la===69 || _la===89) { - this.state = 1642; - this.lambda_params(); - } - - this.state = 1645; - this.match(PythonParser.COLON); - this.state = 1646; - this.expression(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - lambda_params() { - let localctx = new Lambda_paramsContext(this, this._ctx, this.state); - this.enterRule(localctx, 284, PythonParser.RULE_lambda_params); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1648; - this.lambda_parameters(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - lambda_parameters() { - let localctx = new Lambda_parametersContext(this, this._ctx, this.state); - this.enterRule(localctx, 286, PythonParser.RULE_lambda_parameters); - var _la = 0; - try { - this.state = 1699; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,208,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 1650; - this.lambda_slash_no_default(); - this.state = 1654; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,198,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 1651; - this.lambda_param_no_default(); - } - this.state = 1656; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,198,this._ctx); - } - - this.state = 1660; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===89) { - this.state = 1657; - this.lambda_param_with_default(); - this.state = 1662; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1664; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===53 || _la===69) { - this.state = 1663; - this.lambda_star_etc(); - } - - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 1666; - this.lambda_slash_with_default(); - this.state = 1670; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===89) { - this.state = 1667; - this.lambda_param_with_default(); - this.state = 1672; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1674; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===53 || _la===69) { - this.state = 1673; - this.lambda_star_etc(); - } - - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 1677; - this._errHandler.sync(this); - var _alt = 1; - do { - switch (_alt) { - case 1: - this.state = 1676; - this.lambda_param_no_default(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 1679; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,203, this._ctx); - } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); - this.state = 1684; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===89) { - this.state = 1681; - this.lambda_param_with_default(); - this.state = 1686; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1688; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===53 || _la===69) { - this.state = 1687; - this.lambda_star_etc(); - } - - break; - - case 4: - this.enterOuterAlt(localctx, 4); - this.state = 1691; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - this.state = 1690; - this.lambda_param_with_default(); - this.state = 1693; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while(_la===89); - this.state = 1696; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===53 || _la===69) { - this.state = 1695; - this.lambda_star_etc(); - } - - break; - - case 5: - this.enterOuterAlt(localctx, 5); - this.state = 1698; - this.lambda_star_etc(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - lambda_slash_no_default() { - let localctx = new Lambda_slash_no_defaultContext(this, this._ctx, this.state); - this.enterRule(localctx, 288, PythonParser.RULE_lambda_slash_no_default); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1702; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - this.state = 1701; - this.lambda_param_no_default(); - this.state = 1704; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while(_la===89); - this.state = 1706; - this.match(PythonParser.SLASH); - this.state = 1708; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 1707; - this.match(PythonParser.COMMA); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - lambda_slash_with_default() { - let localctx = new Lambda_slash_with_defaultContext(this, this._ctx, this.state); - this.enterRule(localctx, 290, PythonParser.RULE_lambda_slash_with_default); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1713; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,211,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 1710; - this.lambda_param_no_default(); - } - this.state = 1715; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,211,this._ctx); - } - - this.state = 1717; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - this.state = 1716; - this.lambda_param_with_default(); - this.state = 1719; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while(_la===89); - this.state = 1721; - this.match(PythonParser.SLASH); - this.state = 1723; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 1722; - this.match(PythonParser.COMMA); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - lambda_star_etc() { - let localctx = new Lambda_star_etcContext(this, this._ctx, this.state); - this.enterRule(localctx, 292, PythonParser.RULE_lambda_star_etc); - var _la = 0; - try { - this.state = 1747; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,218,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 1725; - this.match(PythonParser.STAR); - this.state = 1726; - this.lambda_param_no_default(); - this.state = 1730; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===89) { - this.state = 1727; - this.lambda_param_maybe_default(); - this.state = 1732; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1734; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===69) { - this.state = 1733; - this.lambda_kwds(); - } - - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 1736; - this.match(PythonParser.STAR); - this.state = 1737; - this.match(PythonParser.COMMA); - this.state = 1739; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - this.state = 1738; - this.lambda_param_maybe_default(); - this.state = 1741; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while(_la===89); - this.state = 1744; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===69) { - this.state = 1743; - this.lambda_kwds(); - } - - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 1746; - this.lambda_kwds(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - lambda_kwds() { - let localctx = new Lambda_kwdsContext(this, this._ctx, this.state); - this.enterRule(localctx, 294, PythonParser.RULE_lambda_kwds); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1749; - this.match(PythonParser.DOUBLESTAR); - this.state = 1750; - this.lambda_param_no_default(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - lambda_param_no_default() { - let localctx = new Lambda_param_no_defaultContext(this, this._ctx, this.state); - this.enterRule(localctx, 296, PythonParser.RULE_lambda_param_no_default); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1752; - this.lambda_param(); - this.state = 1754; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 1753; - this.match(PythonParser.COMMA); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - lambda_param_with_default() { - let localctx = new Lambda_param_with_defaultContext(this, this._ctx, this.state); - this.enterRule(localctx, 298, PythonParser.RULE_lambda_param_with_default); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1756; - this.lambda_param(); - this.state = 1757; - this.default_assignment(); - this.state = 1759; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 1758; - this.match(PythonParser.COMMA); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - lambda_param_maybe_default() { - let localctx = new Lambda_param_maybe_defaultContext(this, this._ctx, this.state); - this.enterRule(localctx, 300, PythonParser.RULE_lambda_param_maybe_default); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1761; - this.lambda_param(); - this.state = 1763; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===59) { - this.state = 1762; - this.default_assignment(); - } - - this.state = 1766; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 1765; - this.match(PythonParser.COMMA); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - lambda_param() { - let localctx = new Lambda_paramContext(this, this._ctx, this.state); - this.enterRule(localctx, 302, PythonParser.RULE_lambda_param); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1768; - this.match(PythonParser.NAME); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - fstring_middle() { - let localctx = new Fstring_middleContext(this, this._ctx, this.state); - this.enterRule(localctx, 304, PythonParser.RULE_fstring_middle); - try { - this.state = 1772; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 43: - this.enterOuterAlt(localctx, 1); - this.state = 1770; - this.fstring_replacement_field(); - break; - case 4: - this.enterOuterAlt(localctx, 2); - this.state = 1771; - this.match(PythonParser.FSTRING_MIDDLE); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - fstring_replacement_field() { - let localctx = new Fstring_replacement_fieldContext(this, this._ctx, this.state); - this.enterRule(localctx, 306, PythonParser.RULE_fstring_replacement_field); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1774; - this.match(PythonParser.LBRACE); - this.state = 1777; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 40: - this.state = 1775; - this.yield_expr(); - break; - case 3: - case 6: - case 7: - case 11: - case 16: - case 24: - case 34: - case 41: - case 42: - case 43: - case 51: - case 52: - case 53: - case 65: - case 86: - case 89: - case 90: - case 91: - this.state = 1776; - this.star_expressions(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 1780; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===59) { - this.state = 1779; - this.match(PythonParser.EQUAL); - } - - this.state = 1783; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===88) { - this.state = 1782; - this.fstring_conversion(); - } - - this.state = 1786; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===48) { - this.state = 1785; - this.fstring_full_format_spec(); - } - - this.state = 1788; - this.match(PythonParser.RBRACE); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - fstring_conversion() { - let localctx = new Fstring_conversionContext(this, this._ctx, this.state); - this.enterRule(localctx, 308, PythonParser.RULE_fstring_conversion); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1790; - this.match(PythonParser.EXCLAMATION); - this.state = 1791; - this.match(PythonParser.NAME); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - fstring_full_format_spec() { - let localctx = new Fstring_full_format_specContext(this, this._ctx, this.state); - this.enterRule(localctx, 310, PythonParser.RULE_fstring_full_format_spec); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1793; - this.match(PythonParser.COLON); - this.state = 1797; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===4 || _la===43) { - this.state = 1794; - this.fstring_format_spec(); - this.state = 1799; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - fstring_format_spec() { - let localctx = new Fstring_format_specContext(this, this._ctx, this.state); - this.enterRule(localctx, 312, PythonParser.RULE_fstring_format_spec); - try { - this.state = 1802; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 4: - this.enterOuterAlt(localctx, 1); - this.state = 1800; - this.match(PythonParser.FSTRING_MIDDLE); - break; - case 43: - this.enterOuterAlt(localctx, 2); - this.state = 1801; - this.fstring_replacement_field(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - fstring() { - let localctx = new FstringContext(this, this._ctx, this.state); - this.enterRule(localctx, 314, PythonParser.RULE_fstring); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1804; - this.match(PythonParser.FSTRING_START); - this.state = 1808; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===4 || _la===43) { - this.state = 1805; - this.fstring_middle(); - this.state = 1810; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1811; - this.match(PythonParser.FSTRING_END); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - string() { - let localctx = new StringContext(this, this._ctx, this.state); - this.enterRule(localctx, 316, PythonParser.RULE_string); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1813; - this.match(PythonParser.STRING); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - strings() { - let localctx = new StringsContext(this, this._ctx, this.state); - this.enterRule(localctx, 318, PythonParser.RULE_strings); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1817; - this._errHandler.sync(this); - var _alt = 1; - do { - switch (_alt) { - case 1: - this.state = 1817; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 3: - this.state = 1815; - this.fstring(); - break; - case 91: - this.state = 1816; - this.string(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 1819; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,232, this._ctx); - } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - list() { - let localctx = new ListContext(this, this._ctx, this.state); - this.enterRule(localctx, 320, PythonParser.RULE_list); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1821; - this.match(PythonParser.LSQB); - this.state = 1823; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1f) === 0 && ((1 << (_la - 34)) & 2148402049) !== 0) || ((((_la - 86)) & ~0x1f) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { - this.state = 1822; - this.star_named_expressions(); - } - - this.state = 1825; - this.match(PythonParser.RSQB); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - tuple() { - let localctx = new TupleContext(this, this._ctx, this.state); - this.enterRule(localctx, 322, PythonParser.RULE_tuple); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1827; - this.match(PythonParser.LPAR); - this.state = 1833; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1f) === 0 && ((1 << (_la - 34)) & 2148402049) !== 0) || ((((_la - 86)) & ~0x1f) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { - this.state = 1828; - this.star_named_expression(); - this.state = 1829; - this.match(PythonParser.COMMA); - this.state = 1831; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1f) === 0 && ((1 << (_la - 34)) & 2148402049) !== 0) || ((((_la - 86)) & ~0x1f) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { - this.state = 1830; - this.star_named_expressions(); - } - - } - - this.state = 1835; - this.match(PythonParser.RPAR); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - set() { - let localctx = new SetContext(this, this._ctx, this.state); - this.enterRule(localctx, 324, PythonParser.RULE_set); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1837; - this.match(PythonParser.LBRACE); - this.state = 1838; - this.star_named_expressions(); - this.state = 1839; - this.match(PythonParser.RBRACE); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - dict() { - let localctx = new DictContext(this, this._ctx, this.state); - this.enterRule(localctx, 326, PythonParser.RULE_dict); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1841; - this.match(PythonParser.LBRACE); - this.state = 1843; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1f) === 0 && ((1 << (_la - 34)) & 2147877761) !== 0) || ((((_la - 69)) & ~0x1f) === 0 && ((1 << (_la - 69)) & 7471105) !== 0)) { - this.state = 1842; - this.double_starred_kvpairs(); - } - - this.state = 1845; - this.match(PythonParser.RBRACE); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - double_starred_kvpairs() { - let localctx = new Double_starred_kvpairsContext(this, this._ctx, this.state); - this.enterRule(localctx, 328, PythonParser.RULE_double_starred_kvpairs); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1847; - this.double_starred_kvpair(); - this.state = 1852; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,237,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 1848; - this.match(PythonParser.COMMA); - this.state = 1849; - this.double_starred_kvpair(); - } - this.state = 1854; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,237,this._ctx); - } - - this.state = 1856; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 1855; - this.match(PythonParser.COMMA); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - double_starred_kvpair() { - let localctx = new Double_starred_kvpairContext(this, this._ctx, this.state); - this.enterRule(localctx, 330, PythonParser.RULE_double_starred_kvpair); - try { - this.state = 1861; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 69: - this.enterOuterAlt(localctx, 1); - this.state = 1858; - this.match(PythonParser.DOUBLESTAR); - this.state = 1859; - this.bitwise_or(0); - break; - case 3: - case 6: - case 7: - case 11: - case 16: - case 24: - case 34: - case 41: - case 42: - case 43: - case 51: - case 52: - case 65: - case 86: - case 89: - case 90: - case 91: - this.enterOuterAlt(localctx, 2); - this.state = 1860; - this.kvpair(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - kvpair() { - let localctx = new KvpairContext(this, this._ctx, this.state); - this.enterRule(localctx, 332, PythonParser.RULE_kvpair); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1863; - this.expression(); - this.state = 1864; - this.match(PythonParser.COLON); - this.state = 1865; - this.expression(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - for_if_clauses() { - let localctx = new For_if_clausesContext(this, this._ctx, this.state); - this.enterRule(localctx, 334, PythonParser.RULE_for_if_clauses); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1868; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - this.state = 1867; - this.for_if_clause(); - this.state = 1870; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while(_la===23 || _la===36); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - for_if_clause() { - let localctx = new For_if_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 336, PythonParser.RULE_for_if_clause); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1873; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===36) { - this.state = 1872; - this.match(PythonParser.ASYNC); - } - - this.state = 1875; - this.match(PythonParser.FOR); - this.state = 1876; - this.star_targets(); - this.state = 1877; - this.match(PythonParser.IN); - this.state = 1878; - this.disjunction(); - this.state = 1883; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===38) { - this.state = 1879; - this.match(PythonParser.IF); - this.state = 1880; - this.disjunction(); - this.state = 1885; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - listcomp() { - let localctx = new ListcompContext(this, this._ctx, this.state); - this.enterRule(localctx, 338, PythonParser.RULE_listcomp); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1886; - this.match(PythonParser.LSQB); - this.state = 1887; - this.named_expression(); - this.state = 1888; - this.for_if_clauses(); - this.state = 1889; - this.match(PythonParser.RSQB); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - setcomp() { - let localctx = new SetcompContext(this, this._ctx, this.state); - this.enterRule(localctx, 340, PythonParser.RULE_setcomp); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1891; - this.match(PythonParser.LBRACE); - this.state = 1892; - this.named_expression(); - this.state = 1893; - this.for_if_clauses(); - this.state = 1894; - this.match(PythonParser.RBRACE); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - genexp() { - let localctx = new GenexpContext(this, this._ctx, this.state); - this.enterRule(localctx, 342, PythonParser.RULE_genexp); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1896; - this.match(PythonParser.LPAR); - this.state = 1899; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,243,this._ctx); - switch(la_) { - case 1: - this.state = 1897; - this.assignment_expression(); - break; - - case 2: - this.state = 1898; - this.expression(); - break; - - } - this.state = 1901; - this.for_if_clauses(); - this.state = 1902; - this.match(PythonParser.RPAR); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - dictcomp() { - let localctx = new DictcompContext(this, this._ctx, this.state); - this.enterRule(localctx, 344, PythonParser.RULE_dictcomp); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1904; - this.match(PythonParser.LBRACE); - this.state = 1905; - this.kvpair(); - this.state = 1906; - this.for_if_clauses(); - this.state = 1907; - this.match(PythonParser.RBRACE); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - arguments() { - let localctx = new ArgumentsContext(this, this._ctx, this.state); - this.enterRule(localctx, 346, PythonParser.RULE_arguments); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1909; - this.args(); - this.state = 1911; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 1910; - this.match(PythonParser.COMMA); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - args() { - let localctx = new ArgsContext(this, this._ctx, this.state); - this.enterRule(localctx, 348, PythonParser.RULE_args); - try { - this.state = 1938; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,251,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 1918; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 53: - this.state = 1913; - this.starred_expression(); - break; - case 3: - case 6: - case 7: - case 11: - case 16: - case 24: - case 34: - case 41: - case 42: - case 43: - case 51: - case 52: - case 65: - case 86: - case 89: - case 90: - case 91: - this.state = 1916; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,245,this._ctx); - switch(la_) { - case 1: - this.state = 1914; - this.assignment_expression(); - break; - - case 2: - this.state = 1915; - this.expression(); - break; - - } - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 1930; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,249,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 1920; - this.match(PythonParser.COMMA); - this.state = 1926; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 53: - this.state = 1921; - this.starred_expression(); - break; - case 3: - case 6: - case 7: - case 11: - case 16: - case 24: - case 34: - case 41: - case 42: - case 43: - case 51: - case 52: - case 65: - case 86: - case 89: - case 90: - case 91: - this.state = 1924; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,247,this._ctx); - switch(la_) { - case 1: - this.state = 1922; - this.assignment_expression(); - break; - - case 2: - this.state = 1923; - this.expression(); - break; - - } - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } - this.state = 1932; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,249,this._ctx); - } - - this.state = 1935; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,250,this._ctx); - if(la_===1) { - this.state = 1933; - this.match(PythonParser.COMMA); - this.state = 1934; - this.kwargs(); - - } - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 1937; - this.kwargs(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - kwargs() { - let localctx = new KwargsContext(this, this._ctx, this.state); - this.enterRule(localctx, 350, PythonParser.RULE_kwargs); - try { - this.state = 1967; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,256,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 1940; - this.kwarg_or_starred(); - this.state = 1945; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,252,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 1941; - this.match(PythonParser.COMMA); - this.state = 1942; - this.kwarg_or_starred(); - } - this.state = 1947; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,252,this._ctx); - } - - this.state = 1957; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,254,this._ctx); - if(la_===1) { - this.state = 1948; - this.match(PythonParser.COMMA); - this.state = 1949; - this.kwarg_or_double_starred(); - this.state = 1954; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,253,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 1950; - this.match(PythonParser.COMMA); - this.state = 1951; - this.kwarg_or_double_starred(); - } - this.state = 1956; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,253,this._ctx); - } - - - } - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 1959; - this.kwarg_or_double_starred(); - this.state = 1964; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,255,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 1960; - this.match(PythonParser.COMMA); - this.state = 1961; - this.kwarg_or_double_starred(); - } - this.state = 1966; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,255,this._ctx); - } - - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - starred_expression() { - let localctx = new Starred_expressionContext(this, this._ctx, this.state); - this.enterRule(localctx, 352, PythonParser.RULE_starred_expression); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1969; - this.match(PythonParser.STAR); - this.state = 1970; - this.expression(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - kwarg_or_starred() { - let localctx = new Kwarg_or_starredContext(this, this._ctx, this.state); - this.enterRule(localctx, 354, PythonParser.RULE_kwarg_or_starred); - try { - this.state = 1976; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 89: - this.enterOuterAlt(localctx, 1); - this.state = 1972; - this.match(PythonParser.NAME); - this.state = 1973; - this.match(PythonParser.EQUAL); - this.state = 1974; - this.expression(); - break; - case 53: - this.enterOuterAlt(localctx, 2); - this.state = 1975; - this.starred_expression(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - kwarg_or_double_starred() { - let localctx = new Kwarg_or_double_starredContext(this, this._ctx, this.state); - this.enterRule(localctx, 356, PythonParser.RULE_kwarg_or_double_starred); - try { - this.state = 1983; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 89: - this.enterOuterAlt(localctx, 1); - this.state = 1978; - this.match(PythonParser.NAME); - this.state = 1979; - this.match(PythonParser.EQUAL); - this.state = 1980; - this.expression(); - break; - case 69: - this.enterOuterAlt(localctx, 2); - this.state = 1981; - this.match(PythonParser.DOUBLESTAR); - this.state = 1982; - this.expression(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - star_targets() { - let localctx = new Star_targetsContext(this, this._ctx, this.state); - this.enterRule(localctx, 358, PythonParser.RULE_star_targets); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1985; - this.star_target(); - this.state = 1990; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,259,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 1986; - this.match(PythonParser.COMMA); - this.state = 1987; - this.star_target(); - } - this.state = 1992; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,259,this._ctx); - } - - this.state = 1994; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 1993; - this.match(PythonParser.COMMA); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - star_targets_list_seq() { - let localctx = new Star_targets_list_seqContext(this, this._ctx, this.state); - this.enterRule(localctx, 360, PythonParser.RULE_star_targets_list_seq); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 1996; - this.star_target(); - this.state = 1999; - this._errHandler.sync(this); - var _alt = 1; - do { - switch (_alt) { - case 1: - this.state = 1997; - this.match(PythonParser.COMMA); - this.state = 1998; - this.star_target(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 2001; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,261, this._ctx); - } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); - this.state = 2004; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 2003; - this.match(PythonParser.COMMA); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - star_targets_tuple_seq() { - let localctx = new Star_targets_tuple_seqContext(this, this._ctx, this.state); - this.enterRule(localctx, 362, PythonParser.RULE_star_targets_tuple_seq); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 2006; - this.star_target(); - this.state = 2017; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,265,this._ctx); - switch(la_) { - case 1: - this.state = 2007; - this.match(PythonParser.COMMA); - break; - - case 2: - this.state = 2010; - this._errHandler.sync(this); - var _alt = 1; - do { - switch (_alt) { - case 1: - this.state = 2008; - this.match(PythonParser.COMMA); - this.state = 2009; - this.star_target(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 2012; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,263, this._ctx); - } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); - this.state = 2015; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 2014; - this.match(PythonParser.COMMA); - } - - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - star_target() { - let localctx = new Star_targetContext(this, this._ctx, this.state); - this.enterRule(localctx, 364, PythonParser.RULE_star_target); - try { - this.state = 2022; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 53: - this.enterOuterAlt(localctx, 1); - this.state = 2019; - this.match(PythonParser.STAR); - - this.state = 2020; - this.star_target(); - break; - case 3: - case 6: - case 11: - case 16: - case 41: - case 42: - case 43: - case 86: - case 89: - case 90: - case 91: - this.enterOuterAlt(localctx, 2); - this.state = 2021; - this.target_with_star_atom(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - target_with_star_atom() { - let localctx = new Target_with_star_atomContext(this, this._ctx, this.state); - this.enterRule(localctx, 366, PythonParser.RULE_target_with_star_atom); - try { - this.state = 2034; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,268,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 2024; - this.t_primary(0); - this.state = 2031; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 47: - this.state = 2025; - this.match(PythonParser.DOT); - this.state = 2026; - this.match(PythonParser.NAME); - break; - case 42: - this.state = 2027; - this.match(PythonParser.LSQB); - this.state = 2028; - this.slices(); - this.state = 2029; - this.match(PythonParser.RSQB); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 2033; - this.star_atom(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - star_atom() { - let localctx = new Star_atomContext(this, this._ctx, this.state); - this.enterRule(localctx, 368, PythonParser.RULE_star_atom); - var _la = 0; - try { - this.state = 2051; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,271,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 2036; - this.match(PythonParser.NAME); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 2037; - this.match(PythonParser.LPAR); - this.state = 2038; - this.target_with_star_atom(); - this.state = 2039; - this.match(PythonParser.RPAR); - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 2041; - this.match(PythonParser.LPAR); - this.state = 2043; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) === 0 && ((1 << _la) & 67656) !== 0) || ((((_la - 41)) & ~0x1f) === 0 && ((1 << (_la - 41)) & 4103) !== 0) || ((((_la - 86)) & ~0x1f) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { - this.state = 2042; - this.star_targets_tuple_seq(); - } - - this.state = 2045; - this.match(PythonParser.RPAR); - break; - - case 4: - this.enterOuterAlt(localctx, 4); - this.state = 2046; - this.match(PythonParser.LSQB); - this.state = 2048; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) === 0 && ((1 << _la) & 67656) !== 0) || ((((_la - 41)) & ~0x1f) === 0 && ((1 << (_la - 41)) & 4103) !== 0) || ((((_la - 86)) & ~0x1f) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { - this.state = 2047; - this.star_targets_list_seq(); - } - - this.state = 2050; - this.match(PythonParser.RSQB); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - single_target() { - let localctx = new Single_targetContext(this, this._ctx, this.state); - this.enterRule(localctx, 370, PythonParser.RULE_single_target); - try { - this.state = 2059; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,272,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 2053; - this.single_subscript_attribute_target(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 2054; - this.match(PythonParser.NAME); - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 2055; - this.match(PythonParser.LPAR); - this.state = 2056; - this.single_target(); - this.state = 2057; - this.match(PythonParser.RPAR); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - single_subscript_attribute_target() { - let localctx = new Single_subscript_attribute_targetContext(this, this._ctx, this.state); - this.enterRule(localctx, 372, PythonParser.RULE_single_subscript_attribute_target); - try { - this.enterOuterAlt(localctx, 1); - this.state = 2061; - this.t_primary(0); - this.state = 2068; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 47: - this.state = 2062; - this.match(PythonParser.DOT); - this.state = 2063; - this.match(PythonParser.NAME); - break; - case 42: - this.state = 2064; - this.match(PythonParser.LSQB); - this.state = 2065; - this.slices(); - this.state = 2066; - this.match(PythonParser.RSQB); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - t_primary(_p) { - if(_p===undefined) { - _p = 0; - } - const _parentctx = this._ctx; - const _parentState = this.state; - let localctx = new T_primaryContext(this, this._ctx, _parentState); - let _prevctx = localctx; - const _startState = 374; - this.enterRecursionRule(localctx, 374, PythonParser.RULE_t_primary, _p); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 2071; - this.atom(); - this._ctx.stop = this._input.LT(-1); - this.state = 2090; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,276,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - if(this._parseListeners!==null) { - this.triggerExitRuleEvent(); - } - _prevctx = localctx; - localctx = new T_primaryContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, PythonParser.RULE_t_primary); - this.state = 2073; - if (!( this.precpred(this._ctx, 2))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); - } - this.state = 2086; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,275,this._ctx); - switch(la_) { - case 1: - this.state = 2074; - this.match(PythonParser.DOT); - this.state = 2075; - this.match(PythonParser.NAME); - break; - - case 2: - this.state = 2076; - this.match(PythonParser.LSQB); - this.state = 2077; - this.slices(); - this.state = 2078; - this.match(PythonParser.RSQB); - break; - - case 3: - this.state = 2080; - this.genexp(); - break; - - case 4: - this.state = 2081; - this.match(PythonParser.LPAR); - this.state = 2083; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1f) === 0 && ((1 << (_la - 34)) & 2148402049) !== 0) || ((((_la - 69)) & ~0x1f) === 0 && ((1 << (_la - 69)) & 7471105) !== 0)) { - this.state = 2082; - this.arguments(); - } - - this.state = 2085; - this.match(PythonParser.RPAR); - break; - - } - } - this.state = 2092; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,276,this._ctx); - } - - } catch( error) { - if(error instanceof antlr4.error.RecognitionException) { - localctx.exception = error; - this._errHandler.reportError(this, error); - this._errHandler.recover(this, error); - } else { - throw error; - } - } finally { - this.unrollRecursionContexts(_parentctx) - } - return localctx; - } - - - - del_targets() { - let localctx = new Del_targetsContext(this, this._ctx, this.state); - this.enterRule(localctx, 376, PythonParser.RULE_del_targets); - var _la = 0; - try { - this.enterOuterAlt(localctx, 1); - this.state = 2093; - this.del_target(); - this.state = 2098; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,277,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 2094; - this.match(PythonParser.COMMA); - this.state = 2095; - this.del_target(); - } - this.state = 2100; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,277,this._ctx); - } - - this.state = 2102; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 2101; - this.match(PythonParser.COMMA); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - del_target() { - let localctx = new Del_targetContext(this, this._ctx, this.state); - this.enterRule(localctx, 378, PythonParser.RULE_del_target); - try { - this.state = 2114; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,280,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 2104; - this.t_primary(0); - this.state = 2111; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 47: - this.state = 2105; - this.match(PythonParser.DOT); - this.state = 2106; - this.match(PythonParser.NAME); - break; - case 42: - this.state = 2107; - this.match(PythonParser.LSQB); - this.state = 2108; - this.slices(); - this.state = 2109; - this.match(PythonParser.RSQB); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 2113; - this.del_t_atom(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - del_t_atom() { - let localctx = new Del_t_atomContext(this, this._ctx, this.state); - this.enterRule(localctx, 380, PythonParser.RULE_del_t_atom); - var _la = 0; - try { - this.state = 2131; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,283,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 2116; - this.match(PythonParser.NAME); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 2117; - this.match(PythonParser.LPAR); - this.state = 2118; - this.del_target(); - this.state = 2119; - this.match(PythonParser.RPAR); - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 2121; - this.match(PythonParser.LPAR); - this.state = 2123; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) === 0 && ((1 << _la) & 67656) !== 0) || ((((_la - 41)) & ~0x1f) === 0 && ((1 << (_la - 41)) & 7) !== 0) || ((((_la - 86)) & ~0x1f) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { - this.state = 2122; - this.del_targets(); - } - - this.state = 2125; - this.match(PythonParser.RPAR); - break; - - case 4: - this.enterOuterAlt(localctx, 4); - this.state = 2126; - this.match(PythonParser.LSQB); - this.state = 2128; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) === 0 && ((1 << _la) & 67656) !== 0) || ((((_la - 41)) & ~0x1f) === 0 && ((1 << (_la - 41)) & 7) !== 0) || ((((_la - 86)) & ~0x1f) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { - this.state = 2127; - this.del_targets(); - } - - this.state = 2130; - this.match(PythonParser.RSQB); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - type_expressions() { - let localctx = new Type_expressionsContext(this, this._ctx, this.state); - this.enterRule(localctx, 382, PythonParser.RULE_type_expressions); - var _la = 0; - try { - this.state = 2164; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 3: - case 6: - case 7: - case 11: - case 16: - case 24: - case 34: - case 41: - case 42: - case 43: - case 51: - case 52: - case 65: - case 86: - case 89: - case 90: - case 91: - this.enterOuterAlt(localctx, 1); - this.state = 2133; - this.expression(); - this.state = 2138; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,284,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 2134; - this.match(PythonParser.COMMA); - this.state = 2135; - this.expression(); - } - this.state = 2140; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,284,this._ctx); - } - - this.state = 2153; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 2141; - this.match(PythonParser.COMMA); - this.state = 2151; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 53: - this.state = 2142; - this.match(PythonParser.STAR); - this.state = 2143; - this.expression(); - this.state = 2147; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 2144; - this.match(PythonParser.COMMA); - this.state = 2145; - this.match(PythonParser.DOUBLESTAR); - this.state = 2146; - this.expression(); - } - - break; - case 69: - this.state = 2149; - this.match(PythonParser.DOUBLESTAR); - this.state = 2150; - this.expression(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } - - break; - case 53: - this.enterOuterAlt(localctx, 2); - this.state = 2155; - this.match(PythonParser.STAR); - this.state = 2156; - this.expression(); - this.state = 2160; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===49) { - this.state = 2157; - this.match(PythonParser.COMMA); - this.state = 2158; - this.match(PythonParser.DOUBLESTAR); - this.state = 2159; - this.expression(); - } - - break; - case 69: - this.enterOuterAlt(localctx, 3); - this.state = 2162; - this.match(PythonParser.DOUBLESTAR); - this.state = 2163; - this.expression(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - func_type_comment() { - let localctx = new Func_type_commentContext(this, this._ctx, this.state); - this.enterRule(localctx, 384, PythonParser.RULE_func_type_comment); - try { - this.state = 2169; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case 93: - this.enterOuterAlt(localctx, 1); - this.state = 2166; - this.match(PythonParser.NEWLINE); - this.state = 2167; - this.match(PythonParser.TYPE_COMMENT); - break; - case 92: - this.enterOuterAlt(localctx, 2); - this.state = 2168; - this.match(PythonParser.TYPE_COMMENT); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - soft_kw_type() { - let localctx = new Soft_kw_typeContext(this, this._ctx, this.state); - this.enterRule(localctx, 386, PythonParser.RULE_soft_kw_type); - try { - this.enterOuterAlt(localctx, 1); - this.state = 2171; - if (!( this.isEqualToCurrentTokenText("type"))) { - throw new antlr4.error.FailedPredicateException(this, "this.isEqualToCurrentTokenText(\"type\")"); - } - this.state = 2172; - this.match(PythonParser.NAME); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - soft_kw_match() { - let localctx = new Soft_kw_matchContext(this, this._ctx, this.state); - this.enterRule(localctx, 388, PythonParser.RULE_soft_kw_match); - try { - this.enterOuterAlt(localctx, 1); - this.state = 2174; - if (!( this.isEqualToCurrentTokenText("match"))) { - throw new antlr4.error.FailedPredicateException(this, "this.isEqualToCurrentTokenText(\"match\")"); - } - this.state = 2175; - this.match(PythonParser.NAME); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - soft_kw_case() { - let localctx = new Soft_kw_caseContext(this, this._ctx, this.state); - this.enterRule(localctx, 390, PythonParser.RULE_soft_kw_case); - try { - this.enterOuterAlt(localctx, 1); - this.state = 2177; - if (!( this.isEqualToCurrentTokenText("case"))) { - throw new antlr4.error.FailedPredicateException(this, "this.isEqualToCurrentTokenText(\"case\")"); - } - this.state = 2178; - this.match(PythonParser.NAME); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - soft_kw_wildcard() { - let localctx = new Soft_kw_wildcardContext(this, this._ctx, this.state); - this.enterRule(localctx, 392, PythonParser.RULE_soft_kw_wildcard); - try { - this.enterOuterAlt(localctx, 1); - this.state = 2180; - if (!( this.isEqualToCurrentTokenText("_"))) { - throw new antlr4.error.FailedPredicateException(this, "this.isEqualToCurrentTokenText(\"_\")"); - } - this.state = 2181; - this.match(PythonParser.NAME); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - soft_kw__not__wildcard() { - let localctx = new Soft_kw__not__wildcardContext(this, this._ctx, this.state); - this.enterRule(localctx, 394, PythonParser.RULE_soft_kw__not__wildcard); - try { - this.enterOuterAlt(localctx, 1); - this.state = 2183; - if (!( this.isnotEqualToCurrentTokenText("_"))) { - throw new antlr4.error.FailedPredicateException(this, "this.isnotEqualToCurrentTokenText(\"_\")"); - } - this.state = 2184; - this.match(PythonParser.NAME); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - -} - -PythonParser.EOF = antlr4.Token.EOF; -PythonParser.INDENT = 1; -PythonParser.DEDENT = 2; -PythonParser.FSTRING_START = 3; -PythonParser.FSTRING_MIDDLE = 4; -PythonParser.FSTRING_END = 5; -PythonParser.FALSE = 6; -PythonParser.AWAIT = 7; -PythonParser.ELSE = 8; -PythonParser.IMPORT = 9; -PythonParser.PASS = 10; -PythonParser.NONE = 11; -PythonParser.BREAK = 12; -PythonParser.EXCEPT = 13; -PythonParser.IN = 14; -PythonParser.RAISE = 15; -PythonParser.TRUE = 16; -PythonParser.CLASS = 17; -PythonParser.FINALLY = 18; -PythonParser.IS = 19; -PythonParser.RETURN = 20; -PythonParser.AND = 21; -PythonParser.CONTINUE = 22; -PythonParser.FOR = 23; -PythonParser.LAMBDA = 24; -PythonParser.TRY = 25; -PythonParser.AS = 26; -PythonParser.DEF = 27; -PythonParser.FROM = 28; -PythonParser.NONLOCAL = 29; -PythonParser.WHILE = 30; -PythonParser.ASSERT = 31; -PythonParser.DEL = 32; -PythonParser.GLOBAL = 33; -PythonParser.NOT = 34; -PythonParser.WITH = 35; -PythonParser.ASYNC = 36; -PythonParser.ELIF = 37; -PythonParser.IF = 38; -PythonParser.OR = 39; -PythonParser.YIELD = 40; -PythonParser.LPAR = 41; -PythonParser.LSQB = 42; -PythonParser.LBRACE = 43; -PythonParser.RPAR = 44; -PythonParser.RSQB = 45; -PythonParser.RBRACE = 46; -PythonParser.DOT = 47; -PythonParser.COLON = 48; -PythonParser.COMMA = 49; -PythonParser.SEMI = 50; -PythonParser.PLUS = 51; -PythonParser.MINUS = 52; -PythonParser.STAR = 53; -PythonParser.SLASH = 54; -PythonParser.VBAR = 55; -PythonParser.AMPER = 56; -PythonParser.LESS = 57; -PythonParser.GREATER = 58; -PythonParser.EQUAL = 59; -PythonParser.PERCENT = 60; -PythonParser.EQEQUAL = 61; -PythonParser.NOTEQUAL = 62; -PythonParser.LESSEQUAL = 63; -PythonParser.GREATEREQUAL = 64; -PythonParser.TILDE = 65; -PythonParser.CIRCUMFLEX = 66; -PythonParser.LEFTSHIFT = 67; -PythonParser.RIGHTSHIFT = 68; -PythonParser.DOUBLESTAR = 69; -PythonParser.PLUSEQUAL = 70; -PythonParser.MINEQUAL = 71; -PythonParser.STAREQUAL = 72; -PythonParser.SLASHEQUAL = 73; -PythonParser.PERCENTEQUAL = 74; -PythonParser.AMPEREQUAL = 75; -PythonParser.VBAREQUAL = 76; -PythonParser.CIRCUMFLEXEQUAL = 77; -PythonParser.LEFTSHIFTEQUAL = 78; -PythonParser.RIGHTSHIFTEQUAL = 79; -PythonParser.DOUBLESTAREQUAL = 80; -PythonParser.DOUBLESLASH = 81; -PythonParser.DOUBLESLASHEQUAL = 82; -PythonParser.AT = 83; -PythonParser.ATEQUAL = 84; -PythonParser.RARROW = 85; -PythonParser.ELLIPSIS = 86; -PythonParser.COLONEQUAL = 87; -PythonParser.EXCLAMATION = 88; -PythonParser.NAME = 89; -PythonParser.NUMBER = 90; -PythonParser.STRING = 91; -PythonParser.TYPE_COMMENT = 92; -PythonParser.NEWLINE = 93; -PythonParser.COMMENT = 94; -PythonParser.WS = 95; -PythonParser.EXPLICIT_LINE_JOINING = 96; -PythonParser.ERROR_TOKEN = 97; - -PythonParser.RULE_file_input = 0; -PythonParser.RULE_interactive = 1; -PythonParser.RULE_eval = 2; -PythonParser.RULE_func_type = 3; -PythonParser.RULE_fstring_input = 4; -PythonParser.RULE_statements = 5; -PythonParser.RULE_statement = 6; -PythonParser.RULE_statement_newline = 7; -PythonParser.RULE_simple_stmts = 8; -PythonParser.RULE_simple_stmt = 9; -PythonParser.RULE_compound_stmt = 10; -PythonParser.RULE_assignment = 11; -PythonParser.RULE_annotated_rhs = 12; -PythonParser.RULE_augassign = 13; -PythonParser.RULE_return_stmt = 14; -PythonParser.RULE_raise_stmt = 15; -PythonParser.RULE_global_stmt = 16; -PythonParser.RULE_nonlocal_stmt = 17; -PythonParser.RULE_del_stmt = 18; -PythonParser.RULE_yield_stmt = 19; -PythonParser.RULE_assert_stmt = 20; -PythonParser.RULE_import_stmt = 21; -PythonParser.RULE_import_name = 22; -PythonParser.RULE_import_from = 23; -PythonParser.RULE_import_from_targets = 24; -PythonParser.RULE_import_from_as_names = 25; -PythonParser.RULE_import_from_as_name = 26; -PythonParser.RULE_dotted_as_names = 27; -PythonParser.RULE_dotted_as_name = 28; -PythonParser.RULE_dotted_name = 29; -PythonParser.RULE_block = 30; -PythonParser.RULE_decorators = 31; -PythonParser.RULE_class_def = 32; -PythonParser.RULE_class_def_raw = 33; -PythonParser.RULE_function_def = 34; -PythonParser.RULE_function_def_raw = 35; -PythonParser.RULE_params = 36; -PythonParser.RULE_parameters = 37; -PythonParser.RULE_slash_no_default = 38; -PythonParser.RULE_slash_with_default = 39; -PythonParser.RULE_star_etc = 40; -PythonParser.RULE_kwds = 41; -PythonParser.RULE_param_no_default = 42; -PythonParser.RULE_param_no_default_star_annotation = 43; -PythonParser.RULE_param_with_default = 44; -PythonParser.RULE_param_maybe_default = 45; -PythonParser.RULE_param = 46; -PythonParser.RULE_param_star_annotation = 47; -PythonParser.RULE_annotation = 48; -PythonParser.RULE_star_annotation = 49; -PythonParser.RULE_default_assignment = 50; -PythonParser.RULE_if_stmt = 51; -PythonParser.RULE_elif_stmt = 52; -PythonParser.RULE_else_block = 53; -PythonParser.RULE_while_stmt = 54; -PythonParser.RULE_for_stmt = 55; -PythonParser.RULE_with_stmt = 56; -PythonParser.RULE_with_item = 57; -PythonParser.RULE_try_stmt = 58; -PythonParser.RULE_except_block = 59; -PythonParser.RULE_except_star_block = 60; -PythonParser.RULE_finally_block = 61; -PythonParser.RULE_match_stmt = 62; -PythonParser.RULE_subject_expr = 63; -PythonParser.RULE_case_block = 64; -PythonParser.RULE_guard = 65; -PythonParser.RULE_patterns = 66; -PythonParser.RULE_pattern = 67; -PythonParser.RULE_as_pattern = 68; -PythonParser.RULE_or_pattern = 69; -PythonParser.RULE_closed_pattern = 70; -PythonParser.RULE_literal_pattern = 71; -PythonParser.RULE_literal_expr = 72; -PythonParser.RULE_complex_number = 73; -PythonParser.RULE_signed_number = 74; -PythonParser.RULE_signed_real_number = 75; -PythonParser.RULE_real_number = 76; -PythonParser.RULE_imaginary_number = 77; -PythonParser.RULE_capture_pattern = 78; -PythonParser.RULE_pattern_capture_target = 79; -PythonParser.RULE_wildcard_pattern = 80; -PythonParser.RULE_value_pattern = 81; -PythonParser.RULE_attr = 82; -PythonParser.RULE_name_or_attr = 83; -PythonParser.RULE_group_pattern = 84; -PythonParser.RULE_sequence_pattern = 85; -PythonParser.RULE_open_sequence_pattern = 86; -PythonParser.RULE_maybe_sequence_pattern = 87; -PythonParser.RULE_maybe_star_pattern = 88; -PythonParser.RULE_star_pattern = 89; -PythonParser.RULE_mapping_pattern = 90; -PythonParser.RULE_items_pattern = 91; -PythonParser.RULE_key_value_pattern = 92; -PythonParser.RULE_double_star_pattern = 93; -PythonParser.RULE_class_pattern = 94; -PythonParser.RULE_positional_patterns = 95; -PythonParser.RULE_keyword_patterns = 96; -PythonParser.RULE_keyword_pattern = 97; -PythonParser.RULE_type_alias = 98; -PythonParser.RULE_type_params = 99; -PythonParser.RULE_type_param_seq = 100; -PythonParser.RULE_type_param = 101; -PythonParser.RULE_type_param_bound = 102; -PythonParser.RULE_expressions = 103; -PythonParser.RULE_expression = 104; -PythonParser.RULE_yield_expr = 105; -PythonParser.RULE_star_expressions = 106; -PythonParser.RULE_star_expression = 107; -PythonParser.RULE_star_named_expressions = 108; -PythonParser.RULE_star_named_expression = 109; -PythonParser.RULE_assignment_expression = 110; -PythonParser.RULE_named_expression = 111; -PythonParser.RULE_disjunction = 112; -PythonParser.RULE_conjunction = 113; -PythonParser.RULE_inversion = 114; -PythonParser.RULE_comparison = 115; -PythonParser.RULE_compare_op_bitwise_or_pair = 116; -PythonParser.RULE_eq_bitwise_or = 117; -PythonParser.RULE_noteq_bitwise_or = 118; -PythonParser.RULE_lte_bitwise_or = 119; -PythonParser.RULE_lt_bitwise_or = 120; -PythonParser.RULE_gte_bitwise_or = 121; -PythonParser.RULE_gt_bitwise_or = 122; -PythonParser.RULE_notin_bitwise_or = 123; -PythonParser.RULE_in_bitwise_or = 124; -PythonParser.RULE_isnot_bitwise_or = 125; -PythonParser.RULE_is_bitwise_or = 126; -PythonParser.RULE_bitwise_or = 127; -PythonParser.RULE_bitwise_xor = 128; -PythonParser.RULE_bitwise_and = 129; -PythonParser.RULE_shift_expr = 130; -PythonParser.RULE_sum = 131; -PythonParser.RULE_term = 132; -PythonParser.RULE_factor = 133; -PythonParser.RULE_power = 134; -PythonParser.RULE_await_primary = 135; -PythonParser.RULE_primary = 136; -PythonParser.RULE_slices = 137; -PythonParser.RULE_slice = 138; -PythonParser.RULE_atom = 139; -PythonParser.RULE_group = 140; -PythonParser.RULE_lambdef = 141; -PythonParser.RULE_lambda_params = 142; -PythonParser.RULE_lambda_parameters = 143; -PythonParser.RULE_lambda_slash_no_default = 144; -PythonParser.RULE_lambda_slash_with_default = 145; -PythonParser.RULE_lambda_star_etc = 146; -PythonParser.RULE_lambda_kwds = 147; -PythonParser.RULE_lambda_param_no_default = 148; -PythonParser.RULE_lambda_param_with_default = 149; -PythonParser.RULE_lambda_param_maybe_default = 150; -PythonParser.RULE_lambda_param = 151; -PythonParser.RULE_fstring_middle = 152; -PythonParser.RULE_fstring_replacement_field = 153; -PythonParser.RULE_fstring_conversion = 154; -PythonParser.RULE_fstring_full_format_spec = 155; -PythonParser.RULE_fstring_format_spec = 156; -PythonParser.RULE_fstring = 157; -PythonParser.RULE_string = 158; -PythonParser.RULE_strings = 159; -PythonParser.RULE_list = 160; -PythonParser.RULE_tuple = 161; -PythonParser.RULE_set = 162; -PythonParser.RULE_dict = 163; -PythonParser.RULE_double_starred_kvpairs = 164; -PythonParser.RULE_double_starred_kvpair = 165; -PythonParser.RULE_kvpair = 166; -PythonParser.RULE_for_if_clauses = 167; -PythonParser.RULE_for_if_clause = 168; -PythonParser.RULE_listcomp = 169; -PythonParser.RULE_setcomp = 170; -PythonParser.RULE_genexp = 171; -PythonParser.RULE_dictcomp = 172; -PythonParser.RULE_arguments = 173; -PythonParser.RULE_args = 174; -PythonParser.RULE_kwargs = 175; -PythonParser.RULE_starred_expression = 176; -PythonParser.RULE_kwarg_or_starred = 177; -PythonParser.RULE_kwarg_or_double_starred = 178; -PythonParser.RULE_star_targets = 179; -PythonParser.RULE_star_targets_list_seq = 180; -PythonParser.RULE_star_targets_tuple_seq = 181; -PythonParser.RULE_star_target = 182; -PythonParser.RULE_target_with_star_atom = 183; -PythonParser.RULE_star_atom = 184; -PythonParser.RULE_single_target = 185; -PythonParser.RULE_single_subscript_attribute_target = 186; -PythonParser.RULE_t_primary = 187; -PythonParser.RULE_del_targets = 188; -PythonParser.RULE_del_target = 189; -PythonParser.RULE_del_t_atom = 190; -PythonParser.RULE_type_expressions = 191; -PythonParser.RULE_func_type_comment = 192; -PythonParser.RULE_soft_kw_type = 193; -PythonParser.RULE_soft_kw_match = 194; -PythonParser.RULE_soft_kw_case = 195; -PythonParser.RULE_soft_kw_wildcard = 196; -PythonParser.RULE_soft_kw__not__wildcard = 197; - -class File_inputContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_file_input; - } - - EOF() { - return this.getToken(PythonParser.EOF, 0); - }; - - statements() { - return this.getTypedRuleContext(StatementsContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterFile_input(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitFile_input(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitFile_input(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class InteractiveContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_interactive; - } - - statement_newline() { - return this.getTypedRuleContext(Statement_newlineContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterInteractive(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitInteractive(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitInteractive(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class EvalContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_eval; - } - - expressions() { - return this.getTypedRuleContext(ExpressionsContext,0); - }; - - EOF() { - return this.getToken(PythonParser.EOF, 0); - }; - - NEWLINE = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.NEWLINE); - } else { - return this.getToken(PythonParser.NEWLINE, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterEval(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitEval(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitEval(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Func_typeContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_func_type; - } - - LPAR() { - return this.getToken(PythonParser.LPAR, 0); - }; - - RPAR() { - return this.getToken(PythonParser.RPAR, 0); - }; - - RARROW() { - return this.getToken(PythonParser.RARROW, 0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - EOF() { - return this.getToken(PythonParser.EOF, 0); - }; - - type_expressions() { - return this.getTypedRuleContext(Type_expressionsContext,0); - }; - - NEWLINE = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.NEWLINE); - } else { - return this.getToken(PythonParser.NEWLINE, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterFunc_type(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitFunc_type(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitFunc_type(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Fstring_inputContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_fstring_input; - } - - star_expressions() { - return this.getTypedRuleContext(Star_expressionsContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterFstring_input(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitFstring_input(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitFstring_input(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class StatementsContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_statements; - } - - statement = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(StatementContext); - } else { - return this.getTypedRuleContext(StatementContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterStatements(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitStatements(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitStatements(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class StatementContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_statement; - } - - compound_stmt() { - return this.getTypedRuleContext(Compound_stmtContext,0); - }; - - simple_stmts() { - return this.getTypedRuleContext(Simple_stmtsContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterStatement(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitStatement(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitStatement(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Statement_newlineContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_statement_newline; - } - - compound_stmt() { - return this.getTypedRuleContext(Compound_stmtContext,0); - }; - - NEWLINE() { - return this.getToken(PythonParser.NEWLINE, 0); - }; - - simple_stmts() { - return this.getTypedRuleContext(Simple_stmtsContext,0); - }; - - EOF() { - return this.getToken(PythonParser.EOF, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterStatement_newline(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitStatement_newline(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitStatement_newline(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Simple_stmtsContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_simple_stmts; - } - - simple_stmt = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Simple_stmtContext); - } else { - return this.getTypedRuleContext(Simple_stmtContext,i); - } - }; - - NEWLINE() { - return this.getToken(PythonParser.NEWLINE, 0); - }; - - SEMI = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.SEMI); - } else { - return this.getToken(PythonParser.SEMI, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterSimple_stmts(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitSimple_stmts(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitSimple_stmts(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Simple_stmtContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_simple_stmt; - } - - assignment() { - return this.getTypedRuleContext(AssignmentContext,0); - }; - - type_alias() { - return this.getTypedRuleContext(Type_aliasContext,0); - }; - - star_expressions() { - return this.getTypedRuleContext(Star_expressionsContext,0); - }; - - return_stmt() { - return this.getTypedRuleContext(Return_stmtContext,0); - }; - - import_stmt() { - return this.getTypedRuleContext(Import_stmtContext,0); - }; - - raise_stmt() { - return this.getTypedRuleContext(Raise_stmtContext,0); - }; - - PASS() { - return this.getToken(PythonParser.PASS, 0); - }; - - del_stmt() { - return this.getTypedRuleContext(Del_stmtContext,0); - }; - - yield_stmt() { - return this.getTypedRuleContext(Yield_stmtContext,0); - }; - - assert_stmt() { - return this.getTypedRuleContext(Assert_stmtContext,0); - }; - - BREAK() { - return this.getToken(PythonParser.BREAK, 0); - }; - - CONTINUE() { - return this.getToken(PythonParser.CONTINUE, 0); - }; - - global_stmt() { - return this.getTypedRuleContext(Global_stmtContext,0); - }; - - nonlocal_stmt() { - return this.getTypedRuleContext(Nonlocal_stmtContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterSimple_stmt(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitSimple_stmt(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitSimple_stmt(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Compound_stmtContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_compound_stmt; - } - - function_def() { - return this.getTypedRuleContext(Function_defContext,0); - }; - - if_stmt() { - return this.getTypedRuleContext(If_stmtContext,0); - }; - - class_def() { - return this.getTypedRuleContext(Class_defContext,0); - }; - - with_stmt() { - return this.getTypedRuleContext(With_stmtContext,0); - }; - - for_stmt() { - return this.getTypedRuleContext(For_stmtContext,0); - }; - - try_stmt() { - return this.getTypedRuleContext(Try_stmtContext,0); - }; - - while_stmt() { - return this.getTypedRuleContext(While_stmtContext,0); - }; - - match_stmt() { - return this.getTypedRuleContext(Match_stmtContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterCompound_stmt(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitCompound_stmt(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitCompound_stmt(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class AssignmentContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_assignment; - } - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - COLON() { - return this.getToken(PythonParser.COLON, 0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - EQUAL = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.EQUAL); - } else { - return this.getToken(PythonParser.EQUAL, i); - } - }; - - - annotated_rhs() { - return this.getTypedRuleContext(Annotated_rhsContext,0); - }; - - LPAR() { - return this.getToken(PythonParser.LPAR, 0); - }; - - single_target() { - return this.getTypedRuleContext(Single_targetContext,0); - }; - - RPAR() { - return this.getToken(PythonParser.RPAR, 0); - }; - - single_subscript_attribute_target() { - return this.getTypedRuleContext(Single_subscript_attribute_targetContext,0); - }; - - yield_expr() { - return this.getTypedRuleContext(Yield_exprContext,0); - }; - - star_expressions() { - return this.getTypedRuleContext(Star_expressionsContext,0); - }; - - star_targets = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Star_targetsContext); - } else { - return this.getTypedRuleContext(Star_targetsContext,i); - } - }; - - TYPE_COMMENT() { - return this.getToken(PythonParser.TYPE_COMMENT, 0); - }; - - augassign() { - return this.getTypedRuleContext(AugassignContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterAssignment(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitAssignment(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitAssignment(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Annotated_rhsContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_annotated_rhs; - } - - yield_expr() { - return this.getTypedRuleContext(Yield_exprContext,0); - }; - - star_expressions() { - return this.getTypedRuleContext(Star_expressionsContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterAnnotated_rhs(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitAnnotated_rhs(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitAnnotated_rhs(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class AugassignContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_augassign; - } - - PLUSEQUAL() { - return this.getToken(PythonParser.PLUSEQUAL, 0); - }; - - MINEQUAL() { - return this.getToken(PythonParser.MINEQUAL, 0); - }; - - STAREQUAL() { - return this.getToken(PythonParser.STAREQUAL, 0); - }; - - ATEQUAL() { - return this.getToken(PythonParser.ATEQUAL, 0); - }; - - SLASHEQUAL() { - return this.getToken(PythonParser.SLASHEQUAL, 0); - }; - - PERCENTEQUAL() { - return this.getToken(PythonParser.PERCENTEQUAL, 0); - }; - - AMPEREQUAL() { - return this.getToken(PythonParser.AMPEREQUAL, 0); - }; - - VBAREQUAL() { - return this.getToken(PythonParser.VBAREQUAL, 0); - }; - - CIRCUMFLEXEQUAL() { - return this.getToken(PythonParser.CIRCUMFLEXEQUAL, 0); - }; - - LEFTSHIFTEQUAL() { - return this.getToken(PythonParser.LEFTSHIFTEQUAL, 0); - }; - - RIGHTSHIFTEQUAL() { - return this.getToken(PythonParser.RIGHTSHIFTEQUAL, 0); - }; - - DOUBLESTAREQUAL() { - return this.getToken(PythonParser.DOUBLESTAREQUAL, 0); - }; - - DOUBLESLASHEQUAL() { - return this.getToken(PythonParser.DOUBLESLASHEQUAL, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterAugassign(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitAugassign(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitAugassign(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Return_stmtContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_return_stmt; - } - - RETURN() { - return this.getToken(PythonParser.RETURN, 0); - }; - - star_expressions() { - return this.getTypedRuleContext(Star_expressionsContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterReturn_stmt(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitReturn_stmt(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitReturn_stmt(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Raise_stmtContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_raise_stmt; - } - - RAISE() { - return this.getToken(PythonParser.RAISE, 0); - }; - - expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ExpressionContext); - } else { - return this.getTypedRuleContext(ExpressionContext,i); - } - }; - - FROM() { - return this.getToken(PythonParser.FROM, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterRaise_stmt(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitRaise_stmt(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitRaise_stmt(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Global_stmtContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_global_stmt; - } - - GLOBAL() { - return this.getToken(PythonParser.GLOBAL, 0); - }; - - NAME = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.NAME); - } else { - return this.getToken(PythonParser.NAME, i); - } - }; - - - COMMA = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.COMMA); - } else { - return this.getToken(PythonParser.COMMA, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterGlobal_stmt(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitGlobal_stmt(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitGlobal_stmt(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Nonlocal_stmtContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_nonlocal_stmt; - } - - NONLOCAL() { - return this.getToken(PythonParser.NONLOCAL, 0); - }; - - NAME = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.NAME); - } else { - return this.getToken(PythonParser.NAME, i); - } - }; - - - COMMA = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.COMMA); - } else { - return this.getToken(PythonParser.COMMA, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterNonlocal_stmt(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitNonlocal_stmt(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitNonlocal_stmt(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Del_stmtContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_del_stmt; - } - - DEL() { - return this.getToken(PythonParser.DEL, 0); - }; - - del_targets() { - return this.getTypedRuleContext(Del_targetsContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterDel_stmt(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitDel_stmt(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitDel_stmt(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Yield_stmtContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_yield_stmt; - } - - yield_expr() { - return this.getTypedRuleContext(Yield_exprContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterYield_stmt(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitYield_stmt(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitYield_stmt(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Assert_stmtContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_assert_stmt; - } - - ASSERT() { - return this.getToken(PythonParser.ASSERT, 0); - }; - - expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ExpressionContext); - } else { - return this.getTypedRuleContext(ExpressionContext,i); - } - }; - - COMMA() { - return this.getToken(PythonParser.COMMA, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterAssert_stmt(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitAssert_stmt(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitAssert_stmt(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Import_stmtContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_import_stmt; - } - - import_name() { - return this.getTypedRuleContext(Import_nameContext,0); - }; - - import_from() { - return this.getTypedRuleContext(Import_fromContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterImport_stmt(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitImport_stmt(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitImport_stmt(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Import_nameContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_import_name; - } - - IMPORT() { - return this.getToken(PythonParser.IMPORT, 0); - }; - - dotted_as_names() { - return this.getTypedRuleContext(Dotted_as_namesContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterImport_name(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitImport_name(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitImport_name(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Import_fromContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_import_from; - } - - FROM() { - return this.getToken(PythonParser.FROM, 0); - }; - - dotted_name() { - return this.getTypedRuleContext(Dotted_nameContext,0); - }; - - IMPORT() { - return this.getToken(PythonParser.IMPORT, 0); - }; - - import_from_targets() { - return this.getTypedRuleContext(Import_from_targetsContext,0); - }; - - DOT = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.DOT); - } else { - return this.getToken(PythonParser.DOT, i); - } - }; - - - ELLIPSIS = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.ELLIPSIS); - } else { - return this.getToken(PythonParser.ELLIPSIS, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterImport_from(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitImport_from(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitImport_from(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Import_from_targetsContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_import_from_targets; - } - - LPAR() { - return this.getToken(PythonParser.LPAR, 0); - }; - - import_from_as_names() { - return this.getTypedRuleContext(Import_from_as_namesContext,0); - }; - - RPAR() { - return this.getToken(PythonParser.RPAR, 0); - }; - - COMMA() { - return this.getToken(PythonParser.COMMA, 0); - }; - - STAR() { - return this.getToken(PythonParser.STAR, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterImport_from_targets(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitImport_from_targets(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitImport_from_targets(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Import_from_as_namesContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_import_from_as_names; - } - - import_from_as_name = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Import_from_as_nameContext); - } else { - return this.getTypedRuleContext(Import_from_as_nameContext,i); - } - }; - - COMMA = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.COMMA); - } else { - return this.getToken(PythonParser.COMMA, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterImport_from_as_names(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitImport_from_as_names(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitImport_from_as_names(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Import_from_as_nameContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_import_from_as_name; - } - - NAME = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.NAME); - } else { - return this.getToken(PythonParser.NAME, i); - } - }; - - - AS() { - return this.getToken(PythonParser.AS, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterImport_from_as_name(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitImport_from_as_name(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitImport_from_as_name(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Dotted_as_namesContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_dotted_as_names; - } - - dotted_as_name = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Dotted_as_nameContext); - } else { - return this.getTypedRuleContext(Dotted_as_nameContext,i); - } - }; - - COMMA = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.COMMA); - } else { - return this.getToken(PythonParser.COMMA, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterDotted_as_names(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitDotted_as_names(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitDotted_as_names(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Dotted_as_nameContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_dotted_as_name; - } - - dotted_name() { - return this.getTypedRuleContext(Dotted_nameContext,0); - }; - - AS() { - return this.getToken(PythonParser.AS, 0); - }; - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterDotted_as_name(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitDotted_as_name(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitDotted_as_name(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Dotted_nameContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_dotted_name; - } - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - dotted_name() { - return this.getTypedRuleContext(Dotted_nameContext,0); - }; - - DOT() { - return this.getToken(PythonParser.DOT, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterDotted_name(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitDotted_name(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitDotted_name(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class BlockContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_block; - } - - NEWLINE() { - return this.getToken(PythonParser.NEWLINE, 0); - }; - - INDENT() { - return this.getToken(PythonParser.INDENT, 0); - }; - - statements() { - return this.getTypedRuleContext(StatementsContext,0); - }; - - DEDENT() { - return this.getToken(PythonParser.DEDENT, 0); - }; - - simple_stmts() { - return this.getTypedRuleContext(Simple_stmtsContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterBlock(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitBlock(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitBlock(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class DecoratorsContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_decorators; - } - - AT = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.AT); - } else { - return this.getToken(PythonParser.AT, i); - } - }; - - - named_expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Named_expressionContext); - } else { - return this.getTypedRuleContext(Named_expressionContext,i); - } - }; - - NEWLINE = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.NEWLINE); - } else { - return this.getToken(PythonParser.NEWLINE, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterDecorators(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitDecorators(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitDecorators(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Class_defContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_class_def; - } - - decorators() { - return this.getTypedRuleContext(DecoratorsContext,0); - }; - - class_def_raw() { - return this.getTypedRuleContext(Class_def_rawContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterClass_def(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitClass_def(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitClass_def(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Class_def_rawContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_class_def_raw; - } - - CLASS() { - return this.getToken(PythonParser.CLASS, 0); - }; - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - COLON() { - return this.getToken(PythonParser.COLON, 0); - }; - - block() { - return this.getTypedRuleContext(BlockContext,0); - }; - - type_params() { - return this.getTypedRuleContext(Type_paramsContext,0); - }; - - LPAR() { - return this.getToken(PythonParser.LPAR, 0); - }; - - RPAR() { - return this.getToken(PythonParser.RPAR, 0); - }; - - arguments() { - return this.getTypedRuleContext(ArgumentsContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterClass_def_raw(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitClass_def_raw(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitClass_def_raw(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Function_defContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_function_def; - } - - decorators() { - return this.getTypedRuleContext(DecoratorsContext,0); - }; - - function_def_raw() { - return this.getTypedRuleContext(Function_def_rawContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterFunction_def(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitFunction_def(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitFunction_def(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Function_def_rawContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_function_def_raw; - } - - DEF() { - return this.getToken(PythonParser.DEF, 0); - }; - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - LPAR() { - return this.getToken(PythonParser.LPAR, 0); - }; - - RPAR() { - return this.getToken(PythonParser.RPAR, 0); - }; - - COLON() { - return this.getToken(PythonParser.COLON, 0); - }; - - block() { - return this.getTypedRuleContext(BlockContext,0); - }; - - type_params() { - return this.getTypedRuleContext(Type_paramsContext,0); - }; - - params() { - return this.getTypedRuleContext(ParamsContext,0); - }; - - RARROW() { - return this.getToken(PythonParser.RARROW, 0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - func_type_comment() { - return this.getTypedRuleContext(Func_type_commentContext,0); - }; - - ASYNC() { - return this.getToken(PythonParser.ASYNC, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterFunction_def_raw(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitFunction_def_raw(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitFunction_def_raw(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class ParamsContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_params; - } - - parameters() { - return this.getTypedRuleContext(ParametersContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterParams(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitParams(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitParams(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class ParametersContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_parameters; - } - - slash_no_default() { - return this.getTypedRuleContext(Slash_no_defaultContext,0); - }; - - param_no_default = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Param_no_defaultContext); - } else { - return this.getTypedRuleContext(Param_no_defaultContext,i); - } - }; - - param_with_default = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Param_with_defaultContext); - } else { - return this.getTypedRuleContext(Param_with_defaultContext,i); - } - }; - - star_etc() { - return this.getTypedRuleContext(Star_etcContext,0); - }; - - slash_with_default() { - return this.getTypedRuleContext(Slash_with_defaultContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterParameters(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitParameters(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitParameters(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Slash_no_defaultContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_slash_no_default; - } - - SLASH() { - return this.getToken(PythonParser.SLASH, 0); - }; - - param_no_default = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Param_no_defaultContext); - } else { - return this.getTypedRuleContext(Param_no_defaultContext,i); - } - }; - - COMMA() { - return this.getToken(PythonParser.COMMA, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterSlash_no_default(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitSlash_no_default(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitSlash_no_default(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Slash_with_defaultContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_slash_with_default; - } - - SLASH() { - return this.getToken(PythonParser.SLASH, 0); - }; - - param_no_default = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Param_no_defaultContext); - } else { - return this.getTypedRuleContext(Param_no_defaultContext,i); - } - }; - - param_with_default = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Param_with_defaultContext); - } else { - return this.getTypedRuleContext(Param_with_defaultContext,i); - } - }; - - COMMA() { - return this.getToken(PythonParser.COMMA, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterSlash_with_default(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitSlash_with_default(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitSlash_with_default(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Star_etcContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_star_etc; - } - - STAR() { - return this.getToken(PythonParser.STAR, 0); - }; - - param_no_default() { - return this.getTypedRuleContext(Param_no_defaultContext,0); - }; - - param_maybe_default = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Param_maybe_defaultContext); - } else { - return this.getTypedRuleContext(Param_maybe_defaultContext,i); - } - }; - - kwds() { - return this.getTypedRuleContext(KwdsContext,0); - }; - - param_no_default_star_annotation() { - return this.getTypedRuleContext(Param_no_default_star_annotationContext,0); - }; - - COMMA() { - return this.getToken(PythonParser.COMMA, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterStar_etc(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitStar_etc(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitStar_etc(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class KwdsContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_kwds; - } - - DOUBLESTAR() { - return this.getToken(PythonParser.DOUBLESTAR, 0); - }; - - param_no_default() { - return this.getTypedRuleContext(Param_no_defaultContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterKwds(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitKwds(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitKwds(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Param_no_defaultContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_param_no_default; - } - - param() { - return this.getTypedRuleContext(ParamContext,0); - }; - - COMMA() { - return this.getToken(PythonParser.COMMA, 0); - }; - - TYPE_COMMENT() { - return this.getToken(PythonParser.TYPE_COMMENT, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterParam_no_default(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitParam_no_default(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitParam_no_default(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Param_no_default_star_annotationContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_param_no_default_star_annotation; - } - - param_star_annotation() { - return this.getTypedRuleContext(Param_star_annotationContext,0); - }; - - COMMA() { - return this.getToken(PythonParser.COMMA, 0); - }; - - TYPE_COMMENT() { - return this.getToken(PythonParser.TYPE_COMMENT, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterParam_no_default_star_annotation(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitParam_no_default_star_annotation(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitParam_no_default_star_annotation(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Param_with_defaultContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_param_with_default; - } - - param() { - return this.getTypedRuleContext(ParamContext,0); - }; - - default_assignment() { - return this.getTypedRuleContext(Default_assignmentContext,0); - }; - - COMMA() { - return this.getToken(PythonParser.COMMA, 0); - }; - - TYPE_COMMENT() { - return this.getToken(PythonParser.TYPE_COMMENT, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterParam_with_default(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitParam_with_default(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitParam_with_default(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Param_maybe_defaultContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_param_maybe_default; - } - - param() { - return this.getTypedRuleContext(ParamContext,0); - }; - - default_assignment() { - return this.getTypedRuleContext(Default_assignmentContext,0); - }; - - COMMA() { - return this.getToken(PythonParser.COMMA, 0); - }; - - TYPE_COMMENT() { - return this.getToken(PythonParser.TYPE_COMMENT, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterParam_maybe_default(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitParam_maybe_default(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitParam_maybe_default(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class ParamContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_param; - } - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - annotation() { - return this.getTypedRuleContext(AnnotationContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterParam(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitParam(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitParam(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Param_star_annotationContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_param_star_annotation; - } - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - star_annotation() { - return this.getTypedRuleContext(Star_annotationContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterParam_star_annotation(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitParam_star_annotation(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitParam_star_annotation(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class AnnotationContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_annotation; - } - - COLON() { - return this.getToken(PythonParser.COLON, 0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterAnnotation(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitAnnotation(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitAnnotation(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Star_annotationContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_star_annotation; - } - - COLON() { - return this.getToken(PythonParser.COLON, 0); - }; - - star_expression() { - return this.getTypedRuleContext(Star_expressionContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterStar_annotation(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitStar_annotation(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitStar_annotation(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Default_assignmentContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_default_assignment; - } - - EQUAL() { - return this.getToken(PythonParser.EQUAL, 0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterDefault_assignment(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitDefault_assignment(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitDefault_assignment(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class If_stmtContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_if_stmt; - } - - IF() { - return this.getToken(PythonParser.IF, 0); - }; - - named_expression() { - return this.getTypedRuleContext(Named_expressionContext,0); - }; - - COLON() { - return this.getToken(PythonParser.COLON, 0); - }; - - block() { - return this.getTypedRuleContext(BlockContext,0); - }; - - elif_stmt() { - return this.getTypedRuleContext(Elif_stmtContext,0); - }; - - else_block() { - return this.getTypedRuleContext(Else_blockContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterIf_stmt(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitIf_stmt(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitIf_stmt(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Elif_stmtContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_elif_stmt; - } - - ELIF() { - return this.getToken(PythonParser.ELIF, 0); - }; - - named_expression() { - return this.getTypedRuleContext(Named_expressionContext,0); - }; - - COLON() { - return this.getToken(PythonParser.COLON, 0); - }; - - block() { - return this.getTypedRuleContext(BlockContext,0); - }; - - elif_stmt() { - return this.getTypedRuleContext(Elif_stmtContext,0); - }; - - else_block() { - return this.getTypedRuleContext(Else_blockContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterElif_stmt(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitElif_stmt(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitElif_stmt(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Else_blockContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_else_block; - } - - ELSE() { - return this.getToken(PythonParser.ELSE, 0); - }; - - COLON() { - return this.getToken(PythonParser.COLON, 0); - }; - - block() { - return this.getTypedRuleContext(BlockContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterElse_block(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitElse_block(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitElse_block(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class While_stmtContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_while_stmt; - } - - WHILE() { - return this.getToken(PythonParser.WHILE, 0); - }; - - named_expression() { - return this.getTypedRuleContext(Named_expressionContext,0); - }; - - COLON() { - return this.getToken(PythonParser.COLON, 0); - }; - - block() { - return this.getTypedRuleContext(BlockContext,0); - }; - - else_block() { - return this.getTypedRuleContext(Else_blockContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterWhile_stmt(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitWhile_stmt(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitWhile_stmt(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class For_stmtContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_for_stmt; - } - - FOR() { - return this.getToken(PythonParser.FOR, 0); - }; - - star_targets() { - return this.getTypedRuleContext(Star_targetsContext,0); - }; - - IN() { - return this.getToken(PythonParser.IN, 0); - }; - - star_expressions() { - return this.getTypedRuleContext(Star_expressionsContext,0); - }; - - COLON() { - return this.getToken(PythonParser.COLON, 0); - }; - - block() { - return this.getTypedRuleContext(BlockContext,0); - }; - - ASYNC() { - return this.getToken(PythonParser.ASYNC, 0); - }; - - TYPE_COMMENT() { - return this.getToken(PythonParser.TYPE_COMMENT, 0); - }; - - else_block() { - return this.getTypedRuleContext(Else_blockContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterFor_stmt(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitFor_stmt(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitFor_stmt(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class With_stmtContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_with_stmt; - } - - WITH() { - return this.getToken(PythonParser.WITH, 0); - }; - - block() { - return this.getTypedRuleContext(BlockContext,0); - }; - - LPAR() { - return this.getToken(PythonParser.LPAR, 0); - }; - - with_item = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(With_itemContext); - } else { - return this.getTypedRuleContext(With_itemContext,i); - } - }; - - RPAR() { - return this.getToken(PythonParser.RPAR, 0); - }; - - COLON() { - return this.getToken(PythonParser.COLON, 0); - }; - - ASYNC() { - return this.getToken(PythonParser.ASYNC, 0); - }; - - COMMA = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.COMMA); - } else { - return this.getToken(PythonParser.COMMA, i); - } - }; - - - TYPE_COMMENT() { - return this.getToken(PythonParser.TYPE_COMMENT, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterWith_stmt(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitWith_stmt(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitWith_stmt(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class With_itemContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_with_item; - } - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - AS() { - return this.getToken(PythonParser.AS, 0); - }; - - star_target() { - return this.getTypedRuleContext(Star_targetContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterWith_item(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitWith_item(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitWith_item(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Try_stmtContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_try_stmt; - } - - TRY() { - return this.getToken(PythonParser.TRY, 0); - }; - - COLON() { - return this.getToken(PythonParser.COLON, 0); - }; - - block() { - return this.getTypedRuleContext(BlockContext,0); - }; - - finally_block() { - return this.getTypedRuleContext(Finally_blockContext,0); - }; - - except_block = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Except_blockContext); - } else { - return this.getTypedRuleContext(Except_blockContext,i); - } - }; - - else_block() { - return this.getTypedRuleContext(Else_blockContext,0); - }; - - except_star_block = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Except_star_blockContext); - } else { - return this.getTypedRuleContext(Except_star_blockContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterTry_stmt(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitTry_stmt(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitTry_stmt(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Except_blockContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_except_block; - } - - EXCEPT() { - return this.getToken(PythonParser.EXCEPT, 0); - }; - - COLON() { - return this.getToken(PythonParser.COLON, 0); - }; - - block() { - return this.getTypedRuleContext(BlockContext,0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - AS() { - return this.getToken(PythonParser.AS, 0); - }; - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterExcept_block(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitExcept_block(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitExcept_block(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Except_star_blockContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_except_star_block; - } - - EXCEPT() { - return this.getToken(PythonParser.EXCEPT, 0); - }; - - STAR() { - return this.getToken(PythonParser.STAR, 0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - COLON() { - return this.getToken(PythonParser.COLON, 0); - }; - - block() { - return this.getTypedRuleContext(BlockContext,0); - }; - - AS() { - return this.getToken(PythonParser.AS, 0); - }; - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterExcept_star_block(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitExcept_star_block(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitExcept_star_block(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Finally_blockContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_finally_block; - } - - FINALLY() { - return this.getToken(PythonParser.FINALLY, 0); - }; - - COLON() { - return this.getToken(PythonParser.COLON, 0); - }; - - block() { - return this.getTypedRuleContext(BlockContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterFinally_block(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitFinally_block(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitFinally_block(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Match_stmtContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_match_stmt; - } - - soft_kw_match() { - return this.getTypedRuleContext(Soft_kw_matchContext,0); - }; - - subject_expr() { - return this.getTypedRuleContext(Subject_exprContext,0); - }; - - COLON() { - return this.getToken(PythonParser.COLON, 0); - }; - - NEWLINE() { - return this.getToken(PythonParser.NEWLINE, 0); - }; - - INDENT() { - return this.getToken(PythonParser.INDENT, 0); - }; - - DEDENT() { - return this.getToken(PythonParser.DEDENT, 0); - }; - - case_block = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Case_blockContext); - } else { - return this.getTypedRuleContext(Case_blockContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterMatch_stmt(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitMatch_stmt(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitMatch_stmt(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Subject_exprContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_subject_expr; - } - - star_named_expression() { - return this.getTypedRuleContext(Star_named_expressionContext,0); - }; - - COMMA() { - return this.getToken(PythonParser.COMMA, 0); - }; - - star_named_expressions() { - return this.getTypedRuleContext(Star_named_expressionsContext,0); - }; - - named_expression() { - return this.getTypedRuleContext(Named_expressionContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterSubject_expr(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitSubject_expr(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitSubject_expr(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Case_blockContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_case_block; - } - - soft_kw_case() { - return this.getTypedRuleContext(Soft_kw_caseContext,0); - }; - - patterns() { - return this.getTypedRuleContext(PatternsContext,0); - }; - - COLON() { - return this.getToken(PythonParser.COLON, 0); - }; - - block() { - return this.getTypedRuleContext(BlockContext,0); - }; - - guard() { - return this.getTypedRuleContext(GuardContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterCase_block(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitCase_block(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitCase_block(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class GuardContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_guard; - } - - IF() { - return this.getToken(PythonParser.IF, 0); - }; - - named_expression() { - return this.getTypedRuleContext(Named_expressionContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterGuard(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitGuard(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitGuard(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class PatternsContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_patterns; - } - - open_sequence_pattern() { - return this.getTypedRuleContext(Open_sequence_patternContext,0); - }; - - pattern() { - return this.getTypedRuleContext(PatternContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterPatterns(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitPatterns(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitPatterns(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class PatternContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_pattern; - } - - as_pattern() { - return this.getTypedRuleContext(As_patternContext,0); - }; - - or_pattern() { - return this.getTypedRuleContext(Or_patternContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterPattern(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitPattern(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitPattern(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class As_patternContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_as_pattern; - } - - or_pattern() { - return this.getTypedRuleContext(Or_patternContext,0); - }; - - AS() { - return this.getToken(PythonParser.AS, 0); - }; - - pattern_capture_target() { - return this.getTypedRuleContext(Pattern_capture_targetContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterAs_pattern(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitAs_pattern(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitAs_pattern(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Or_patternContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_or_pattern; - } - - closed_pattern = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Closed_patternContext); - } else { - return this.getTypedRuleContext(Closed_patternContext,i); - } - }; - - VBAR = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.VBAR); - } else { - return this.getToken(PythonParser.VBAR, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterOr_pattern(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitOr_pattern(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitOr_pattern(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Closed_patternContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_closed_pattern; - } - - literal_pattern() { - return this.getTypedRuleContext(Literal_patternContext,0); - }; - - capture_pattern() { - return this.getTypedRuleContext(Capture_patternContext,0); - }; - - wildcard_pattern() { - return this.getTypedRuleContext(Wildcard_patternContext,0); - }; - - value_pattern() { - return this.getTypedRuleContext(Value_patternContext,0); - }; - - group_pattern() { - return this.getTypedRuleContext(Group_patternContext,0); - }; - - sequence_pattern() { - return this.getTypedRuleContext(Sequence_patternContext,0); - }; - - mapping_pattern() { - return this.getTypedRuleContext(Mapping_patternContext,0); - }; - - class_pattern() { - return this.getTypedRuleContext(Class_patternContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterClosed_pattern(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitClosed_pattern(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitClosed_pattern(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Literal_patternContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_literal_pattern; - } - - signed_number() { - return this.getTypedRuleContext(Signed_numberContext,0); - }; - - complex_number() { - return this.getTypedRuleContext(Complex_numberContext,0); - }; - - strings() { - return this.getTypedRuleContext(StringsContext,0); - }; - - NONE() { - return this.getToken(PythonParser.NONE, 0); - }; - - TRUE() { - return this.getToken(PythonParser.TRUE, 0); - }; - - FALSE() { - return this.getToken(PythonParser.FALSE, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterLiteral_pattern(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitLiteral_pattern(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitLiteral_pattern(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Literal_exprContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_literal_expr; - } - - signed_number() { - return this.getTypedRuleContext(Signed_numberContext,0); - }; - - complex_number() { - return this.getTypedRuleContext(Complex_numberContext,0); - }; - - strings() { - return this.getTypedRuleContext(StringsContext,0); - }; - - NONE() { - return this.getToken(PythonParser.NONE, 0); - }; - - TRUE() { - return this.getToken(PythonParser.TRUE, 0); - }; - - FALSE() { - return this.getToken(PythonParser.FALSE, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterLiteral_expr(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitLiteral_expr(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitLiteral_expr(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Complex_numberContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_complex_number; - } - - signed_real_number() { - return this.getTypedRuleContext(Signed_real_numberContext,0); - }; - - imaginary_number() { - return this.getTypedRuleContext(Imaginary_numberContext,0); - }; - - PLUS() { - return this.getToken(PythonParser.PLUS, 0); - }; - - MINUS() { - return this.getToken(PythonParser.MINUS, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterComplex_number(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitComplex_number(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitComplex_number(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Signed_numberContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_signed_number; - } - - NUMBER() { - return this.getToken(PythonParser.NUMBER, 0); - }; - - MINUS() { - return this.getToken(PythonParser.MINUS, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterSigned_number(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitSigned_number(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitSigned_number(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Signed_real_numberContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_signed_real_number; - } - - real_number() { - return this.getTypedRuleContext(Real_numberContext,0); - }; - - MINUS() { - return this.getToken(PythonParser.MINUS, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterSigned_real_number(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitSigned_real_number(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitSigned_real_number(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Real_numberContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_real_number; - } - - NUMBER() { - return this.getToken(PythonParser.NUMBER, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterReal_number(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitReal_number(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitReal_number(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Imaginary_numberContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_imaginary_number; - } - - NUMBER() { - return this.getToken(PythonParser.NUMBER, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterImaginary_number(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitImaginary_number(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitImaginary_number(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Capture_patternContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_capture_pattern; - } - - pattern_capture_target() { - return this.getTypedRuleContext(Pattern_capture_targetContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterCapture_pattern(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitCapture_pattern(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitCapture_pattern(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Pattern_capture_targetContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_pattern_capture_target; - } - - soft_kw__not__wildcard() { - return this.getTypedRuleContext(Soft_kw__not__wildcardContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterPattern_capture_target(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitPattern_capture_target(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitPattern_capture_target(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Wildcard_patternContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_wildcard_pattern; - } - - soft_kw_wildcard() { - return this.getTypedRuleContext(Soft_kw_wildcardContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterWildcard_pattern(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitWildcard_pattern(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitWildcard_pattern(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Value_patternContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_value_pattern; - } - - attr() { - return this.getTypedRuleContext(AttrContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterValue_pattern(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitValue_pattern(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitValue_pattern(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class AttrContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_attr; - } - - NAME = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.NAME); - } else { - return this.getToken(PythonParser.NAME, i); - } - }; - - - DOT = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.DOT); - } else { - return this.getToken(PythonParser.DOT, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterAttr(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitAttr(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitAttr(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Name_or_attrContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_name_or_attr; - } - - NAME = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.NAME); - } else { - return this.getToken(PythonParser.NAME, i); - } - }; - - - DOT = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.DOT); - } else { - return this.getToken(PythonParser.DOT, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterName_or_attr(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitName_or_attr(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitName_or_attr(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Group_patternContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_group_pattern; - } - - LPAR() { - return this.getToken(PythonParser.LPAR, 0); - }; - - pattern() { - return this.getTypedRuleContext(PatternContext,0); - }; - - RPAR() { - return this.getToken(PythonParser.RPAR, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterGroup_pattern(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitGroup_pattern(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitGroup_pattern(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Sequence_patternContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_sequence_pattern; - } - - LSQB() { - return this.getToken(PythonParser.LSQB, 0); - }; - - RSQB() { - return this.getToken(PythonParser.RSQB, 0); - }; - - maybe_sequence_pattern() { - return this.getTypedRuleContext(Maybe_sequence_patternContext,0); - }; - - LPAR() { - return this.getToken(PythonParser.LPAR, 0); - }; - - RPAR() { - return this.getToken(PythonParser.RPAR, 0); - }; - - open_sequence_pattern() { - return this.getTypedRuleContext(Open_sequence_patternContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterSequence_pattern(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitSequence_pattern(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitSequence_pattern(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Open_sequence_patternContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_open_sequence_pattern; - } - - maybe_star_pattern() { - return this.getTypedRuleContext(Maybe_star_patternContext,0); - }; - - COMMA() { - return this.getToken(PythonParser.COMMA, 0); - }; - - maybe_sequence_pattern() { - return this.getTypedRuleContext(Maybe_sequence_patternContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterOpen_sequence_pattern(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitOpen_sequence_pattern(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitOpen_sequence_pattern(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Maybe_sequence_patternContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_maybe_sequence_pattern; - } - - maybe_star_pattern = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Maybe_star_patternContext); - } else { - return this.getTypedRuleContext(Maybe_star_patternContext,i); - } - }; - - COMMA = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.COMMA); - } else { - return this.getToken(PythonParser.COMMA, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterMaybe_sequence_pattern(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitMaybe_sequence_pattern(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitMaybe_sequence_pattern(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Maybe_star_patternContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_maybe_star_pattern; - } - - star_pattern() { - return this.getTypedRuleContext(Star_patternContext,0); - }; - - pattern() { - return this.getTypedRuleContext(PatternContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterMaybe_star_pattern(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitMaybe_star_pattern(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitMaybe_star_pattern(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Star_patternContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_star_pattern; - } - - STAR() { - return this.getToken(PythonParser.STAR, 0); - }; - - pattern_capture_target() { - return this.getTypedRuleContext(Pattern_capture_targetContext,0); - }; - - wildcard_pattern() { - return this.getTypedRuleContext(Wildcard_patternContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterStar_pattern(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitStar_pattern(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitStar_pattern(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Mapping_patternContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_mapping_pattern; - } - - LBRACE() { - return this.getToken(PythonParser.LBRACE, 0); - }; - - RBRACE() { - return this.getToken(PythonParser.RBRACE, 0); - }; - - double_star_pattern() { - return this.getTypedRuleContext(Double_star_patternContext,0); - }; - - COMMA = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.COMMA); - } else { - return this.getToken(PythonParser.COMMA, i); - } - }; - - - items_pattern() { - return this.getTypedRuleContext(Items_patternContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterMapping_pattern(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitMapping_pattern(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitMapping_pattern(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Items_patternContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_items_pattern; - } - - key_value_pattern = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Key_value_patternContext); - } else { - return this.getTypedRuleContext(Key_value_patternContext,i); - } - }; - - COMMA = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.COMMA); - } else { - return this.getToken(PythonParser.COMMA, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterItems_pattern(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitItems_pattern(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitItems_pattern(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Key_value_patternContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_key_value_pattern; - } - - COLON() { - return this.getToken(PythonParser.COLON, 0); - }; - - pattern() { - return this.getTypedRuleContext(PatternContext,0); - }; - - literal_expr() { - return this.getTypedRuleContext(Literal_exprContext,0); - }; - - attr() { - return this.getTypedRuleContext(AttrContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterKey_value_pattern(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitKey_value_pattern(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitKey_value_pattern(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Double_star_patternContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_double_star_pattern; - } - - DOUBLESTAR() { - return this.getToken(PythonParser.DOUBLESTAR, 0); - }; - - pattern_capture_target() { - return this.getTypedRuleContext(Pattern_capture_targetContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterDouble_star_pattern(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitDouble_star_pattern(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitDouble_star_pattern(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Class_patternContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_class_pattern; - } - - name_or_attr() { - return this.getTypedRuleContext(Name_or_attrContext,0); - }; - - LPAR() { - return this.getToken(PythonParser.LPAR, 0); - }; - - RPAR() { - return this.getToken(PythonParser.RPAR, 0); - }; - - positional_patterns() { - return this.getTypedRuleContext(Positional_patternsContext,0); - }; - - keyword_patterns() { - return this.getTypedRuleContext(Keyword_patternsContext,0); - }; - - COMMA = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.COMMA); - } else { - return this.getToken(PythonParser.COMMA, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterClass_pattern(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitClass_pattern(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitClass_pattern(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Positional_patternsContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_positional_patterns; - } - - pattern = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(PatternContext); - } else { - return this.getTypedRuleContext(PatternContext,i); - } - }; - - COMMA = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.COMMA); - } else { - return this.getToken(PythonParser.COMMA, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterPositional_patterns(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitPositional_patterns(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitPositional_patterns(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Keyword_patternsContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_keyword_patterns; - } - - keyword_pattern = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Keyword_patternContext); - } else { - return this.getTypedRuleContext(Keyword_patternContext,i); - } - }; - - COMMA = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.COMMA); - } else { - return this.getToken(PythonParser.COMMA, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterKeyword_patterns(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitKeyword_patterns(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitKeyword_patterns(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Keyword_patternContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_keyword_pattern; - } - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - EQUAL() { - return this.getToken(PythonParser.EQUAL, 0); - }; - - pattern() { - return this.getTypedRuleContext(PatternContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterKeyword_pattern(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitKeyword_pattern(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitKeyword_pattern(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Type_aliasContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_type_alias; - } - - soft_kw_type() { - return this.getTypedRuleContext(Soft_kw_typeContext,0); - }; - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - EQUAL() { - return this.getToken(PythonParser.EQUAL, 0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - type_params() { - return this.getTypedRuleContext(Type_paramsContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterType_alias(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitType_alias(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitType_alias(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Type_paramsContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_type_params; - } - - LSQB() { - return this.getToken(PythonParser.LSQB, 0); - }; - - type_param_seq() { - return this.getTypedRuleContext(Type_param_seqContext,0); - }; - - RSQB() { - return this.getToken(PythonParser.RSQB, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterType_params(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitType_params(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitType_params(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Type_param_seqContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_type_param_seq; - } - - type_param = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Type_paramContext); - } else { - return this.getTypedRuleContext(Type_paramContext,i); - } - }; - - COMMA = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.COMMA); - } else { - return this.getToken(PythonParser.COMMA, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterType_param_seq(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitType_param_seq(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitType_param_seq(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Type_paramContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_type_param; - } - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - type_param_bound() { - return this.getTypedRuleContext(Type_param_boundContext,0); - }; - - STAR() { - return this.getToken(PythonParser.STAR, 0); - }; - - COLON() { - return this.getToken(PythonParser.COLON, 0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - DOUBLESTAR() { - return this.getToken(PythonParser.DOUBLESTAR, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterType_param(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitType_param(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitType_param(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Type_param_boundContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_type_param_bound; - } - - COLON() { - return this.getToken(PythonParser.COLON, 0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterType_param_bound(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitType_param_bound(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitType_param_bound(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class ExpressionsContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_expressions; - } - - expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ExpressionContext); - } else { - return this.getTypedRuleContext(ExpressionContext,i); - } - }; - - COMMA = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.COMMA); - } else { - return this.getToken(PythonParser.COMMA, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterExpressions(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitExpressions(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitExpressions(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class ExpressionContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_expression; - } - - disjunction = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(DisjunctionContext); - } else { - return this.getTypedRuleContext(DisjunctionContext,i); - } - }; - - IF() { - return this.getToken(PythonParser.IF, 0); - }; - - ELSE() { - return this.getToken(PythonParser.ELSE, 0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - lambdef() { - return this.getTypedRuleContext(LambdefContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterExpression(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitExpression(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitExpression(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Yield_exprContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_yield_expr; - } - - YIELD() { - return this.getToken(PythonParser.YIELD, 0); - }; - - FROM() { - return this.getToken(PythonParser.FROM, 0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - star_expressions() { - return this.getTypedRuleContext(Star_expressionsContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterYield_expr(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitYield_expr(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitYield_expr(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Star_expressionsContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_star_expressions; - } - - star_expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Star_expressionContext); - } else { - return this.getTypedRuleContext(Star_expressionContext,i); - } - }; - - COMMA = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.COMMA); - } else { - return this.getToken(PythonParser.COMMA, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterStar_expressions(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitStar_expressions(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitStar_expressions(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Star_expressionContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_star_expression; - } - - STAR() { - return this.getToken(PythonParser.STAR, 0); - }; - - bitwise_or() { - return this.getTypedRuleContext(Bitwise_orContext,0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterStar_expression(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitStar_expression(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitStar_expression(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Star_named_expressionsContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_star_named_expressions; - } - - star_named_expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Star_named_expressionContext); - } else { - return this.getTypedRuleContext(Star_named_expressionContext,i); - } - }; - - COMMA = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.COMMA); - } else { - return this.getToken(PythonParser.COMMA, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterStar_named_expressions(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitStar_named_expressions(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitStar_named_expressions(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Star_named_expressionContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_star_named_expression; - } - - STAR() { - return this.getToken(PythonParser.STAR, 0); - }; - - bitwise_or() { - return this.getTypedRuleContext(Bitwise_orContext,0); - }; - - named_expression() { - return this.getTypedRuleContext(Named_expressionContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterStar_named_expression(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitStar_named_expression(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitStar_named_expression(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Assignment_expressionContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_assignment_expression; - } - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - COLONEQUAL() { - return this.getToken(PythonParser.COLONEQUAL, 0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterAssignment_expression(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitAssignment_expression(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitAssignment_expression(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Named_expressionContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_named_expression; - } - - assignment_expression() { - return this.getTypedRuleContext(Assignment_expressionContext,0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterNamed_expression(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitNamed_expression(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitNamed_expression(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class DisjunctionContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_disjunction; - } - - conjunction = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ConjunctionContext); - } else { - return this.getTypedRuleContext(ConjunctionContext,i); - } - }; - - OR = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.OR); - } else { - return this.getToken(PythonParser.OR, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterDisjunction(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitDisjunction(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitDisjunction(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class ConjunctionContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_conjunction; - } - - inversion = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(InversionContext); - } else { - return this.getTypedRuleContext(InversionContext,i); - } - }; - - AND = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.AND); - } else { - return this.getToken(PythonParser.AND, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterConjunction(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitConjunction(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitConjunction(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class InversionContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_inversion; - } - - NOT() { - return this.getToken(PythonParser.NOT, 0); - }; - - inversion() { - return this.getTypedRuleContext(InversionContext,0); - }; - - comparison() { - return this.getTypedRuleContext(ComparisonContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterInversion(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitInversion(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitInversion(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class ComparisonContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_comparison; - } - - bitwise_or() { - return this.getTypedRuleContext(Bitwise_orContext,0); - }; - - compare_op_bitwise_or_pair = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Compare_op_bitwise_or_pairContext); - } else { - return this.getTypedRuleContext(Compare_op_bitwise_or_pairContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterComparison(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitComparison(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitComparison(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Compare_op_bitwise_or_pairContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_compare_op_bitwise_or_pair; - } - - eq_bitwise_or() { - return this.getTypedRuleContext(Eq_bitwise_orContext,0); - }; - - noteq_bitwise_or() { - return this.getTypedRuleContext(Noteq_bitwise_orContext,0); - }; - - lte_bitwise_or() { - return this.getTypedRuleContext(Lte_bitwise_orContext,0); - }; - - lt_bitwise_or() { - return this.getTypedRuleContext(Lt_bitwise_orContext,0); - }; - - gte_bitwise_or() { - return this.getTypedRuleContext(Gte_bitwise_orContext,0); - }; - - gt_bitwise_or() { - return this.getTypedRuleContext(Gt_bitwise_orContext,0); - }; - - notin_bitwise_or() { - return this.getTypedRuleContext(Notin_bitwise_orContext,0); - }; - - in_bitwise_or() { - return this.getTypedRuleContext(In_bitwise_orContext,0); - }; - - isnot_bitwise_or() { - return this.getTypedRuleContext(Isnot_bitwise_orContext,0); - }; - - is_bitwise_or() { - return this.getTypedRuleContext(Is_bitwise_orContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterCompare_op_bitwise_or_pair(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitCompare_op_bitwise_or_pair(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitCompare_op_bitwise_or_pair(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Eq_bitwise_orContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_eq_bitwise_or; - } - - EQEQUAL() { - return this.getToken(PythonParser.EQEQUAL, 0); - }; - - bitwise_or() { - return this.getTypedRuleContext(Bitwise_orContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterEq_bitwise_or(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitEq_bitwise_or(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitEq_bitwise_or(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Noteq_bitwise_orContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_noteq_bitwise_or; - } - - bitwise_or() { - return this.getTypedRuleContext(Bitwise_orContext,0); - }; - - NOTEQUAL() { - return this.getToken(PythonParser.NOTEQUAL, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterNoteq_bitwise_or(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitNoteq_bitwise_or(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitNoteq_bitwise_or(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Lte_bitwise_orContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_lte_bitwise_or; - } - - LESSEQUAL() { - return this.getToken(PythonParser.LESSEQUAL, 0); - }; - - bitwise_or() { - return this.getTypedRuleContext(Bitwise_orContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterLte_bitwise_or(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitLte_bitwise_or(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitLte_bitwise_or(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Lt_bitwise_orContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_lt_bitwise_or; - } - - LESS() { - return this.getToken(PythonParser.LESS, 0); - }; - - bitwise_or() { - return this.getTypedRuleContext(Bitwise_orContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterLt_bitwise_or(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitLt_bitwise_or(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitLt_bitwise_or(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Gte_bitwise_orContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_gte_bitwise_or; - } - - GREATEREQUAL() { - return this.getToken(PythonParser.GREATEREQUAL, 0); - }; - - bitwise_or() { - return this.getTypedRuleContext(Bitwise_orContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterGte_bitwise_or(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitGte_bitwise_or(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitGte_bitwise_or(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Gt_bitwise_orContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_gt_bitwise_or; - } - - GREATER() { - return this.getToken(PythonParser.GREATER, 0); - }; - - bitwise_or() { - return this.getTypedRuleContext(Bitwise_orContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterGt_bitwise_or(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitGt_bitwise_or(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitGt_bitwise_or(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Notin_bitwise_orContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_notin_bitwise_or; - } - - NOT() { - return this.getToken(PythonParser.NOT, 0); - }; - - IN() { - return this.getToken(PythonParser.IN, 0); - }; - - bitwise_or() { - return this.getTypedRuleContext(Bitwise_orContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterNotin_bitwise_or(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitNotin_bitwise_or(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitNotin_bitwise_or(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class In_bitwise_orContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_in_bitwise_or; - } - - IN() { - return this.getToken(PythonParser.IN, 0); - }; - - bitwise_or() { - return this.getTypedRuleContext(Bitwise_orContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterIn_bitwise_or(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitIn_bitwise_or(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitIn_bitwise_or(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Isnot_bitwise_orContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_isnot_bitwise_or; - } - - IS() { - return this.getToken(PythonParser.IS, 0); - }; - - NOT() { - return this.getToken(PythonParser.NOT, 0); - }; - - bitwise_or() { - return this.getTypedRuleContext(Bitwise_orContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterIsnot_bitwise_or(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitIsnot_bitwise_or(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitIsnot_bitwise_or(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Is_bitwise_orContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_is_bitwise_or; - } - - IS() { - return this.getToken(PythonParser.IS, 0); - }; - - bitwise_or() { - return this.getTypedRuleContext(Bitwise_orContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterIs_bitwise_or(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitIs_bitwise_or(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitIs_bitwise_or(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Bitwise_orContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_bitwise_or; - } - - bitwise_xor() { - return this.getTypedRuleContext(Bitwise_xorContext,0); - }; - - bitwise_or() { - return this.getTypedRuleContext(Bitwise_orContext,0); - }; - - VBAR() { - return this.getToken(PythonParser.VBAR, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterBitwise_or(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitBitwise_or(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitBitwise_or(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Bitwise_xorContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_bitwise_xor; - } - - bitwise_and() { - return this.getTypedRuleContext(Bitwise_andContext,0); - }; - - bitwise_xor() { - return this.getTypedRuleContext(Bitwise_xorContext,0); - }; - - CIRCUMFLEX() { - return this.getToken(PythonParser.CIRCUMFLEX, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterBitwise_xor(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitBitwise_xor(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitBitwise_xor(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Bitwise_andContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_bitwise_and; - } - - shift_expr() { - return this.getTypedRuleContext(Shift_exprContext,0); - }; - - bitwise_and() { - return this.getTypedRuleContext(Bitwise_andContext,0); - }; - - AMPER() { - return this.getToken(PythonParser.AMPER, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterBitwise_and(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitBitwise_and(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitBitwise_and(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Shift_exprContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_shift_expr; - } - - sum() { - return this.getTypedRuleContext(SumContext,0); - }; - - shift_expr() { - return this.getTypedRuleContext(Shift_exprContext,0); - }; - - LEFTSHIFT() { - return this.getToken(PythonParser.LEFTSHIFT, 0); - }; - - RIGHTSHIFT() { - return this.getToken(PythonParser.RIGHTSHIFT, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterShift_expr(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitShift_expr(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitShift_expr(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class SumContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_sum; - } - - term() { - return this.getTypedRuleContext(TermContext,0); - }; - - sum() { - return this.getTypedRuleContext(SumContext,0); - }; - - PLUS() { - return this.getToken(PythonParser.PLUS, 0); - }; - - MINUS() { - return this.getToken(PythonParser.MINUS, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterSum(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitSum(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitSum(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class TermContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_term; - } - - factor() { - return this.getTypedRuleContext(FactorContext,0); - }; - - term() { - return this.getTypedRuleContext(TermContext,0); - }; - - STAR() { - return this.getToken(PythonParser.STAR, 0); - }; - - SLASH() { - return this.getToken(PythonParser.SLASH, 0); - }; - - DOUBLESLASH() { - return this.getToken(PythonParser.DOUBLESLASH, 0); - }; - - PERCENT() { - return this.getToken(PythonParser.PERCENT, 0); - }; - - AT() { - return this.getToken(PythonParser.AT, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterTerm(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitTerm(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitTerm(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class FactorContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_factor; - } - - PLUS() { - return this.getToken(PythonParser.PLUS, 0); - }; - - factor() { - return this.getTypedRuleContext(FactorContext,0); - }; - - MINUS() { - return this.getToken(PythonParser.MINUS, 0); - }; - - TILDE() { - return this.getToken(PythonParser.TILDE, 0); - }; - - power() { - return this.getTypedRuleContext(PowerContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterFactor(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitFactor(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitFactor(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class PowerContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_power; - } - - await_primary() { - return this.getTypedRuleContext(Await_primaryContext,0); - }; - - DOUBLESTAR() { - return this.getToken(PythonParser.DOUBLESTAR, 0); - }; - - factor() { - return this.getTypedRuleContext(FactorContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterPower(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitPower(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitPower(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Await_primaryContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_await_primary; - } - - AWAIT() { - return this.getToken(PythonParser.AWAIT, 0); - }; - - primary() { - return this.getTypedRuleContext(PrimaryContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterAwait_primary(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitAwait_primary(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitAwait_primary(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class PrimaryContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_primary; - } - - atom() { - return this.getTypedRuleContext(AtomContext,0); - }; - - primary() { - return this.getTypedRuleContext(PrimaryContext,0); - }; - - DOT() { - return this.getToken(PythonParser.DOT, 0); - }; - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - genexp() { - return this.getTypedRuleContext(GenexpContext,0); - }; - - LPAR() { - return this.getToken(PythonParser.LPAR, 0); - }; - - RPAR() { - return this.getToken(PythonParser.RPAR, 0); - }; - - LSQB() { - return this.getToken(PythonParser.LSQB, 0); - }; - - slices() { - return this.getTypedRuleContext(SlicesContext,0); - }; - - RSQB() { - return this.getToken(PythonParser.RSQB, 0); - }; - - arguments() { - return this.getTypedRuleContext(ArgumentsContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterPrimary(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitPrimary(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitPrimary(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class SlicesContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_slices; - } - - slice = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(SliceContext); - } else { - return this.getTypedRuleContext(SliceContext,i); - } - }; - - starred_expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Starred_expressionContext); - } else { - return this.getTypedRuleContext(Starred_expressionContext,i); - } - }; - - COMMA = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.COMMA); - } else { - return this.getToken(PythonParser.COMMA, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterSlices(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitSlices(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitSlices(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class SliceContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_slice; - } - - COLON = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.COLON); - } else { - return this.getToken(PythonParser.COLON, i); - } - }; - - - expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ExpressionContext); - } else { - return this.getTypedRuleContext(ExpressionContext,i); - } - }; - - named_expression() { - return this.getTypedRuleContext(Named_expressionContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterSlice(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitSlice(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitSlice(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class AtomContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_atom; - } - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - TRUE() { - return this.getToken(PythonParser.TRUE, 0); - }; - - FALSE() { - return this.getToken(PythonParser.FALSE, 0); - }; - - NONE() { - return this.getToken(PythonParser.NONE, 0); - }; - - strings() { - return this.getTypedRuleContext(StringsContext,0); - }; - - NUMBER() { - return this.getToken(PythonParser.NUMBER, 0); - }; - - tuple() { - return this.getTypedRuleContext(TupleContext,0); - }; - - group() { - return this.getTypedRuleContext(GroupContext,0); - }; - - genexp() { - return this.getTypedRuleContext(GenexpContext,0); - }; - - list() { - return this.getTypedRuleContext(ListContext,0); - }; - - listcomp() { - return this.getTypedRuleContext(ListcompContext,0); - }; - - dict() { - return this.getTypedRuleContext(DictContext,0); - }; - - set() { - return this.getTypedRuleContext(SetContext,0); - }; - - dictcomp() { - return this.getTypedRuleContext(DictcompContext,0); - }; - - setcomp() { - return this.getTypedRuleContext(SetcompContext,0); - }; - - ELLIPSIS() { - return this.getToken(PythonParser.ELLIPSIS, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterAtom(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitAtom(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitAtom(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class GroupContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_group; - } - - LPAR() { - return this.getToken(PythonParser.LPAR, 0); - }; - - RPAR() { - return this.getToken(PythonParser.RPAR, 0); - }; - - yield_expr() { - return this.getTypedRuleContext(Yield_exprContext,0); - }; - - named_expression() { - return this.getTypedRuleContext(Named_expressionContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterGroup(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitGroup(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitGroup(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class LambdefContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_lambdef; - } - - LAMBDA() { - return this.getToken(PythonParser.LAMBDA, 0); - }; - - COLON() { - return this.getToken(PythonParser.COLON, 0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - lambda_params() { - return this.getTypedRuleContext(Lambda_paramsContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterLambdef(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitLambdef(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitLambdef(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Lambda_paramsContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_lambda_params; - } - - lambda_parameters() { - return this.getTypedRuleContext(Lambda_parametersContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterLambda_params(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitLambda_params(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitLambda_params(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Lambda_parametersContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_lambda_parameters; - } - - lambda_slash_no_default() { - return this.getTypedRuleContext(Lambda_slash_no_defaultContext,0); - }; - - lambda_param_no_default = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Lambda_param_no_defaultContext); - } else { - return this.getTypedRuleContext(Lambda_param_no_defaultContext,i); - } - }; - - lambda_param_with_default = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Lambda_param_with_defaultContext); - } else { - return this.getTypedRuleContext(Lambda_param_with_defaultContext,i); - } - }; - - lambda_star_etc() { - return this.getTypedRuleContext(Lambda_star_etcContext,0); - }; - - lambda_slash_with_default() { - return this.getTypedRuleContext(Lambda_slash_with_defaultContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterLambda_parameters(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitLambda_parameters(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitLambda_parameters(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Lambda_slash_no_defaultContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_lambda_slash_no_default; - } - - SLASH() { - return this.getToken(PythonParser.SLASH, 0); - }; - - lambda_param_no_default = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Lambda_param_no_defaultContext); - } else { - return this.getTypedRuleContext(Lambda_param_no_defaultContext,i); - } - }; - - COMMA() { - return this.getToken(PythonParser.COMMA, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterLambda_slash_no_default(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitLambda_slash_no_default(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitLambda_slash_no_default(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Lambda_slash_with_defaultContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_lambda_slash_with_default; - } - - SLASH() { - return this.getToken(PythonParser.SLASH, 0); - }; - - lambda_param_no_default = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Lambda_param_no_defaultContext); - } else { - return this.getTypedRuleContext(Lambda_param_no_defaultContext,i); - } - }; - - lambda_param_with_default = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Lambda_param_with_defaultContext); - } else { - return this.getTypedRuleContext(Lambda_param_with_defaultContext,i); - } - }; - - COMMA() { - return this.getToken(PythonParser.COMMA, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterLambda_slash_with_default(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitLambda_slash_with_default(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitLambda_slash_with_default(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Lambda_star_etcContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_lambda_star_etc; - } - - STAR() { - return this.getToken(PythonParser.STAR, 0); - }; - - lambda_param_no_default() { - return this.getTypedRuleContext(Lambda_param_no_defaultContext,0); - }; - - lambda_param_maybe_default = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Lambda_param_maybe_defaultContext); - } else { - return this.getTypedRuleContext(Lambda_param_maybe_defaultContext,i); - } - }; - - lambda_kwds() { - return this.getTypedRuleContext(Lambda_kwdsContext,0); - }; - - COMMA() { - return this.getToken(PythonParser.COMMA, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterLambda_star_etc(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitLambda_star_etc(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitLambda_star_etc(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Lambda_kwdsContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_lambda_kwds; - } - - DOUBLESTAR() { - return this.getToken(PythonParser.DOUBLESTAR, 0); - }; - - lambda_param_no_default() { - return this.getTypedRuleContext(Lambda_param_no_defaultContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterLambda_kwds(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitLambda_kwds(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitLambda_kwds(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Lambda_param_no_defaultContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_lambda_param_no_default; - } - - lambda_param() { - return this.getTypedRuleContext(Lambda_paramContext,0); - }; - - COMMA() { - return this.getToken(PythonParser.COMMA, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterLambda_param_no_default(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitLambda_param_no_default(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitLambda_param_no_default(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Lambda_param_with_defaultContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_lambda_param_with_default; - } - - lambda_param() { - return this.getTypedRuleContext(Lambda_paramContext,0); - }; - - default_assignment() { - return this.getTypedRuleContext(Default_assignmentContext,0); - }; - - COMMA() { - return this.getToken(PythonParser.COMMA, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterLambda_param_with_default(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitLambda_param_with_default(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitLambda_param_with_default(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Lambda_param_maybe_defaultContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_lambda_param_maybe_default; - } - - lambda_param() { - return this.getTypedRuleContext(Lambda_paramContext,0); - }; - - default_assignment() { - return this.getTypedRuleContext(Default_assignmentContext,0); - }; - - COMMA() { - return this.getToken(PythonParser.COMMA, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterLambda_param_maybe_default(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitLambda_param_maybe_default(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitLambda_param_maybe_default(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Lambda_paramContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_lambda_param; - } - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterLambda_param(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitLambda_param(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitLambda_param(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Fstring_middleContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_fstring_middle; - } - - fstring_replacement_field() { - return this.getTypedRuleContext(Fstring_replacement_fieldContext,0); - }; - - FSTRING_MIDDLE() { - return this.getToken(PythonParser.FSTRING_MIDDLE, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterFstring_middle(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitFstring_middle(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitFstring_middle(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Fstring_replacement_fieldContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_fstring_replacement_field; - } - - LBRACE() { - return this.getToken(PythonParser.LBRACE, 0); - }; - - RBRACE() { - return this.getToken(PythonParser.RBRACE, 0); - }; - - yield_expr() { - return this.getTypedRuleContext(Yield_exprContext,0); - }; - - star_expressions() { - return this.getTypedRuleContext(Star_expressionsContext,0); - }; - - EQUAL() { - return this.getToken(PythonParser.EQUAL, 0); - }; - - fstring_conversion() { - return this.getTypedRuleContext(Fstring_conversionContext,0); - }; - - fstring_full_format_spec() { - return this.getTypedRuleContext(Fstring_full_format_specContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterFstring_replacement_field(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitFstring_replacement_field(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitFstring_replacement_field(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Fstring_conversionContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_fstring_conversion; - } - - EXCLAMATION() { - return this.getToken(PythonParser.EXCLAMATION, 0); - }; - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterFstring_conversion(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitFstring_conversion(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitFstring_conversion(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Fstring_full_format_specContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_fstring_full_format_spec; - } - - COLON() { - return this.getToken(PythonParser.COLON, 0); - }; - - fstring_format_spec = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Fstring_format_specContext); - } else { - return this.getTypedRuleContext(Fstring_format_specContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterFstring_full_format_spec(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitFstring_full_format_spec(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitFstring_full_format_spec(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Fstring_format_specContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_fstring_format_spec; - } - - FSTRING_MIDDLE() { - return this.getToken(PythonParser.FSTRING_MIDDLE, 0); - }; - - fstring_replacement_field() { - return this.getTypedRuleContext(Fstring_replacement_fieldContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterFstring_format_spec(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitFstring_format_spec(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitFstring_format_spec(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class FstringContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_fstring; - } - - FSTRING_START() { - return this.getToken(PythonParser.FSTRING_START, 0); - }; - - FSTRING_END() { - return this.getToken(PythonParser.FSTRING_END, 0); - }; - - fstring_middle = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Fstring_middleContext); - } else { - return this.getTypedRuleContext(Fstring_middleContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterFstring(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitFstring(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitFstring(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class StringContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_string; - } - - STRING() { - return this.getToken(PythonParser.STRING, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterString(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitString(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitString(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class StringsContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_strings; - } - - fstring = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(FstringContext); - } else { - return this.getTypedRuleContext(FstringContext,i); - } - }; - - string = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(StringContext); - } else { - return this.getTypedRuleContext(StringContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterStrings(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitStrings(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitStrings(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class ListContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_list; - } - - LSQB() { - return this.getToken(PythonParser.LSQB, 0); - }; - - RSQB() { - return this.getToken(PythonParser.RSQB, 0); - }; - - star_named_expressions() { - return this.getTypedRuleContext(Star_named_expressionsContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterList(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitList(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitList(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class TupleContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_tuple; - } - - LPAR() { - return this.getToken(PythonParser.LPAR, 0); - }; - - RPAR() { - return this.getToken(PythonParser.RPAR, 0); - }; - - star_named_expression() { - return this.getTypedRuleContext(Star_named_expressionContext,0); - }; - - COMMA() { - return this.getToken(PythonParser.COMMA, 0); - }; - - star_named_expressions() { - return this.getTypedRuleContext(Star_named_expressionsContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterTuple(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitTuple(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitTuple(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class SetContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_set; - } - - LBRACE() { - return this.getToken(PythonParser.LBRACE, 0); - }; - - star_named_expressions() { - return this.getTypedRuleContext(Star_named_expressionsContext,0); - }; - - RBRACE() { - return this.getToken(PythonParser.RBRACE, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterSet(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitSet(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitSet(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class DictContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_dict; - } - - LBRACE() { - return this.getToken(PythonParser.LBRACE, 0); - }; - - RBRACE() { - return this.getToken(PythonParser.RBRACE, 0); - }; - - double_starred_kvpairs() { - return this.getTypedRuleContext(Double_starred_kvpairsContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterDict(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitDict(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitDict(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Double_starred_kvpairsContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_double_starred_kvpairs; - } - - double_starred_kvpair = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Double_starred_kvpairContext); - } else { - return this.getTypedRuleContext(Double_starred_kvpairContext,i); - } - }; - - COMMA = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.COMMA); - } else { - return this.getToken(PythonParser.COMMA, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterDouble_starred_kvpairs(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitDouble_starred_kvpairs(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitDouble_starred_kvpairs(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Double_starred_kvpairContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_double_starred_kvpair; - } - - DOUBLESTAR() { - return this.getToken(PythonParser.DOUBLESTAR, 0); - }; - - bitwise_or() { - return this.getTypedRuleContext(Bitwise_orContext,0); - }; - - kvpair() { - return this.getTypedRuleContext(KvpairContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterDouble_starred_kvpair(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitDouble_starred_kvpair(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitDouble_starred_kvpair(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class KvpairContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_kvpair; - } - - expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ExpressionContext); - } else { - return this.getTypedRuleContext(ExpressionContext,i); - } - }; - - COLON() { - return this.getToken(PythonParser.COLON, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterKvpair(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitKvpair(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitKvpair(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class For_if_clausesContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_for_if_clauses; - } - - for_if_clause = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(For_if_clauseContext); - } else { - return this.getTypedRuleContext(For_if_clauseContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterFor_if_clauses(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitFor_if_clauses(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitFor_if_clauses(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class For_if_clauseContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_for_if_clause; - } - - FOR() { - return this.getToken(PythonParser.FOR, 0); - }; - - star_targets() { - return this.getTypedRuleContext(Star_targetsContext,0); - }; - - IN() { - return this.getToken(PythonParser.IN, 0); - }; - - disjunction = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(DisjunctionContext); - } else { - return this.getTypedRuleContext(DisjunctionContext,i); - } - }; - - ASYNC() { - return this.getToken(PythonParser.ASYNC, 0); - }; - - IF = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.IF); - } else { - return this.getToken(PythonParser.IF, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterFor_if_clause(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitFor_if_clause(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitFor_if_clause(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class ListcompContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_listcomp; - } - - LSQB() { - return this.getToken(PythonParser.LSQB, 0); - }; - - named_expression() { - return this.getTypedRuleContext(Named_expressionContext,0); - }; - - for_if_clauses() { - return this.getTypedRuleContext(For_if_clausesContext,0); - }; - - RSQB() { - return this.getToken(PythonParser.RSQB, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterListcomp(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitListcomp(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitListcomp(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class SetcompContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_setcomp; - } - - LBRACE() { - return this.getToken(PythonParser.LBRACE, 0); - }; - - named_expression() { - return this.getTypedRuleContext(Named_expressionContext,0); - }; - - for_if_clauses() { - return this.getTypedRuleContext(For_if_clausesContext,0); - }; - - RBRACE() { - return this.getToken(PythonParser.RBRACE, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterSetcomp(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitSetcomp(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitSetcomp(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class GenexpContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_genexp; - } - - LPAR() { - return this.getToken(PythonParser.LPAR, 0); - }; - - for_if_clauses() { - return this.getTypedRuleContext(For_if_clausesContext,0); - }; - - RPAR() { - return this.getToken(PythonParser.RPAR, 0); - }; - - assignment_expression() { - return this.getTypedRuleContext(Assignment_expressionContext,0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterGenexp(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitGenexp(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitGenexp(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class DictcompContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_dictcomp; - } - - LBRACE() { - return this.getToken(PythonParser.LBRACE, 0); - }; - - kvpair() { - return this.getTypedRuleContext(KvpairContext,0); - }; - - for_if_clauses() { - return this.getTypedRuleContext(For_if_clausesContext,0); - }; - - RBRACE() { - return this.getToken(PythonParser.RBRACE, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterDictcomp(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitDictcomp(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitDictcomp(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class ArgumentsContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_arguments; - } - - args() { - return this.getTypedRuleContext(ArgsContext,0); - }; - - COMMA() { - return this.getToken(PythonParser.COMMA, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterArguments(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitArguments(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitArguments(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class ArgsContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_args; - } - - starred_expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Starred_expressionContext); - } else { - return this.getTypedRuleContext(Starred_expressionContext,i); - } - }; - - COMMA = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.COMMA); - } else { - return this.getToken(PythonParser.COMMA, i); - } - }; - - - kwargs() { - return this.getTypedRuleContext(KwargsContext,0); - }; - - assignment_expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Assignment_expressionContext); - } else { - return this.getTypedRuleContext(Assignment_expressionContext,i); - } - }; - - expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ExpressionContext); - } else { - return this.getTypedRuleContext(ExpressionContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterArgs(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitArgs(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitArgs(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class KwargsContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_kwargs; - } - - kwarg_or_starred = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Kwarg_or_starredContext); - } else { - return this.getTypedRuleContext(Kwarg_or_starredContext,i); - } - }; - - COMMA = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.COMMA); - } else { - return this.getToken(PythonParser.COMMA, i); - } - }; - - - kwarg_or_double_starred = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Kwarg_or_double_starredContext); - } else { - return this.getTypedRuleContext(Kwarg_or_double_starredContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterKwargs(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitKwargs(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitKwargs(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Starred_expressionContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_starred_expression; - } - - STAR() { - return this.getToken(PythonParser.STAR, 0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterStarred_expression(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitStarred_expression(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitStarred_expression(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Kwarg_or_starredContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_kwarg_or_starred; - } - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - EQUAL() { - return this.getToken(PythonParser.EQUAL, 0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - starred_expression() { - return this.getTypedRuleContext(Starred_expressionContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterKwarg_or_starred(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitKwarg_or_starred(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitKwarg_or_starred(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Kwarg_or_double_starredContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_kwarg_or_double_starred; - } - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - EQUAL() { - return this.getToken(PythonParser.EQUAL, 0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - DOUBLESTAR() { - return this.getToken(PythonParser.DOUBLESTAR, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterKwarg_or_double_starred(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitKwarg_or_double_starred(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitKwarg_or_double_starred(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Star_targetsContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_star_targets; - } - - star_target = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Star_targetContext); - } else { - return this.getTypedRuleContext(Star_targetContext,i); - } - }; - - COMMA = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.COMMA); - } else { - return this.getToken(PythonParser.COMMA, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterStar_targets(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitStar_targets(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitStar_targets(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Star_targets_list_seqContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_star_targets_list_seq; - } - - star_target = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Star_targetContext); - } else { - return this.getTypedRuleContext(Star_targetContext,i); - } - }; - - COMMA = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.COMMA); - } else { - return this.getToken(PythonParser.COMMA, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterStar_targets_list_seq(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitStar_targets_list_seq(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitStar_targets_list_seq(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Star_targets_tuple_seqContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_star_targets_tuple_seq; - } - - star_target = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Star_targetContext); - } else { - return this.getTypedRuleContext(Star_targetContext,i); - } - }; - - COMMA = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.COMMA); - } else { - return this.getToken(PythonParser.COMMA, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterStar_targets_tuple_seq(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitStar_targets_tuple_seq(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitStar_targets_tuple_seq(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Star_targetContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_star_target; - } - - STAR() { - return this.getToken(PythonParser.STAR, 0); - }; - - star_target() { - return this.getTypedRuleContext(Star_targetContext,0); - }; - - target_with_star_atom() { - return this.getTypedRuleContext(Target_with_star_atomContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterStar_target(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitStar_target(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitStar_target(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Target_with_star_atomContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_target_with_star_atom; - } - - t_primary() { - return this.getTypedRuleContext(T_primaryContext,0); - }; - - DOT() { - return this.getToken(PythonParser.DOT, 0); - }; - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - LSQB() { - return this.getToken(PythonParser.LSQB, 0); - }; - - slices() { - return this.getTypedRuleContext(SlicesContext,0); - }; - - RSQB() { - return this.getToken(PythonParser.RSQB, 0); - }; - - star_atom() { - return this.getTypedRuleContext(Star_atomContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterTarget_with_star_atom(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitTarget_with_star_atom(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitTarget_with_star_atom(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Star_atomContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_star_atom; - } - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - LPAR() { - return this.getToken(PythonParser.LPAR, 0); - }; - - target_with_star_atom() { - return this.getTypedRuleContext(Target_with_star_atomContext,0); - }; - - RPAR() { - return this.getToken(PythonParser.RPAR, 0); - }; - - star_targets_tuple_seq() { - return this.getTypedRuleContext(Star_targets_tuple_seqContext,0); - }; - - LSQB() { - return this.getToken(PythonParser.LSQB, 0); - }; - - RSQB() { - return this.getToken(PythonParser.RSQB, 0); - }; - - star_targets_list_seq() { - return this.getTypedRuleContext(Star_targets_list_seqContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterStar_atom(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitStar_atom(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitStar_atom(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Single_targetContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_single_target; - } - - single_subscript_attribute_target() { - return this.getTypedRuleContext(Single_subscript_attribute_targetContext,0); - }; - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - LPAR() { - return this.getToken(PythonParser.LPAR, 0); - }; - - single_target() { - return this.getTypedRuleContext(Single_targetContext,0); - }; - - RPAR() { - return this.getToken(PythonParser.RPAR, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterSingle_target(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitSingle_target(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitSingle_target(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Single_subscript_attribute_targetContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_single_subscript_attribute_target; - } - - t_primary() { - return this.getTypedRuleContext(T_primaryContext,0); - }; - - DOT() { - return this.getToken(PythonParser.DOT, 0); - }; - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - LSQB() { - return this.getToken(PythonParser.LSQB, 0); - }; - - slices() { - return this.getTypedRuleContext(SlicesContext,0); - }; - - RSQB() { - return this.getToken(PythonParser.RSQB, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterSingle_subscript_attribute_target(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitSingle_subscript_attribute_target(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitSingle_subscript_attribute_target(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class T_primaryContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_t_primary; - } - - atom() { - return this.getTypedRuleContext(AtomContext,0); - }; - - t_primary() { - return this.getTypedRuleContext(T_primaryContext,0); - }; - - DOT() { - return this.getToken(PythonParser.DOT, 0); - }; - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - LSQB() { - return this.getToken(PythonParser.LSQB, 0); - }; - - slices() { - return this.getTypedRuleContext(SlicesContext,0); - }; - - RSQB() { - return this.getToken(PythonParser.RSQB, 0); - }; - - genexp() { - return this.getTypedRuleContext(GenexpContext,0); - }; - - LPAR() { - return this.getToken(PythonParser.LPAR, 0); - }; - - RPAR() { - return this.getToken(PythonParser.RPAR, 0); - }; - - arguments() { - return this.getTypedRuleContext(ArgumentsContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterT_primary(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitT_primary(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitT_primary(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Del_targetsContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_del_targets; - } - - del_target = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Del_targetContext); - } else { - return this.getTypedRuleContext(Del_targetContext,i); - } - }; - - COMMA = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.COMMA); - } else { - return this.getToken(PythonParser.COMMA, i); - } - }; - - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterDel_targets(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitDel_targets(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitDel_targets(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Del_targetContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_del_target; - } - - t_primary() { - return this.getTypedRuleContext(T_primaryContext,0); - }; - - DOT() { - return this.getToken(PythonParser.DOT, 0); - }; - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - LSQB() { - return this.getToken(PythonParser.LSQB, 0); - }; - - slices() { - return this.getTypedRuleContext(SlicesContext,0); - }; - - RSQB() { - return this.getToken(PythonParser.RSQB, 0); - }; - - del_t_atom() { - return this.getTypedRuleContext(Del_t_atomContext,0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterDel_target(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitDel_target(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitDel_target(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Del_t_atomContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_del_t_atom; - } - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - LPAR() { - return this.getToken(PythonParser.LPAR, 0); - }; - - del_target() { - return this.getTypedRuleContext(Del_targetContext,0); - }; - - RPAR() { - return this.getToken(PythonParser.RPAR, 0); - }; - - del_targets() { - return this.getTypedRuleContext(Del_targetsContext,0); - }; - - LSQB() { - return this.getToken(PythonParser.LSQB, 0); - }; - - RSQB() { - return this.getToken(PythonParser.RSQB, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterDel_t_atom(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitDel_t_atom(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitDel_t_atom(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Type_expressionsContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_type_expressions; - } - - expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ExpressionContext); - } else { - return this.getTypedRuleContext(ExpressionContext,i); - } - }; - - COMMA = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(PythonParser.COMMA); - } else { - return this.getToken(PythonParser.COMMA, i); - } - }; - - - STAR() { - return this.getToken(PythonParser.STAR, 0); - }; - - DOUBLESTAR() { - return this.getToken(PythonParser.DOUBLESTAR, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterType_expressions(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitType_expressions(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitType_expressions(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Func_type_commentContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_func_type_comment; - } - - NEWLINE() { - return this.getToken(PythonParser.NEWLINE, 0); - }; - - TYPE_COMMENT() { - return this.getToken(PythonParser.TYPE_COMMENT, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterFunc_type_comment(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitFunc_type_comment(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitFunc_type_comment(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Soft_kw_typeContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_soft_kw_type; - } - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterSoft_kw_type(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitSoft_kw_type(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitSoft_kw_type(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Soft_kw_matchContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_soft_kw_match; - } - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterSoft_kw_match(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitSoft_kw_match(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitSoft_kw_match(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Soft_kw_caseContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_soft_kw_case; - } - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterSoft_kw_case(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitSoft_kw_case(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitSoft_kw_case(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Soft_kw_wildcardContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_soft_kw_wildcard; - } - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterSoft_kw_wildcard(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitSoft_kw_wildcard(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitSoft_kw_wildcard(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - -class Soft_kw__not__wildcardContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = PythonParser.RULE_soft_kw__not__wildcard; - } - - NAME() { - return this.getToken(PythonParser.NAME, 0); - }; - - enterRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.enterSoft_kw__not__wildcard(this); - } - } - - exitRule(listener) { - if(listener instanceof PythonParserListener ) { - listener.exitSoft_kw__not__wildcard(this); - } - } - - accept(visitor) { - if ( visitor instanceof PythonParserVisitor ) { - return visitor.visitSoft_kw__not__wildcard(this); - } else { - return visitor.visitChildren(this); - } - } - - -} - - - - -PythonParser.File_inputContext = File_inputContext; -PythonParser.InteractiveContext = InteractiveContext; -PythonParser.EvalContext = EvalContext; -PythonParser.Func_typeContext = Func_typeContext; -PythonParser.Fstring_inputContext = Fstring_inputContext; -PythonParser.StatementsContext = StatementsContext; -PythonParser.StatementContext = StatementContext; -PythonParser.Statement_newlineContext = Statement_newlineContext; -PythonParser.Simple_stmtsContext = Simple_stmtsContext; -PythonParser.Simple_stmtContext = Simple_stmtContext; -PythonParser.Compound_stmtContext = Compound_stmtContext; -PythonParser.AssignmentContext = AssignmentContext; -PythonParser.Annotated_rhsContext = Annotated_rhsContext; -PythonParser.AugassignContext = AugassignContext; -PythonParser.Return_stmtContext = Return_stmtContext; -PythonParser.Raise_stmtContext = Raise_stmtContext; -PythonParser.Global_stmtContext = Global_stmtContext; -PythonParser.Nonlocal_stmtContext = Nonlocal_stmtContext; -PythonParser.Del_stmtContext = Del_stmtContext; -PythonParser.Yield_stmtContext = Yield_stmtContext; -PythonParser.Assert_stmtContext = Assert_stmtContext; -PythonParser.Import_stmtContext = Import_stmtContext; -PythonParser.Import_nameContext = Import_nameContext; -PythonParser.Import_fromContext = Import_fromContext; -PythonParser.Import_from_targetsContext = Import_from_targetsContext; -PythonParser.Import_from_as_namesContext = Import_from_as_namesContext; -PythonParser.Import_from_as_nameContext = Import_from_as_nameContext; -PythonParser.Dotted_as_namesContext = Dotted_as_namesContext; -PythonParser.Dotted_as_nameContext = Dotted_as_nameContext; -PythonParser.Dotted_nameContext = Dotted_nameContext; -PythonParser.BlockContext = BlockContext; -PythonParser.DecoratorsContext = DecoratorsContext; -PythonParser.Class_defContext = Class_defContext; -PythonParser.Class_def_rawContext = Class_def_rawContext; -PythonParser.Function_defContext = Function_defContext; -PythonParser.Function_def_rawContext = Function_def_rawContext; -PythonParser.ParamsContext = ParamsContext; -PythonParser.ParametersContext = ParametersContext; -PythonParser.Slash_no_defaultContext = Slash_no_defaultContext; -PythonParser.Slash_with_defaultContext = Slash_with_defaultContext; -PythonParser.Star_etcContext = Star_etcContext; -PythonParser.KwdsContext = KwdsContext; -PythonParser.Param_no_defaultContext = Param_no_defaultContext; -PythonParser.Param_no_default_star_annotationContext = Param_no_default_star_annotationContext; -PythonParser.Param_with_defaultContext = Param_with_defaultContext; -PythonParser.Param_maybe_defaultContext = Param_maybe_defaultContext; -PythonParser.ParamContext = ParamContext; -PythonParser.Param_star_annotationContext = Param_star_annotationContext; -PythonParser.AnnotationContext = AnnotationContext; -PythonParser.Star_annotationContext = Star_annotationContext; -PythonParser.Default_assignmentContext = Default_assignmentContext; -PythonParser.If_stmtContext = If_stmtContext; -PythonParser.Elif_stmtContext = Elif_stmtContext; -PythonParser.Else_blockContext = Else_blockContext; -PythonParser.While_stmtContext = While_stmtContext; -PythonParser.For_stmtContext = For_stmtContext; -PythonParser.With_stmtContext = With_stmtContext; -PythonParser.With_itemContext = With_itemContext; -PythonParser.Try_stmtContext = Try_stmtContext; -PythonParser.Except_blockContext = Except_blockContext; -PythonParser.Except_star_blockContext = Except_star_blockContext; -PythonParser.Finally_blockContext = Finally_blockContext; -PythonParser.Match_stmtContext = Match_stmtContext; -PythonParser.Subject_exprContext = Subject_exprContext; -PythonParser.Case_blockContext = Case_blockContext; -PythonParser.GuardContext = GuardContext; -PythonParser.PatternsContext = PatternsContext; -PythonParser.PatternContext = PatternContext; -PythonParser.As_patternContext = As_patternContext; -PythonParser.Or_patternContext = Or_patternContext; -PythonParser.Closed_patternContext = Closed_patternContext; -PythonParser.Literal_patternContext = Literal_patternContext; -PythonParser.Literal_exprContext = Literal_exprContext; -PythonParser.Complex_numberContext = Complex_numberContext; -PythonParser.Signed_numberContext = Signed_numberContext; -PythonParser.Signed_real_numberContext = Signed_real_numberContext; -PythonParser.Real_numberContext = Real_numberContext; -PythonParser.Imaginary_numberContext = Imaginary_numberContext; -PythonParser.Capture_patternContext = Capture_patternContext; -PythonParser.Pattern_capture_targetContext = Pattern_capture_targetContext; -PythonParser.Wildcard_patternContext = Wildcard_patternContext; -PythonParser.Value_patternContext = Value_patternContext; -PythonParser.AttrContext = AttrContext; -PythonParser.Name_or_attrContext = Name_or_attrContext; -PythonParser.Group_patternContext = Group_patternContext; -PythonParser.Sequence_patternContext = Sequence_patternContext; -PythonParser.Open_sequence_patternContext = Open_sequence_patternContext; -PythonParser.Maybe_sequence_patternContext = Maybe_sequence_patternContext; -PythonParser.Maybe_star_patternContext = Maybe_star_patternContext; -PythonParser.Star_patternContext = Star_patternContext; -PythonParser.Mapping_patternContext = Mapping_patternContext; -PythonParser.Items_patternContext = Items_patternContext; -PythonParser.Key_value_patternContext = Key_value_patternContext; -PythonParser.Double_star_patternContext = Double_star_patternContext; -PythonParser.Class_patternContext = Class_patternContext; -PythonParser.Positional_patternsContext = Positional_patternsContext; -PythonParser.Keyword_patternsContext = Keyword_patternsContext; -PythonParser.Keyword_patternContext = Keyword_patternContext; -PythonParser.Type_aliasContext = Type_aliasContext; -PythonParser.Type_paramsContext = Type_paramsContext; -PythonParser.Type_param_seqContext = Type_param_seqContext; -PythonParser.Type_paramContext = Type_paramContext; -PythonParser.Type_param_boundContext = Type_param_boundContext; -PythonParser.ExpressionsContext = ExpressionsContext; -PythonParser.ExpressionContext = ExpressionContext; -PythonParser.Yield_exprContext = Yield_exprContext; -PythonParser.Star_expressionsContext = Star_expressionsContext; -PythonParser.Star_expressionContext = Star_expressionContext; -PythonParser.Star_named_expressionsContext = Star_named_expressionsContext; -PythonParser.Star_named_expressionContext = Star_named_expressionContext; -PythonParser.Assignment_expressionContext = Assignment_expressionContext; -PythonParser.Named_expressionContext = Named_expressionContext; -PythonParser.DisjunctionContext = DisjunctionContext; -PythonParser.ConjunctionContext = ConjunctionContext; -PythonParser.InversionContext = InversionContext; -PythonParser.ComparisonContext = ComparisonContext; -PythonParser.Compare_op_bitwise_or_pairContext = Compare_op_bitwise_or_pairContext; -PythonParser.Eq_bitwise_orContext = Eq_bitwise_orContext; -PythonParser.Noteq_bitwise_orContext = Noteq_bitwise_orContext; -PythonParser.Lte_bitwise_orContext = Lte_bitwise_orContext; -PythonParser.Lt_bitwise_orContext = Lt_bitwise_orContext; -PythonParser.Gte_bitwise_orContext = Gte_bitwise_orContext; -PythonParser.Gt_bitwise_orContext = Gt_bitwise_orContext; -PythonParser.Notin_bitwise_orContext = Notin_bitwise_orContext; -PythonParser.In_bitwise_orContext = In_bitwise_orContext; -PythonParser.Isnot_bitwise_orContext = Isnot_bitwise_orContext; -PythonParser.Is_bitwise_orContext = Is_bitwise_orContext; -PythonParser.Bitwise_orContext = Bitwise_orContext; -PythonParser.Bitwise_xorContext = Bitwise_xorContext; -PythonParser.Bitwise_andContext = Bitwise_andContext; -PythonParser.Shift_exprContext = Shift_exprContext; -PythonParser.SumContext = SumContext; -PythonParser.TermContext = TermContext; -PythonParser.FactorContext = FactorContext; -PythonParser.PowerContext = PowerContext; -PythonParser.Await_primaryContext = Await_primaryContext; -PythonParser.PrimaryContext = PrimaryContext; -PythonParser.SlicesContext = SlicesContext; -PythonParser.SliceContext = SliceContext; -PythonParser.AtomContext = AtomContext; -PythonParser.GroupContext = GroupContext; -PythonParser.LambdefContext = LambdefContext; -PythonParser.Lambda_paramsContext = Lambda_paramsContext; -PythonParser.Lambda_parametersContext = Lambda_parametersContext; -PythonParser.Lambda_slash_no_defaultContext = Lambda_slash_no_defaultContext; -PythonParser.Lambda_slash_with_defaultContext = Lambda_slash_with_defaultContext; -PythonParser.Lambda_star_etcContext = Lambda_star_etcContext; -PythonParser.Lambda_kwdsContext = Lambda_kwdsContext; -PythonParser.Lambda_param_no_defaultContext = Lambda_param_no_defaultContext; -PythonParser.Lambda_param_with_defaultContext = Lambda_param_with_defaultContext; -PythonParser.Lambda_param_maybe_defaultContext = Lambda_param_maybe_defaultContext; -PythonParser.Lambda_paramContext = Lambda_paramContext; -PythonParser.Fstring_middleContext = Fstring_middleContext; -PythonParser.Fstring_replacement_fieldContext = Fstring_replacement_fieldContext; -PythonParser.Fstring_conversionContext = Fstring_conversionContext; -PythonParser.Fstring_full_format_specContext = Fstring_full_format_specContext; -PythonParser.Fstring_format_specContext = Fstring_format_specContext; -PythonParser.FstringContext = FstringContext; -PythonParser.StringContext = StringContext; -PythonParser.StringsContext = StringsContext; -PythonParser.ListContext = ListContext; -PythonParser.TupleContext = TupleContext; -PythonParser.SetContext = SetContext; -PythonParser.DictContext = DictContext; -PythonParser.Double_starred_kvpairsContext = Double_starred_kvpairsContext; -PythonParser.Double_starred_kvpairContext = Double_starred_kvpairContext; -PythonParser.KvpairContext = KvpairContext; -PythonParser.For_if_clausesContext = For_if_clausesContext; -PythonParser.For_if_clauseContext = For_if_clauseContext; -PythonParser.ListcompContext = ListcompContext; -PythonParser.SetcompContext = SetcompContext; -PythonParser.GenexpContext = GenexpContext; -PythonParser.DictcompContext = DictcompContext; -PythonParser.ArgumentsContext = ArgumentsContext; -PythonParser.ArgsContext = ArgsContext; -PythonParser.KwargsContext = KwargsContext; -PythonParser.Starred_expressionContext = Starred_expressionContext; -PythonParser.Kwarg_or_starredContext = Kwarg_or_starredContext; -PythonParser.Kwarg_or_double_starredContext = Kwarg_or_double_starredContext; -PythonParser.Star_targetsContext = Star_targetsContext; -PythonParser.Star_targets_list_seqContext = Star_targets_list_seqContext; -PythonParser.Star_targets_tuple_seqContext = Star_targets_tuple_seqContext; -PythonParser.Star_targetContext = Star_targetContext; -PythonParser.Target_with_star_atomContext = Target_with_star_atomContext; -PythonParser.Star_atomContext = Star_atomContext; -PythonParser.Single_targetContext = Single_targetContext; -PythonParser.Single_subscript_attribute_targetContext = Single_subscript_attribute_targetContext; -PythonParser.T_primaryContext = T_primaryContext; -PythonParser.Del_targetsContext = Del_targetsContext; -PythonParser.Del_targetContext = Del_targetContext; -PythonParser.Del_t_atomContext = Del_t_atomContext; -PythonParser.Type_expressionsContext = Type_expressionsContext; -PythonParser.Func_type_commentContext = Func_type_commentContext; -PythonParser.Soft_kw_typeContext = Soft_kw_typeContext; -PythonParser.Soft_kw_matchContext = Soft_kw_matchContext; -PythonParser.Soft_kw_caseContext = Soft_kw_caseContext; -PythonParser.Soft_kw_wildcardContext = Soft_kw_wildcardContext; -PythonParser.Soft_kw__not__wildcardContext = Soft_kw__not__wildcardContext; diff --git a/codemetrica/py/parser/python3_12_1/PythonParserBase.js b/codemetrica/py/parser/python3_12_1/PythonParserBase.js deleted file mode 100644 index 58bc59b..0000000 --- a/codemetrica/py/parser/python3_12_1/PythonParserBase.js +++ /dev/null @@ -1,15 +0,0 @@ -import antlr4 from "antlr4"; - -export default class PythonParserBase extends antlr4.Parser { - constructor(input) { - super(input); - } - - isEqualToCurrentTokenText(tokenText) { - return this.getCurrentToken().text === tokenText; - } - - isnotEqualToCurrentTokenText(tokenText) { - return !this.isEqualToCurrentTokenText(tokenText); // for compatibility with the Python 'not' logical operator - } -} diff --git a/codemetrica/py/parser/python3_12_1/PythonParserListener.js b/codemetrica/py/parser/python3_12_1/PythonParserListener.js deleted file mode 100644 index 2eba343..0000000 --- a/codemetrica/py/parser/python3_12_1/PythonParserListener.js +++ /dev/null @@ -1,1791 +0,0 @@ -// Generated from PythonParser.g4 by ANTLR 4.13.2 -// jshint ignore: start -import antlr4 from 'antlr4'; - -// This class defines a complete listener for a parse tree produced by PythonParser. -export default class PythonParserListener extends antlr4.tree.ParseTreeListener { - - // Enter a parse tree produced by PythonParser#file_input. - enterFile_input(ctx) { - } - - // Exit a parse tree produced by PythonParser#file_input. - exitFile_input(ctx) { - } - - - // Enter a parse tree produced by PythonParser#interactive. - enterInteractive(ctx) { - } - - // Exit a parse tree produced by PythonParser#interactive. - exitInteractive(ctx) { - } - - - // Enter a parse tree produced by PythonParser#eval. - enterEval(ctx) { - } - - // Exit a parse tree produced by PythonParser#eval. - exitEval(ctx) { - } - - - // Enter a parse tree produced by PythonParser#func_type. - enterFunc_type(ctx) { - } - - // Exit a parse tree produced by PythonParser#func_type. - exitFunc_type(ctx) { - } - - - // Enter a parse tree produced by PythonParser#fstring_input. - enterFstring_input(ctx) { - } - - // Exit a parse tree produced by PythonParser#fstring_input. - exitFstring_input(ctx) { - } - - - // Enter a parse tree produced by PythonParser#statements. - enterStatements(ctx) { - } - - // Exit a parse tree produced by PythonParser#statements. - exitStatements(ctx) { - } - - - // Enter a parse tree produced by PythonParser#statement. - enterStatement(ctx) { - } - - // Exit a parse tree produced by PythonParser#statement. - exitStatement(ctx) { - } - - - // Enter a parse tree produced by PythonParser#statement_newline. - enterStatement_newline(ctx) { - } - - // Exit a parse tree produced by PythonParser#statement_newline. - exitStatement_newline(ctx) { - } - - - // Enter a parse tree produced by PythonParser#simple_stmts. - enterSimple_stmts(ctx) { - } - - // Exit a parse tree produced by PythonParser#simple_stmts. - exitSimple_stmts(ctx) { - } - - - // Enter a parse tree produced by PythonParser#simple_stmt. - enterSimple_stmt(ctx) { - } - - // Exit a parse tree produced by PythonParser#simple_stmt. - exitSimple_stmt(ctx) { - } - - - // Enter a parse tree produced by PythonParser#compound_stmt. - enterCompound_stmt(ctx) { - } - - // Exit a parse tree produced by PythonParser#compound_stmt. - exitCompound_stmt(ctx) { - } - - - // Enter a parse tree produced by PythonParser#assignment. - enterAssignment(ctx) { - } - - // Exit a parse tree produced by PythonParser#assignment. - exitAssignment(ctx) { - } - - - // Enter a parse tree produced by PythonParser#annotated_rhs. - enterAnnotated_rhs(ctx) { - } - - // Exit a parse tree produced by PythonParser#annotated_rhs. - exitAnnotated_rhs(ctx) { - } - - - // Enter a parse tree produced by PythonParser#augassign. - enterAugassign(ctx) { - } - - // Exit a parse tree produced by PythonParser#augassign. - exitAugassign(ctx) { - } - - - // Enter a parse tree produced by PythonParser#return_stmt. - enterReturn_stmt(ctx) { - } - - // Exit a parse tree produced by PythonParser#return_stmt. - exitReturn_stmt(ctx) { - } - - - // Enter a parse tree produced by PythonParser#raise_stmt. - enterRaise_stmt(ctx) { - } - - // Exit a parse tree produced by PythonParser#raise_stmt. - exitRaise_stmt(ctx) { - } - - - // Enter a parse tree produced by PythonParser#global_stmt. - enterGlobal_stmt(ctx) { - } - - // Exit a parse tree produced by PythonParser#global_stmt. - exitGlobal_stmt(ctx) { - } - - - // Enter a parse tree produced by PythonParser#nonlocal_stmt. - enterNonlocal_stmt(ctx) { - } - - // Exit a parse tree produced by PythonParser#nonlocal_stmt. - exitNonlocal_stmt(ctx) { - } - - - // Enter a parse tree produced by PythonParser#del_stmt. - enterDel_stmt(ctx) { - } - - // Exit a parse tree produced by PythonParser#del_stmt. - exitDel_stmt(ctx) { - } - - - // Enter a parse tree produced by PythonParser#yield_stmt. - enterYield_stmt(ctx) { - } - - // Exit a parse tree produced by PythonParser#yield_stmt. - exitYield_stmt(ctx) { - } - - - // Enter a parse tree produced by PythonParser#assert_stmt. - enterAssert_stmt(ctx) { - } - - // Exit a parse tree produced by PythonParser#assert_stmt. - exitAssert_stmt(ctx) { - } - - - // Enter a parse tree produced by PythonParser#import_stmt. - enterImport_stmt(ctx) { - } - - // Exit a parse tree produced by PythonParser#import_stmt. - exitImport_stmt(ctx) { - } - - - // Enter a parse tree produced by PythonParser#import_name. - enterImport_name(ctx) { - } - - // Exit a parse tree produced by PythonParser#import_name. - exitImport_name(ctx) { - } - - - // Enter a parse tree produced by PythonParser#import_from. - enterImport_from(ctx) { - } - - // Exit a parse tree produced by PythonParser#import_from. - exitImport_from(ctx) { - } - - - // Enter a parse tree produced by PythonParser#import_from_targets. - enterImport_from_targets(ctx) { - } - - // Exit a parse tree produced by PythonParser#import_from_targets. - exitImport_from_targets(ctx) { - } - - - // Enter a parse tree produced by PythonParser#import_from_as_names. - enterImport_from_as_names(ctx) { - } - - // Exit a parse tree produced by PythonParser#import_from_as_names. - exitImport_from_as_names(ctx) { - } - - - // Enter a parse tree produced by PythonParser#import_from_as_name. - enterImport_from_as_name(ctx) { - } - - // Exit a parse tree produced by PythonParser#import_from_as_name. - exitImport_from_as_name(ctx) { - } - - - // Enter a parse tree produced by PythonParser#dotted_as_names. - enterDotted_as_names(ctx) { - } - - // Exit a parse tree produced by PythonParser#dotted_as_names. - exitDotted_as_names(ctx) { - } - - - // Enter a parse tree produced by PythonParser#dotted_as_name. - enterDotted_as_name(ctx) { - } - - // Exit a parse tree produced by PythonParser#dotted_as_name. - exitDotted_as_name(ctx) { - } - - - // Enter a parse tree produced by PythonParser#dotted_name. - enterDotted_name(ctx) { - } - - // Exit a parse tree produced by PythonParser#dotted_name. - exitDotted_name(ctx) { - } - - - // Enter a parse tree produced by PythonParser#block. - enterBlock(ctx) { - } - - // Exit a parse tree produced by PythonParser#block. - exitBlock(ctx) { - } - - - // Enter a parse tree produced by PythonParser#decorators. - enterDecorators(ctx) { - } - - // Exit a parse tree produced by PythonParser#decorators. - exitDecorators(ctx) { - } - - - // Enter a parse tree produced by PythonParser#class_def. - enterClass_def(ctx) { - } - - // Exit a parse tree produced by PythonParser#class_def. - exitClass_def(ctx) { - } - - - // Enter a parse tree produced by PythonParser#class_def_raw. - enterClass_def_raw(ctx) { - } - - // Exit a parse tree produced by PythonParser#class_def_raw. - exitClass_def_raw(ctx) { - } - - - // Enter a parse tree produced by PythonParser#function_def. - enterFunction_def(ctx) { - } - - // Exit a parse tree produced by PythonParser#function_def. - exitFunction_def(ctx) { - } - - - // Enter a parse tree produced by PythonParser#function_def_raw. - enterFunction_def_raw(ctx) { - } - - // Exit a parse tree produced by PythonParser#function_def_raw. - exitFunction_def_raw(ctx) { - } - - - // Enter a parse tree produced by PythonParser#params. - enterParams(ctx) { - } - - // Exit a parse tree produced by PythonParser#params. - exitParams(ctx) { - } - - - // Enter a parse tree produced by PythonParser#parameters. - enterParameters(ctx) { - } - - // Exit a parse tree produced by PythonParser#parameters. - exitParameters(ctx) { - } - - - // Enter a parse tree produced by PythonParser#slash_no_default. - enterSlash_no_default(ctx) { - } - - // Exit a parse tree produced by PythonParser#slash_no_default. - exitSlash_no_default(ctx) { - } - - - // Enter a parse tree produced by PythonParser#slash_with_default. - enterSlash_with_default(ctx) { - } - - // Exit a parse tree produced by PythonParser#slash_with_default. - exitSlash_with_default(ctx) { - } - - - // Enter a parse tree produced by PythonParser#star_etc. - enterStar_etc(ctx) { - } - - // Exit a parse tree produced by PythonParser#star_etc. - exitStar_etc(ctx) { - } - - - // Enter a parse tree produced by PythonParser#kwds. - enterKwds(ctx) { - } - - // Exit a parse tree produced by PythonParser#kwds. - exitKwds(ctx) { - } - - - // Enter a parse tree produced by PythonParser#param_no_default. - enterParam_no_default(ctx) { - } - - // Exit a parse tree produced by PythonParser#param_no_default. - exitParam_no_default(ctx) { - } - - - // Enter a parse tree produced by PythonParser#param_no_default_star_annotation. - enterParam_no_default_star_annotation(ctx) { - } - - // Exit a parse tree produced by PythonParser#param_no_default_star_annotation. - exitParam_no_default_star_annotation(ctx) { - } - - - // Enter a parse tree produced by PythonParser#param_with_default. - enterParam_with_default(ctx) { - } - - // Exit a parse tree produced by PythonParser#param_with_default. - exitParam_with_default(ctx) { - } - - - // Enter a parse tree produced by PythonParser#param_maybe_default. - enterParam_maybe_default(ctx) { - } - - // Exit a parse tree produced by PythonParser#param_maybe_default. - exitParam_maybe_default(ctx) { - } - - - // Enter a parse tree produced by PythonParser#param. - enterParam(ctx) { - } - - // Exit a parse tree produced by PythonParser#param. - exitParam(ctx) { - } - - - // Enter a parse tree produced by PythonParser#param_star_annotation. - enterParam_star_annotation(ctx) { - } - - // Exit a parse tree produced by PythonParser#param_star_annotation. - exitParam_star_annotation(ctx) { - } - - - // Enter a parse tree produced by PythonParser#annotation. - enterAnnotation(ctx) { - } - - // Exit a parse tree produced by PythonParser#annotation. - exitAnnotation(ctx) { - } - - - // Enter a parse tree produced by PythonParser#star_annotation. - enterStar_annotation(ctx) { - } - - // Exit a parse tree produced by PythonParser#star_annotation. - exitStar_annotation(ctx) { - } - - - // Enter a parse tree produced by PythonParser#default_assignment. - enterDefault_assignment(ctx) { - } - - // Exit a parse tree produced by PythonParser#default_assignment. - exitDefault_assignment(ctx) { - } - - - // Enter a parse tree produced by PythonParser#if_stmt. - enterIf_stmt(ctx) { - } - - // Exit a parse tree produced by PythonParser#if_stmt. - exitIf_stmt(ctx) { - } - - - // Enter a parse tree produced by PythonParser#elif_stmt. - enterElif_stmt(ctx) { - } - - // Exit a parse tree produced by PythonParser#elif_stmt. - exitElif_stmt(ctx) { - } - - - // Enter a parse tree produced by PythonParser#else_block. - enterElse_block(ctx) { - } - - // Exit a parse tree produced by PythonParser#else_block. - exitElse_block(ctx) { - } - - - // Enter a parse tree produced by PythonParser#while_stmt. - enterWhile_stmt(ctx) { - } - - // Exit a parse tree produced by PythonParser#while_stmt. - exitWhile_stmt(ctx) { - } - - - // Enter a parse tree produced by PythonParser#for_stmt. - enterFor_stmt(ctx) { - } - - // Exit a parse tree produced by PythonParser#for_stmt. - exitFor_stmt(ctx) { - } - - - // Enter a parse tree produced by PythonParser#with_stmt. - enterWith_stmt(ctx) { - } - - // Exit a parse tree produced by PythonParser#with_stmt. - exitWith_stmt(ctx) { - } - - - // Enter a parse tree produced by PythonParser#with_item. - enterWith_item(ctx) { - } - - // Exit a parse tree produced by PythonParser#with_item. - exitWith_item(ctx) { - } - - - // Enter a parse tree produced by PythonParser#try_stmt. - enterTry_stmt(ctx) { - } - - // Exit a parse tree produced by PythonParser#try_stmt. - exitTry_stmt(ctx) { - } - - - // Enter a parse tree produced by PythonParser#except_block. - enterExcept_block(ctx) { - } - - // Exit a parse tree produced by PythonParser#except_block. - exitExcept_block(ctx) { - } - - - // Enter a parse tree produced by PythonParser#except_star_block. - enterExcept_star_block(ctx) { - } - - // Exit a parse tree produced by PythonParser#except_star_block. - exitExcept_star_block(ctx) { - } - - - // Enter a parse tree produced by PythonParser#finally_block. - enterFinally_block(ctx) { - } - - // Exit a parse tree produced by PythonParser#finally_block. - exitFinally_block(ctx) { - } - - - // Enter a parse tree produced by PythonParser#match_stmt. - enterMatch_stmt(ctx) { - } - - // Exit a parse tree produced by PythonParser#match_stmt. - exitMatch_stmt(ctx) { - } - - - // Enter a parse tree produced by PythonParser#subject_expr. - enterSubject_expr(ctx) { - } - - // Exit a parse tree produced by PythonParser#subject_expr. - exitSubject_expr(ctx) { - } - - - // Enter a parse tree produced by PythonParser#case_block. - enterCase_block(ctx) { - } - - // Exit a parse tree produced by PythonParser#case_block. - exitCase_block(ctx) { - } - - - // Enter a parse tree produced by PythonParser#guard. - enterGuard(ctx) { - } - - // Exit a parse tree produced by PythonParser#guard. - exitGuard(ctx) { - } - - - // Enter a parse tree produced by PythonParser#patterns. - enterPatterns(ctx) { - } - - // Exit a parse tree produced by PythonParser#patterns. - exitPatterns(ctx) { - } - - - // Enter a parse tree produced by PythonParser#pattern. - enterPattern(ctx) { - } - - // Exit a parse tree produced by PythonParser#pattern. - exitPattern(ctx) { - } - - - // Enter a parse tree produced by PythonParser#as_pattern. - enterAs_pattern(ctx) { - } - - // Exit a parse tree produced by PythonParser#as_pattern. - exitAs_pattern(ctx) { - } - - - // Enter a parse tree produced by PythonParser#or_pattern. - enterOr_pattern(ctx) { - } - - // Exit a parse tree produced by PythonParser#or_pattern. - exitOr_pattern(ctx) { - } - - - // Enter a parse tree produced by PythonParser#closed_pattern. - enterClosed_pattern(ctx) { - } - - // Exit a parse tree produced by PythonParser#closed_pattern. - exitClosed_pattern(ctx) { - } - - - // Enter a parse tree produced by PythonParser#literal_pattern. - enterLiteral_pattern(ctx) { - } - - // Exit a parse tree produced by PythonParser#literal_pattern. - exitLiteral_pattern(ctx) { - } - - - // Enter a parse tree produced by PythonParser#literal_expr. - enterLiteral_expr(ctx) { - } - - // Exit a parse tree produced by PythonParser#literal_expr. - exitLiteral_expr(ctx) { - } - - - // Enter a parse tree produced by PythonParser#complex_number. - enterComplex_number(ctx) { - } - - // Exit a parse tree produced by PythonParser#complex_number. - exitComplex_number(ctx) { - } - - - // Enter a parse tree produced by PythonParser#signed_number. - enterSigned_number(ctx) { - } - - // Exit a parse tree produced by PythonParser#signed_number. - exitSigned_number(ctx) { - } - - - // Enter a parse tree produced by PythonParser#signed_real_number. - enterSigned_real_number(ctx) { - } - - // Exit a parse tree produced by PythonParser#signed_real_number. - exitSigned_real_number(ctx) { - } - - - // Enter a parse tree produced by PythonParser#real_number. - enterReal_number(ctx) { - } - - // Exit a parse tree produced by PythonParser#real_number. - exitReal_number(ctx) { - } - - - // Enter a parse tree produced by PythonParser#imaginary_number. - enterImaginary_number(ctx) { - } - - // Exit a parse tree produced by PythonParser#imaginary_number. - exitImaginary_number(ctx) { - } - - - // Enter a parse tree produced by PythonParser#capture_pattern. - enterCapture_pattern(ctx) { - } - - // Exit a parse tree produced by PythonParser#capture_pattern. - exitCapture_pattern(ctx) { - } - - - // Enter a parse tree produced by PythonParser#pattern_capture_target. - enterPattern_capture_target(ctx) { - } - - // Exit a parse tree produced by PythonParser#pattern_capture_target. - exitPattern_capture_target(ctx) { - } - - - // Enter a parse tree produced by PythonParser#wildcard_pattern. - enterWildcard_pattern(ctx) { - } - - // Exit a parse tree produced by PythonParser#wildcard_pattern. - exitWildcard_pattern(ctx) { - } - - - // Enter a parse tree produced by PythonParser#value_pattern. - enterValue_pattern(ctx) { - } - - // Exit a parse tree produced by PythonParser#value_pattern. - exitValue_pattern(ctx) { - } - - - // Enter a parse tree produced by PythonParser#attr. - enterAttr(ctx) { - } - - // Exit a parse tree produced by PythonParser#attr. - exitAttr(ctx) { - } - - - // Enter a parse tree produced by PythonParser#name_or_attr. - enterName_or_attr(ctx) { - } - - // Exit a parse tree produced by PythonParser#name_or_attr. - exitName_or_attr(ctx) { - } - - - // Enter a parse tree produced by PythonParser#group_pattern. - enterGroup_pattern(ctx) { - } - - // Exit a parse tree produced by PythonParser#group_pattern. - exitGroup_pattern(ctx) { - } - - - // Enter a parse tree produced by PythonParser#sequence_pattern. - enterSequence_pattern(ctx) { - } - - // Exit a parse tree produced by PythonParser#sequence_pattern. - exitSequence_pattern(ctx) { - } - - - // Enter a parse tree produced by PythonParser#open_sequence_pattern. - enterOpen_sequence_pattern(ctx) { - } - - // Exit a parse tree produced by PythonParser#open_sequence_pattern. - exitOpen_sequence_pattern(ctx) { - } - - - // Enter a parse tree produced by PythonParser#maybe_sequence_pattern. - enterMaybe_sequence_pattern(ctx) { - } - - // Exit a parse tree produced by PythonParser#maybe_sequence_pattern. - exitMaybe_sequence_pattern(ctx) { - } - - - // Enter a parse tree produced by PythonParser#maybe_star_pattern. - enterMaybe_star_pattern(ctx) { - } - - // Exit a parse tree produced by PythonParser#maybe_star_pattern. - exitMaybe_star_pattern(ctx) { - } - - - // Enter a parse tree produced by PythonParser#star_pattern. - enterStar_pattern(ctx) { - } - - // Exit a parse tree produced by PythonParser#star_pattern. - exitStar_pattern(ctx) { - } - - - // Enter a parse tree produced by PythonParser#mapping_pattern. - enterMapping_pattern(ctx) { - } - - // Exit a parse tree produced by PythonParser#mapping_pattern. - exitMapping_pattern(ctx) { - } - - - // Enter a parse tree produced by PythonParser#items_pattern. - enterItems_pattern(ctx) { - } - - // Exit a parse tree produced by PythonParser#items_pattern. - exitItems_pattern(ctx) { - } - - - // Enter a parse tree produced by PythonParser#key_value_pattern. - enterKey_value_pattern(ctx) { - } - - // Exit a parse tree produced by PythonParser#key_value_pattern. - exitKey_value_pattern(ctx) { - } - - - // Enter a parse tree produced by PythonParser#double_star_pattern. - enterDouble_star_pattern(ctx) { - } - - // Exit a parse tree produced by PythonParser#double_star_pattern. - exitDouble_star_pattern(ctx) { - } - - - // Enter a parse tree produced by PythonParser#class_pattern. - enterClass_pattern(ctx) { - } - - // Exit a parse tree produced by PythonParser#class_pattern. - exitClass_pattern(ctx) { - } - - - // Enter a parse tree produced by PythonParser#positional_patterns. - enterPositional_patterns(ctx) { - } - - // Exit a parse tree produced by PythonParser#positional_patterns. - exitPositional_patterns(ctx) { - } - - - // Enter a parse tree produced by PythonParser#keyword_patterns. - enterKeyword_patterns(ctx) { - } - - // Exit a parse tree produced by PythonParser#keyword_patterns. - exitKeyword_patterns(ctx) { - } - - - // Enter a parse tree produced by PythonParser#keyword_pattern. - enterKeyword_pattern(ctx) { - } - - // Exit a parse tree produced by PythonParser#keyword_pattern. - exitKeyword_pattern(ctx) { - } - - - // Enter a parse tree produced by PythonParser#type_alias. - enterType_alias(ctx) { - } - - // Exit a parse tree produced by PythonParser#type_alias. - exitType_alias(ctx) { - } - - - // Enter a parse tree produced by PythonParser#type_params. - enterType_params(ctx) { - } - - // Exit a parse tree produced by PythonParser#type_params. - exitType_params(ctx) { - } - - - // Enter a parse tree produced by PythonParser#type_param_seq. - enterType_param_seq(ctx) { - } - - // Exit a parse tree produced by PythonParser#type_param_seq. - exitType_param_seq(ctx) { - } - - - // Enter a parse tree produced by PythonParser#type_param. - enterType_param(ctx) { - } - - // Exit a parse tree produced by PythonParser#type_param. - exitType_param(ctx) { - } - - - // Enter a parse tree produced by PythonParser#type_param_bound. - enterType_param_bound(ctx) { - } - - // Exit a parse tree produced by PythonParser#type_param_bound. - exitType_param_bound(ctx) { - } - - - // Enter a parse tree produced by PythonParser#expressions. - enterExpressions(ctx) { - } - - // Exit a parse tree produced by PythonParser#expressions. - exitExpressions(ctx) { - } - - - // Enter a parse tree produced by PythonParser#expression. - enterExpression(ctx) { - } - - // Exit a parse tree produced by PythonParser#expression. - exitExpression(ctx) { - } - - - // Enter a parse tree produced by PythonParser#yield_expr. - enterYield_expr(ctx) { - } - - // Exit a parse tree produced by PythonParser#yield_expr. - exitYield_expr(ctx) { - } - - - // Enter a parse tree produced by PythonParser#star_expressions. - enterStar_expressions(ctx) { - } - - // Exit a parse tree produced by PythonParser#star_expressions. - exitStar_expressions(ctx) { - } - - - // Enter a parse tree produced by PythonParser#star_expression. - enterStar_expression(ctx) { - } - - // Exit a parse tree produced by PythonParser#star_expression. - exitStar_expression(ctx) { - } - - - // Enter a parse tree produced by PythonParser#star_named_expressions. - enterStar_named_expressions(ctx) { - } - - // Exit a parse tree produced by PythonParser#star_named_expressions. - exitStar_named_expressions(ctx) { - } - - - // Enter a parse tree produced by PythonParser#star_named_expression. - enterStar_named_expression(ctx) { - } - - // Exit a parse tree produced by PythonParser#star_named_expression. - exitStar_named_expression(ctx) { - } - - - // Enter a parse tree produced by PythonParser#assignment_expression. - enterAssignment_expression(ctx) { - } - - // Exit a parse tree produced by PythonParser#assignment_expression. - exitAssignment_expression(ctx) { - } - - - // Enter a parse tree produced by PythonParser#named_expression. - enterNamed_expression(ctx) { - } - - // Exit a parse tree produced by PythonParser#named_expression. - exitNamed_expression(ctx) { - } - - - // Enter a parse tree produced by PythonParser#disjunction. - enterDisjunction(ctx) { - } - - // Exit a parse tree produced by PythonParser#disjunction. - exitDisjunction(ctx) { - } - - - // Enter a parse tree produced by PythonParser#conjunction. - enterConjunction(ctx) { - } - - // Exit a parse tree produced by PythonParser#conjunction. - exitConjunction(ctx) { - } - - - // Enter a parse tree produced by PythonParser#inversion. - enterInversion(ctx) { - } - - // Exit a parse tree produced by PythonParser#inversion. - exitInversion(ctx) { - } - - - // Enter a parse tree produced by PythonParser#comparison. - enterComparison(ctx) { - } - - // Exit a parse tree produced by PythonParser#comparison. - exitComparison(ctx) { - } - - - // Enter a parse tree produced by PythonParser#compare_op_bitwise_or_pair. - enterCompare_op_bitwise_or_pair(ctx) { - } - - // Exit a parse tree produced by PythonParser#compare_op_bitwise_or_pair. - exitCompare_op_bitwise_or_pair(ctx) { - } - - - // Enter a parse tree produced by PythonParser#eq_bitwise_or. - enterEq_bitwise_or(ctx) { - } - - // Exit a parse tree produced by PythonParser#eq_bitwise_or. - exitEq_bitwise_or(ctx) { - } - - - // Enter a parse tree produced by PythonParser#noteq_bitwise_or. - enterNoteq_bitwise_or(ctx) { - } - - // Exit a parse tree produced by PythonParser#noteq_bitwise_or. - exitNoteq_bitwise_or(ctx) { - } - - - // Enter a parse tree produced by PythonParser#lte_bitwise_or. - enterLte_bitwise_or(ctx) { - } - - // Exit a parse tree produced by PythonParser#lte_bitwise_or. - exitLte_bitwise_or(ctx) { - } - - - // Enter a parse tree produced by PythonParser#lt_bitwise_or. - enterLt_bitwise_or(ctx) { - } - - // Exit a parse tree produced by PythonParser#lt_bitwise_or. - exitLt_bitwise_or(ctx) { - } - - - // Enter a parse tree produced by PythonParser#gte_bitwise_or. - enterGte_bitwise_or(ctx) { - } - - // Exit a parse tree produced by PythonParser#gte_bitwise_or. - exitGte_bitwise_or(ctx) { - } - - - // Enter a parse tree produced by PythonParser#gt_bitwise_or. - enterGt_bitwise_or(ctx) { - } - - // Exit a parse tree produced by PythonParser#gt_bitwise_or. - exitGt_bitwise_or(ctx) { - } - - - // Enter a parse tree produced by PythonParser#notin_bitwise_or. - enterNotin_bitwise_or(ctx) { - } - - // Exit a parse tree produced by PythonParser#notin_bitwise_or. - exitNotin_bitwise_or(ctx) { - } - - - // Enter a parse tree produced by PythonParser#in_bitwise_or. - enterIn_bitwise_or(ctx) { - } - - // Exit a parse tree produced by PythonParser#in_bitwise_or. - exitIn_bitwise_or(ctx) { - } - - - // Enter a parse tree produced by PythonParser#isnot_bitwise_or. - enterIsnot_bitwise_or(ctx) { - } - - // Exit a parse tree produced by PythonParser#isnot_bitwise_or. - exitIsnot_bitwise_or(ctx) { - } - - - // Enter a parse tree produced by PythonParser#is_bitwise_or. - enterIs_bitwise_or(ctx) { - } - - // Exit a parse tree produced by PythonParser#is_bitwise_or. - exitIs_bitwise_or(ctx) { - } - - - // Enter a parse tree produced by PythonParser#bitwise_or. - enterBitwise_or(ctx) { - } - - // Exit a parse tree produced by PythonParser#bitwise_or. - exitBitwise_or(ctx) { - } - - - // Enter a parse tree produced by PythonParser#bitwise_xor. - enterBitwise_xor(ctx) { - } - - // Exit a parse tree produced by PythonParser#bitwise_xor. - exitBitwise_xor(ctx) { - } - - - // Enter a parse tree produced by PythonParser#bitwise_and. - enterBitwise_and(ctx) { - } - - // Exit a parse tree produced by PythonParser#bitwise_and. - exitBitwise_and(ctx) { - } - - - // Enter a parse tree produced by PythonParser#shift_expr. - enterShift_expr(ctx) { - } - - // Exit a parse tree produced by PythonParser#shift_expr. - exitShift_expr(ctx) { - } - - - // Enter a parse tree produced by PythonParser#sum. - enterSum(ctx) { - } - - // Exit a parse tree produced by PythonParser#sum. - exitSum(ctx) { - } - - - // Enter a parse tree produced by PythonParser#term. - enterTerm(ctx) { - } - - // Exit a parse tree produced by PythonParser#term. - exitTerm(ctx) { - } - - - // Enter a parse tree produced by PythonParser#factor. - enterFactor(ctx) { - } - - // Exit a parse tree produced by PythonParser#factor. - exitFactor(ctx) { - } - - - // Enter a parse tree produced by PythonParser#power. - enterPower(ctx) { - } - - // Exit a parse tree produced by PythonParser#power. - exitPower(ctx) { - } - - - // Enter a parse tree produced by PythonParser#await_primary. - enterAwait_primary(ctx) { - } - - // Exit a parse tree produced by PythonParser#await_primary. - exitAwait_primary(ctx) { - } - - - // Enter a parse tree produced by PythonParser#primary. - enterPrimary(ctx) { - } - - // Exit a parse tree produced by PythonParser#primary. - exitPrimary(ctx) { - } - - - // Enter a parse tree produced by PythonParser#slices. - enterSlices(ctx) { - } - - // Exit a parse tree produced by PythonParser#slices. - exitSlices(ctx) { - } - - - // Enter a parse tree produced by PythonParser#slice. - enterSlice(ctx) { - } - - // Exit a parse tree produced by PythonParser#slice. - exitSlice(ctx) { - } - - - // Enter a parse tree produced by PythonParser#atom. - enterAtom(ctx) { - } - - // Exit a parse tree produced by PythonParser#atom. - exitAtom(ctx) { - } - - - // Enter a parse tree produced by PythonParser#group. - enterGroup(ctx) { - } - - // Exit a parse tree produced by PythonParser#group. - exitGroup(ctx) { - } - - - // Enter a parse tree produced by PythonParser#lambdef. - enterLambdef(ctx) { - } - - // Exit a parse tree produced by PythonParser#lambdef. - exitLambdef(ctx) { - } - - - // Enter a parse tree produced by PythonParser#lambda_params. - enterLambda_params(ctx) { - } - - // Exit a parse tree produced by PythonParser#lambda_params. - exitLambda_params(ctx) { - } - - - // Enter a parse tree produced by PythonParser#lambda_parameters. - enterLambda_parameters(ctx) { - } - - // Exit a parse tree produced by PythonParser#lambda_parameters. - exitLambda_parameters(ctx) { - } - - - // Enter a parse tree produced by PythonParser#lambda_slash_no_default. - enterLambda_slash_no_default(ctx) { - } - - // Exit a parse tree produced by PythonParser#lambda_slash_no_default. - exitLambda_slash_no_default(ctx) { - } - - - // Enter a parse tree produced by PythonParser#lambda_slash_with_default. - enterLambda_slash_with_default(ctx) { - } - - // Exit a parse tree produced by PythonParser#lambda_slash_with_default. - exitLambda_slash_with_default(ctx) { - } - - - // Enter a parse tree produced by PythonParser#lambda_star_etc. - enterLambda_star_etc(ctx) { - } - - // Exit a parse tree produced by PythonParser#lambda_star_etc. - exitLambda_star_etc(ctx) { - } - - - // Enter a parse tree produced by PythonParser#lambda_kwds. - enterLambda_kwds(ctx) { - } - - // Exit a parse tree produced by PythonParser#lambda_kwds. - exitLambda_kwds(ctx) { - } - - - // Enter a parse tree produced by PythonParser#lambda_param_no_default. - enterLambda_param_no_default(ctx) { - } - - // Exit a parse tree produced by PythonParser#lambda_param_no_default. - exitLambda_param_no_default(ctx) { - } - - - // Enter a parse tree produced by PythonParser#lambda_param_with_default. - enterLambda_param_with_default(ctx) { - } - - // Exit a parse tree produced by PythonParser#lambda_param_with_default. - exitLambda_param_with_default(ctx) { - } - - - // Enter a parse tree produced by PythonParser#lambda_param_maybe_default. - enterLambda_param_maybe_default(ctx) { - } - - // Exit a parse tree produced by PythonParser#lambda_param_maybe_default. - exitLambda_param_maybe_default(ctx) { - } - - - // Enter a parse tree produced by PythonParser#lambda_param. - enterLambda_param(ctx) { - } - - // Exit a parse tree produced by PythonParser#lambda_param. - exitLambda_param(ctx) { - } - - - // Enter a parse tree produced by PythonParser#fstring_middle. - enterFstring_middle(ctx) { - } - - // Exit a parse tree produced by PythonParser#fstring_middle. - exitFstring_middle(ctx) { - } - - - // Enter a parse tree produced by PythonParser#fstring_replacement_field. - enterFstring_replacement_field(ctx) { - } - - // Exit a parse tree produced by PythonParser#fstring_replacement_field. - exitFstring_replacement_field(ctx) { - } - - - // Enter a parse tree produced by PythonParser#fstring_conversion. - enterFstring_conversion(ctx) { - } - - // Exit a parse tree produced by PythonParser#fstring_conversion. - exitFstring_conversion(ctx) { - } - - - // Enter a parse tree produced by PythonParser#fstring_full_format_spec. - enterFstring_full_format_spec(ctx) { - } - - // Exit a parse tree produced by PythonParser#fstring_full_format_spec. - exitFstring_full_format_spec(ctx) { - } - - - // Enter a parse tree produced by PythonParser#fstring_format_spec. - enterFstring_format_spec(ctx) { - } - - // Exit a parse tree produced by PythonParser#fstring_format_spec. - exitFstring_format_spec(ctx) { - } - - - // Enter a parse tree produced by PythonParser#fstring. - enterFstring(ctx) { - } - - // Exit a parse tree produced by PythonParser#fstring. - exitFstring(ctx) { - } - - - // Enter a parse tree produced by PythonParser#string. - enterString(ctx) { - } - - // Exit a parse tree produced by PythonParser#string. - exitString(ctx) { - } - - - // Enter a parse tree produced by PythonParser#strings. - enterStrings(ctx) { - } - - // Exit a parse tree produced by PythonParser#strings. - exitStrings(ctx) { - } - - - // Enter a parse tree produced by PythonParser#list. - enterList(ctx) { - } - - // Exit a parse tree produced by PythonParser#list. - exitList(ctx) { - } - - - // Enter a parse tree produced by PythonParser#tuple. - enterTuple(ctx) { - } - - // Exit a parse tree produced by PythonParser#tuple. - exitTuple(ctx) { - } - - - // Enter a parse tree produced by PythonParser#set. - enterSet(ctx) { - } - - // Exit a parse tree produced by PythonParser#set. - exitSet(ctx) { - } - - - // Enter a parse tree produced by PythonParser#dict. - enterDict(ctx) { - } - - // Exit a parse tree produced by PythonParser#dict. - exitDict(ctx) { - } - - - // Enter a parse tree produced by PythonParser#double_starred_kvpairs. - enterDouble_starred_kvpairs(ctx) { - } - - // Exit a parse tree produced by PythonParser#double_starred_kvpairs. - exitDouble_starred_kvpairs(ctx) { - } - - - // Enter a parse tree produced by PythonParser#double_starred_kvpair. - enterDouble_starred_kvpair(ctx) { - } - - // Exit a parse tree produced by PythonParser#double_starred_kvpair. - exitDouble_starred_kvpair(ctx) { - } - - - // Enter a parse tree produced by PythonParser#kvpair. - enterKvpair(ctx) { - } - - // Exit a parse tree produced by PythonParser#kvpair. - exitKvpair(ctx) { - } - - - // Enter a parse tree produced by PythonParser#for_if_clauses. - enterFor_if_clauses(ctx) { - } - - // Exit a parse tree produced by PythonParser#for_if_clauses. - exitFor_if_clauses(ctx) { - } - - - // Enter a parse tree produced by PythonParser#for_if_clause. - enterFor_if_clause(ctx) { - } - - // Exit a parse tree produced by PythonParser#for_if_clause. - exitFor_if_clause(ctx) { - } - - - // Enter a parse tree produced by PythonParser#listcomp. - enterListcomp(ctx) { - } - - // Exit a parse tree produced by PythonParser#listcomp. - exitListcomp(ctx) { - } - - - // Enter a parse tree produced by PythonParser#setcomp. - enterSetcomp(ctx) { - } - - // Exit a parse tree produced by PythonParser#setcomp. - exitSetcomp(ctx) { - } - - - // Enter a parse tree produced by PythonParser#genexp. - enterGenexp(ctx) { - } - - // Exit a parse tree produced by PythonParser#genexp. - exitGenexp(ctx) { - } - - - // Enter a parse tree produced by PythonParser#dictcomp. - enterDictcomp(ctx) { - } - - // Exit a parse tree produced by PythonParser#dictcomp. - exitDictcomp(ctx) { - } - - - // Enter a parse tree produced by PythonParser#arguments. - enterArguments(ctx) { - } - - // Exit a parse tree produced by PythonParser#arguments. - exitArguments(ctx) { - } - - - // Enter a parse tree produced by PythonParser#args. - enterArgs(ctx) { - } - - // Exit a parse tree produced by PythonParser#args. - exitArgs(ctx) { - } - - - // Enter a parse tree produced by PythonParser#kwargs. - enterKwargs(ctx) { - } - - // Exit a parse tree produced by PythonParser#kwargs. - exitKwargs(ctx) { - } - - - // Enter a parse tree produced by PythonParser#starred_expression. - enterStarred_expression(ctx) { - } - - // Exit a parse tree produced by PythonParser#starred_expression. - exitStarred_expression(ctx) { - } - - - // Enter a parse tree produced by PythonParser#kwarg_or_starred. - enterKwarg_or_starred(ctx) { - } - - // Exit a parse tree produced by PythonParser#kwarg_or_starred. - exitKwarg_or_starred(ctx) { - } - - - // Enter a parse tree produced by PythonParser#kwarg_or_double_starred. - enterKwarg_or_double_starred(ctx) { - } - - // Exit a parse tree produced by PythonParser#kwarg_or_double_starred. - exitKwarg_or_double_starred(ctx) { - } - - - // Enter a parse tree produced by PythonParser#star_targets. - enterStar_targets(ctx) { - } - - // Exit a parse tree produced by PythonParser#star_targets. - exitStar_targets(ctx) { - } - - - // Enter a parse tree produced by PythonParser#star_targets_list_seq. - enterStar_targets_list_seq(ctx) { - } - - // Exit a parse tree produced by PythonParser#star_targets_list_seq. - exitStar_targets_list_seq(ctx) { - } - - - // Enter a parse tree produced by PythonParser#star_targets_tuple_seq. - enterStar_targets_tuple_seq(ctx) { - } - - // Exit a parse tree produced by PythonParser#star_targets_tuple_seq. - exitStar_targets_tuple_seq(ctx) { - } - - - // Enter a parse tree produced by PythonParser#star_target. - enterStar_target(ctx) { - } - - // Exit a parse tree produced by PythonParser#star_target. - exitStar_target(ctx) { - } - - - // Enter a parse tree produced by PythonParser#target_with_star_atom. - enterTarget_with_star_atom(ctx) { - } - - // Exit a parse tree produced by PythonParser#target_with_star_atom. - exitTarget_with_star_atom(ctx) { - } - - - // Enter a parse tree produced by PythonParser#star_atom. - enterStar_atom(ctx) { - } - - // Exit a parse tree produced by PythonParser#star_atom. - exitStar_atom(ctx) { - } - - - // Enter a parse tree produced by PythonParser#single_target. - enterSingle_target(ctx) { - } - - // Exit a parse tree produced by PythonParser#single_target. - exitSingle_target(ctx) { - } - - - // Enter a parse tree produced by PythonParser#single_subscript_attribute_target. - enterSingle_subscript_attribute_target(ctx) { - } - - // Exit a parse tree produced by PythonParser#single_subscript_attribute_target. - exitSingle_subscript_attribute_target(ctx) { - } - - - // Enter a parse tree produced by PythonParser#t_primary. - enterT_primary(ctx) { - } - - // Exit a parse tree produced by PythonParser#t_primary. - exitT_primary(ctx) { - } - - - // Enter a parse tree produced by PythonParser#del_targets. - enterDel_targets(ctx) { - } - - // Exit a parse tree produced by PythonParser#del_targets. - exitDel_targets(ctx) { - } - - - // Enter a parse tree produced by PythonParser#del_target. - enterDel_target(ctx) { - } - - // Exit a parse tree produced by PythonParser#del_target. - exitDel_target(ctx) { - } - - - // Enter a parse tree produced by PythonParser#del_t_atom. - enterDel_t_atom(ctx) { - } - - // Exit a parse tree produced by PythonParser#del_t_atom. - exitDel_t_atom(ctx) { - } - - - // Enter a parse tree produced by PythonParser#type_expressions. - enterType_expressions(ctx) { - } - - // Exit a parse tree produced by PythonParser#type_expressions. - exitType_expressions(ctx) { - } - - - // Enter a parse tree produced by PythonParser#func_type_comment. - enterFunc_type_comment(ctx) { - } - - // Exit a parse tree produced by PythonParser#func_type_comment. - exitFunc_type_comment(ctx) { - } - - - // Enter a parse tree produced by PythonParser#soft_kw_type. - enterSoft_kw_type(ctx) { - } - - // Exit a parse tree produced by PythonParser#soft_kw_type. - exitSoft_kw_type(ctx) { - } - - - // Enter a parse tree produced by PythonParser#soft_kw_match. - enterSoft_kw_match(ctx) { - } - - // Exit a parse tree produced by PythonParser#soft_kw_match. - exitSoft_kw_match(ctx) { - } - - - // Enter a parse tree produced by PythonParser#soft_kw_case. - enterSoft_kw_case(ctx) { - } - - // Exit a parse tree produced by PythonParser#soft_kw_case. - exitSoft_kw_case(ctx) { - } - - - // Enter a parse tree produced by PythonParser#soft_kw_wildcard. - enterSoft_kw_wildcard(ctx) { - } - - // Exit a parse tree produced by PythonParser#soft_kw_wildcard. - exitSoft_kw_wildcard(ctx) { - } - - - // Enter a parse tree produced by PythonParser#soft_kw__not__wildcard. - enterSoft_kw__not__wildcard(ctx) { - } - - // Exit a parse tree produced by PythonParser#soft_kw__not__wildcard. - exitSoft_kw__not__wildcard(ctx) { - } - - - -} \ No newline at end of file diff --git a/codemetrica/py/parser/python3_12_1/PythonParserVisitor.js b/codemetrica/py/parser/python3_12_1/PythonParserVisitor.js deleted file mode 100644 index 92b1848..0000000 --- a/codemetrica/py/parser/python3_12_1/PythonParserVisitor.js +++ /dev/null @@ -1,1198 +0,0 @@ -// Generated from PythonParser.g4 by ANTLR 4.13.2 -// jshint ignore: start -import antlr4 from 'antlr4'; - -// This class defines a complete generic visitor for a parse tree produced by PythonParser. - -export default class PythonParserVisitor extends antlr4.tree.ParseTreeVisitor { - - // Visit a parse tree produced by PythonParser#file_input. - visitFile_input(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#interactive. - visitInteractive(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#eval. - visitEval(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#func_type. - visitFunc_type(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#fstring_input. - visitFstring_input(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#statements. - visitStatements(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#statement. - visitStatement(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#statement_newline. - visitStatement_newline(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#simple_stmts. - visitSimple_stmts(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#simple_stmt. - visitSimple_stmt(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#compound_stmt. - visitCompound_stmt(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#assignment. - visitAssignment(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#annotated_rhs. - visitAnnotated_rhs(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#augassign. - visitAugassign(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#return_stmt. - visitReturn_stmt(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#raise_stmt. - visitRaise_stmt(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#global_stmt. - visitGlobal_stmt(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#nonlocal_stmt. - visitNonlocal_stmt(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#del_stmt. - visitDel_stmt(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#yield_stmt. - visitYield_stmt(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#assert_stmt. - visitAssert_stmt(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#import_stmt. - visitImport_stmt(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#import_name. - visitImport_name(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#import_from. - visitImport_from(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#import_from_targets. - visitImport_from_targets(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#import_from_as_names. - visitImport_from_as_names(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#import_from_as_name. - visitImport_from_as_name(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#dotted_as_names. - visitDotted_as_names(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#dotted_as_name. - visitDotted_as_name(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#dotted_name. - visitDotted_name(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#block. - visitBlock(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#decorators. - visitDecorators(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#class_def. - visitClass_def(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#class_def_raw. - visitClass_def_raw(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#function_def. - visitFunction_def(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#function_def_raw. - visitFunction_def_raw(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#params. - visitParams(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#parameters. - visitParameters(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#slash_no_default. - visitSlash_no_default(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#slash_with_default. - visitSlash_with_default(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#star_etc. - visitStar_etc(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#kwds. - visitKwds(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#param_no_default. - visitParam_no_default(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#param_no_default_star_annotation. - visitParam_no_default_star_annotation(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#param_with_default. - visitParam_with_default(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#param_maybe_default. - visitParam_maybe_default(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#param. - visitParam(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#param_star_annotation. - visitParam_star_annotation(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#annotation. - visitAnnotation(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#star_annotation. - visitStar_annotation(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#default_assignment. - visitDefault_assignment(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#if_stmt. - visitIf_stmt(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#elif_stmt. - visitElif_stmt(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#else_block. - visitElse_block(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#while_stmt. - visitWhile_stmt(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#for_stmt. - visitFor_stmt(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#with_stmt. - visitWith_stmt(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#with_item. - visitWith_item(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#try_stmt. - visitTry_stmt(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#except_block. - visitExcept_block(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#except_star_block. - visitExcept_star_block(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#finally_block. - visitFinally_block(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#match_stmt. - visitMatch_stmt(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#subject_expr. - visitSubject_expr(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#case_block. - visitCase_block(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#guard. - visitGuard(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#patterns. - visitPatterns(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#pattern. - visitPattern(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#as_pattern. - visitAs_pattern(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#or_pattern. - visitOr_pattern(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#closed_pattern. - visitClosed_pattern(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#literal_pattern. - visitLiteral_pattern(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#literal_expr. - visitLiteral_expr(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#complex_number. - visitComplex_number(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#signed_number. - visitSigned_number(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#signed_real_number. - visitSigned_real_number(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#real_number. - visitReal_number(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#imaginary_number. - visitImaginary_number(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#capture_pattern. - visitCapture_pattern(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#pattern_capture_target. - visitPattern_capture_target(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#wildcard_pattern. - visitWildcard_pattern(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#value_pattern. - visitValue_pattern(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#attr. - visitAttr(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#name_or_attr. - visitName_or_attr(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#group_pattern. - visitGroup_pattern(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#sequence_pattern. - visitSequence_pattern(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#open_sequence_pattern. - visitOpen_sequence_pattern(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#maybe_sequence_pattern. - visitMaybe_sequence_pattern(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#maybe_star_pattern. - visitMaybe_star_pattern(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#star_pattern. - visitStar_pattern(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#mapping_pattern. - visitMapping_pattern(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#items_pattern. - visitItems_pattern(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#key_value_pattern. - visitKey_value_pattern(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#double_star_pattern. - visitDouble_star_pattern(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#class_pattern. - visitClass_pattern(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#positional_patterns. - visitPositional_patterns(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#keyword_patterns. - visitKeyword_patterns(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#keyword_pattern. - visitKeyword_pattern(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#type_alias. - visitType_alias(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#type_params. - visitType_params(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#type_param_seq. - visitType_param_seq(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#type_param. - visitType_param(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#type_param_bound. - visitType_param_bound(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#expressions. - visitExpressions(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#expression. - visitExpression(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#yield_expr. - visitYield_expr(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#star_expressions. - visitStar_expressions(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#star_expression. - visitStar_expression(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#star_named_expressions. - visitStar_named_expressions(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#star_named_expression. - visitStar_named_expression(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#assignment_expression. - visitAssignment_expression(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#named_expression. - visitNamed_expression(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#disjunction. - visitDisjunction(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#conjunction. - visitConjunction(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#inversion. - visitInversion(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#comparison. - visitComparison(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#compare_op_bitwise_or_pair. - visitCompare_op_bitwise_or_pair(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#eq_bitwise_or. - visitEq_bitwise_or(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#noteq_bitwise_or. - visitNoteq_bitwise_or(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#lte_bitwise_or. - visitLte_bitwise_or(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#lt_bitwise_or. - visitLt_bitwise_or(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#gte_bitwise_or. - visitGte_bitwise_or(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#gt_bitwise_or. - visitGt_bitwise_or(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#notin_bitwise_or. - visitNotin_bitwise_or(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#in_bitwise_or. - visitIn_bitwise_or(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#isnot_bitwise_or. - visitIsnot_bitwise_or(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#is_bitwise_or. - visitIs_bitwise_or(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#bitwise_or. - visitBitwise_or(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#bitwise_xor. - visitBitwise_xor(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#bitwise_and. - visitBitwise_and(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#shift_expr. - visitShift_expr(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#sum. - visitSum(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#term. - visitTerm(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#factor. - visitFactor(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#power. - visitPower(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#await_primary. - visitAwait_primary(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#primary. - visitPrimary(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#slices. - visitSlices(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#slice. - visitSlice(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#atom. - visitAtom(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#group. - visitGroup(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#lambdef. - visitLambdef(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#lambda_params. - visitLambda_params(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#lambda_parameters. - visitLambda_parameters(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#lambda_slash_no_default. - visitLambda_slash_no_default(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#lambda_slash_with_default. - visitLambda_slash_with_default(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#lambda_star_etc. - visitLambda_star_etc(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#lambda_kwds. - visitLambda_kwds(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#lambda_param_no_default. - visitLambda_param_no_default(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#lambda_param_with_default. - visitLambda_param_with_default(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#lambda_param_maybe_default. - visitLambda_param_maybe_default(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#lambda_param. - visitLambda_param(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#fstring_middle. - visitFstring_middle(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#fstring_replacement_field. - visitFstring_replacement_field(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#fstring_conversion. - visitFstring_conversion(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#fstring_full_format_spec. - visitFstring_full_format_spec(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#fstring_format_spec. - visitFstring_format_spec(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#fstring. - visitFstring(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#string. - visitString(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#strings. - visitStrings(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#list. - visitList(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#tuple. - visitTuple(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#set. - visitSet(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#dict. - visitDict(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#double_starred_kvpairs. - visitDouble_starred_kvpairs(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#double_starred_kvpair. - visitDouble_starred_kvpair(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#kvpair. - visitKvpair(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#for_if_clauses. - visitFor_if_clauses(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#for_if_clause. - visitFor_if_clause(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#listcomp. - visitListcomp(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#setcomp. - visitSetcomp(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#genexp. - visitGenexp(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#dictcomp. - visitDictcomp(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#arguments. - visitArguments(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#args. - visitArgs(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#kwargs. - visitKwargs(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#starred_expression. - visitStarred_expression(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#kwarg_or_starred. - visitKwarg_or_starred(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#kwarg_or_double_starred. - visitKwarg_or_double_starred(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#star_targets. - visitStar_targets(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#star_targets_list_seq. - visitStar_targets_list_seq(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#star_targets_tuple_seq. - visitStar_targets_tuple_seq(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#star_target. - visitStar_target(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#target_with_star_atom. - visitTarget_with_star_atom(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#star_atom. - visitStar_atom(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#single_target. - visitSingle_target(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#single_subscript_attribute_target. - visitSingle_subscript_attribute_target(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#t_primary. - visitT_primary(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#del_targets. - visitDel_targets(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#del_target. - visitDel_target(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#del_t_atom. - visitDel_t_atom(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#type_expressions. - visitType_expressions(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#func_type_comment. - visitFunc_type_comment(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#soft_kw_type. - visitSoft_kw_type(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#soft_kw_match. - visitSoft_kw_match(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#soft_kw_case. - visitSoft_kw_case(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#soft_kw_wildcard. - visitSoft_kw_wildcard(ctx) { - return this.visitChildren(ctx); - } - - - // Visit a parse tree produced by PythonParser#soft_kw__not__wildcard. - visitSoft_kw__not__wildcard(ctx) { - return this.visitChildren(ctx); - } - - - -} \ No newline at end of file diff --git a/codemetrica/py/smells/complex_conditional.js b/codemetrica/py/smells/complex_conditional.js deleted file mode 100644 index 37655a7..0000000 --- a/codemetrica/py/smells/complex_conditional.js +++ /dev/null @@ -1,22 +0,0 @@ -import PythonParserVisitor from "../parser/python3_12_1/PythonParserVisitor.js"; -import thresholds from '../../thresholds.js'; - -export default class ComplexConditional { - static detect(ctx){ - class LogicalOperatorCounterVisitor extends PythonParserVisitor { - constructor() { - super(); - this.count = 0; - } - visitTerminal(node) { - if (node.symbol.text === 'and' || node.symbol.text === 'or') { - this.count++; - } - } - } - - const visitor = new LogicalOperatorCounterVisitor(); - visitor.visit(ctx); - return visitor.count > thresholds.COMPLEX_CONDITIONAL; - } -} \ No newline at end of file diff --git a/codemetrica/python/class.ts b/codemetrica/python/class.ts new file mode 100644 index 0000000..dfddfac --- /dev/null +++ b/codemetrica/python/class.ts @@ -0,0 +1,32 @@ +import { CodeBlock } from "./codeblock"; +import { Function } from "./function"; +import { Class_defContext, Function_defContext } from "../../grammars-v4/python/python3_12_1/PythonParser.js"; +import PythonParserVisitor from "../../grammars-v4/python/python3_12_1/PythonParserVisitor"; + +export class Class extends CodeBlock { + constructor(ctx: Class_defContext) { + super(ctx); + } + + get name() { + return this.ctx.class_def_raw().NAME().getText(); + } + + getMethods() { + class FunctionVisitor extends PythonParserVisitor { + methods: Function[]; + constructor() { + super(); + this.methods = []; + } + + visitFunction_def = (ctx:Function_defContext) => { + this.methods.push(new Function(ctx)); + } + } + + const visitor = new FunctionVisitor(); + visitor.visit(this.ctx); + return visitor.methods; + } +} \ No newline at end of file diff --git a/codemetrica/py/codeblock.js b/codemetrica/python/codeblock.ts similarity index 50% rename from codemetrica/py/codeblock.js rename to codemetrica/python/codeblock.ts index 19d5abe..ee16ddb 100644 --- a/codemetrica/py/codeblock.js +++ b/codemetrica/python/codeblock.ts @@ -1,122 +1,135 @@ -import PythonParser from "./parser/python3_12_1/PythonParser.js"; -import PythonParserVisitor from "./parser/python3_12_1/PythonParserVisitor.js"; - -export default class CodeBlock { - getClasses() { - throw new Error("Method getClasses() must be implemented"); - } - - getFunctions() { - throw new Error("Method getFunctions() must be implemented"); - } - - getMethods() { - throw new Error("Method getMethods() must be implemented"); - } - - getSimpleStatements() { - class SimpleStmtVisitor extends PythonParserVisitor { - constructor() { - super(); - this.statements = []; - } - - visitSimple_stmt(ctx) { - this.statements.push(ctx.getText()); - } - } - - const visitor = new SimpleStmtVisitor(); - visitor.visit(this.ctx); - return visitor.statements; - } - - getExpressions() { - class ExpressionVisitor extends PythonParserVisitor { - constructor() { - super(); - this.expressions = []; - } - - visitExpression(ctx) { - this.expressions.push(ctx); - } - } - - const visitor = new ExpressionVisitor(); - visitor.visit(this.ctx); - return visitor.expressions; - } - - getMatches() { - class MatchVisitor extends PythonParserVisitor { - constructor() { - super(); - this.matches = []; - } - - visitMatch_stmt(ctx) { - this.matches.push(ctx); - return null; - } - } - - const visitor = new MatchVisitor(); - visitor.visit(this.ctx); - return visitor.matches; - } - - getNumberLiterals() { - class NumberLiteralVisitor extends PythonParserVisitor { - constructor() { - super(); - this.numberLiterals = []; - } - - visitStar_expression(ctx) { - if (this.anyTerminalsAreNumber(ctx)) { - this.numberLiterals.push(ctx); - } - return null; - } - - anyTerminalsAreNumber(ctx) { - if (ctx instanceof PythonParser.AtomContext && ctx.NUMBER()) { - return true; - } - for (let i = 0; i < ctx.getChildCount(); i++) { - if (this.anyTerminalsAreNumber(ctx.getChild(i))) { - return true; - } - } - return false; - } - } - - const visitor = new NumberLiteralVisitor(); - visitor.visit(this.ctx); - return visitor.numberLiterals; - } - - // Equivalent to getExcepts - getExcepts() { - class ExceptVisitor extends PythonParserVisitor { - constructor() { - super(); - this.excepts = []; - } - - visitExcept_block(ctx) { - this.excepts.push(ctx); - } - - visitExcept_star_block(ctx) { - this.excepts.push(ctx); - } - } - - const visitor = new ExceptVisitor(); - visitor.visit(this.ctx); - return visitor.excepts; - } -} +import { AtomContext, Simple_stmtContext, Except_blockContext, Except_star_blockContext, ExpressionContext, Match_stmtContext, Star_expressionContext } from "../../grammars-v4/python/python3_12_1/PythonParser"; +import PythonParserVisitor from "../../grammars-v4/python/python3_12_1/PythonParserVisitor"; +import { ParserRuleContext } from 'antlr4'; + +export abstract class CodeBlock { + + ctx: T + + constructor(ctx: T) { + this.ctx = ctx; + } + + getClasses() { + throw new Error("Method getClasses() must be implemented"); + } + + getFunctions() { + throw new Error("Method getFunctions() must be implemented"); + } + + getMethods() { + throw new Error("Method getMethods() must be implemented"); + } + + getSimpleStatements(): Simple_stmtContext[] { + class SimpleStmtVisitor extends PythonParserVisitor { + statements: Simple_stmtContext[]; + + constructor() { + super(); + this.statements = []; + } + + visitSimple_stmt = (ctx: Simple_stmtContext): void => { + this.statements.push(ctx); + } + } + + const visitor = new SimpleStmtVisitor(); + visitor.visit(this.ctx); + return visitor.statements; + } + + getExpressions(): ExpressionContext[] { + class ExpressionVisitor extends PythonParserVisitor { + expressions: ExpressionContext[]; + constructor() { + super(); + this.expressions = []; + } + + visitExpression = (ctx: ExpressionContext): void => { + this.expressions.push(ctx); + } + } + + const visitor = new ExpressionVisitor(); + visitor.visit(this.ctx); + return visitor.expressions; + } + + getMatches() { + class MatchVisitor extends PythonParserVisitor { + matches: Match_stmtContext[]; + + constructor() { + super(); + this.matches = []; + } + + visitMatch_stmt = (ctx: Match_stmtContext): void => { + this.matches.push(ctx); + } + } + + const visitor = new MatchVisitor(); + visitor.visit(this.ctx); + return visitor.matches; + } + + getNumberLiterals() { + class NumberLiteralVisitor extends PythonParserVisitor { + numberLiterals: Star_expressionContext[] = []; + constructor() { + super(); + this.numberLiterals = []; + } + + visitStar_expression = (ctx: Star_expressionContext) => { + if (this.anyTerminalsAreNumber(ctx)) { + this.numberLiterals.push(ctx); + } + } + + anyTerminalsAreNumber = (ctx: any) => { + if (ctx instanceof AtomContext && ctx.NUMBER()) { + return true; + } + for (let i = 0; i < ctx.getChildCount(); i++) { + if (this.anyTerminalsAreNumber(ctx.getChild(i))) { + return true; + } + } + return false; + } + } + + const visitor = new NumberLiteralVisitor(); + visitor.visit(this.ctx); + return visitor.numberLiterals; + } + + getExcepts() { + class ExceptVisitor extends PythonParserVisitor { + excepts: (Except_blockContext | Except_star_blockContext)[]; + + constructor() { + super(); + this.excepts = []; + } + + visitExcept_block = (ctx:Except_blockContext):void => { + this.excepts.push(ctx); + } + + visitExcept_star_block = (ctx:Except_star_blockContext):void => { + this.excepts.push(ctx); + } + } + + const visitor = new ExceptVisitor(); + visitor.visit(this.ctx); + return visitor.excepts; + } +} diff --git a/codemetrica/python/file.ts b/codemetrica/python/file.ts new file mode 100644 index 0000000..287f3cb --- /dev/null +++ b/codemetrica/python/file.ts @@ -0,0 +1,63 @@ +import PythonParserVisitor from "../../grammars-v4/python/python3_12_1/PythonParserVisitor"; +import { Class_defContext, File_inputContext, Function_defContext } from "../../grammars-v4/python/python3_12_1/PythonParser.js"; +import { CodeBlock } from "./codeblock"; +import { Class } from "./class"; +import { Function } from "./function"; +import { Parser } from "./parser"; + +export class File extends CodeBlock { + path: string; + constructor(path:string) { + super(Parser.getANTLRContext(path)); + this.path = path; + } + + get name() { + return this.path.split('/').pop(); + } + + get extension() { + return this.path.includes('.') ? this.path.split('.').pop() : null; + } + + // get LOC() { + // return this.ctx.stop.line - this.ctx.start.line + 1; + // } + + getClasses(): Class[] { + class ClassVisitor extends PythonParserVisitor { + classes: Class[]; + constructor() { + super(); + this.classes = []; + } + + visitClass_def = (ctx: Class_defContext) => { + this.classes.push(new Class(ctx)); + } + } + + const visitor = new ClassVisitor(); + visitor.visit(this.ctx); + return visitor.classes; + } + + getFunctions() { + class FunctionVisitor extends PythonParserVisitor { + functions: Function[]; + + constructor() { + super(); + this.functions = []; + } + + visitFunction_def = (ctx: Function_defContext) => { + this.functions.push(new Function(ctx)); + } + } + + const visitor = new FunctionVisitor(); + visitor.visit(this.ctx); + return visitor.functions; + } +} \ No newline at end of file diff --git a/codemetrica/python/function.ts b/codemetrica/python/function.ts new file mode 100644 index 0000000..4a25ee8 --- /dev/null +++ b/codemetrica/python/function.ts @@ -0,0 +1,38 @@ +import { CodeBlock } from "./codeblock"; +import { Function_defContext } from "../../grammars-v4/python/python3_12_1/PythonParser"; + +export class Function extends CodeBlock { + constructor(ctx: Function_defContext) { + super(ctx); + } + + get name() { + return this.ctx.function_def_raw().NAME().getText(); + } + + // get length() { + // return this.ctx.stop.line - this.ctx.start.line; + // } + + getParameters() { + class Parameter { + name: string; + type: string; + + constructor(name:string, type:string) { + this.name = name; + this.type = type; + } + } + + const parameters: Parameter[] = []; + + const paramCtx = this.ctx.function_def_raw()?.params()?.parameters()?.children || [] + + paramCtx.forEach((param: any) => { + parameters.push(new Parameter(param.getText(), "lol")); + }); + + return parameters; + } +} diff --git a/codemetrica/python/index.ts b/codemetrica/python/index.ts new file mode 100644 index 0000000..4ce997d --- /dev/null +++ b/codemetrica/python/index.ts @@ -0,0 +1,9 @@ +/** + * @module codemetrica/python + */ + +export * from "./class"; +export * from "./codeblock"; +export * from "./file"; +export * from "./function"; +export * from "./parser"; \ No newline at end of file diff --git a/codemetrica/python/parser.ts b/codemetrica/python/parser.ts new file mode 100644 index 0000000..bcb7db8 --- /dev/null +++ b/codemetrica/python/parser.ts @@ -0,0 +1,15 @@ +import antlr4 from 'antlr4'; +import PythonLexer from '../../grammars-v4/python/python3_12_1/PythonLexer'; +import PythonParser from '../../grammars-v4/python/python3_12_1/PythonParser'; + +export class Parser { + static getANTLRContext(fileName: string) { + const inputStream = new antlr4.FileStream(fileName); + const lexer = new PythonLexer(inputStream) as unknown as antlr4.Lexer; + const tokenStream = new antlr4.CommonTokenStream(lexer); + + const parser = new PythonParser(tokenStream); + const tree = parser.file_input(); + return tree; + } +} diff --git a/codemetrica/python/smells/complex_conditional.ts b/codemetrica/python/smells/complex_conditional.ts new file mode 100644 index 0000000..d821e30 --- /dev/null +++ b/codemetrica/python/smells/complex_conditional.ts @@ -0,0 +1,26 @@ +import PythonParserVisitor from "../../../grammars-v4/python/python3_12_1/PythonParserVisitor"; +import { Thresholds } from '../../thresholds'; +import { ExpressionContext } from "../../../grammars-v4/python/python3_12_1/PythonParser"; + +export class ComplexConditional { + static detect(ctx: ExpressionContext): boolean { + class LogicalOperatorCounterVisitor extends PythonParserVisitor { + count: number + + constructor() { + super(); + this.count = 0; + } + + visitTerminal(node: any) { + if (node.symbol.text === 'and' || node.symbol.text === 'or') { + this.count++; + } + } + } + + const visitor = new LogicalOperatorCounterVisitor(); + visitor.visit(ctx); + return visitor.count > Thresholds.COMPLEX_CONDITIONAL; + } +} \ No newline at end of file diff --git a/codemetrica/python/smells/index.ts b/codemetrica/python/smells/index.ts new file mode 100644 index 0000000..e50b176 --- /dev/null +++ b/codemetrica/python/smells/index.ts @@ -0,0 +1,4 @@ +/** + * @module codemetrica/python/smells + */ +export * from "./complex_conditional"; \ No newline at end of file diff --git a/codemetrica/tests/python/smells/complex_conditional/complex_conditional.py b/codemetrica/tests/python/smells/complex_conditional/complex_conditional.py index e69de29..47a04c7 100644 --- a/codemetrica/tests/python/smells/complex_conditional/complex_conditional.py +++ b/codemetrica/tests/python/smells/complex_conditional/complex_conditional.py @@ -0,0 +1,16 @@ +def getSimpleStmtements(self): + class Simple_stmtListener(PythonParserListener): + def __init__(self) -> None: + self.statements = [] + def enterSimple_stmt(self, ctx: PythonParser.Simple_stmtContext): + self.statements.append(ctx.getText()) + # return super().enterSimple_stmt(ctx) + + listener = Simple_stmtListener() + walker = ParseTreeWalker() + walker.walk(listener, self.ctx) + + if 1 > 2 and 3 > 4 or 8>5 or 5 > 7 and 5 > 6 or 9 > 5 and 5 > 6 or 9 > 5: + return True + + return listener.statements diff --git a/codemetrica/tests/python/smells/complex_conditional/complex_conditional.test.js b/codemetrica/tests/python/smells/complex_conditional/complex_conditional.test.js deleted file mode 100644 index 12b6143..0000000 --- a/codemetrica/tests/python/smells/complex_conditional/complex_conditional.test.js +++ /dev/null @@ -1,23 +0,0 @@ -const fs = require('fs'); - -const complexConditional = require('../../../../py/smells/complex_conditional'); - -test('adds 1 + 2 to equal 3', () => { - expect(complexConditional()).toBe(6); -}); - - -const path = require('path'); - -test('should check for functions with too many arguments (code smell)', () => { - const fileContent = fs.readFileSync('complex_conditional.py', 'utf8'); - - const smells = checkForLongFunctions(fileContent); - - // Assert that a smell is found - expect(smells.length).toBeGreaterThan(0); - - // Optionally, check the details of the smell - expect(smells[0].function).toContain('def long_function'); - expect(smells[0].argsCount).toBe(7); // This function has 7 arguments -}); diff --git a/codemetrica/tests/python/smells/complex_conditional/complex_conditional.test.ts b/codemetrica/tests/python/smells/complex_conditional/complex_conditional.test.ts new file mode 100644 index 0000000..3acd05a --- /dev/null +++ b/codemetrica/tests/python/smells/complex_conditional/complex_conditional.test.ts @@ -0,0 +1,24 @@ +import { File } from '../../../../python/file'; +import { describe, expect, test, beforeAll } from '@jest/globals'; +import { ComplexConditional } from '../../../../python/smells/complex_conditional'; + +describe('ComplexConditional Detection', () => { + beforeAll(() => { + + }); + + test('should detect complex conditionals in the file', () => { + let file = new File('./codemetrica/tests/python/smells/complex_conditional/complex_conditional.py'); + let expressions = file.getExpressions(); + const complexConditionals = expressions.filter(e => ComplexConditional.detect(e)); + expect(complexConditionals.length).toBeGreaterThan(0); + }); + + // test('should not detect complex conditionals when none exist', () => { + // const emptyFile = new File('./empty_file.py'); // Assuming this file has no complex conditionals + // const emptyExpressions = emptyFile.getExpressions(); + // const complexConditionals = emptyExpressions.filter(e => ComplexConditional.detect(e)); + + // expect(complexConditionals.length).toBe(0); + // }); +}); \ No newline at end of file diff --git a/codemetrica/thresholds.js b/codemetrica/thresholds.js deleted file mode 100644 index 183eaab..0000000 --- a/codemetrica/thresholds.js +++ /dev/null @@ -1,11 +0,0 @@ -const thresholds = Object.freeze({ - LONG_STATEMENT: 120, - LONG_PARAMETER_LIST: 5, - LONG_METHOD: 30, - COMPLEX_CONDITIONAL: 3, -}); - -export default thresholds; - - - diff --git a/codemetrica/thresholds.ts b/codemetrica/thresholds.ts new file mode 100644 index 0000000..6653c6f --- /dev/null +++ b/codemetrica/thresholds.ts @@ -0,0 +1,9 @@ +/** + * A class representing code thresholds for various metrics. + */ +export class Thresholds { + static readonly LONG_STATEMENT = 120; + static readonly LONG_PARAMETER_LIST = 5 + static readonly LONG_METHOD = 30 + static readonly COMPLEX_CONDITIONAL = 3 +} \ No newline at end of file diff --git a/docs/CodeMetrica.md b/docs/CodeMetrica.md new file mode 100644 index 0000000..e69de29 diff --git a/spike/index.js b/examples/index.ts similarity index 74% rename from spike/index.js rename to examples/index.ts index 920573e..0482349 100644 --- a/spike/index.js +++ b/examples/index.ts @@ -1,21 +1,22 @@ -import File from '../codemetrica/py/file.js'; -import ComplexConditional from '../codemetrica/py/smells/complex_conditional.js'; - - -const file = new File('./test.py') -const classes = file.getClasses(); - -classes.forEach(c => { - console.log(c.name); - const methods = c.getMethods(); - methods.forEach(m => { - console.log('\t' + m.name); - }); -}); - -const expressions = file.getExpressions(); -expressions.forEach(e => { - if(ComplexConditional.detect(e)) { - console.log('Complex conditional detected ' + e.getText()); - } +import Class from '../codemetrica/py/class'; +import File from '../codemetrica/py/file'; +import ComplexConditional from '../codemetrica/py/smells/complex_conditional'; + + +const file = new File('./test.py') +const classes = file.getClasses(); + +classes.forEach((c: Class) => { + console.log(c.name); + const methods = c.getMethods(); + methods.forEach(m => { + console.log('\t' + m.name); + }); +}); + +const expressions = file.getExpressions(); +expressions.forEach(e => { + if(ComplexConditional.detect(e)) { + console.log('Complex conditional detected ' + e.getText()); + } }); \ No newline at end of file diff --git a/spike/test.py b/examples/test.py similarity index 97% rename from spike/test.py rename to examples/test.py index cf8bf6b..bf13f0f 100644 --- a/spike/test.py +++ b/examples/test.py @@ -1,27 +1,27 @@ -from abc import ABC, abstractmethod - -from antlr4 import ParseTreeWalker, ParserRuleContext -from codemetrica.parsers.python.python3_12_1.PythonParser import PythonParser -from codemetrica.parsers.python.python3_12_1.PythonParserListener import PythonParserListener -from codemetrica.parsers.python.python3_12_1.PythonParserVisitor import PythonParserVisitor - -class CMCommon(ABC): - def __init__(self, ctx: ParserRuleContext) -> None: - self.ctx:ParserRuleContext = ctx - - def getSimpleStmtements(self): - class Simple_stmtListener(PythonParserListener): - def __init__(self) -> None: - self.statements = [] - def enterSimple_stmt(self, ctx: PythonParser.Simple_stmtContext): - self.statements.append(ctx.getText()) - # return super().enterSimple_stmt(ctx) - - listener = Simple_stmtListener() - walker = ParseTreeWalker() - walker.walk(listener, self.ctx) - - if 1 > 2 and 3 > 4 or 8>5 or 5 > 7 and 5 > 6 or 9 > 5 and 5 > 6 or 9 > 5: - return True - - return listener.statements +from abc import ABC, abstractmethod + +from antlr4 import ParseTreeWalker, ParserRuleContext +from codemetrica.parsers.python.python3_12_1.PythonParser import PythonParser +from codemetrica.parsers.python.python3_12_1.PythonParserListener import PythonParserListener +from codemetrica.parsers.python.python3_12_1.PythonParserVisitor import PythonParserVisitor + +class CMCommon(ABC): + def __init__(self, ctx: ParserRuleContext) -> None: + self.ctx:ParserRuleContext = ctx + + def getSimpleStmtements(self): + class Simple_stmtListener(PythonParserListener): + def __init__(self) -> None: + self.statements = [] + def enterSimple_stmt(self, ctx: PythonParser.Simple_stmtContext): + self.statements.append(ctx.getText()) + # return super().enterSimple_stmt(ctx) + + listener = Simple_stmtListener() + walker = ParseTreeWalker() + walker.walk(listener, self.ctx) + + if 1 > 2 and 3 > 4 or 8>5 or 5 > 7 and 5 > 6 or 9 > 5 and 5 > 6 or 9 > 5: + return True + + return listener.statements diff --git a/codemetrica/py/parser/README.md b/grammars-v4/parser/README.md similarity index 76% rename from codemetrica/py/parser/README.md rename to grammars-v4/parser/README.md index 304cfc2..70738ae 100644 --- a/codemetrica/py/parser/README.md +++ b/grammars-v4/parser/README.md @@ -10,4 +10,4 @@ For each target language- 1. Download the Lexer.g4 & Parser.g4 2. ~~Preprocess them by running the transformGrammar.py~~ 3. Download the Python3LexerBase.py and Python3ParserBase.py and put them in the same folder -4. Generate the parsers using ```java -jar antlr-4.13.2-complete.jar *.g4 -Dlanguage=JavaScript``` with options ```-listener``` or ```-visitor``` \ No newline at end of file +4. Generate the parsers using ```java -jar ../antlr-4.13.2-complete.jar *.g4 -Dlanguage=JavaScript``` with options ```-listener``` or ```-visitor``` \ No newline at end of file diff --git a/codemetrica/py/parser/python3_12_1/PythonLexer.g4 b/grammars-v4/python/python3_12_1/PythonLexer.g4 similarity index 100% rename from codemetrica/py/parser/python3_12_1/PythonLexer.g4 rename to grammars-v4/python/python3_12_1/PythonLexer.g4 diff --git a/codemetrica/py/parser/python3_12_1/PythonLexer.interp b/grammars-v4/python/python3_12_1/PythonLexer.interp similarity index 100% rename from codemetrica/py/parser/python3_12_1/PythonLexer.interp rename to grammars-v4/python/python3_12_1/PythonLexer.interp diff --git a/codemetrica/py/parser/python3_12_1/PythonLexer.tokens b/grammars-v4/python/python3_12_1/PythonLexer.tokens similarity index 90% rename from codemetrica/py/parser/python3_12_1/PythonLexer.tokens rename to grammars-v4/python/python3_12_1/PythonLexer.tokens index 3393414..dabb847 100644 --- a/codemetrica/py/parser/python3_12_1/PythonLexer.tokens +++ b/grammars-v4/python/python3_12_1/PythonLexer.tokens @@ -1,178 +1,178 @@ -INDENT=1 -DEDENT=2 -FSTRING_START=3 -FSTRING_MIDDLE=4 -FSTRING_END=5 -FALSE=6 -AWAIT=7 -ELSE=8 -IMPORT=9 -PASS=10 -NONE=11 -BREAK=12 -EXCEPT=13 -IN=14 -RAISE=15 -TRUE=16 -CLASS=17 -FINALLY=18 -IS=19 -RETURN=20 -AND=21 -CONTINUE=22 -FOR=23 -LAMBDA=24 -TRY=25 -AS=26 -DEF=27 -FROM=28 -NONLOCAL=29 -WHILE=30 -ASSERT=31 -DEL=32 -GLOBAL=33 -NOT=34 -WITH=35 -ASYNC=36 -ELIF=37 -IF=38 -OR=39 -YIELD=40 -LPAR=41 -LSQB=42 -LBRACE=43 -RPAR=44 -RSQB=45 -RBRACE=46 -DOT=47 -COLON=48 -COMMA=49 -SEMI=50 -PLUS=51 -MINUS=52 -STAR=53 -SLASH=54 -VBAR=55 -AMPER=56 -LESS=57 -GREATER=58 -EQUAL=59 -PERCENT=60 -EQEQUAL=61 -NOTEQUAL=62 -LESSEQUAL=63 -GREATEREQUAL=64 -TILDE=65 -CIRCUMFLEX=66 -LEFTSHIFT=67 -RIGHTSHIFT=68 -DOUBLESTAR=69 -PLUSEQUAL=70 -MINEQUAL=71 -STAREQUAL=72 -SLASHEQUAL=73 -PERCENTEQUAL=74 -AMPEREQUAL=75 -VBAREQUAL=76 -CIRCUMFLEXEQUAL=77 -LEFTSHIFTEQUAL=78 -RIGHTSHIFTEQUAL=79 -DOUBLESTAREQUAL=80 -DOUBLESLASH=81 -DOUBLESLASHEQUAL=82 -AT=83 -ATEQUAL=84 -RARROW=85 -ELLIPSIS=86 -COLONEQUAL=87 -EXCLAMATION=88 -NAME=89 -NUMBER=90 -STRING=91 -TYPE_COMMENT=92 -NEWLINE=93 -COMMENT=94 -WS=95 -EXPLICIT_LINE_JOINING=96 -ERROR_TOKEN=97 -'False'=6 -'await'=7 -'else'=8 -'import'=9 -'pass'=10 -'None'=11 -'break'=12 -'except'=13 -'in'=14 -'raise'=15 -'True'=16 -'class'=17 -'finally'=18 -'is'=19 -'return'=20 -'and'=21 -'continue'=22 -'for'=23 -'lambda'=24 -'try'=25 -'as'=26 -'def'=27 -'from'=28 -'nonlocal'=29 -'while'=30 -'assert'=31 -'del'=32 -'global'=33 -'not'=34 -'with'=35 -'async'=36 -'elif'=37 -'if'=38 -'or'=39 -'yield'=40 -'('=41 -'['=42 -')'=44 -']'=45 -'.'=47 -':'=48 -','=49 -';'=50 -'+'=51 -'-'=52 -'*'=53 -'/'=54 -'|'=55 -'&'=56 -'<'=57 -'>'=58 -'='=59 -'%'=60 -'=='=61 -'!='=62 -'<='=63 -'>='=64 -'~'=65 -'^'=66 -'<<'=67 -'>>'=68 -'**'=69 -'+='=70 -'-='=71 -'*='=72 -'/='=73 -'%='=74 -'&='=75 -'|='=76 -'^='=77 -'<<='=78 -'>>='=79 -'**='=80 -'//'=81 -'//='=82 -'@'=83 -'@='=84 -'->'=85 -'...'=86 -':='=87 -'!'=88 +INDENT=1 +DEDENT=2 +FSTRING_START=3 +FSTRING_MIDDLE=4 +FSTRING_END=5 +FALSE=6 +AWAIT=7 +ELSE=8 +IMPORT=9 +PASS=10 +NONE=11 +BREAK=12 +EXCEPT=13 +IN=14 +RAISE=15 +TRUE=16 +CLASS=17 +FINALLY=18 +IS=19 +RETURN=20 +AND=21 +CONTINUE=22 +FOR=23 +LAMBDA=24 +TRY=25 +AS=26 +DEF=27 +FROM=28 +NONLOCAL=29 +WHILE=30 +ASSERT=31 +DEL=32 +GLOBAL=33 +NOT=34 +WITH=35 +ASYNC=36 +ELIF=37 +IF=38 +OR=39 +YIELD=40 +LPAR=41 +LSQB=42 +LBRACE=43 +RPAR=44 +RSQB=45 +RBRACE=46 +DOT=47 +COLON=48 +COMMA=49 +SEMI=50 +PLUS=51 +MINUS=52 +STAR=53 +SLASH=54 +VBAR=55 +AMPER=56 +LESS=57 +GREATER=58 +EQUAL=59 +PERCENT=60 +EQEQUAL=61 +NOTEQUAL=62 +LESSEQUAL=63 +GREATEREQUAL=64 +TILDE=65 +CIRCUMFLEX=66 +LEFTSHIFT=67 +RIGHTSHIFT=68 +DOUBLESTAR=69 +PLUSEQUAL=70 +MINEQUAL=71 +STAREQUAL=72 +SLASHEQUAL=73 +PERCENTEQUAL=74 +AMPEREQUAL=75 +VBAREQUAL=76 +CIRCUMFLEXEQUAL=77 +LEFTSHIFTEQUAL=78 +RIGHTSHIFTEQUAL=79 +DOUBLESTAREQUAL=80 +DOUBLESLASH=81 +DOUBLESLASHEQUAL=82 +AT=83 +ATEQUAL=84 +RARROW=85 +ELLIPSIS=86 +COLONEQUAL=87 +EXCLAMATION=88 +NAME=89 +NUMBER=90 +STRING=91 +TYPE_COMMENT=92 +NEWLINE=93 +COMMENT=94 +WS=95 +EXPLICIT_LINE_JOINING=96 +ERROR_TOKEN=97 +'False'=6 +'await'=7 +'else'=8 +'import'=9 +'pass'=10 +'None'=11 +'break'=12 +'except'=13 +'in'=14 +'raise'=15 +'True'=16 +'class'=17 +'finally'=18 +'is'=19 +'return'=20 +'and'=21 +'continue'=22 +'for'=23 +'lambda'=24 +'try'=25 +'as'=26 +'def'=27 +'from'=28 +'nonlocal'=29 +'while'=30 +'assert'=31 +'del'=32 +'global'=33 +'not'=34 +'with'=35 +'async'=36 +'elif'=37 +'if'=38 +'or'=39 +'yield'=40 +'('=41 +'['=42 +')'=44 +']'=45 +'.'=47 +':'=48 +','=49 +';'=50 +'+'=51 +'-'=52 +'*'=53 +'/'=54 +'|'=55 +'&'=56 +'<'=57 +'>'=58 +'='=59 +'%'=60 +'=='=61 +'!='=62 +'<='=63 +'>='=64 +'~'=65 +'^'=66 +'<<'=67 +'>>'=68 +'**'=69 +'+='=70 +'-='=71 +'*='=72 +'/='=73 +'%='=74 +'&='=75 +'|='=76 +'^='=77 +'<<='=78 +'>>='=79 +'**='=80 +'//'=81 +'//='=82 +'@'=83 +'@='=84 +'->'=85 +'...'=86 +':='=87 +'!'=88 diff --git a/grammars-v4/python/python3_12_1/PythonLexer.ts b/grammars-v4/python/python3_12_1/PythonLexer.ts new file mode 100644 index 0000000..5d30a62 --- /dev/null +++ b/grammars-v4/python/python3_12_1/PythonLexer.ts @@ -0,0 +1,862 @@ +// Generated from PythonLexer.g4 by ANTLR 4.13.2 +// noinspection ES6UnusedImports,JSUnusedGlobalSymbols,JSUnusedLocalSymbols +import { + ATN, + ATNDeserializer, + CharStream, + DecisionState, DFA, + Lexer, + LexerATNSimulator, + RuleContext, + PredictionContextCache, + Token +} from "antlr4"; +import PythonLexerBase from './PythonLexerBase'; + +export default class PythonLexer extends PythonLexerBase { + public static readonly INDENT = 1; + public static readonly DEDENT = 2; + public static readonly FSTRING_START = 3; + public static readonly FSTRING_MIDDLE = 4; + public static readonly FSTRING_END = 5; + public static readonly FALSE = 6; + public static readonly AWAIT = 7; + public static readonly ELSE = 8; + public static readonly IMPORT = 9; + public static readonly PASS = 10; + public static readonly NONE = 11; + public static readonly BREAK = 12; + public static readonly EXCEPT = 13; + public static readonly IN = 14; + public static readonly RAISE = 15; + public static readonly TRUE = 16; + public static readonly CLASS = 17; + public static readonly FINALLY = 18; + public static readonly IS = 19; + public static readonly RETURN = 20; + public static readonly AND = 21; + public static readonly CONTINUE = 22; + public static readonly FOR = 23; + public static readonly LAMBDA = 24; + public static readonly TRY = 25; + public static readonly AS = 26; + public static readonly DEF = 27; + public static readonly FROM = 28; + public static readonly NONLOCAL = 29; + public static readonly WHILE = 30; + public static readonly ASSERT = 31; + public static readonly DEL = 32; + public static readonly GLOBAL = 33; + public static readonly NOT = 34; + public static readonly WITH = 35; + public static readonly ASYNC = 36; + public static readonly ELIF = 37; + public static readonly IF = 38; + public static readonly OR = 39; + public static readonly YIELD = 40; + public static readonly LPAR = 41; + public static readonly LSQB = 42; + public static readonly LBRACE = 43; + public static readonly RPAR = 44; + public static readonly RSQB = 45; + public static readonly RBRACE = 46; + public static readonly DOT = 47; + public static readonly COLON = 48; + public static readonly COMMA = 49; + public static readonly SEMI = 50; + public static readonly PLUS = 51; + public static readonly MINUS = 52; + public static readonly STAR = 53; + public static readonly SLASH = 54; + public static readonly VBAR = 55; + public static readonly AMPER = 56; + public static readonly LESS = 57; + public static readonly GREATER = 58; + public static readonly EQUAL = 59; + public static readonly PERCENT = 60; + public static readonly EQEQUAL = 61; + public static readonly NOTEQUAL = 62; + public static readonly LESSEQUAL = 63; + public static readonly GREATEREQUAL = 64; + public static readonly TILDE = 65; + public static readonly CIRCUMFLEX = 66; + public static readonly LEFTSHIFT = 67; + public static readonly RIGHTSHIFT = 68; + public static readonly DOUBLESTAR = 69; + public static readonly PLUSEQUAL = 70; + public static readonly MINEQUAL = 71; + public static readonly STAREQUAL = 72; + public static readonly SLASHEQUAL = 73; + public static readonly PERCENTEQUAL = 74; + public static readonly AMPEREQUAL = 75; + public static readonly VBAREQUAL = 76; + public static readonly CIRCUMFLEXEQUAL = 77; + public static readonly LEFTSHIFTEQUAL = 78; + public static readonly RIGHTSHIFTEQUAL = 79; + public static readonly DOUBLESTAREQUAL = 80; + public static readonly DOUBLESLASH = 81; + public static readonly DOUBLESLASHEQUAL = 82; + public static readonly AT = 83; + public static readonly ATEQUAL = 84; + public static readonly RARROW = 85; + public static readonly ELLIPSIS = 86; + public static readonly COLONEQUAL = 87; + public static readonly EXCLAMATION = 88; + public static readonly NAME = 89; + public static readonly NUMBER = 90; + public static readonly STRING = 91; + public static readonly TYPE_COMMENT = 92; + public static readonly NEWLINE = 93; + public static readonly COMMENT = 94; + public static readonly WS = 95; + public static readonly EXPLICIT_LINE_JOINING = 96; + public static readonly ERROR_TOKEN = 97; + public static readonly EOF = Token.EOF; + public static readonly SINGLE_QUOTE_FSTRING_MODE = 1; + public static readonly DOUBLE_QUOTE_FSTRING_MODE = 2; + public static readonly LONG_SINGLE_QUOTE_FSTRING_MODE = 3; + public static readonly LONG_DOUBLE_QUOTE_FSTRING_MODE = 4; + public static readonly SINGLE_QUOTE_FORMAT_SPECIFICATION_MODE = 5; + public static readonly DOUBLE_QUOTE_FORMAT_SPECIFICATION_MODE = 6; + + public static readonly channelNames: string[] = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN" ]; + public static readonly literalNames: (string | null)[] = [ null, null, + null, null, + null, null, + "'False'", "'await'", + "'else'", "'import'", + "'pass'", "'None'", + "'break'", "'except'", + "'in'", "'raise'", + "'True'", "'class'", + "'finally'", + "'is'", "'return'", + "'and'", "'continue'", + "'for'", "'lambda'", + "'try'", "'as'", + "'def'", "'from'", + "'nonlocal'", + "'while'", "'assert'", + "'del'", "'global'", + "'not'", "'with'", + "'async'", "'elif'", + "'if'", "'or'", + "'yield'", "'('", + "'['", null, + "')'", "']'", + null, "'.'", + "':'", "','", + "';'", "'+'", + "'-'", "'*'", + "'/'", "'|'", + "'&'", "'<'", + "'>'", "'='", + "'%'", "'=='", + "'!='", "'<='", + "'>='", "'~'", + "'^'", "'<<'", + "'>>'", "'**'", + "'+='", "'-='", + "'*='", "'/='", + "'%='", "'&='", + "'|='", "'^='", + "'<<='", "'>>='", + "'**='", "'//'", + "'//='", "'@'", + "'@='", "'->'", + "'...'", "':='", + "'!'" ]; + public static readonly symbolicNames: (string | null)[] = [ null, "INDENT", + "DEDENT", "FSTRING_START", + "FSTRING_MIDDLE", + "FSTRING_END", + "FALSE", "AWAIT", + "ELSE", "IMPORT", + "PASS", "NONE", + "BREAK", "EXCEPT", + "IN", "RAISE", + "TRUE", "CLASS", + "FINALLY", + "IS", "RETURN", + "AND", "CONTINUE", + "FOR", "LAMBDA", + "TRY", "AS", + "DEF", "FROM", + "NONLOCAL", + "WHILE", "ASSERT", + "DEL", "GLOBAL", + "NOT", "WITH", + "ASYNC", "ELIF", + "IF", "OR", + "YIELD", "LPAR", + "LSQB", "LBRACE", + "RPAR", "RSQB", + "RBRACE", "DOT", + "COLON", "COMMA", + "SEMI", "PLUS", + "MINUS", "STAR", + "SLASH", "VBAR", + "AMPER", "LESS", + "GREATER", + "EQUAL", "PERCENT", + "EQEQUAL", + "NOTEQUAL", + "LESSEQUAL", + "GREATEREQUAL", + "TILDE", "CIRCUMFLEX", + "LEFTSHIFT", + "RIGHTSHIFT", + "DOUBLESTAR", + "PLUSEQUAL", + "MINEQUAL", + "STAREQUAL", + "SLASHEQUAL", + "PERCENTEQUAL", + "AMPEREQUAL", + "VBAREQUAL", + "CIRCUMFLEXEQUAL", + "LEFTSHIFTEQUAL", + "RIGHTSHIFTEQUAL", + "DOUBLESTAREQUAL", + "DOUBLESLASH", + "DOUBLESLASHEQUAL", + "AT", "ATEQUAL", + "RARROW", "ELLIPSIS", + "COLONEQUAL", + "EXCLAMATION", + "NAME", "NUMBER", + "STRING", "TYPE_COMMENT", + "NEWLINE", + "COMMENT", + "WS", "EXPLICIT_LINE_JOINING", + "ERROR_TOKEN" ]; + public static readonly modeNames: string[] = [ "DEFAULT_MODE", "SINGLE_QUOTE_FSTRING_MODE", + "DOUBLE_QUOTE_FSTRING_MODE", + "LONG_SINGLE_QUOTE_FSTRING_MODE", + "LONG_DOUBLE_QUOTE_FSTRING_MODE", + "SINGLE_QUOTE_FORMAT_SPECIFICATION_MODE", + "DOUBLE_QUOTE_FORMAT_SPECIFICATION_MODE", ]; + + public static readonly ruleNames: string[] = [ + "FALSE", "AWAIT", "ELSE", "IMPORT", "PASS", "NONE", "BREAK", "EXCEPT", + "IN", "RAISE", "TRUE", "CLASS", "FINALLY", "IS", "RETURN", "AND", "CONTINUE", + "FOR", "LAMBDA", "TRY", "AS", "DEF", "FROM", "NONLOCAL", "WHILE", "ASSERT", + "DEL", "GLOBAL", "NOT", "WITH", "ASYNC", "ELIF", "IF", "OR", "YIELD", + "LPAR", "LSQB", "LBRACE", "RPAR", "RSQB", "RBRACE", "DOT", "COLON", "COMMA", + "SEMI", "PLUS", "MINUS", "STAR", "SLASH", "VBAR", "AMPER", "LESS", "GREATER", + "EQUAL", "PERCENT", "EQEQUAL", "NOTEQUAL", "LESSEQUAL", "GREATEREQUAL", + "TILDE", "CIRCUMFLEX", "LEFTSHIFT", "RIGHTSHIFT", "DOUBLESTAR", "PLUSEQUAL", + "MINEQUAL", "STAREQUAL", "SLASHEQUAL", "PERCENTEQUAL", "AMPEREQUAL", "VBAREQUAL", + "CIRCUMFLEXEQUAL", "LEFTSHIFTEQUAL", "RIGHTSHIFTEQUAL", "DOUBLESTAREQUAL", + "DOUBLESLASH", "DOUBLESLASHEQUAL", "AT", "ATEQUAL", "RARROW", "ELLIPSIS", + "COLONEQUAL", "EXCLAMATION", "NAME", "NUMBER", "STRING", "TYPE_COMMENT", + "NEWLINE", "COMMENT", "WS", "EXPLICIT_LINE_JOINING", "SINGLE_QUOTE_FSTRING_START", + "DOUBLE_QUOTE_FSTRING_START", "LONG_SINGLE_QUOTE_FSTRING_START", "LONG_DOUBLE_QUOTE_FSTRING_START", + "ERROR_TOKEN", "SINGLE_QUOTE_FSTRING_END", "SINGLE_QUOTE_FSTRING_MIDDLE", + "SINGLE_QUOTE_FSTRING_LBRACE", "DOUBLE_QUOTE_FSTRING_END", "DOUBLE_QUOTE_FSTRING_MIDDLE", + "DOUBLE_QUOTE_FSTRING_LBRACE", "LONG_SINGLE_QUOTE_FSTRING_END", "LONG_SINGLE_QUOTE_FSTRING_MIDDLE", + "LONG_SINGLE_QUOTE_FSTRING_LBRACE", "LONG_DOUBLE_QUOTE_FSTRING_END", "LONG_DOUBLE_QUOTE_FSTRING_MIDDLE", + "LONG_DOUBLE_QUOTE_FSTRING_LBRACE", "SINGLE_QUOTE_FORMAT_SPECIFICATION_FSTRING_MIDDLE", + "SINGLE_QUOTE_FORMAT_SPECIFICATION_LBRACE", "SINGLE_QUOTE_FORMAT_SPECIFICATION_RBRACE", + "DOUBLE_QUOTE_FORMAT_SPECIFICATION_FSTRING_MIDDLE", "DOUBLE_QUOTE_FORMAT_SPECIFICATION_LBRACE", + "DOUBLE_QUOTE_FORMAT_SPECIFICATION_RBRACE", "STRING_LITERAL", "STRING_PREFIX", + "SHORT_STRING", "LONG_STRING", "SHORT_STRING_ITEM_FOR_SINGLE_QUOTE", "SHORT_STRING_ITEM_FOR_DOUBLE_QUOTE", + "LONG_STRING_ITEM", "SHORT_STRING_CHAR_NO_SINGLE_QUOTE", "SHORT_STRING_CHAR_NO_DOUBLE_QUOTE", + "LONG_STRING_CHAR", "STRING_ESCAPE_SEQ", "BYTES_LITERAL", "BYTES_PREFIX", + "SHORT_BYTES", "LONG_BYTES", "SHORT_BYTES_ITEM_FOR_SINGLE_QUOTE", "SHORT_BYTES_ITEM_FOR_DOUBLE_QUOTE", + "LONG_BYTES_ITEM", "SHORT_BYTES_CHAR_NO_SINGLE_QUOTE", "SHORT_BYTES_CHAR_NO_DOUBLE_QUOTE", + "LONG_BYTES_CHAR", "BYTES_ESCAPE_SEQ", "SINGLE_QUOTE_FSTRING_LITERAL", + "DOUBLE_QUOTE_FSTRING_LITERAL", "F_STRING_PREFIX", "FORMAT_SPEC_CHAR_NO_SINGLE_QUOTE", + "FORMAT_SPEC_CHAR_NO_DOUBLE_QUOTE", "DOUBLE_BRACES", "INTEGER", "DEC_INTEGER", + "BIN_INTEGER", "OCT_INTEGER", "HEX_INTEGER", "NON_ZERO_DIGIT", "DIGIT", + "BIN_DIGIT", "OCT_DIGIT", "HEX_DIGIT", "FLOAT_NUMBER", "POINT_FLOAT", + "EXPONENT_FLOAT", "DIGIT_PART", "FRACTION", "EXPONENT", "IMAG_NUMBER", + "OS_INDEPENDENT_NL", "ID_CONTINUE", "ID_START", + ]; + + + constructor(input: CharStream) { + super(input); + this._interp = new LexerATNSimulator(this, PythonLexer._ATN, PythonLexer.DecisionsToDFA, new PredictionContextCache()); + } + + public get grammarFileName(): string { return "PythonLexer.g4"; } + + public get literalNames(): (string | null)[] { return PythonLexer.literalNames; } + public get symbolicNames(): (string | null)[] { return PythonLexer.symbolicNames; } + public get ruleNames(): string[] { return PythonLexer.ruleNames; } + + public get serializedATN(): number[] { return PythonLexer._serializedATN; } + + public get channelNames(): string[] { return PythonLexer.channelNames; } + + public get modeNames(): string[] { return PythonLexer.modeNames; } + + public static readonly _serializedATN: number[] = [4,0,97,1160,6,-1,6,-1, + 6,-1,6,-1,6,-1,6,-1,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7, + 5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7, + 13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20, + 2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2, + 28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35, + 7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7, + 42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49, + 2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56,2, + 57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64, + 7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7, + 71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,78,7,78, + 2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,7,84,2,85,7,85,2, + 86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2,91,7,91,2,92,7,92,2,93, + 7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2,98,7,98,2,99,7,99,2,100, + 7,100,2,101,7,101,2,102,7,102,2,103,7,103,2,104,7,104,2,105,7,105,2,106, + 7,106,2,107,7,107,2,108,7,108,2,109,7,109,2,110,7,110,2,111,7,111,2,112, + 7,112,2,113,7,113,2,114,7,114,2,115,7,115,2,116,7,116,2,117,7,117,2,118, + 7,118,2,119,7,119,2,120,7,120,2,121,7,121,2,122,7,122,2,123,7,123,2,124, + 7,124,2,125,7,125,2,126,7,126,2,127,7,127,2,128,7,128,2,129,7,129,2,130, + 7,130,2,131,7,131,2,132,7,132,2,133,7,133,2,134,7,134,2,135,7,135,2,136, + 7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140,7,140,2,141,7,141,2,142, + 7,142,2,143,7,143,2,144,7,144,2,145,7,145,2,146,7,146,2,147,7,147,2,148, + 7,148,2,149,7,149,2,150,7,150,2,151,7,151,2,152,7,152,2,153,7,153,2,154, + 7,154,2,155,7,155,2,156,7,156,2,157,7,157,2,158,7,158,2,159,7,159,2,160, + 7,160,2,161,7,161,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1, + 2,1,2,1,2,1,2,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1, + 5,1,5,1,5,1,6,1,6,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1, + 8,1,9,1,9,1,9,1,9,1,9,1,9,1,10,1,10,1,10,1,10,1,10,1,11,1,11,1,11,1,11, + 1,11,1,11,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,13,1,13,1,13,1,14,1, + 14,1,14,1,14,1,14,1,14,1,14,1,15,1,15,1,15,1,15,1,16,1,16,1,16,1,16,1,16, + 1,16,1,16,1,16,1,16,1,17,1,17,1,17,1,17,1,18,1,18,1,18,1,18,1,18,1,18,1, + 18,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1,21,1,21,1,21,1,21,1,22,1,22,1,22, + 1,22,1,22,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,24,1,24,1,24,1, + 24,1,24,1,24,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,26,1,26,1,26,1,26,1,27, + 1,27,1,27,1,27,1,27,1,27,1,27,1,28,1,28,1,28,1,28,1,29,1,29,1,29,1,29,1, + 29,1,30,1,30,1,30,1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,31,1,32,1,32,1,32, + 1,33,1,33,1,33,1,34,1,34,1,34,1,34,1,34,1,34,1,35,1,35,1,36,1,36,1,37,1, + 37,1,38,1,38,1,39,1,39,1,40,1,40,1,41,1,41,1,42,1,42,1,43,1,43,1,44,1,44, + 1,45,1,45,1,46,1,46,1,47,1,47,1,48,1,48,1,49,1,49,1,50,1,50,1,51,1,51,1, + 52,1,52,1,53,1,53,1,54,1,54,1,55,1,55,1,55,1,56,1,56,1,56,1,57,1,57,1,57, + 1,58,1,58,1,58,1,59,1,59,1,60,1,60,1,61,1,61,1,61,1,62,1,62,1,62,1,63,1, + 63,1,63,1,64,1,64,1,64,1,65,1,65,1,65,1,66,1,66,1,66,1,67,1,67,1,67,1,68, + 1,68,1,68,1,69,1,69,1,69,1,70,1,70,1,70,1,71,1,71,1,71,1,72,1,72,1,72,1, + 72,1,73,1,73,1,73,1,73,1,74,1,74,1,74,1,74,1,75,1,75,1,75,1,76,1,76,1,76, + 1,76,1,77,1,77,1,78,1,78,1,78,1,79,1,79,1,79,1,80,1,80,1,80,1,80,1,81,1, + 81,1,81,1,82,1,82,1,83,1,83,5,83,649,8,83,10,83,12,83,652,9,83,1,84,1,84, + 1,84,3,84,657,8,84,1,85,1,85,3,85,661,8,85,1,86,1,86,3,86,665,8,86,1,86, + 1,86,1,86,1,86,1,86,1,86,1,86,5,86,674,8,86,10,86,12,86,677,9,86,1,87,1, + 87,1,88,1,88,5,88,683,8,88,10,88,12,88,686,9,88,1,88,1,88,1,89,4,89,691, + 8,89,11,89,12,89,692,1,89,1,89,1,90,1,90,1,90,1,90,1,90,1,91,1,91,1,91, + 1,91,1,91,1,91,1,92,1,92,1,92,1,92,1,92,1,92,1,93,1,93,1,93,1,93,1,93,1, + 93,1,93,1,93,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,95,1,95,1,96,1,96, + 1,96,1,96,1,96,1,97,1,97,1,97,1,97,1,98,1,98,1,98,1,98,1,99,1,99,1,99,1, + 99,1,99,1,100,1,100,1,100,1,100,1,101,1,101,1,101,1,101,1,102,1,102,1,102, + 1,102,1,102,1,102,1,102,1,103,1,103,1,103,1,103,1,104,1,104,1,104,1,104, + 1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,106,1,106,1,106,1,106,1,107, + 1,107,1,107,1,107,1,108,4,108,789,8,108,11,108,12,108,790,1,108,1,108,1, + 109,1,109,1,109,1,109,1,110,1,110,1,110,1,110,1,111,4,111,804,8,111,11, + 111,12,111,805,1,111,1,111,1,112,1,112,1,112,1,112,1,113,1,113,1,113,1, + 113,1,114,3,114,819,8,114,1,114,1,114,3,114,823,8,114,1,115,1,115,1,116, + 1,116,5,116,829,8,116,10,116,12,116,832,9,116,1,116,1,116,1,116,5,116,837, + 8,116,10,116,12,116,840,9,116,1,116,3,116,843,8,116,1,117,1,117,1,117,1, + 117,1,117,5,117,850,8,117,10,117,12,117,853,9,117,1,117,1,117,1,117,1,117, + 1,117,1,117,1,117,1,117,5,117,863,8,117,10,117,12,117,866,9,117,1,117,1, + 117,1,117,3,117,871,8,117,1,118,1,118,3,118,875,8,118,1,119,1,119,3,119, + 879,8,119,1,120,1,120,3,120,883,8,120,1,121,1,121,1,122,1,122,1,123,1,123, + 1,124,1,124,1,124,1,124,3,124,895,8,124,1,125,1,125,1,125,3,125,900,8,125, + 1,126,1,126,1,126,1,126,1,126,1,126,1,126,1,126,1,126,1,126,1,126,1,126, + 1,126,1,126,1,126,1,126,1,126,3,126,919,8,126,1,127,1,127,5,127,923,8,127, + 10,127,12,127,926,9,127,1,127,1,127,1,127,5,127,931,8,127,10,127,12,127, + 934,9,127,1,127,3,127,937,8,127,1,128,1,128,1,128,1,128,1,128,5,128,944, + 8,128,10,128,12,128,947,9,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, + 1,128,5,128,957,8,128,10,128,12,128,960,9,128,1,128,1,128,1,128,3,128,965, + 8,128,1,129,1,129,3,129,969,8,129,1,130,1,130,3,130,973,8,130,1,131,1,131, + 3,131,977,8,131,1,132,3,132,980,8,132,1,133,3,133,983,8,133,1,134,3,134, + 986,8,134,1,135,1,135,1,135,1,136,1,136,4,136,993,8,136,11,136,12,136,994, + 1,137,1,137,4,137,999,8,137,11,137,12,137,1000,1,138,1,138,1,138,1,138, + 1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138, + 1,138,3,138,1020,8,138,1,139,1,139,1,140,1,140,1,141,1,141,1,141,1,141, + 3,141,1030,8,141,1,142,1,142,1,142,1,142,3,142,1036,8,142,1,143,1,143,3, + 143,1040,8,143,1,143,5,143,1043,8,143,10,143,12,143,1046,9,143,1,143,4, + 143,1049,8,143,11,143,12,143,1050,1,143,3,143,1054,8,143,1,143,5,143,1057, + 8,143,10,143,12,143,1060,9,143,3,143,1062,8,143,1,144,1,144,1,144,3,144, + 1067,8,144,1,144,4,144,1070,8,144,11,144,12,144,1071,1,145,1,145,1,145, + 3,145,1077,8,145,1,145,4,145,1080,8,145,11,145,12,145,1081,1,146,1,146, + 1,146,3,146,1087,8,146,1,146,4,146,1090,8,146,11,146,12,146,1091,1,147, + 1,147,1,148,1,148,1,149,1,149,1,150,1,150,1,151,1,151,3,151,1104,8,151, + 1,152,1,152,3,152,1108,8,152,1,153,3,153,1111,8,153,1,153,1,153,1,153,1, + 153,3,153,1117,8,153,1,154,1,154,3,154,1121,8,154,1,154,1,154,1,155,1,155, + 3,155,1127,8,155,1,155,5,155,1130,8,155,10,155,12,155,1133,9,155,1,156, + 1,156,1,156,1,157,1,157,3,157,1140,8,157,1,157,1,157,1,158,1,158,3,158, + 1146,8,158,1,158,1,158,1,159,3,159,1151,8,159,1,159,1,159,1,160,1,160,3, + 160,1157,8,160,1,161,1,161,4,851,864,945,958,0,162,7,6,9,7,11,8,13,9,15, + 10,17,11,19,12,21,13,23,14,25,15,27,16,29,17,31,18,33,19,35,20,37,21,39, + 22,41,23,43,24,45,25,47,26,49,27,51,28,53,29,55,30,57,31,59,32,61,33,63, + 34,65,35,67,36,69,37,71,38,73,39,75,40,77,41,79,42,81,43,83,44,85,45,87, + 46,89,47,91,48,93,49,95,50,97,51,99,52,101,53,103,54,105,55,107,56,109, + 57,111,58,113,59,115,60,117,61,119,62,121,63,123,64,125,65,127,66,129,67, + 131,68,133,69,135,70,137,71,139,72,141,73,143,74,145,75,147,76,149,77,151, + 78,153,79,155,80,157,81,159,82,161,83,163,84,165,85,167,86,169,87,171,88, + 173,89,175,90,177,91,179,92,181,93,183,94,185,95,187,96,189,0,191,0,193, + 0,195,0,197,97,199,0,201,0,203,0,205,0,207,0,209,0,211,0,213,0,215,0,217, + 0,219,0,221,0,223,0,225,0,227,0,229,0,231,0,233,0,235,0,237,0,239,0,241, + 0,243,0,245,0,247,0,249,0,251,0,253,0,255,0,257,0,259,0,261,0,263,0,265, + 0,267,0,269,0,271,0,273,0,275,0,277,0,279,0,281,0,283,0,285,0,287,0,289, + 0,291,0,293,0,295,0,297,0,299,0,301,0,303,0,305,0,307,0,309,0,311,0,313, + 0,315,0,317,0,319,0,321,0,323,0,325,0,327,0,329,0,7,0,1,2,3,4,5,6,27,2, + 0,10,10,13,13,3,0,9,9,12,12,32,32,1,0,39,39,1,0,34,34,4,0,82,82,85,85,114, + 114,117,117,4,0,10,10,13,13,39,39,92,92,4,0,10,10,13,13,34,34,92,92,1,0, + 92,92,2,0,66,66,98,98,5,0,0,9,11,12,14,38,40,91,93,127,5,0,0,9,11,12,14, + 33,35,91,93,127,2,0,0,91,93,127,1,0,0,127,2,0,70,70,102,102,3,0,39,39,123, + 123,125,125,3,0,34,34,123,123,125,125,2,0,79,79,111,111,2,0,88,88,120,120, + 1,0,49,57,1,0,48,57,1,0,48,55,2,0,65,70,97,102,2,0,69,69,101,101,2,0,43, + 43,45,45,2,0,74,74,106,106,374,0,48,57,183,183,768,879,903,903,1155,1159, + 1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1552,1562,1611,1641,1648, + 1648,1750,1756,1759,1764,1767,1768,1770,1773,1776,1785,1809,1809,1840,1866, + 1958,1968,1984,1993,2027,2035,2045,2045,2070,2073,2075,2083,2085,2087,2089, + 2093,2137,2139,2200,2207,2250,2273,2275,2307,2362,2364,2366,2383,2385,2391, + 2402,2403,2406,2415,2433,2435,2492,2492,2494,2500,2503,2504,2507,2509,2519, + 2519,2530,2531,2534,2543,2558,2558,2561,2563,2620,2620,2622,2626,2631,2632, + 2635,2637,2641,2641,2662,2673,2677,2677,2689,2691,2748,2748,2750,2757,2759, + 2761,2763,2765,2786,2787,2790,2799,2810,2815,2817,2819,2876,2876,2878,2884, + 2887,2888,2891,2893,2901,2903,2914,2915,2918,2927,2946,2946,3006,3010,3014, + 3016,3018,3021,3031,3031,3046,3055,3072,3076,3132,3132,3134,3140,3142,3144, + 3146,3149,3157,3158,3170,3171,3174,3183,3201,3203,3260,3260,3262,3268,3270, + 3272,3274,3277,3285,3286,3298,3299,3302,3311,3315,3315,3328,3331,3387,3388, + 3390,3396,3398,3400,3402,3405,3415,3415,3426,3427,3430,3439,3457,3459,3530, + 3530,3535,3540,3542,3542,3544,3551,3558,3567,3570,3571,3633,3633,3635,3642, + 3655,3662,3664,3673,3761,3761,3763,3772,3784,3790,3792,3801,3864,3865,3872, + 3881,3893,3893,3895,3895,3897,3897,3902,3903,3953,3972,3974,3975,3981,3991, + 3993,4028,4038,4038,4139,4158,4160,4169,4182,4185,4190,4192,4194,4196,4199, + 4205,4209,4212,4226,4237,4239,4253,4957,4959,4969,4977,5906,5909,5938,5940, + 5970,5971,6002,6003,6068,6099,6109,6109,6112,6121,6155,6157,6159,6169,6313, + 6313,6432,6443,6448,6459,6470,6479,6608,6618,6679,6683,6741,6750,6752,6780, + 6783,6793,6800,6809,6832,6845,6847,6862,6912,6916,6964,6980,6992,7001,7019, + 7027,7040,7042,7073,7085,7088,7097,7142,7155,7204,7223,7232,7241,7248,7257, + 7376,7378,7380,7400,7405,7405,7412,7412,7415,7417,7616,7679,8255,8256,8276, + 8276,8400,8412,8417,8417,8421,8432,11503,11505,11647,11647,11744,11775, + 12330,12335,12441,12442,42528,42537,42607,42607,42612,42621,42654,42655, + 42736,42737,43010,43010,43014,43014,43019,43019,43043,43047,43052,43052, + 43136,43137,43188,43205,43216,43225,43232,43249,43263,43273,43302,43309, + 43335,43347,43392,43395,43443,43456,43472,43481,43493,43493,43504,43513, + 43561,43574,43587,43587,43596,43597,43600,43609,43643,43645,43696,43696, + 43698,43700,43703,43704,43710,43711,43713,43713,43755,43759,43765,43766, + 44003,44010,44012,44013,44016,44025,64286,64286,65024,65039,65056,65071, + 65075,65076,65101,65103,65296,65305,65343,65343,65438,65439,66045,66045, + 66272,66272,66422,66426,66720,66729,68097,68099,68101,68102,68108,68111, + 68152,68154,68159,68159,68325,68326,68900,68903,68912,68921,69291,69292, + 69373,69375,69446,69456,69506,69509,69632,69634,69688,69702,69734,69744, + 69747,69748,69759,69762,69808,69818,69826,69826,69872,69881,69888,69890, + 69927,69940,69942,69951,69957,69958,70003,70003,70016,70018,70067,70080, + 70089,70092,70094,70105,70188,70199,70206,70206,70209,70209,70367,70378, + 70384,70393,70400,70403,70459,70460,70462,70468,70471,70472,70475,70477, + 70487,70487,70498,70499,70502,70508,70512,70516,70709,70726,70736,70745, + 70750,70750,70832,70851,70864,70873,71087,71093,71096,71104,71132,71133, + 71216,71232,71248,71257,71339,71351,71360,71369,71453,71467,71472,71481, + 71724,71738,71904,71913,71984,71989,71991,71992,71995,71998,72000,72000, + 72002,72003,72016,72025,72145,72151,72154,72160,72164,72164,72193,72202, + 72243,72249,72251,72254,72263,72263,72273,72283,72330,72345,72751,72758, + 72760,72767,72784,72793,72850,72871,72873,72886,73009,73014,73018,73018, + 73020,73021,73023,73029,73031,73031,73040,73049,73098,73102,73104,73105, + 73107,73111,73120,73129,73459,73462,73472,73473,73475,73475,73524,73530, + 73534,73538,73552,73561,78912,78912,78919,78933,92768,92777,92864,92873, + 92912,92916,92976,92982,93008,93017,94031,94031,94033,94087,94095,94098, + 94180,94180,94192,94193,113821,113822,118528,118573,118576,118598,119141, + 119145,119149,119154,119163,119170,119173,119179,119210,119213,119362,119364, + 120782,120831,121344,121398,121403,121452,121461,121461,121476,121476,121499, + 121503,121505,121519,122880,122886,122888,122904,122907,122913,122915,122916, + 122918,122922,123023,123023,123184,123190,123200,123209,123566,123566,123628, + 123641,124140,124153,125136,125142,125252,125258,125264,125273,130032,130041, + 917760,917999,667,0,65,90,95,95,97,122,170,170,181,181,186,186,192,214, + 216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,891,893, + 895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329, + 1366,1369,1369,1376,1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747, + 1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869, + 1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084, + 2088,2088,2112,2136,2144,2154,2160,2183,2185,2190,2208,2249,2308,2361,2365, + 2365,2384,2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480, + 2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556, + 2556,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617, + 2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738, + 2739,2741,2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832, + 2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929, + 2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975, + 2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114, + 3129,3133,3133,3160,3162,3165,3165,3168,3169,3200,3200,3205,3212,3214,3216, + 3218,3240,3242,3251,3253,3257,3261,3261,3293,3294,3296,3297,3313,3314,3332, + 3340,3342,3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455, + 3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3634,3648, + 3654,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3762, + 3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976, + 3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208, + 4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682, + 4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789, + 4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992, + 5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880, + 5888,5905,5919,5937,5952,5969,5984,5996,5998,6000,6016,6067,6103,6103,6108, + 6108,6176,6264,6272,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516, + 6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,6917,6963,6981,6988,7043, + 7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7296,7304,7312,7354, + 7357,7359,7401,7404,7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960, + 7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061, + 8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160, + 8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455, + 8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508, + 8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11502,11506,11507, + 11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670, + 11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726, + 11728,11734,11736,11742,12293,12295,12321,12329,12337,12341,12344,12348, + 12353,12438,12445,12447,12449,12538,12540,12543,12549,12591,12593,12686, + 12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508, + 42512,42527,42538,42539,42560,42606,42623,42653,42656,42735,42775,42783, + 42786,42888,42891,42954,42960,42961,42963,42963,42965,42969,42994,43009, + 43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255, + 43259,43259,43261,43262,43274,43301,43312,43334,43360,43388,43396,43442, + 43471,43471,43488,43492,43494,43503,43514,43518,43520,43560,43584,43586, + 43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701,43702, + 43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764, + 43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866, + 43868,43881,43888,44002,44032,55203,55216,55238,55243,55291,63744,64109, + 64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310, + 64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64605, + 64612,64829,64848,64911,64914,64967,65008,65017,65137,65137,65139,65139, + 65143,65143,65145,65145,65147,65147,65149,65149,65151,65276,65313,65338, + 65345,65370,65382,65437,65440,65470,65474,65479,65482,65487,65490,65495, + 65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613, + 65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66335, + 66349,66378,66384,66421,66432,66461,66464,66499,66504,66511,66513,66517, + 66560,66717,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938, + 66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001, + 67003,67004,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504, + 67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644, + 67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861, + 67872,67897,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119, + 68121,68149,68192,68220,68224,68252,68288,68295,68297,68324,68352,68405, + 68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850, + 68864,68899,69248,69289,69296,69297,69376,69404,69415,69415,69424,69445, + 69488,69505,69552,69572,69600,69622,69635,69687,69745,69746,69749,69749, + 69763,69807,69840,69864,69891,69926,69956,69956,69959,69959,69968,70002, + 70006,70006,70019,70066,70081,70084,70106,70106,70108,70108,70144,70161, + 70163,70187,70207,70208,70272,70278,70280,70280,70282,70285,70287,70301, + 70303,70312,70320,70366,70405,70412,70415,70416,70419,70440,70442,70448, + 70450,70451,70453,70457,70461,70461,70480,70480,70493,70497,70656,70708, + 70727,70730,70751,70753,70784,70831,70852,70853,70855,70855,71040,71086, + 71128,71131,71168,71215,71236,71236,71296,71338,71352,71352,71424,71450, + 71488,71494,71680,71723,71840,71903,71935,71942,71945,71945,71948,71955, + 71957,71958,71960,71983,71999,71999,72001,72001,72096,72103,72106,72144, + 72161,72161,72163,72163,72192,72192,72203,72242,72250,72250,72272,72272, + 72284,72329,72349,72349,72368,72440,72704,72712,72714,72750,72768,72768, + 72818,72847,72960,72966,72968,72969,72971,73008,73030,73030,73056,73061, + 73063,73064,73066,73097,73112,73112,73440,73458,73474,73474,73476,73488, + 73490,73523,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808, + 77824,78895,78913,78918,82944,83526,92160,92728,92736,92766,92784,92862, + 92880,92909,92928,92975,92992,92995,93027,93047,93053,93071,93760,93823, + 93952,94026,94032,94032,94099,94111,94176,94177,94179,94179,94208,100343, + 100352,101589,101632,101640,110576,110579,110581,110587,110589,110590,110592, + 110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355, + 113664,113770,113776,113788,113792,113800,113808,113817,119808,119892,119894, + 119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993, + 119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086, + 120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144, + 120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598, + 120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770, + 120772,120779,122624,122654,122661,122666,122928,122989,123136,123180,123191, + 123197,123214,123214,123536,123565,123584,123627,124112,124139,124896,124902, + 124904,124907,124909,124910,124912,124926,124928,125124,125184,125251,125259, + 125259,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503, + 126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535, + 126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548, + 126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561, + 126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588, + 126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635, + 126651,131072,173791,173824,177977,177984,178205,178208,183969,183984,191456, + 194560,195101,196608,201546,201552,205743,1184,0,7,1,0,0,0,0,9,1,0,0,0, + 0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,1, + 0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0, + 0,33,1,0,0,0,0,35,1,0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0,43,1, + 0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0, + 0,55,1,0,0,0,0,57,1,0,0,0,0,59,1,0,0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,65,1, + 0,0,0,0,67,1,0,0,0,0,69,1,0,0,0,0,71,1,0,0,0,0,73,1,0,0,0,0,75,1,0,0,0, + 0,77,1,0,0,0,0,79,1,0,0,0,0,81,1,0,0,0,0,83,1,0,0,0,0,85,1,0,0,0,0,87,1, + 0,0,0,0,89,1,0,0,0,0,91,1,0,0,0,0,93,1,0,0,0,0,95,1,0,0,0,0,97,1,0,0,0, + 0,99,1,0,0,0,0,101,1,0,0,0,0,103,1,0,0,0,0,105,1,0,0,0,0,107,1,0,0,0,0, + 109,1,0,0,0,0,111,1,0,0,0,0,113,1,0,0,0,0,115,1,0,0,0,0,117,1,0,0,0,0,119, + 1,0,0,0,0,121,1,0,0,0,0,123,1,0,0,0,0,125,1,0,0,0,0,127,1,0,0,0,0,129,1, + 0,0,0,0,131,1,0,0,0,0,133,1,0,0,0,0,135,1,0,0,0,0,137,1,0,0,0,0,139,1,0, + 0,0,0,141,1,0,0,0,0,143,1,0,0,0,0,145,1,0,0,0,0,147,1,0,0,0,0,149,1,0,0, + 0,0,151,1,0,0,0,0,153,1,0,0,0,0,155,1,0,0,0,0,157,1,0,0,0,0,159,1,0,0,0, + 0,161,1,0,0,0,0,163,1,0,0,0,0,165,1,0,0,0,0,167,1,0,0,0,0,169,1,0,0,0,0, + 171,1,0,0,0,0,173,1,0,0,0,0,175,1,0,0,0,0,177,1,0,0,0,0,179,1,0,0,0,0,181, + 1,0,0,0,0,183,1,0,0,0,0,185,1,0,0,0,0,187,1,0,0,0,0,189,1,0,0,0,0,191,1, + 0,0,0,0,193,1,0,0,0,0,195,1,0,0,0,0,197,1,0,0,0,1,199,1,0,0,0,1,201,1,0, + 0,0,1,203,1,0,0,0,2,205,1,0,0,0,2,207,1,0,0,0,2,209,1,0,0,0,3,211,1,0,0, + 0,3,213,1,0,0,0,3,215,1,0,0,0,4,217,1,0,0,0,4,219,1,0,0,0,4,221,1,0,0,0, + 5,223,1,0,0,0,5,225,1,0,0,0,5,227,1,0,0,0,6,229,1,0,0,0,6,231,1,0,0,0,6, + 233,1,0,0,0,7,331,1,0,0,0,9,337,1,0,0,0,11,343,1,0,0,0,13,348,1,0,0,0,15, + 355,1,0,0,0,17,360,1,0,0,0,19,365,1,0,0,0,21,371,1,0,0,0,23,378,1,0,0,0, + 25,381,1,0,0,0,27,387,1,0,0,0,29,392,1,0,0,0,31,398,1,0,0,0,33,406,1,0, + 0,0,35,409,1,0,0,0,37,416,1,0,0,0,39,420,1,0,0,0,41,429,1,0,0,0,43,433, + 1,0,0,0,45,440,1,0,0,0,47,444,1,0,0,0,49,447,1,0,0,0,51,451,1,0,0,0,53, + 456,1,0,0,0,55,465,1,0,0,0,57,471,1,0,0,0,59,478,1,0,0,0,61,482,1,0,0,0, + 63,489,1,0,0,0,65,493,1,0,0,0,67,498,1,0,0,0,69,504,1,0,0,0,71,509,1,0, + 0,0,73,512,1,0,0,0,75,515,1,0,0,0,77,521,1,0,0,0,79,523,1,0,0,0,81,525, + 1,0,0,0,83,527,1,0,0,0,85,529,1,0,0,0,87,531,1,0,0,0,89,533,1,0,0,0,91, + 535,1,0,0,0,93,537,1,0,0,0,95,539,1,0,0,0,97,541,1,0,0,0,99,543,1,0,0,0, + 101,545,1,0,0,0,103,547,1,0,0,0,105,549,1,0,0,0,107,551,1,0,0,0,109,553, + 1,0,0,0,111,555,1,0,0,0,113,557,1,0,0,0,115,559,1,0,0,0,117,561,1,0,0,0, + 119,564,1,0,0,0,121,567,1,0,0,0,123,570,1,0,0,0,125,573,1,0,0,0,127,575, + 1,0,0,0,129,577,1,0,0,0,131,580,1,0,0,0,133,583,1,0,0,0,135,586,1,0,0,0, + 137,589,1,0,0,0,139,592,1,0,0,0,141,595,1,0,0,0,143,598,1,0,0,0,145,601, + 1,0,0,0,147,604,1,0,0,0,149,607,1,0,0,0,151,610,1,0,0,0,153,614,1,0,0,0, + 155,618,1,0,0,0,157,622,1,0,0,0,159,625,1,0,0,0,161,629,1,0,0,0,163,631, + 1,0,0,0,165,634,1,0,0,0,167,637,1,0,0,0,169,641,1,0,0,0,171,644,1,0,0,0, + 173,646,1,0,0,0,175,656,1,0,0,0,177,660,1,0,0,0,179,662,1,0,0,0,181,678, + 1,0,0,0,183,680,1,0,0,0,185,690,1,0,0,0,187,696,1,0,0,0,189,701,1,0,0,0, + 191,707,1,0,0,0,193,713,1,0,0,0,195,721,1,0,0,0,197,729,1,0,0,0,199,731, + 1,0,0,0,201,736,1,0,0,0,203,740,1,0,0,0,205,744,1,0,0,0,207,749,1,0,0,0, + 209,753,1,0,0,0,211,757,1,0,0,0,213,764,1,0,0,0,215,768,1,0,0,0,217,772, + 1,0,0,0,219,779,1,0,0,0,221,783,1,0,0,0,223,788,1,0,0,0,225,794,1,0,0,0, + 227,798,1,0,0,0,229,803,1,0,0,0,231,809,1,0,0,0,233,813,1,0,0,0,235,818, + 1,0,0,0,237,824,1,0,0,0,239,842,1,0,0,0,241,870,1,0,0,0,243,874,1,0,0,0, + 245,878,1,0,0,0,247,882,1,0,0,0,249,884,1,0,0,0,251,886,1,0,0,0,253,888, + 1,0,0,0,255,894,1,0,0,0,257,896,1,0,0,0,259,918,1,0,0,0,261,936,1,0,0,0, + 263,964,1,0,0,0,265,968,1,0,0,0,267,972,1,0,0,0,269,976,1,0,0,0,271,979, + 1,0,0,0,273,982,1,0,0,0,275,985,1,0,0,0,277,987,1,0,0,0,279,992,1,0,0,0, + 281,998,1,0,0,0,283,1019,1,0,0,0,285,1021,1,0,0,0,287,1023,1,0,0,0,289, + 1029,1,0,0,0,291,1035,1,0,0,0,293,1061,1,0,0,0,295,1063,1,0,0,0,297,1073, + 1,0,0,0,299,1083,1,0,0,0,301,1093,1,0,0,0,303,1095,1,0,0,0,305,1097,1,0, + 0,0,307,1099,1,0,0,0,309,1103,1,0,0,0,311,1107,1,0,0,0,313,1116,1,0,0,0, + 315,1120,1,0,0,0,317,1124,1,0,0,0,319,1134,1,0,0,0,321,1137,1,0,0,0,323, + 1145,1,0,0,0,325,1150,1,0,0,0,327,1156,1,0,0,0,329,1158,1,0,0,0,331,332, + 5,70,0,0,332,333,5,97,0,0,333,334,5,108,0,0,334,335,5,115,0,0,335,336,5, + 101,0,0,336,8,1,0,0,0,337,338,5,97,0,0,338,339,5,119,0,0,339,340,5,97,0, + 0,340,341,5,105,0,0,341,342,5,116,0,0,342,10,1,0,0,0,343,344,5,101,0,0, + 344,345,5,108,0,0,345,346,5,115,0,0,346,347,5,101,0,0,347,12,1,0,0,0,348, + 349,5,105,0,0,349,350,5,109,0,0,350,351,5,112,0,0,351,352,5,111,0,0,352, + 353,5,114,0,0,353,354,5,116,0,0,354,14,1,0,0,0,355,356,5,112,0,0,356,357, + 5,97,0,0,357,358,5,115,0,0,358,359,5,115,0,0,359,16,1,0,0,0,360,361,5,78, + 0,0,361,362,5,111,0,0,362,363,5,110,0,0,363,364,5,101,0,0,364,18,1,0,0, + 0,365,366,5,98,0,0,366,367,5,114,0,0,367,368,5,101,0,0,368,369,5,97,0,0, + 369,370,5,107,0,0,370,20,1,0,0,0,371,372,5,101,0,0,372,373,5,120,0,0,373, + 374,5,99,0,0,374,375,5,101,0,0,375,376,5,112,0,0,376,377,5,116,0,0,377, + 22,1,0,0,0,378,379,5,105,0,0,379,380,5,110,0,0,380,24,1,0,0,0,381,382,5, + 114,0,0,382,383,5,97,0,0,383,384,5,105,0,0,384,385,5,115,0,0,385,386,5, + 101,0,0,386,26,1,0,0,0,387,388,5,84,0,0,388,389,5,114,0,0,389,390,5,117, + 0,0,390,391,5,101,0,0,391,28,1,0,0,0,392,393,5,99,0,0,393,394,5,108,0,0, + 394,395,5,97,0,0,395,396,5,115,0,0,396,397,5,115,0,0,397,30,1,0,0,0,398, + 399,5,102,0,0,399,400,5,105,0,0,400,401,5,110,0,0,401,402,5,97,0,0,402, + 403,5,108,0,0,403,404,5,108,0,0,404,405,5,121,0,0,405,32,1,0,0,0,406,407, + 5,105,0,0,407,408,5,115,0,0,408,34,1,0,0,0,409,410,5,114,0,0,410,411,5, + 101,0,0,411,412,5,116,0,0,412,413,5,117,0,0,413,414,5,114,0,0,414,415,5, + 110,0,0,415,36,1,0,0,0,416,417,5,97,0,0,417,418,5,110,0,0,418,419,5,100, + 0,0,419,38,1,0,0,0,420,421,5,99,0,0,421,422,5,111,0,0,422,423,5,110,0,0, + 423,424,5,116,0,0,424,425,5,105,0,0,425,426,5,110,0,0,426,427,5,117,0,0, + 427,428,5,101,0,0,428,40,1,0,0,0,429,430,5,102,0,0,430,431,5,111,0,0,431, + 432,5,114,0,0,432,42,1,0,0,0,433,434,5,108,0,0,434,435,5,97,0,0,435,436, + 5,109,0,0,436,437,5,98,0,0,437,438,5,100,0,0,438,439,5,97,0,0,439,44,1, + 0,0,0,440,441,5,116,0,0,441,442,5,114,0,0,442,443,5,121,0,0,443,46,1,0, + 0,0,444,445,5,97,0,0,445,446,5,115,0,0,446,48,1,0,0,0,447,448,5,100,0,0, + 448,449,5,101,0,0,449,450,5,102,0,0,450,50,1,0,0,0,451,452,5,102,0,0,452, + 453,5,114,0,0,453,454,5,111,0,0,454,455,5,109,0,0,455,52,1,0,0,0,456,457, + 5,110,0,0,457,458,5,111,0,0,458,459,5,110,0,0,459,460,5,108,0,0,460,461, + 5,111,0,0,461,462,5,99,0,0,462,463,5,97,0,0,463,464,5,108,0,0,464,54,1, + 0,0,0,465,466,5,119,0,0,466,467,5,104,0,0,467,468,5,105,0,0,468,469,5,108, + 0,0,469,470,5,101,0,0,470,56,1,0,0,0,471,472,5,97,0,0,472,473,5,115,0,0, + 473,474,5,115,0,0,474,475,5,101,0,0,475,476,5,114,0,0,476,477,5,116,0,0, + 477,58,1,0,0,0,478,479,5,100,0,0,479,480,5,101,0,0,480,481,5,108,0,0,481, + 60,1,0,0,0,482,483,5,103,0,0,483,484,5,108,0,0,484,485,5,111,0,0,485,486, + 5,98,0,0,486,487,5,97,0,0,487,488,5,108,0,0,488,62,1,0,0,0,489,490,5,110, + 0,0,490,491,5,111,0,0,491,492,5,116,0,0,492,64,1,0,0,0,493,494,5,119,0, + 0,494,495,5,105,0,0,495,496,5,116,0,0,496,497,5,104,0,0,497,66,1,0,0,0, + 498,499,5,97,0,0,499,500,5,115,0,0,500,501,5,121,0,0,501,502,5,110,0,0, + 502,503,5,99,0,0,503,68,1,0,0,0,504,505,5,101,0,0,505,506,5,108,0,0,506, + 507,5,105,0,0,507,508,5,102,0,0,508,70,1,0,0,0,509,510,5,105,0,0,510,511, + 5,102,0,0,511,72,1,0,0,0,512,513,5,111,0,0,513,514,5,114,0,0,514,74,1,0, + 0,0,515,516,5,121,0,0,516,517,5,105,0,0,517,518,5,101,0,0,518,519,5,108, + 0,0,519,520,5,100,0,0,520,76,1,0,0,0,521,522,5,40,0,0,522,78,1,0,0,0,523, + 524,5,91,0,0,524,80,1,0,0,0,525,526,5,123,0,0,526,82,1,0,0,0,527,528,5, + 41,0,0,528,84,1,0,0,0,529,530,5,93,0,0,530,86,1,0,0,0,531,532,5,125,0,0, + 532,88,1,0,0,0,533,534,5,46,0,0,534,90,1,0,0,0,535,536,5,58,0,0,536,92, + 1,0,0,0,537,538,5,44,0,0,538,94,1,0,0,0,539,540,5,59,0,0,540,96,1,0,0,0, + 541,542,5,43,0,0,542,98,1,0,0,0,543,544,5,45,0,0,544,100,1,0,0,0,545,546, + 5,42,0,0,546,102,1,0,0,0,547,548,5,47,0,0,548,104,1,0,0,0,549,550,5,124, + 0,0,550,106,1,0,0,0,551,552,5,38,0,0,552,108,1,0,0,0,553,554,5,60,0,0,554, + 110,1,0,0,0,555,556,5,62,0,0,556,112,1,0,0,0,557,558,5,61,0,0,558,114,1, + 0,0,0,559,560,5,37,0,0,560,116,1,0,0,0,561,562,5,61,0,0,562,563,5,61,0, + 0,563,118,1,0,0,0,564,565,5,33,0,0,565,566,5,61,0,0,566,120,1,0,0,0,567, + 568,5,60,0,0,568,569,5,61,0,0,569,122,1,0,0,0,570,571,5,62,0,0,571,572, + 5,61,0,0,572,124,1,0,0,0,573,574,5,126,0,0,574,126,1,0,0,0,575,576,5,94, + 0,0,576,128,1,0,0,0,577,578,5,60,0,0,578,579,5,60,0,0,579,130,1,0,0,0,580, + 581,5,62,0,0,581,582,5,62,0,0,582,132,1,0,0,0,583,584,5,42,0,0,584,585, + 5,42,0,0,585,134,1,0,0,0,586,587,5,43,0,0,587,588,5,61,0,0,588,136,1,0, + 0,0,589,590,5,45,0,0,590,591,5,61,0,0,591,138,1,0,0,0,592,593,5,42,0,0, + 593,594,5,61,0,0,594,140,1,0,0,0,595,596,5,47,0,0,596,597,5,61,0,0,597, + 142,1,0,0,0,598,599,5,37,0,0,599,600,5,61,0,0,600,144,1,0,0,0,601,602,5, + 38,0,0,602,603,5,61,0,0,603,146,1,0,0,0,604,605,5,124,0,0,605,606,5,61, + 0,0,606,148,1,0,0,0,607,608,5,94,0,0,608,609,5,61,0,0,609,150,1,0,0,0,610, + 611,5,60,0,0,611,612,5,60,0,0,612,613,5,61,0,0,613,152,1,0,0,0,614,615, + 5,62,0,0,615,616,5,62,0,0,616,617,5,61,0,0,617,154,1,0,0,0,618,619,5,42, + 0,0,619,620,5,42,0,0,620,621,5,61,0,0,621,156,1,0,0,0,622,623,5,47,0,0, + 623,624,5,47,0,0,624,158,1,0,0,0,625,626,5,47,0,0,626,627,5,47,0,0,627, + 628,5,61,0,0,628,160,1,0,0,0,629,630,5,64,0,0,630,162,1,0,0,0,631,632,5, + 64,0,0,632,633,5,61,0,0,633,164,1,0,0,0,634,635,5,45,0,0,635,636,5,62,0, + 0,636,166,1,0,0,0,637,638,5,46,0,0,638,639,5,46,0,0,639,640,5,46,0,0,640, + 168,1,0,0,0,641,642,5,58,0,0,642,643,5,61,0,0,643,170,1,0,0,0,644,645,5, + 33,0,0,645,172,1,0,0,0,646,650,3,329,161,0,647,649,3,327,160,0,648,647, + 1,0,0,0,649,652,1,0,0,0,650,648,1,0,0,0,650,651,1,0,0,0,651,174,1,0,0,0, + 652,650,1,0,0,0,653,657,3,291,142,0,654,657,3,311,152,0,655,657,3,323,158, + 0,656,653,1,0,0,0,656,654,1,0,0,0,656,655,1,0,0,0,657,176,1,0,0,0,658,661, + 3,235,114,0,659,661,3,257,125,0,660,658,1,0,0,0,660,659,1,0,0,0,661,178, + 1,0,0,0,662,664,5,35,0,0,663,665,3,185,89,0,664,663,1,0,0,0,664,665,1,0, + 0,0,665,666,1,0,0,0,666,667,5,116,0,0,667,668,5,121,0,0,668,669,5,112,0, + 0,669,670,5,101,0,0,670,671,5,58,0,0,671,675,1,0,0,0,672,674,8,0,0,0,673, + 672,1,0,0,0,674,677,1,0,0,0,675,673,1,0,0,0,675,676,1,0,0,0,676,180,1,0, + 0,0,677,675,1,0,0,0,678,679,3,325,159,0,679,182,1,0,0,0,680,684,5,35,0, + 0,681,683,8,0,0,0,682,681,1,0,0,0,683,686,1,0,0,0,684,682,1,0,0,0,684,685, + 1,0,0,0,685,687,1,0,0,0,686,684,1,0,0,0,687,688,6,88,0,0,688,184,1,0,0, + 0,689,691,7,1,0,0,690,689,1,0,0,0,691,692,1,0,0,0,692,690,1,0,0,0,692,693, + 1,0,0,0,693,694,1,0,0,0,694,695,6,89,0,0,695,186,1,0,0,0,696,697,5,92,0, + 0,697,698,3,181,87,0,698,699,1,0,0,0,699,700,6,90,0,0,700,188,1,0,0,0,701, + 702,3,283,138,0,702,703,7,2,0,0,703,704,1,0,0,0,704,705,6,91,1,0,705,706, + 6,91,2,0,706,190,1,0,0,0,707,708,3,283,138,0,708,709,7,3,0,0,709,710,1, + 0,0,0,710,711,6,92,1,0,711,712,6,92,3,0,712,192,1,0,0,0,713,714,3,283,138, + 0,714,715,7,2,0,0,715,716,7,2,0,0,716,717,7,2,0,0,717,718,1,0,0,0,718,719, + 6,93,1,0,719,720,6,93,4,0,720,194,1,0,0,0,721,722,3,283,138,0,722,723,7, + 3,0,0,723,724,7,3,0,0,724,725,7,3,0,0,725,726,1,0,0,0,726,727,6,94,1,0, + 727,728,6,94,5,0,728,196,1,0,0,0,729,730,9,0,0,0,730,198,1,0,0,0,731,732, + 7,2,0,0,732,733,1,0,0,0,733,734,6,96,6,0,734,735,6,96,7,0,735,200,1,0,0, + 0,736,737,3,279,136,0,737,738,1,0,0,0,738,739,6,97,8,0,739,202,1,0,0,0, + 740,741,5,123,0,0,741,742,1,0,0,0,742,743,6,98,9,0,743,204,1,0,0,0,744, + 745,7,3,0,0,745,746,1,0,0,0,746,747,6,99,6,0,747,748,6,99,7,0,748,206,1, + 0,0,0,749,750,3,281,137,0,750,751,1,0,0,0,751,752,6,100,8,0,752,208,1,0, + 0,0,753,754,5,123,0,0,754,755,1,0,0,0,755,756,6,101,9,0,756,210,1,0,0,0, + 757,758,7,2,0,0,758,759,7,2,0,0,759,760,7,2,0,0,760,761,1,0,0,0,761,762, + 6,102,6,0,762,763,6,102,7,0,763,212,1,0,0,0,764,765,3,279,136,0,765,766, + 1,0,0,0,766,767,6,103,8,0,767,214,1,0,0,0,768,769,5,123,0,0,769,770,1,0, + 0,0,770,771,6,104,9,0,771,216,1,0,0,0,772,773,7,3,0,0,773,774,7,3,0,0,774, + 775,7,3,0,0,775,776,1,0,0,0,776,777,6,105,6,0,777,778,6,105,7,0,778,218, + 1,0,0,0,779,780,3,281,137,0,780,781,1,0,0,0,781,782,6,106,8,0,782,220,1, + 0,0,0,783,784,5,123,0,0,784,785,1,0,0,0,785,786,6,107,9,0,786,222,1,0,0, + 0,787,789,3,285,139,0,788,787,1,0,0,0,789,790,1,0,0,0,790,788,1,0,0,0,790, + 791,1,0,0,0,791,792,1,0,0,0,792,793,6,108,8,0,793,224,1,0,0,0,794,795,5, + 123,0,0,795,796,1,0,0,0,796,797,6,109,9,0,797,226,1,0,0,0,798,799,5,125, + 0,0,799,800,1,0,0,0,800,801,6,110,10,0,801,228,1,0,0,0,802,804,3,287,140, + 0,803,802,1,0,0,0,804,805,1,0,0,0,805,803,1,0,0,0,805,806,1,0,0,0,806,807, + 1,0,0,0,807,808,6,111,8,0,808,230,1,0,0,0,809,810,5,123,0,0,810,811,1,0, + 0,0,811,812,6,112,9,0,812,232,1,0,0,0,813,814,5,125,0,0,814,815,1,0,0,0, + 815,816,6,113,10,0,816,234,1,0,0,0,817,819,3,237,115,0,818,817,1,0,0,0, + 818,819,1,0,0,0,819,822,1,0,0,0,820,823,3,239,116,0,821,823,3,241,117,0, + 822,820,1,0,0,0,822,821,1,0,0,0,823,236,1,0,0,0,824,825,7,4,0,0,825,238, + 1,0,0,0,826,830,5,39,0,0,827,829,3,243,118,0,828,827,1,0,0,0,829,832,1, + 0,0,0,830,828,1,0,0,0,830,831,1,0,0,0,831,833,1,0,0,0,832,830,1,0,0,0,833, + 843,5,39,0,0,834,838,5,34,0,0,835,837,3,245,119,0,836,835,1,0,0,0,837,840, + 1,0,0,0,838,836,1,0,0,0,838,839,1,0,0,0,839,841,1,0,0,0,840,838,1,0,0,0, + 841,843,5,34,0,0,842,826,1,0,0,0,842,834,1,0,0,0,843,240,1,0,0,0,844,845, + 5,39,0,0,845,846,5,39,0,0,846,847,5,39,0,0,847,851,1,0,0,0,848,850,3,247, + 120,0,849,848,1,0,0,0,850,853,1,0,0,0,851,852,1,0,0,0,851,849,1,0,0,0,852, + 854,1,0,0,0,853,851,1,0,0,0,854,855,5,39,0,0,855,856,5,39,0,0,856,871,5, + 39,0,0,857,858,5,34,0,0,858,859,5,34,0,0,859,860,5,34,0,0,860,864,1,0,0, + 0,861,863,3,247,120,0,862,861,1,0,0,0,863,866,1,0,0,0,864,865,1,0,0,0,864, + 862,1,0,0,0,865,867,1,0,0,0,866,864,1,0,0,0,867,868,5,34,0,0,868,869,5, + 34,0,0,869,871,5,34,0,0,870,844,1,0,0,0,870,857,1,0,0,0,871,242,1,0,0,0, + 872,875,3,249,121,0,873,875,3,255,124,0,874,872,1,0,0,0,874,873,1,0,0,0, + 875,244,1,0,0,0,876,879,3,251,122,0,877,879,3,255,124,0,878,876,1,0,0,0, + 878,877,1,0,0,0,879,246,1,0,0,0,880,883,3,253,123,0,881,883,3,255,124,0, + 882,880,1,0,0,0,882,881,1,0,0,0,883,248,1,0,0,0,884,885,8,5,0,0,885,250, + 1,0,0,0,886,887,8,6,0,0,887,252,1,0,0,0,888,889,8,7,0,0,889,254,1,0,0,0, + 890,891,5,92,0,0,891,895,3,325,159,0,892,893,5,92,0,0,893,895,9,0,0,0,894, + 890,1,0,0,0,894,892,1,0,0,0,895,256,1,0,0,0,896,899,3,259,126,0,897,900, + 3,261,127,0,898,900,3,263,128,0,899,897,1,0,0,0,899,898,1,0,0,0,900,258, + 1,0,0,0,901,919,7,8,0,0,902,903,5,98,0,0,903,919,5,114,0,0,904,905,5,66, + 0,0,905,919,5,114,0,0,906,907,5,98,0,0,907,919,5,82,0,0,908,909,5,66,0, + 0,909,919,5,82,0,0,910,911,5,114,0,0,911,919,5,98,0,0,912,913,5,114,0,0, + 913,919,5,66,0,0,914,915,5,82,0,0,915,919,5,98,0,0,916,917,5,82,0,0,917, + 919,5,66,0,0,918,901,1,0,0,0,918,902,1,0,0,0,918,904,1,0,0,0,918,906,1, + 0,0,0,918,908,1,0,0,0,918,910,1,0,0,0,918,912,1,0,0,0,918,914,1,0,0,0,918, + 916,1,0,0,0,919,260,1,0,0,0,920,924,5,39,0,0,921,923,3,265,129,0,922,921, + 1,0,0,0,923,926,1,0,0,0,924,922,1,0,0,0,924,925,1,0,0,0,925,927,1,0,0,0, + 926,924,1,0,0,0,927,937,5,39,0,0,928,932,5,34,0,0,929,931,3,267,130,0,930, + 929,1,0,0,0,931,934,1,0,0,0,932,930,1,0,0,0,932,933,1,0,0,0,933,935,1,0, + 0,0,934,932,1,0,0,0,935,937,5,34,0,0,936,920,1,0,0,0,936,928,1,0,0,0,937, + 262,1,0,0,0,938,939,5,39,0,0,939,940,5,39,0,0,940,941,5,39,0,0,941,945, + 1,0,0,0,942,944,3,269,131,0,943,942,1,0,0,0,944,947,1,0,0,0,945,946,1,0, + 0,0,945,943,1,0,0,0,946,948,1,0,0,0,947,945,1,0,0,0,948,949,5,39,0,0,949, + 950,5,39,0,0,950,965,5,39,0,0,951,952,5,34,0,0,952,953,5,34,0,0,953,954, + 5,34,0,0,954,958,1,0,0,0,955,957,3,269,131,0,956,955,1,0,0,0,957,960,1, + 0,0,0,958,959,1,0,0,0,958,956,1,0,0,0,959,961,1,0,0,0,960,958,1,0,0,0,961, + 962,5,34,0,0,962,963,5,34,0,0,963,965,5,34,0,0,964,938,1,0,0,0,964,951, + 1,0,0,0,965,264,1,0,0,0,966,969,3,271,132,0,967,969,3,277,135,0,968,966, + 1,0,0,0,968,967,1,0,0,0,969,266,1,0,0,0,970,973,3,273,133,0,971,973,3,277, + 135,0,972,970,1,0,0,0,972,971,1,0,0,0,973,268,1,0,0,0,974,977,3,275,134, + 0,975,977,3,277,135,0,976,974,1,0,0,0,976,975,1,0,0,0,977,270,1,0,0,0,978, + 980,7,9,0,0,979,978,1,0,0,0,980,272,1,0,0,0,981,983,7,10,0,0,982,981,1, + 0,0,0,983,274,1,0,0,0,984,986,7,11,0,0,985,984,1,0,0,0,986,276,1,0,0,0, + 987,988,5,92,0,0,988,989,7,12,0,0,989,278,1,0,0,0,990,993,3,285,139,0,991, + 993,3,289,141,0,992,990,1,0,0,0,992,991,1,0,0,0,993,994,1,0,0,0,994,992, + 1,0,0,0,994,995,1,0,0,0,995,280,1,0,0,0,996,999,3,287,140,0,997,999,3,289, + 141,0,998,996,1,0,0,0,998,997,1,0,0,0,999,1000,1,0,0,0,1000,998,1,0,0,0, + 1000,1001,1,0,0,0,1001,282,1,0,0,0,1002,1020,7,13,0,0,1003,1004,5,102,0, + 0,1004,1020,5,114,0,0,1005,1006,5,70,0,0,1006,1020,5,114,0,0,1007,1008, + 5,102,0,0,1008,1020,5,82,0,0,1009,1010,5,70,0,0,1010,1020,5,82,0,0,1011, + 1012,5,114,0,0,1012,1020,5,102,0,0,1013,1014,5,114,0,0,1014,1020,5,70,0, + 0,1015,1016,5,82,0,0,1016,1020,5,102,0,0,1017,1018,5,82,0,0,1018,1020,5, + 70,0,0,1019,1002,1,0,0,0,1019,1003,1,0,0,0,1019,1005,1,0,0,0,1019,1007, + 1,0,0,0,1019,1009,1,0,0,0,1019,1011,1,0,0,0,1019,1013,1,0,0,0,1019,1015, + 1,0,0,0,1019,1017,1,0,0,0,1020,284,1,0,0,0,1021,1022,8,14,0,0,1022,286, + 1,0,0,0,1023,1024,8,15,0,0,1024,288,1,0,0,0,1025,1026,5,123,0,0,1026,1030, + 5,123,0,0,1027,1028,5,125,0,0,1028,1030,5,125,0,0,1029,1025,1,0,0,0,1029, + 1027,1,0,0,0,1030,290,1,0,0,0,1031,1036,3,293,143,0,1032,1036,3,295,144, + 0,1033,1036,3,297,145,0,1034,1036,3,299,146,0,1035,1031,1,0,0,0,1035,1032, + 1,0,0,0,1035,1033,1,0,0,0,1035,1034,1,0,0,0,1036,292,1,0,0,0,1037,1044, + 3,301,147,0,1038,1040,5,95,0,0,1039,1038,1,0,0,0,1039,1040,1,0,0,0,1040, + 1041,1,0,0,0,1041,1043,3,303,148,0,1042,1039,1,0,0,0,1043,1046,1,0,0,0, + 1044,1042,1,0,0,0,1044,1045,1,0,0,0,1045,1062,1,0,0,0,1046,1044,1,0,0,0, + 1047,1049,5,48,0,0,1048,1047,1,0,0,0,1049,1050,1,0,0,0,1050,1048,1,0,0, + 0,1050,1051,1,0,0,0,1051,1058,1,0,0,0,1052,1054,5,95,0,0,1053,1052,1,0, + 0,0,1053,1054,1,0,0,0,1054,1055,1,0,0,0,1055,1057,5,48,0,0,1056,1053,1, + 0,0,0,1057,1060,1,0,0,0,1058,1056,1,0,0,0,1058,1059,1,0,0,0,1059,1062,1, + 0,0,0,1060,1058,1,0,0,0,1061,1037,1,0,0,0,1061,1048,1,0,0,0,1062,294,1, + 0,0,0,1063,1064,5,48,0,0,1064,1069,7,8,0,0,1065,1067,5,95,0,0,1066,1065, + 1,0,0,0,1066,1067,1,0,0,0,1067,1068,1,0,0,0,1068,1070,3,305,149,0,1069, + 1066,1,0,0,0,1070,1071,1,0,0,0,1071,1069,1,0,0,0,1071,1072,1,0,0,0,1072, + 296,1,0,0,0,1073,1074,5,48,0,0,1074,1079,7,16,0,0,1075,1077,5,95,0,0,1076, + 1075,1,0,0,0,1076,1077,1,0,0,0,1077,1078,1,0,0,0,1078,1080,3,307,150,0, + 1079,1076,1,0,0,0,1080,1081,1,0,0,0,1081,1079,1,0,0,0,1081,1082,1,0,0,0, + 1082,298,1,0,0,0,1083,1084,5,48,0,0,1084,1089,7,17,0,0,1085,1087,5,95,0, + 0,1086,1085,1,0,0,0,1086,1087,1,0,0,0,1087,1088,1,0,0,0,1088,1090,3,309, + 151,0,1089,1086,1,0,0,0,1090,1091,1,0,0,0,1091,1089,1,0,0,0,1091,1092,1, + 0,0,0,1092,300,1,0,0,0,1093,1094,7,18,0,0,1094,302,1,0,0,0,1095,1096,7, + 19,0,0,1096,304,1,0,0,0,1097,1098,2,48,49,0,1098,306,1,0,0,0,1099,1100, + 7,20,0,0,1100,308,1,0,0,0,1101,1104,3,303,148,0,1102,1104,7,21,0,0,1103, + 1101,1,0,0,0,1103,1102,1,0,0,0,1104,310,1,0,0,0,1105,1108,3,313,153,0,1106, + 1108,3,315,154,0,1107,1105,1,0,0,0,1107,1106,1,0,0,0,1108,312,1,0,0,0,1109, + 1111,3,317,155,0,1110,1109,1,0,0,0,1110,1111,1,0,0,0,1111,1112,1,0,0,0, + 1112,1117,3,319,156,0,1113,1114,3,317,155,0,1114,1115,5,46,0,0,1115,1117, + 1,0,0,0,1116,1110,1,0,0,0,1116,1113,1,0,0,0,1117,314,1,0,0,0,1118,1121, + 3,317,155,0,1119,1121,3,313,153,0,1120,1118,1,0,0,0,1120,1119,1,0,0,0,1121, + 1122,1,0,0,0,1122,1123,3,321,157,0,1123,316,1,0,0,0,1124,1131,3,303,148, + 0,1125,1127,5,95,0,0,1126,1125,1,0,0,0,1126,1127,1,0,0,0,1127,1128,1,0, + 0,0,1128,1130,3,303,148,0,1129,1126,1,0,0,0,1130,1133,1,0,0,0,1131,1129, + 1,0,0,0,1131,1132,1,0,0,0,1132,318,1,0,0,0,1133,1131,1,0,0,0,1134,1135, + 5,46,0,0,1135,1136,3,317,155,0,1136,320,1,0,0,0,1137,1139,7,22,0,0,1138, + 1140,7,23,0,0,1139,1138,1,0,0,0,1139,1140,1,0,0,0,1140,1141,1,0,0,0,1141, + 1142,3,317,155,0,1142,322,1,0,0,0,1143,1146,3,311,152,0,1144,1146,3,317, + 155,0,1145,1143,1,0,0,0,1145,1144,1,0,0,0,1146,1147,1,0,0,0,1147,1148,7, + 24,0,0,1148,324,1,0,0,0,1149,1151,5,13,0,0,1150,1149,1,0,0,0,1150,1151, + 1,0,0,0,1151,1152,1,0,0,0,1152,1153,5,10,0,0,1153,326,1,0,0,0,1154,1157, + 3,329,161,0,1155,1157,7,25,0,0,1156,1154,1,0,0,0,1156,1155,1,0,0,0,1157, + 328,1,0,0,0,1158,1159,7,26,0,0,1159,330,1,0,0,0,72,0,1,2,3,4,5,6,650,656, + 660,664,675,684,692,790,805,818,822,830,838,842,851,864,870,874,878,882, + 894,899,918,924,932,936,945,958,964,968,972,976,979,982,985,992,994,998, + 1000,1019,1029,1035,1039,1044,1050,1053,1058,1061,1066,1071,1076,1081,1086, + 1091,1103,1107,1110,1116,1120,1126,1131,1139,1145,1150,1156,11,0,1,0,7, + 3,0,5,1,0,5,2,0,5,3,0,5,4,0,7,5,0,4,0,0,7,4,0,7,43,0,7,46,0]; + + private static __ATN: ATN; + public static get _ATN(): ATN { + if (!PythonLexer.__ATN) { + PythonLexer.__ATN = new ATNDeserializer().deserialize(PythonLexer._serializedATN); + } + + return PythonLexer.__ATN; + } + + + static DecisionsToDFA = PythonLexer._ATN.decisionToState.map( (ds: DecisionState, index: number) => new DFA(ds, index) ); +} \ No newline at end of file diff --git a/codemetrica/py/parser/python3_12_1/PythonLexerBase.js b/grammars-v4/python/python3_12_1/PythonLexerBase.ts similarity index 52% rename from codemetrica/py/parser/python3_12_1/PythonLexerBase.js rename to grammars-v4/python/python3_12_1/PythonLexerBase.ts index 2a7beba..ed04329 100644 --- a/codemetrica/py/parser/python3_12_1/PythonLexerBase.js +++ b/grammars-v4/python/python3_12_1/PythonLexerBase.ts @@ -27,177 +27,178 @@ THE SOFTWARE. * */ -import { Token, CommonToken, Lexer } from "antlr4"; -import PythonLexer from "./PythonLexer.js"; - -export default class PythonLexerBase extends Lexer { - constructor(input) { +import { CharStream, Token, Lexer } from "antlr4"; +import PythonLexer from "./PythonLexer"; +import * as Collections from "typescript-collections"; + +export default abstract class PythonLexerBase extends Lexer { + // A stack that keeps track of the indentation lengths + private indentLengthStack!: Collections.Stack; + // A list where tokens are waiting to be loaded into the token stream + private pendingTokens!: Array; + + // last pending token types + private previousPendingTokenType!: number; + private lastPendingTokenTypeFromDefaultChannel!: number; + + // The amount of opened parentheses, square brackets or curly braces + private opened!: number; + // The amount of opened parentheses and square brackets in the current lexer mode + private paren_or_bracket_openedStack!: Collections.Stack; + + private wasSpaceIndentation!: boolean; + private wasTabIndentation!: boolean; + private wasIndentationMixedWithSpacesAndTabs!: boolean; + + private curToken: Token | undefined; // current (under processing) token + private ffgToken: Token | undefined; // following (look ahead) token + + private readonly INVALID_LENGTH: number = -1; + private readonly ERR_TXT: string = " ERROR: "; + + protected constructor(input: CharStream) { super(input); + this.init(); + } - // A stack that keeps track of the indentation lengths - this.indentLengthStack; - // A list where tokens are waiting to be loaded into the token stream - this.pendingTokens; - - // last pending token types - this.previousPendingTokenType; - this.lastPendingTokenTypeFromDefaultChannel; - - // The amount of opened parentheses, square brackets or curly braces - this.opened; - // The amount of opened parentheses and square brackets in the current lexer mode - this.paren_or_bracket_openedStack; - - this.wasSpaceIndentation; - this.wasTabIndentation; - this.wasIndentationMixedWithSpacesAndTabs; - const INVALID_LENGTH = -1; - - this.curToken; // current (under processing) token - this.ffgToken; // following (look ahead) token - - const ERR_TXT = " ERROR: "; + public nextToken(): Token { // reading the input stream until a return EOF + this.checkNextToken(); + return this.pendingTokens.shift()! /* .pollFirst() */; // add the queued token to the token stream + } + public reset(): void { this.init(); + super.reset(); } - init() { - this.indentLengthStack = []; + private init(): void { + this.indentLengthStack = new Collections.Stack(); this.pendingTokens = []; this.previousPendingTokenType = 0; this.lastPendingTokenTypeFromDefaultChannel = 0; this.opened = 0; - this.paren_or_bracket_openedStack = []; + this.paren_or_bracket_openedStack = new Collections.Stack(); this.wasSpaceIndentation = false; this.wasTabIndentation = false; this.wasIndentationMixedWithSpacesAndTabs = false; - this.curToken = null; - this.ffgToken = null; - } - - nextToken() { // reading the input stream until a return EOF - this.checkNextToken(); - return this.pendingTokens.shift() /* .pollFirst() */; // add the queued token to the token stream + this.curToken = undefined; + this.ffgToken = undefined; } - checkNextToken() { - if (this.previousPendingTokenType !== Token.EOF) { + private checkNextToken(): void { + if (this.previousPendingTokenType !== PythonLexer.EOF) { this.setCurrentAndFollowingTokens(); - if (this.indentLengthStack.length === 0) { // We're at the first token + if (this.indentLengthStack.isEmpty()) { // We're at the first token this.handleStartOfInput(); } - switch (this.curToken.type) { + switch (this.curToken!.type) { case PythonLexer.LPAR: case PythonLexer.LSQB: case PythonLexer.LBRACE: this.opened++; - this.addPendingToken(this.curToken); + this.addPendingToken(this.curToken!); break; case PythonLexer.RPAR: case PythonLexer.RSQB: case PythonLexer.RBRACE: this.opened--; - this.addPendingToken(this.curToken); + this.addPendingToken(this.curToken!); break; case PythonLexer.NEWLINE: this.handleNEWLINEtoken(); break; - case PythonLexer.STRING: - this.handleSTRINGtoken(); - break; case PythonLexer.FSTRING_MIDDLE: this.handleFSTRING_MIDDLE_token(); break; case PythonLexer.ERROR_TOKEN: - this.reportLexerError(`token recognition error at: '${this.curToken.text}'`); - this.addPendingToken(this.curToken); + this.reportLexerError(`token recognition error at: '${this.curToken!.text}'`); + this.addPendingToken(this.curToken!); break; - case Token.EOF: + case PythonLexer.EOF: this.handleEOFtoken(); break; default: - this.addPendingToken(this.curToken); + this.addPendingToken(this.curToken!); } this.handleFORMAT_SPECIFICATION_MODE(); } } - setCurrentAndFollowingTokens() { - this.curToken = this.ffgToken == undefined ? - this.getCommonTokenByToken(super.nextToken()) : - this.getCommonTokenByToken(this.ffgToken); + private setCurrentAndFollowingTokens(): void { + this.curToken = this.ffgToken == undefined + ? super.nextToken() + : this.ffgToken; this.handleFStringLexerModes(); - this.ffgToken = this.curToken.type === Token.EOF ? - this.curToken : - this.getCommonTokenByToken(super.nextToken()); + this.ffgToken = this.curToken.type === PythonLexer.EOF + ? this.curToken + : super.nextToken(); } - // initialize the _indentLengthStack + // initialize the indentLengthStack // hide the leading NEWLINE token(s) // if exists, find the first statement (not NEWLINE, not EOF token) that comes from the default channel // insert a leading INDENT token if necessary - handleStartOfInput() { + private handleStartOfInput(): void { // initialize the stack with a default 0 indentation length this.indentLengthStack.push(0); // this will never be popped off - while (this.curToken.type !== Token.EOF) { - if (this.curToken.channel === Token.DEFAULT_CHANNEL) { - if (this.curToken.type === PythonLexer.NEWLINE) { + while (this.curToken!.type !== PythonLexer.EOF) { + if (this.curToken!.channel === Token.DEFAULT_CHANNEL) { + if (this.curToken!.type === PythonLexer.NEWLINE) { // all the NEWLINE tokens must be ignored before the first statement - this.hideAndAddPendingToken(this.curToken); + this.hideAndAddPendingToken(this.curToken!); } else { // We're at the first statement this.insertLeadingIndentToken(); return; // continue the processing of the current token with checkNextToken() } } else { - this.addPendingToken(this.curToken); // it can be WS, EXPLICIT_LINE_JOINING or COMMENT token + this.addPendingToken(this.curToken!); // it can be WS, EXPLICIT_LINE_JOINING or COMMENT token } this.setCurrentAndFollowingTokens(); } // continue the processing of the EOF token with checkNextToken() } - insertLeadingIndentToken() { + private insertLeadingIndentToken(): void { if (this.previousPendingTokenType === PythonLexer.WS) { - let prevToken = this.pendingTokens.at(- 1) /* .peekLast() */; // WS token + const prevToken: Token = this.pendingTokens[this.pendingTokens.length - 1] /* .peekLast() */; // WS token if (this.getIndentationLength(prevToken.text) !== 0) { // there is an "indentation" before the first statement - const errMsg = "first statement indented"; + const errMsg: string = "first statement indented"; this.reportLexerError(errMsg); // insert an INDENT token before the first statement to raise an 'unexpected indent' error later by the parser - this.createAndAddPendingToken(PythonLexer.INDENT, Token.DEFAULT_CHANNEL, this.ERR_TXT + errMsg, this.curToken); + this.createAndAddPendingToken(PythonLexer.INDENT, Token.DEFAULT_CHANNEL, this.ERR_TXT + errMsg, this.curToken!); } } } - handleNEWLINEtoken() { + private handleNEWLINEtoken(): void { if (this.opened > 0) { // We're in an implicit line joining, ignore the current NEWLINE token - this.hideAndAddPendingToken(this.curToken); + this.hideAndAddPendingToken(this.curToken!); } else { - let nlToken = this.getCommonTokenByToken(this.curToken); // save the current NEWLINE token - const isLookingAhead = this.ffgToken.type === PythonLexer.WS; + const nlToken: Token = this.curToken?.clone()!; // save the current NEWLINE token + const isLookingAhead: boolean = this.ffgToken!.type === PythonLexer.WS; if (isLookingAhead) { this.setCurrentAndFollowingTokens(); // set the next two tokens } - switch (this.ffgToken.type) { - case PythonLexer.NEWLINE: // We're before a blank line - case PythonLexer.COMMENT: // We're before a comment - case PythonLexer.TYPE_COMMENT: // We're before a type comment + switch (this.ffgToken!.type) { + case PythonLexer.NEWLINE: // We're before a blank line + case PythonLexer.COMMENT: // We're before a comment this.hideAndAddPendingToken(nlToken); if (isLookingAhead) { - this.addPendingToken(this.curToken); // WS token + this.addPendingToken(this.curToken!); // WS token } break; default: this.addPendingToken(nlToken); if (isLookingAhead) { // We're on whitespace(s) followed by a statement - const indentationLength = this.ffgToken.type === Token.EOF ? - 0 : - this.getIndentationLength(this.curToken.text); + const indentationLength: number = this.ffgToken!.type === PythonLexer.EOF ? + 0 : + this.getIndentationLength(this.curToken!.text); if (indentationLength !== this.INVALID_LENGTH) { - this.addPendingToken(this.curToken); // WS token + this.addPendingToken(this.curToken!); // WS token this.insertIndentOrDedentToken(indentationLength); // may insert INDENT token or DEDENT token(s) } else { this.reportError("inconsistent use of tabs and spaces in indentation"); @@ -209,17 +210,17 @@ export default class PythonLexerBase extends Lexer { } } - insertIndentOrDedentToken(curIndentLength) { - let prevIndentLength = this.indentLengthStack.at(-1) /* peek() */; - if (curIndentLength > prevIndentLength) { - this.createAndAddPendingToken(PythonLexer.INDENT, Token.DEFAULT_CHANNEL, null, this.ffgToken); - this.indentLengthStack.push(curIndentLength); + private insertIndentOrDedentToken(indentLength: number): void { + let prevIndentLength: number = this.indentLengthStack.peek()!; + if (indentLength > prevIndentLength) { + this.createAndAddPendingToken(PythonLexer.INDENT, Token.DEFAULT_CHANNEL, null, this.ffgToken!); + this.indentLengthStack.push(indentLength); } else { - while (curIndentLength < prevIndentLength) { // more than 1 DEDENT token may be inserted to the token stream + while (indentLength < prevIndentLength) { // more than 1 DEDENT token may be inserted to the token stream this.indentLengthStack.pop(); - prevIndentLength = this.indentLengthStack.at(-1) /* peek() */; - if (curIndentLength <= prevIndentLength) { - this.createAndAddPendingToken(PythonLexer.DEDENT, Token.DEFAULT_CHANNEL, null, this.ffgToken); + prevIndentLength = this.indentLengthStack.peek()!; + if (indentLength <= prevIndentLength) { + this.createAndAddPendingToken(PythonLexer.DEDENT, Token.DEFAULT_CHANNEL, null, this.ffgToken!); } else { this.reportError("inconsistent dedent"); } @@ -227,70 +228,57 @@ export default class PythonLexerBase extends Lexer { } } - handleSTRINGtoken() { // remove the \ escape sequences from the string literal - const line_joinFreeStringLiteral = this.curToken.text.replace(/\\(\r?\n)/g, ""); - if (this.curToken.text.length === line_joinFreeStringLiteral.length) { - this.addPendingToken(this.curToken); - } else { - let originalSTRINGtoken = this.getCommonTokenByToken(this.curToken); // backup the original token - this.curToken.text = line_joinFreeStringLiteral; - this.addPendingToken(this.curToken); // add the modified token with inline string literal - this.hideAndAddPendingToken(originalSTRINGtoken); // add the original token to the hidden channel - // this inserted hidden token allows to restore the original string literal with the \ escape sequences - } - } - - handleFSTRING_MIDDLE_token() { // replace the double braces '{{' or '}}' to single braces and hide the second braces - let fsMid = this.curToken.text; - fsMid = fsMid.replaceAll(/\{\{/g, "{_").replaceAll(/\}\}/g, "}_"); // replace: {{ --> {_ and }} --> }_ - let arrOfStr = fsMid.split(/(?<=[{}])_/); // split by {_ or }_ + private handleFSTRING_MIDDLE_token(): void { // replace the double braces '{{' or '}}' to single braces and hide the second braces + let fsMid: string = this.curToken!.text; + fsMid = fsMid.replace(/\{\{/g, "{_").replace(/\}\}/g, "}_"); // replace: {{ --> {_ and }} --> }_ + const arrOfStr: string[] = fsMid.split(/(?<=[{}])_/); // split by {_ or }_ for (let s of arrOfStr) { if (s) { - this.createAndAddPendingToken(PythonLexer.FSTRING_MIDDLE, Token.DEFAULT_CHANNEL, s, this.ffgToken); - let lastCharacter = s.charAt(s.length - 1); + this.createAndAddPendingToken(PythonLexer.FSTRING_MIDDLE, Token.DEFAULT_CHANNEL, s, this.ffgToken!); + const lastCharacter: string = s.charAt(s.length - 1); if ("{}".includes(lastCharacter)) { - this.createAndAddPendingToken(PythonLexer.FSTRING_MIDDLE, Token.HIDDEN_CHANNEL, lastCharacter, this.ffgToken); + this.createAndAddPendingToken(PythonLexer.FSTRING_MIDDLE, Token.HIDDEN_CHANNEL, lastCharacter, this.ffgToken!); // this inserted hidden token allows to restore the original f-string literal with the double braces } } } } - handleFStringLexerModes() { // https://peps.python.org/pep-0498/#specification - if (this._modeStack.length > 0) { - switch (this.curToken.type) { + private handleFStringLexerModes(): void { // https://peps.python.org/pep-0498/#specification + if (this.getModeStack().length > 0) { + switch (this.curToken!.type) { case PythonLexer.LBRACE: - this.pushMode(PythonLexer.DEFAULT_MODE); + this.pushMode(Lexer.DEFAULT_MODE); this.paren_or_bracket_openedStack.push(0); break; case PythonLexer.LPAR: case PythonLexer.LSQB: // https://peps.python.org/pep-0498/#lambdas-inside-expressions - this.paren_or_bracket_openedStack.push(this.paren_or_bracket_openedStack.pop + 1); // increment the last element + this.paren_or_bracket_openedStack.push(this.paren_or_bracket_openedStack.pop()! + 1); // increment the last element break; case PythonLexer.RPAR: case PythonLexer.RSQB: - this.paren_or_bracket_openedStack.push(this.paren_or_bracket_openedStack.pop - 1); // decrement the last element + this.paren_or_bracket_openedStack.push(this.paren_or_bracket_openedStack.pop()! - 1); // decrement the last element break; case PythonLexer.COLON: // colon can only come from DEFAULT_MODE - if (this.paren_or_bracket_openedStack.at(-1) /* peek() */ == 0) { - switch (this._modeStack.at(-1) /* peek() */) { // check the previous lexer mode (the current is DEFAULT_MODE) + if (this.paren_or_bracket_openedStack.peek() == 0) { + switch (this.getModeStack().at(-1) /* peek() */) { // check the previous lexer mode (the current is DEFAULT_MODE) case PythonLexer.SINGLE_QUOTE_FSTRING_MODE: case PythonLexer.LONG_SINGLE_QUOTE_FSTRING_MODE: case PythonLexer.SINGLE_QUOTE_FORMAT_SPECIFICATION_MODE: - this.mode(PythonLexer.SINGLE_QUOTE_FORMAT_SPECIFICATION_MODE); // continue in format spec. mode + this.setMode(PythonLexer.SINGLE_QUOTE_FORMAT_SPECIFICATION_MODE); // continue in format spec. mode break; case PythonLexer.DOUBLE_QUOTE_FSTRING_MODE: case PythonLexer.LONG_DOUBLE_QUOTE_FSTRING_MODE: case PythonLexer.DOUBLE_QUOTE_FORMAT_SPECIFICATION_MODE: - this.mode(PythonLexer.DOUBLE_QUOTE_FORMAT_SPECIFICATION_MODE); // continue in format spec. mode + this.setMode(PythonLexer.DOUBLE_QUOTE_FORMAT_SPECIFICATION_MODE); // continue in format spec. mode break; } } break; case PythonLexer.RBRACE: - switch (this._mode) { - case PythonLexer.DEFAULT_MODE: + switch (this.getMode()) { + case Lexer.DEFAULT_MODE: case PythonLexer.SINGLE_QUOTE_FORMAT_SPECIFICATION_MODE: case PythonLexer.DOUBLE_QUOTE_FORMAT_SPECIFICATION_MODE: this.popMode(); @@ -305,78 +293,68 @@ export default class PythonLexerBase extends Lexer { } } - handleFORMAT_SPECIFICATION_MODE() { - if (this._modeStack.length > 0 && this.ffgToken.type === PythonLexer.RBRACE) { - switch (this.curToken.type) { + private handleFORMAT_SPECIFICATION_MODE(): void { + if (this.getModeStack().length > 0 && this.ffgToken!.type === PythonLexer.RBRACE) { + switch (this.curToken!.type) { case PythonLexer.COLON: case PythonLexer.RBRACE: // insert an empty FSTRING_MIDDLE token instead of the missing format specification - this.createAndAddPendingToken(PythonLexer.FSTRING_MIDDLE, Token.DEFAULT_CHANNEL, "", this.ffgToken); + this.createAndAddPendingToken(PythonLexer.FSTRING_MIDDLE, Token.DEFAULT_CHANNEL, "", this.ffgToken!); break; } } } - insertTrailingTokens() { + private insertTrailingTokens(): void { switch (this.lastPendingTokenTypeFromDefaultChannel) { case PythonLexer.NEWLINE: case PythonLexer.DEDENT: break; // no trailing NEWLINE token is needed default: // insert an extra trailing NEWLINE token that serves as the end of the last statement - this.createAndAddPendingToken(PythonLexer.NEWLINE, Token.DEFAULT_CHANNEL, null, this.ffgToken); // _ffgToken is EOF + this.createAndAddPendingToken(PythonLexer.NEWLINE, Token.DEFAULT_CHANNEL, null, this.ffgToken!); // ffgToken is EOF } this.insertIndentOrDedentToken(0); // Now insert as much trailing DEDENT tokens as needed } - handleEOFtoken() { + private handleEOFtoken(): void { if (this.lastPendingTokenTypeFromDefaultChannel > 0) { // there was a statement in the input (leading NEWLINE tokens are hidden) this.insertTrailingTokens(); } - this.addPendingToken(this.curToken); + this.addPendingToken(this.curToken!); } - hideAndAddPendingToken(cToken) { - cToken.channel = Token.HIDDEN_CHANNEL; - this.addPendingToken(cToken); + private hideAndAddPendingToken(tkn: Token): void { + tkn.channel = Token.HIDDEN_CHANNEL; + this.addPendingToken(tkn); } - createAndAddPendingToken(type, channel, text, baseToken) { - const cToken = this.getCommonTokenByToken(baseToken); - cToken.type = type; - cToken.channel = channel; - cToken.stop = baseToken.start - 1; - cToken.text = text == null ? + private createAndAddPendingToken(type: number, channel: number, text: string | null, sampleToken: Token): void { + const tkn: Token = sampleToken.clone(); + tkn.type = type; + tkn.channel = channel; + tkn.stop = sampleToken.start - 1; + tkn.text = text == null ? `<${this.getSymbolicNames()[type]}>` : text; - this.addPendingToken(cToken); + this.addPendingToken(tkn); } - addPendingToken(token) { - // save the last pending token type because the _pendingTokens linked list can be empty by the nextToken() - this.previousPendingTokenType = token.type; - if (token.channel === Token.DEFAULT_CHANNEL) { + private addPendingToken(tkn: Token): void { + // save the last pending token type because the pendingTokens linked list can be empty by the nextToken() + this.previousPendingTokenType = tkn.type; + if (tkn.channel === Token.DEFAULT_CHANNEL) { this.lastPendingTokenTypeFromDefaultChannel = this.previousPendingTokenType; } - this.pendingTokens.push(token) /* .addLast(token) */; - } - - getCommonTokenByToken(oldToken) { - let commonToken = new CommonToken(oldToken.source, oldToken.type, oldToken.channel, oldToken.start, oldToken.stop); - commonToken.tokenIndex = oldToken.tokenIndex; - commonToken.line = oldToken.line; - commonToken.column = oldToken.column; - commonToken.text = oldToken.text; - return commonToken; + this.pendingTokens.push(tkn) /* .addLast(token) */; } - getIndentationLength(textWS) { // the textWS may contain spaces, tabs or form feeds - const TAB_LENGTH = 8; // the standard number of spaces to replace a tab to spaces - let length = 0; - - for (let ch of textWS) { + private getIndentationLength(indentText: string): number { // the indentText may contain spaces, tabs or form feeds + const TAB_LENGTH: number = 8; // the standard number of spaces to replace a tab to spaces + let length: number = 0; + for (let ch of indentText) { switch (ch) { case " ": this.wasSpaceIndentation = true; @@ -395,25 +373,20 @@ export default class PythonLexerBase extends Lexer { if (this.wasTabIndentation && this.wasSpaceIndentation) { if (!this.wasIndentationMixedWithSpacesAndTabs) { this.wasIndentationMixedWithSpacesAndTabs = true; - return this.INVALID_LENGTH; // only for the first inconsistent indent + length = this.INVALID_LENGTH; // only for the first inconsistent indent } } return length; } - reportLexerError(errMsg) { - this.getErrorListenerDispatch().syntaxError(this, this.curToken, this.curToken.line, this.curToken.column, " LEXER" + this.ERR_TXT + errMsg, null); + private reportLexerError(errMsg: string): void { + this.getErrorListener().syntaxError(this, 0 /* this.curToken */, this.curToken!.line, this.curToken!.column, " LEXER" + this.ERR_TXT + errMsg, undefined); } - reportError(errMsg) { + private reportError(errMsg: string): void { this.reportLexerError(errMsg); - // the ERROR_TOKEN will raise an error in the parser - this.createAndAddPendingToken(PythonLexer.ERROR_TOKEN, Token.DEFAULT_CHANNEL, this.ERR_TXT + errMsg, this.ffgToken); - } - - reset() { - this.init(); - super.reset(); + // the ERRORTOKEN will raise an error in the parser + this.createAndAddPendingToken(PythonLexer.ERROR_TOKEN, Token.DEFAULT_CHANNEL, this.ERR_TXT + errMsg, this.ffgToken!); } -} +} \ No newline at end of file diff --git a/codemetrica/py/parser/python3_12_1/PythonParser.g4 b/grammars-v4/python/python3_12_1/PythonParser.g4 similarity index 100% rename from codemetrica/py/parser/python3_12_1/PythonParser.g4 rename to grammars-v4/python/python3_12_1/PythonParser.g4 diff --git a/codemetrica/py/parser/python3_12_1/PythonParser.interp b/grammars-v4/python/python3_12_1/PythonParser.interp similarity index 100% rename from codemetrica/py/parser/python3_12_1/PythonParser.interp rename to grammars-v4/python/python3_12_1/PythonParser.interp diff --git a/codemetrica/py/parser/python3_12_1/PythonParser.tokens b/grammars-v4/python/python3_12_1/PythonParser.tokens similarity index 90% rename from codemetrica/py/parser/python3_12_1/PythonParser.tokens rename to grammars-v4/python/python3_12_1/PythonParser.tokens index 3393414..dabb847 100644 --- a/codemetrica/py/parser/python3_12_1/PythonParser.tokens +++ b/grammars-v4/python/python3_12_1/PythonParser.tokens @@ -1,178 +1,178 @@ -INDENT=1 -DEDENT=2 -FSTRING_START=3 -FSTRING_MIDDLE=4 -FSTRING_END=5 -FALSE=6 -AWAIT=7 -ELSE=8 -IMPORT=9 -PASS=10 -NONE=11 -BREAK=12 -EXCEPT=13 -IN=14 -RAISE=15 -TRUE=16 -CLASS=17 -FINALLY=18 -IS=19 -RETURN=20 -AND=21 -CONTINUE=22 -FOR=23 -LAMBDA=24 -TRY=25 -AS=26 -DEF=27 -FROM=28 -NONLOCAL=29 -WHILE=30 -ASSERT=31 -DEL=32 -GLOBAL=33 -NOT=34 -WITH=35 -ASYNC=36 -ELIF=37 -IF=38 -OR=39 -YIELD=40 -LPAR=41 -LSQB=42 -LBRACE=43 -RPAR=44 -RSQB=45 -RBRACE=46 -DOT=47 -COLON=48 -COMMA=49 -SEMI=50 -PLUS=51 -MINUS=52 -STAR=53 -SLASH=54 -VBAR=55 -AMPER=56 -LESS=57 -GREATER=58 -EQUAL=59 -PERCENT=60 -EQEQUAL=61 -NOTEQUAL=62 -LESSEQUAL=63 -GREATEREQUAL=64 -TILDE=65 -CIRCUMFLEX=66 -LEFTSHIFT=67 -RIGHTSHIFT=68 -DOUBLESTAR=69 -PLUSEQUAL=70 -MINEQUAL=71 -STAREQUAL=72 -SLASHEQUAL=73 -PERCENTEQUAL=74 -AMPEREQUAL=75 -VBAREQUAL=76 -CIRCUMFLEXEQUAL=77 -LEFTSHIFTEQUAL=78 -RIGHTSHIFTEQUAL=79 -DOUBLESTAREQUAL=80 -DOUBLESLASH=81 -DOUBLESLASHEQUAL=82 -AT=83 -ATEQUAL=84 -RARROW=85 -ELLIPSIS=86 -COLONEQUAL=87 -EXCLAMATION=88 -NAME=89 -NUMBER=90 -STRING=91 -TYPE_COMMENT=92 -NEWLINE=93 -COMMENT=94 -WS=95 -EXPLICIT_LINE_JOINING=96 -ERROR_TOKEN=97 -'False'=6 -'await'=7 -'else'=8 -'import'=9 -'pass'=10 -'None'=11 -'break'=12 -'except'=13 -'in'=14 -'raise'=15 -'True'=16 -'class'=17 -'finally'=18 -'is'=19 -'return'=20 -'and'=21 -'continue'=22 -'for'=23 -'lambda'=24 -'try'=25 -'as'=26 -'def'=27 -'from'=28 -'nonlocal'=29 -'while'=30 -'assert'=31 -'del'=32 -'global'=33 -'not'=34 -'with'=35 -'async'=36 -'elif'=37 -'if'=38 -'or'=39 -'yield'=40 -'('=41 -'['=42 -')'=44 -']'=45 -'.'=47 -':'=48 -','=49 -';'=50 -'+'=51 -'-'=52 -'*'=53 -'/'=54 -'|'=55 -'&'=56 -'<'=57 -'>'=58 -'='=59 -'%'=60 -'=='=61 -'!='=62 -'<='=63 -'>='=64 -'~'=65 -'^'=66 -'<<'=67 -'>>'=68 -'**'=69 -'+='=70 -'-='=71 -'*='=72 -'/='=73 -'%='=74 -'&='=75 -'|='=76 -'^='=77 -'<<='=78 -'>>='=79 -'**='=80 -'//'=81 -'//='=82 -'@'=83 -'@='=84 -'->'=85 -'...'=86 -':='=87 -'!'=88 +INDENT=1 +DEDENT=2 +FSTRING_START=3 +FSTRING_MIDDLE=4 +FSTRING_END=5 +FALSE=6 +AWAIT=7 +ELSE=8 +IMPORT=9 +PASS=10 +NONE=11 +BREAK=12 +EXCEPT=13 +IN=14 +RAISE=15 +TRUE=16 +CLASS=17 +FINALLY=18 +IS=19 +RETURN=20 +AND=21 +CONTINUE=22 +FOR=23 +LAMBDA=24 +TRY=25 +AS=26 +DEF=27 +FROM=28 +NONLOCAL=29 +WHILE=30 +ASSERT=31 +DEL=32 +GLOBAL=33 +NOT=34 +WITH=35 +ASYNC=36 +ELIF=37 +IF=38 +OR=39 +YIELD=40 +LPAR=41 +LSQB=42 +LBRACE=43 +RPAR=44 +RSQB=45 +RBRACE=46 +DOT=47 +COLON=48 +COMMA=49 +SEMI=50 +PLUS=51 +MINUS=52 +STAR=53 +SLASH=54 +VBAR=55 +AMPER=56 +LESS=57 +GREATER=58 +EQUAL=59 +PERCENT=60 +EQEQUAL=61 +NOTEQUAL=62 +LESSEQUAL=63 +GREATEREQUAL=64 +TILDE=65 +CIRCUMFLEX=66 +LEFTSHIFT=67 +RIGHTSHIFT=68 +DOUBLESTAR=69 +PLUSEQUAL=70 +MINEQUAL=71 +STAREQUAL=72 +SLASHEQUAL=73 +PERCENTEQUAL=74 +AMPEREQUAL=75 +VBAREQUAL=76 +CIRCUMFLEXEQUAL=77 +LEFTSHIFTEQUAL=78 +RIGHTSHIFTEQUAL=79 +DOUBLESTAREQUAL=80 +DOUBLESLASH=81 +DOUBLESLASHEQUAL=82 +AT=83 +ATEQUAL=84 +RARROW=85 +ELLIPSIS=86 +COLONEQUAL=87 +EXCLAMATION=88 +NAME=89 +NUMBER=90 +STRING=91 +TYPE_COMMENT=92 +NEWLINE=93 +COMMENT=94 +WS=95 +EXPLICIT_LINE_JOINING=96 +ERROR_TOKEN=97 +'False'=6 +'await'=7 +'else'=8 +'import'=9 +'pass'=10 +'None'=11 +'break'=12 +'except'=13 +'in'=14 +'raise'=15 +'True'=16 +'class'=17 +'finally'=18 +'is'=19 +'return'=20 +'and'=21 +'continue'=22 +'for'=23 +'lambda'=24 +'try'=25 +'as'=26 +'def'=27 +'from'=28 +'nonlocal'=29 +'while'=30 +'assert'=31 +'del'=32 +'global'=33 +'not'=34 +'with'=35 +'async'=36 +'elif'=37 +'if'=38 +'or'=39 +'yield'=40 +'('=41 +'['=42 +')'=44 +']'=45 +'.'=47 +':'=48 +','=49 +';'=50 +'+'=51 +'-'=52 +'*'=53 +'/'=54 +'|'=55 +'&'=56 +'<'=57 +'>'=58 +'='=59 +'%'=60 +'=='=61 +'!='=62 +'<='=63 +'>='=64 +'~'=65 +'^'=66 +'<<'=67 +'>>'=68 +'**'=69 +'+='=70 +'-='=71 +'*='=72 +'/='=73 +'%='=74 +'&='=75 +'|='=76 +'^='=77 +'<<='=78 +'>>='=79 +'**='=80 +'//'=81 +'//='=82 +'@'=83 +'@='=84 +'->'=85 +'...'=86 +':='=87 +'!'=88 diff --git a/grammars-v4/python/python3_12_1/PythonParser.ts b/grammars-v4/python/python3_12_1/PythonParser.ts new file mode 100644 index 0000000..01d44e4 --- /dev/null +++ b/grammars-v4/python/python3_12_1/PythonParser.ts @@ -0,0 +1,20165 @@ +// Generated from PythonParser.g4 by ANTLR 4.13.2 +// noinspection ES6UnusedImports,JSUnusedGlobalSymbols,JSUnusedLocalSymbols + +import { + ATN, + ATNDeserializer, DecisionState, DFA, FailedPredicateException, + RecognitionException, NoViableAltException, BailErrorStrategy, + Parser, ParserATNSimulator, + RuleContext, ParserRuleContext, PredictionMode, PredictionContextCache, + TerminalNode, RuleNode, + Token, TokenStream, + Interval, IntervalSet +} from 'antlr4'; +import PythonParserListener from "./PythonParserListener"; +import PythonParserVisitor from "./PythonParserVisitor"; + +// for running tests with parameters, TODO: discuss strategy for typed parameters in CI +// eslint-disable-next-line no-unused-vars +type int = number; + +import PythonParserBase from './PythonParserBase'; + +export default class PythonParser extends PythonParserBase { + public static readonly INDENT = 1; + public static readonly DEDENT = 2; + public static readonly FSTRING_START = 3; + public static readonly FSTRING_MIDDLE = 4; + public static readonly FSTRING_END = 5; + public static readonly FALSE = 6; + public static readonly AWAIT = 7; + public static readonly ELSE = 8; + public static readonly IMPORT = 9; + public static readonly PASS = 10; + public static readonly NONE = 11; + public static readonly BREAK = 12; + public static readonly EXCEPT = 13; + public static readonly IN = 14; + public static readonly RAISE = 15; + public static readonly TRUE = 16; + public static readonly CLASS = 17; + public static readonly FINALLY = 18; + public static readonly IS = 19; + public static readonly RETURN = 20; + public static readonly AND = 21; + public static readonly CONTINUE = 22; + public static readonly FOR = 23; + public static readonly LAMBDA = 24; + public static readonly TRY = 25; + public static readonly AS = 26; + public static readonly DEF = 27; + public static readonly FROM = 28; + public static readonly NONLOCAL = 29; + public static readonly WHILE = 30; + public static readonly ASSERT = 31; + public static readonly DEL = 32; + public static readonly GLOBAL = 33; + public static readonly NOT = 34; + public static readonly WITH = 35; + public static readonly ASYNC = 36; + public static readonly ELIF = 37; + public static readonly IF = 38; + public static readonly OR = 39; + public static readonly YIELD = 40; + public static readonly LPAR = 41; + public static readonly LSQB = 42; + public static readonly LBRACE = 43; + public static readonly RPAR = 44; + public static readonly RSQB = 45; + public static readonly RBRACE = 46; + public static readonly DOT = 47; + public static readonly COLON = 48; + public static readonly COMMA = 49; + public static readonly SEMI = 50; + public static readonly PLUS = 51; + public static readonly MINUS = 52; + public static readonly STAR = 53; + public static readonly SLASH = 54; + public static readonly VBAR = 55; + public static readonly AMPER = 56; + public static readonly LESS = 57; + public static readonly GREATER = 58; + public static readonly EQUAL = 59; + public static readonly PERCENT = 60; + public static readonly EQEQUAL = 61; + public static readonly NOTEQUAL = 62; + public static readonly LESSEQUAL = 63; + public static readonly GREATEREQUAL = 64; + public static readonly TILDE = 65; + public static readonly CIRCUMFLEX = 66; + public static readonly LEFTSHIFT = 67; + public static readonly RIGHTSHIFT = 68; + public static readonly DOUBLESTAR = 69; + public static readonly PLUSEQUAL = 70; + public static readonly MINEQUAL = 71; + public static readonly STAREQUAL = 72; + public static readonly SLASHEQUAL = 73; + public static readonly PERCENTEQUAL = 74; + public static readonly AMPEREQUAL = 75; + public static readonly VBAREQUAL = 76; + public static readonly CIRCUMFLEXEQUAL = 77; + public static readonly LEFTSHIFTEQUAL = 78; + public static readonly RIGHTSHIFTEQUAL = 79; + public static readonly DOUBLESTAREQUAL = 80; + public static readonly DOUBLESLASH = 81; + public static readonly DOUBLESLASHEQUAL = 82; + public static readonly AT = 83; + public static readonly ATEQUAL = 84; + public static readonly RARROW = 85; + public static readonly ELLIPSIS = 86; + public static readonly COLONEQUAL = 87; + public static readonly EXCLAMATION = 88; + public static readonly NAME = 89; + public static readonly NUMBER = 90; + public static readonly STRING = 91; + public static readonly TYPE_COMMENT = 92; + public static readonly NEWLINE = 93; + public static readonly COMMENT = 94; + public static readonly WS = 95; + public static readonly EXPLICIT_LINE_JOINING = 96; + public static readonly ERROR_TOKEN = 97; + public static override readonly EOF = Token.EOF; + public static readonly RULE_file_input = 0; + public static readonly RULE_interactive = 1; + public static readonly RULE_eval = 2; + public static readonly RULE_func_type = 3; + public static readonly RULE_fstring_input = 4; + public static readonly RULE_statements = 5; + public static readonly RULE_statement = 6; + public static readonly RULE_statement_newline = 7; + public static readonly RULE_simple_stmts = 8; + public static readonly RULE_simple_stmt = 9; + public static readonly RULE_compound_stmt = 10; + public static readonly RULE_assignment = 11; + public static readonly RULE_annotated_rhs = 12; + public static readonly RULE_augassign = 13; + public static readonly RULE_return_stmt = 14; + public static readonly RULE_raise_stmt = 15; + public static readonly RULE_global_stmt = 16; + public static readonly RULE_nonlocal_stmt = 17; + public static readonly RULE_del_stmt = 18; + public static readonly RULE_yield_stmt = 19; + public static readonly RULE_assert_stmt = 20; + public static readonly RULE_import_stmt = 21; + public static readonly RULE_import_name = 22; + public static readonly RULE_import_from = 23; + public static readonly RULE_import_from_targets = 24; + public static readonly RULE_import_from_as_names = 25; + public static readonly RULE_import_from_as_name = 26; + public static readonly RULE_dotted_as_names = 27; + public static readonly RULE_dotted_as_name = 28; + public static readonly RULE_dotted_name = 29; + public static readonly RULE_block = 30; + public static readonly RULE_decorators = 31; + public static readonly RULE_class_def = 32; + public static readonly RULE_class_def_raw = 33; + public static readonly RULE_function_def = 34; + public static readonly RULE_function_def_raw = 35; + public static readonly RULE_params = 36; + public static readonly RULE_parameters = 37; + public static readonly RULE_slash_no_default = 38; + public static readonly RULE_slash_with_default = 39; + public static readonly RULE_star_etc = 40; + public static readonly RULE_kwds = 41; + public static readonly RULE_param_no_default = 42; + public static readonly RULE_param_no_default_star_annotation = 43; + public static readonly RULE_param_with_default = 44; + public static readonly RULE_param_maybe_default = 45; + public static readonly RULE_param = 46; + public static readonly RULE_param_star_annotation = 47; + public static readonly RULE_annotation = 48; + public static readonly RULE_star_annotation = 49; + public static readonly RULE_default_assignment = 50; + public static readonly RULE_if_stmt = 51; + public static readonly RULE_elif_stmt = 52; + public static readonly RULE_else_block = 53; + public static readonly RULE_while_stmt = 54; + public static readonly RULE_for_stmt = 55; + public static readonly RULE_with_stmt = 56; + public static readonly RULE_with_item = 57; + public static readonly RULE_try_stmt = 58; + public static readonly RULE_except_block = 59; + public static readonly RULE_except_star_block = 60; + public static readonly RULE_finally_block = 61; + public static readonly RULE_match_stmt = 62; + public static readonly RULE_subject_expr = 63; + public static readonly RULE_case_block = 64; + public static readonly RULE_guard = 65; + public static readonly RULE_patterns = 66; + public static readonly RULE_pattern = 67; + public static readonly RULE_as_pattern = 68; + public static readonly RULE_or_pattern = 69; + public static readonly RULE_closed_pattern = 70; + public static readonly RULE_literal_pattern = 71; + public static readonly RULE_literal_expr = 72; + public static readonly RULE_complex_number = 73; + public static readonly RULE_signed_number = 74; + public static readonly RULE_signed_real_number = 75; + public static readonly RULE_real_number = 76; + public static readonly RULE_imaginary_number = 77; + public static readonly RULE_capture_pattern = 78; + public static readonly RULE_pattern_capture_target = 79; + public static readonly RULE_wildcard_pattern = 80; + public static readonly RULE_value_pattern = 81; + public static readonly RULE_attr = 82; + public static readonly RULE_name_or_attr = 83; + public static readonly RULE_group_pattern = 84; + public static readonly RULE_sequence_pattern = 85; + public static readonly RULE_open_sequence_pattern = 86; + public static readonly RULE_maybe_sequence_pattern = 87; + public static readonly RULE_maybe_star_pattern = 88; + public static readonly RULE_star_pattern = 89; + public static readonly RULE_mapping_pattern = 90; + public static readonly RULE_items_pattern = 91; + public static readonly RULE_key_value_pattern = 92; + public static readonly RULE_double_star_pattern = 93; + public static readonly RULE_class_pattern = 94; + public static readonly RULE_positional_patterns = 95; + public static readonly RULE_keyword_patterns = 96; + public static readonly RULE_keyword_pattern = 97; + public static readonly RULE_type_alias = 98; + public static readonly RULE_type_params = 99; + public static readonly RULE_type_param_seq = 100; + public static readonly RULE_type_param = 101; + public static readonly RULE_type_param_bound = 102; + public static readonly RULE_expressions = 103; + public static readonly RULE_expression = 104; + public static readonly RULE_yield_expr = 105; + public static readonly RULE_star_expressions = 106; + public static readonly RULE_star_expression = 107; + public static readonly RULE_star_named_expressions = 108; + public static readonly RULE_star_named_expression = 109; + public static readonly RULE_assignment_expression = 110; + public static readonly RULE_named_expression = 111; + public static readonly RULE_disjunction = 112; + public static readonly RULE_conjunction = 113; + public static readonly RULE_inversion = 114; + public static readonly RULE_comparison = 115; + public static readonly RULE_compare_op_bitwise_or_pair = 116; + public static readonly RULE_eq_bitwise_or = 117; + public static readonly RULE_noteq_bitwise_or = 118; + public static readonly RULE_lte_bitwise_or = 119; + public static readonly RULE_lt_bitwise_or = 120; + public static readonly RULE_gte_bitwise_or = 121; + public static readonly RULE_gt_bitwise_or = 122; + public static readonly RULE_notin_bitwise_or = 123; + public static readonly RULE_in_bitwise_or = 124; + public static readonly RULE_isnot_bitwise_or = 125; + public static readonly RULE_is_bitwise_or = 126; + public static readonly RULE_bitwise_or = 127; + public static readonly RULE_bitwise_xor = 128; + public static readonly RULE_bitwise_and = 129; + public static readonly RULE_shift_expr = 130; + public static readonly RULE_sum = 131; + public static readonly RULE_term = 132; + public static readonly RULE_factor = 133; + public static readonly RULE_power = 134; + public static readonly RULE_await_primary = 135; + public static readonly RULE_primary = 136; + public static readonly RULE_slices = 137; + public static readonly RULE_slice = 138; + public static readonly RULE_atom = 139; + public static readonly RULE_group = 140; + public static readonly RULE_lambdef = 141; + public static readonly RULE_lambda_params = 142; + public static readonly RULE_lambda_parameters = 143; + public static readonly RULE_lambda_slash_no_default = 144; + public static readonly RULE_lambda_slash_with_default = 145; + public static readonly RULE_lambda_star_etc = 146; + public static readonly RULE_lambda_kwds = 147; + public static readonly RULE_lambda_param_no_default = 148; + public static readonly RULE_lambda_param_with_default = 149; + public static readonly RULE_lambda_param_maybe_default = 150; + public static readonly RULE_lambda_param = 151; + public static readonly RULE_fstring_middle = 152; + public static readonly RULE_fstring_replacement_field = 153; + public static readonly RULE_fstring_conversion = 154; + public static readonly RULE_fstring_full_format_spec = 155; + public static readonly RULE_fstring_format_spec = 156; + public static readonly RULE_fstring = 157; + public static readonly RULE_string = 158; + public static readonly RULE_strings = 159; + public static readonly RULE_list = 160; + public static readonly RULE_tuple = 161; + public static readonly RULE_set = 162; + public static readonly RULE_dict = 163; + public static readonly RULE_double_starred_kvpairs = 164; + public static readonly RULE_double_starred_kvpair = 165; + public static readonly RULE_kvpair = 166; + public static readonly RULE_for_if_clauses = 167; + public static readonly RULE_for_if_clause = 168; + public static readonly RULE_listcomp = 169; + public static readonly RULE_setcomp = 170; + public static readonly RULE_genexp = 171; + public static readonly RULE_dictcomp = 172; + public static readonly RULE_arguments = 173; + public static readonly RULE_args = 174; + public static readonly RULE_kwargs = 175; + public static readonly RULE_starred_expression = 176; + public static readonly RULE_kwarg_or_starred = 177; + public static readonly RULE_kwarg_or_double_starred = 178; + public static readonly RULE_star_targets = 179; + public static readonly RULE_star_targets_list_seq = 180; + public static readonly RULE_star_targets_tuple_seq = 181; + public static readonly RULE_star_target = 182; + public static readonly RULE_target_with_star_atom = 183; + public static readonly RULE_star_atom = 184; + public static readonly RULE_single_target = 185; + public static readonly RULE_single_subscript_attribute_target = 186; + public static readonly RULE_t_primary = 187; + public static readonly RULE_del_targets = 188; + public static readonly RULE_del_target = 189; + public static readonly RULE_del_t_atom = 190; + public static readonly RULE_type_expressions = 191; + public static readonly RULE_func_type_comment = 192; + public static readonly RULE_soft_kw_type = 193; + public static readonly RULE_soft_kw_match = 194; + public static readonly RULE_soft_kw_case = 195; + public static readonly RULE_soft_kw_wildcard = 196; + public static readonly RULE_soft_kw__not__wildcard = 197; + public static readonly literalNames: (string | null)[] = [ null, null, + null, null, + null, null, + "'False'", "'await'", + "'else'", "'import'", + "'pass'", "'None'", + "'break'", "'except'", + "'in'", "'raise'", + "'True'", "'class'", + "'finally'", + "'is'", "'return'", + "'and'", "'continue'", + "'for'", "'lambda'", + "'try'", "'as'", + "'def'", "'from'", + "'nonlocal'", + "'while'", "'assert'", + "'del'", "'global'", + "'not'", "'with'", + "'async'", "'elif'", + "'if'", "'or'", + "'yield'", "'('", + "'['", null, + "')'", "']'", + null, "'.'", + "':'", "','", + "';'", "'+'", + "'-'", "'*'", + "'/'", "'|'", + "'&'", "'<'", + "'>'", "'='", + "'%'", "'=='", + "'!='", "'<='", + "'>='", "'~'", + "'^'", "'<<'", + "'>>'", "'**'", + "'+='", "'-='", + "'*='", "'/='", + "'%='", "'&='", + "'|='", "'^='", + "'<<='", "'>>='", + "'**='", "'//'", + "'//='", "'@'", + "'@='", "'->'", + "'...'", "':='", + "'!'" ]; + public static readonly symbolicNames: (string | null)[] = [ null, "INDENT", + "DEDENT", "FSTRING_START", + "FSTRING_MIDDLE", + "FSTRING_END", + "FALSE", "AWAIT", + "ELSE", "IMPORT", + "PASS", "NONE", + "BREAK", "EXCEPT", + "IN", "RAISE", + "TRUE", "CLASS", + "FINALLY", + "IS", "RETURN", + "AND", "CONTINUE", + "FOR", "LAMBDA", + "TRY", "AS", + "DEF", "FROM", + "NONLOCAL", + "WHILE", "ASSERT", + "DEL", "GLOBAL", + "NOT", "WITH", + "ASYNC", "ELIF", + "IF", "OR", + "YIELD", "LPAR", + "LSQB", "LBRACE", + "RPAR", "RSQB", + "RBRACE", "DOT", + "COLON", "COMMA", + "SEMI", "PLUS", + "MINUS", "STAR", + "SLASH", "VBAR", + "AMPER", "LESS", + "GREATER", + "EQUAL", "PERCENT", + "EQEQUAL", + "NOTEQUAL", + "LESSEQUAL", + "GREATEREQUAL", + "TILDE", "CIRCUMFLEX", + "LEFTSHIFT", + "RIGHTSHIFT", + "DOUBLESTAR", + "PLUSEQUAL", + "MINEQUAL", + "STAREQUAL", + "SLASHEQUAL", + "PERCENTEQUAL", + "AMPEREQUAL", + "VBAREQUAL", + "CIRCUMFLEXEQUAL", + "LEFTSHIFTEQUAL", + "RIGHTSHIFTEQUAL", + "DOUBLESTAREQUAL", + "DOUBLESLASH", + "DOUBLESLASHEQUAL", + "AT", "ATEQUAL", + "RARROW", "ELLIPSIS", + "COLONEQUAL", + "EXCLAMATION", + "NAME", "NUMBER", + "STRING", "TYPE_COMMENT", + "NEWLINE", + "COMMENT", + "WS", "EXPLICIT_LINE_JOINING", + "ERROR_TOKEN" ]; + // tslint:disable:no-trailing-whitespace + public static readonly ruleNames: string[] = [ + "file_input", "interactive", "eval", "func_type", "fstring_input", "statements", + "statement", "statement_newline", "simple_stmts", "simple_stmt", "compound_stmt", + "assignment", "annotated_rhs", "augassign", "return_stmt", "raise_stmt", + "global_stmt", "nonlocal_stmt", "del_stmt", "yield_stmt", "assert_stmt", + "import_stmt", "import_name", "import_from", "import_from_targets", "import_from_as_names", + "import_from_as_name", "dotted_as_names", "dotted_as_name", "dotted_name", + "block", "decorators", "class_def", "class_def_raw", "function_def", "function_def_raw", + "params", "parameters", "slash_no_default", "slash_with_default", "star_etc", + "kwds", "param_no_default", "param_no_default_star_annotation", "param_with_default", + "param_maybe_default", "param", "param_star_annotation", "annotation", + "star_annotation", "default_assignment", "if_stmt", "elif_stmt", "else_block", + "while_stmt", "for_stmt", "with_stmt", "with_item", "try_stmt", "except_block", + "except_star_block", "finally_block", "match_stmt", "subject_expr", "case_block", + "guard", "patterns", "pattern", "as_pattern", "or_pattern", "closed_pattern", + "literal_pattern", "literal_expr", "complex_number", "signed_number", + "signed_real_number", "real_number", "imaginary_number", "capture_pattern", + "pattern_capture_target", "wildcard_pattern", "value_pattern", "attr", + "name_or_attr", "group_pattern", "sequence_pattern", "open_sequence_pattern", + "maybe_sequence_pattern", "maybe_star_pattern", "star_pattern", "mapping_pattern", + "items_pattern", "key_value_pattern", "double_star_pattern", "class_pattern", + "positional_patterns", "keyword_patterns", "keyword_pattern", "type_alias", + "type_params", "type_param_seq", "type_param", "type_param_bound", "expressions", + "expression", "yield_expr", "star_expressions", "star_expression", "star_named_expressions", + "star_named_expression", "assignment_expression", "named_expression", + "disjunction", "conjunction", "inversion", "comparison", "compare_op_bitwise_or_pair", + "eq_bitwise_or", "noteq_bitwise_or", "lte_bitwise_or", "lt_bitwise_or", + "gte_bitwise_or", "gt_bitwise_or", "notin_bitwise_or", "in_bitwise_or", + "isnot_bitwise_or", "is_bitwise_or", "bitwise_or", "bitwise_xor", "bitwise_and", + "shift_expr", "sum", "term", "factor", "power", "await_primary", "primary", + "slices", "slice", "atom", "group", "lambdef", "lambda_params", "lambda_parameters", + "lambda_slash_no_default", "lambda_slash_with_default", "lambda_star_etc", + "lambda_kwds", "lambda_param_no_default", "lambda_param_with_default", + "lambda_param_maybe_default", "lambda_param", "fstring_middle", "fstring_replacement_field", + "fstring_conversion", "fstring_full_format_spec", "fstring_format_spec", + "fstring", "string", "strings", "list", "tuple", "set", "dict", "double_starred_kvpairs", + "double_starred_kvpair", "kvpair", "for_if_clauses", "for_if_clause", + "listcomp", "setcomp", "genexp", "dictcomp", "arguments", "args", "kwargs", + "starred_expression", "kwarg_or_starred", "kwarg_or_double_starred", "star_targets", + "star_targets_list_seq", "star_targets_tuple_seq", "star_target", "target_with_star_atom", + "star_atom", "single_target", "single_subscript_attribute_target", "t_primary", + "del_targets", "del_target", "del_t_atom", "type_expressions", "func_type_comment", + "soft_kw_type", "soft_kw_match", "soft_kw_case", "soft_kw_wildcard", "soft_kw__not__wildcard", + ]; + public get grammarFileName(): string { return "PythonParser.g4"; } + public get literalNames(): (string | null)[] { return PythonParser.literalNames; } + public get symbolicNames(): (string | null)[] { return PythonParser.symbolicNames; } + public get ruleNames(): string[] { return PythonParser.ruleNames; } + public get serializedATN(): number[] { return PythonParser._serializedATN; } + + protected createFailedPredicateException(predicate?: string, message?: string): FailedPredicateException { + return new FailedPredicateException(this, predicate, message); + } + + constructor(input: TokenStream) { + super(input); + this._interp = new ParserATNSimulator(this, PythonParser._ATN, PythonParser.DecisionsToDFA, new PredictionContextCache()); + } + // @RuleVersion(0) + public file_input(): File_inputContext { + let localctx: File_inputContext = new File_inputContext(this, this._ctx, this.state); + this.enterRule(localctx, 0, PythonParser.RULE_file_input); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 397; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 0, this._ctx) ) { + case 1: + { + this.state = 396; + this.statements(); + } + break; + } + this.state = 399; + this.match(PythonParser.EOF); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public interactive(): InteractiveContext { + let localctx: InteractiveContext = new InteractiveContext(this, this._ctx, this.state); + this.enterRule(localctx, 2, PythonParser.RULE_interactive); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 401; + this.statement_newline(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public eval(): EvalContext { + let localctx: EvalContext = new EvalContext(this, this._ctx, this.state); + this.enterRule(localctx, 4, PythonParser.RULE_eval); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 403; + this.expressions(); + this.state = 407; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la===93) { + { + { + this.state = 404; + this.match(PythonParser.NEWLINE); + } + } + this.state = 409; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 410; + this.match(PythonParser.EOF); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public func_type(): Func_typeContext { + let localctx: Func_typeContext = new Func_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 6, PythonParser.RULE_func_type); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 412; + this.match(PythonParser.LPAR); + this.state = 414; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 2148402049) !== 0) || ((((_la - 69)) & ~0x1F) === 0 && ((1 << (_la - 69)) & 7471105) !== 0)) { + { + this.state = 413; + this.type_expressions(); + } + } + + this.state = 416; + this.match(PythonParser.RPAR); + this.state = 417; + this.match(PythonParser.RARROW); + this.state = 418; + this.expression(); + this.state = 422; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la===93) { + { + { + this.state = 419; + this.match(PythonParser.NEWLINE); + } + } + this.state = 424; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 425; + this.match(PythonParser.EOF); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public fstring_input(): Fstring_inputContext { + let localctx: Fstring_inputContext = new Fstring_inputContext(this, this._ctx, this.state); + this.enterRule(localctx, 8, PythonParser.RULE_fstring_input); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 427; + this.star_expressions(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public statements(): StatementsContext { + let localctx: StatementsContext = new StatementsContext(this, this._ctx, this.state); + this.enterRule(localctx, 10, PythonParser.RULE_statements); + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + this.state = 430; + this._errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + this.state = 429; + this.statement(); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 432; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 4, this._ctx); + } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public statement(): StatementContext { + let localctx: StatementContext = new StatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 12, PythonParser.RULE_statement); + try { + this.state = 436; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 5, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 434; + this.compound_stmt(); + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 435; + this.simple_stmts(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public statement_newline(): Statement_newlineContext { + let localctx: Statement_newlineContext = new Statement_newlineContext(this, this._ctx, this.state); + this.enterRule(localctx, 14, PythonParser.RULE_statement_newline); + try { + this.state = 444; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 6, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 438; + this.compound_stmt(); + this.state = 439; + this.match(PythonParser.NEWLINE); + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 441; + this.simple_stmts(); + } + break; + case 3: + this.enterOuterAlt(localctx, 3); + { + this.state = 442; + this.match(PythonParser.NEWLINE); + } + break; + case 4: + this.enterOuterAlt(localctx, 4); + { + this.state = 443; + this.match(PythonParser.EOF); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public simple_stmts(): Simple_stmtsContext { + let localctx: Simple_stmtsContext = new Simple_stmtsContext(this, this._ctx, this.state); + this.enterRule(localctx, 16, PythonParser.RULE_simple_stmts); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + this.state = 446; + this.simple_stmt(); + this.state = 451; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 7, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 447; + this.match(PythonParser.SEMI); + this.state = 448; + this.simple_stmt(); + } + } + } + this.state = 453; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 7, this._ctx); + } + this.state = 455; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===50) { + { + this.state = 454; + this.match(PythonParser.SEMI); + } + } + + this.state = 457; + this.match(PythonParser.NEWLINE); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public simple_stmt(): Simple_stmtContext { + let localctx: Simple_stmtContext = new Simple_stmtContext(this, this._ctx, this.state); + this.enterRule(localctx, 18, PythonParser.RULE_simple_stmt); + try { + this.state = 473; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 9, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 459; + this.assignment(); + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 460; + this.type_alias(); + } + break; + case 3: + this.enterOuterAlt(localctx, 3); + { + this.state = 461; + this.star_expressions(); + } + break; + case 4: + this.enterOuterAlt(localctx, 4); + { + this.state = 462; + this.return_stmt(); + } + break; + case 5: + this.enterOuterAlt(localctx, 5); + { + this.state = 463; + this.import_stmt(); + } + break; + case 6: + this.enterOuterAlt(localctx, 6); + { + this.state = 464; + this.raise_stmt(); + } + break; + case 7: + this.enterOuterAlt(localctx, 7); + { + this.state = 465; + this.match(PythonParser.PASS); + } + break; + case 8: + this.enterOuterAlt(localctx, 8); + { + this.state = 466; + this.del_stmt(); + } + break; + case 9: + this.enterOuterAlt(localctx, 9); + { + this.state = 467; + this.yield_stmt(); + } + break; + case 10: + this.enterOuterAlt(localctx, 10); + { + this.state = 468; + this.assert_stmt(); + } + break; + case 11: + this.enterOuterAlt(localctx, 11); + { + this.state = 469; + this.match(PythonParser.BREAK); + } + break; + case 12: + this.enterOuterAlt(localctx, 12); + { + this.state = 470; + this.match(PythonParser.CONTINUE); + } + break; + case 13: + this.enterOuterAlt(localctx, 13); + { + this.state = 471; + this.global_stmt(); + } + break; + case 14: + this.enterOuterAlt(localctx, 14); + { + this.state = 472; + this.nonlocal_stmt(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public compound_stmt(): Compound_stmtContext { + let localctx: Compound_stmtContext = new Compound_stmtContext(this, this._ctx, this.state); + this.enterRule(localctx, 20, PythonParser.RULE_compound_stmt); + try { + this.state = 483; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 10, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 475; + this.function_def(); + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 476; + this.if_stmt(); + } + break; + case 3: + this.enterOuterAlt(localctx, 3); + { + this.state = 477; + this.class_def(); + } + break; + case 4: + this.enterOuterAlt(localctx, 4); + { + this.state = 478; + this.with_stmt(); + } + break; + case 5: + this.enterOuterAlt(localctx, 5); + { + this.state = 479; + this.for_stmt(); + } + break; + case 6: + this.enterOuterAlt(localctx, 6); + { + this.state = 480; + this.try_stmt(); + } + break; + case 7: + this.enterOuterAlt(localctx, 7); + { + this.state = 481; + this.while_stmt(); + } + break; + case 8: + this.enterOuterAlt(localctx, 8); + { + this.state = 482; + this.match_stmt(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public assignment(): AssignmentContext { + let localctx: AssignmentContext = new AssignmentContext(this, this._ctx, this.state); + this.enterRule(localctx, 22, PythonParser.RULE_assignment); + let _la: number; + try { + let _alt: number; + this.state = 525; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 18, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 485; + this.match(PythonParser.NAME); + this.state = 486; + this.match(PythonParser.COLON); + this.state = 487; + this.expression(); + this.state = 490; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===59) { + { + this.state = 488; + this.match(PythonParser.EQUAL); + this.state = 489; + this.annotated_rhs(); + } + } + + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 497; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 12, this._ctx) ) { + case 1: + { + this.state = 492; + this.match(PythonParser.LPAR); + this.state = 493; + this.single_target(); + this.state = 494; + this.match(PythonParser.RPAR); + } + break; + case 2: + { + this.state = 496; + this.single_subscript_attribute_target(); + } + break; + } + this.state = 499; + this.match(PythonParser.COLON); + this.state = 500; + this.expression(); + this.state = 503; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===59) { + { + this.state = 501; + this.match(PythonParser.EQUAL); + this.state = 502; + this.annotated_rhs(); + } + } + + } + break; + case 3: + this.enterOuterAlt(localctx, 3); + { + this.state = 508; + this._errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + this.state = 505; + this.star_targets(); + this.state = 506; + this.match(PythonParser.EQUAL); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 510; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 14, this._ctx); + } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); + this.state = 514; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 40: + { + this.state = 512; + this.yield_expr(); + } + break; + case 3: + case 6: + case 7: + case 11: + case 16: + case 24: + case 34: + case 41: + case 42: + case 43: + case 51: + case 52: + case 53: + case 65: + case 86: + case 89: + case 90: + case 91: + { + this.state = 513; + this.star_expressions(); + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 517; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===92) { + { + this.state = 516; + this.match(PythonParser.TYPE_COMMENT); + } + } + + } + break; + case 4: + this.enterOuterAlt(localctx, 4); + { + this.state = 519; + this.single_target(); + this.state = 520; + this.augassign(); + this.state = 523; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 40: + { + this.state = 521; + this.yield_expr(); + } + break; + case 3: + case 6: + case 7: + case 11: + case 16: + case 24: + case 34: + case 41: + case 42: + case 43: + case 51: + case 52: + case 53: + case 65: + case 86: + case 89: + case 90: + case 91: + { + this.state = 522; + this.star_expressions(); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public annotated_rhs(): Annotated_rhsContext { + let localctx: Annotated_rhsContext = new Annotated_rhsContext(this, this._ctx, this.state); + this.enterRule(localctx, 24, PythonParser.RULE_annotated_rhs); + try { + this.state = 529; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 40: + this.enterOuterAlt(localctx, 1); + { + this.state = 527; + this.yield_expr(); + } + break; + case 3: + case 6: + case 7: + case 11: + case 16: + case 24: + case 34: + case 41: + case 42: + case 43: + case 51: + case 52: + case 53: + case 65: + case 86: + case 89: + case 90: + case 91: + this.enterOuterAlt(localctx, 2); + { + this.state = 528; + this.star_expressions(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public augassign(): AugassignContext { + let localctx: AugassignContext = new AugassignContext(this, this._ctx, this.state); + this.enterRule(localctx, 26, PythonParser.RULE_augassign); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 531; + _la = this._input.LA(1); + if(!(((((_la - 70)) & ~0x1F) === 0 && ((1 << (_la - 70)) & 22527) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public return_stmt(): Return_stmtContext { + let localctx: Return_stmtContext = new Return_stmtContext(this, this._ctx, this.state); + this.enterRule(localctx, 28, PythonParser.RULE_return_stmt); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 533; + this.match(PythonParser.RETURN); + this.state = 535; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 2148402049) !== 0) || ((((_la - 86)) & ~0x1F) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { + { + this.state = 534; + this.star_expressions(); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public raise_stmt(): Raise_stmtContext { + let localctx: Raise_stmtContext = new Raise_stmtContext(this, this._ctx, this.state); + this.enterRule(localctx, 30, PythonParser.RULE_raise_stmt); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 537; + this.match(PythonParser.RAISE); + this.state = 543; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 2147877761) !== 0) || ((((_la - 86)) & ~0x1F) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { + { + this.state = 538; + this.expression(); + this.state = 541; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===28) { + { + this.state = 539; + this.match(PythonParser.FROM); + this.state = 540; + this.expression(); + } + } + + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public global_stmt(): Global_stmtContext { + let localctx: Global_stmtContext = new Global_stmtContext(this, this._ctx, this.state); + this.enterRule(localctx, 32, PythonParser.RULE_global_stmt); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 545; + this.match(PythonParser.GLOBAL); + this.state = 546; + this.match(PythonParser.NAME); + this.state = 551; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la===49) { + { + { + this.state = 547; + this.match(PythonParser.COMMA); + this.state = 548; + this.match(PythonParser.NAME); + } + } + this.state = 553; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public nonlocal_stmt(): Nonlocal_stmtContext { + let localctx: Nonlocal_stmtContext = new Nonlocal_stmtContext(this, this._ctx, this.state); + this.enterRule(localctx, 34, PythonParser.RULE_nonlocal_stmt); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 554; + this.match(PythonParser.NONLOCAL); + this.state = 555; + this.match(PythonParser.NAME); + this.state = 560; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la===49) { + { + { + this.state = 556; + this.match(PythonParser.COMMA); + this.state = 557; + this.match(PythonParser.NAME); + } + } + this.state = 562; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public del_stmt(): Del_stmtContext { + let localctx: Del_stmtContext = new Del_stmtContext(this, this._ctx, this.state); + this.enterRule(localctx, 36, PythonParser.RULE_del_stmt); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 563; + this.match(PythonParser.DEL); + this.state = 564; + this.del_targets(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public yield_stmt(): Yield_stmtContext { + let localctx: Yield_stmtContext = new Yield_stmtContext(this, this._ctx, this.state); + this.enterRule(localctx, 38, PythonParser.RULE_yield_stmt); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 566; + this.yield_expr(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public assert_stmt(): Assert_stmtContext { + let localctx: Assert_stmtContext = new Assert_stmtContext(this, this._ctx, this.state); + this.enterRule(localctx, 40, PythonParser.RULE_assert_stmt); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 568; + this.match(PythonParser.ASSERT); + this.state = 569; + this.expression(); + this.state = 572; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 570; + this.match(PythonParser.COMMA); + this.state = 571; + this.expression(); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public import_stmt(): Import_stmtContext { + let localctx: Import_stmtContext = new Import_stmtContext(this, this._ctx, this.state); + this.enterRule(localctx, 42, PythonParser.RULE_import_stmt); + try { + this.state = 576; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 9: + this.enterOuterAlt(localctx, 1); + { + this.state = 574; + this.import_name(); + } + break; + case 28: + this.enterOuterAlt(localctx, 2); + { + this.state = 575; + this.import_from(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public import_name(): Import_nameContext { + let localctx: Import_nameContext = new Import_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 44, PythonParser.RULE_import_name); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 578; + this.match(PythonParser.IMPORT); + this.state = 579; + this.dotted_as_names(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public import_from(): Import_fromContext { + let localctx: Import_fromContext = new Import_fromContext(this, this._ctx, this.state); + this.enterRule(localctx, 46, PythonParser.RULE_import_from); + let _la: number; + try { + this.state = 600; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 29, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 581; + this.match(PythonParser.FROM); + this.state = 585; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la===47 || _la===86) { + { + { + this.state = 582; + _la = this._input.LA(1); + if(!(_la===47 || _la===86)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + this.state = 587; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 588; + this.dotted_name(0); + this.state = 589; + this.match(PythonParser.IMPORT); + this.state = 590; + this.import_from_targets(); + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 592; + this.match(PythonParser.FROM); + this.state = 594; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + { + { + this.state = 593; + _la = this._input.LA(1); + if(!(_la===47 || _la===86)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + this.state = 596; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while (_la===47 || _la===86); + this.state = 598; + this.match(PythonParser.IMPORT); + this.state = 599; + this.import_from_targets(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public import_from_targets(): Import_from_targetsContext { + let localctx: Import_from_targetsContext = new Import_from_targetsContext(this, this._ctx, this.state); + this.enterRule(localctx, 48, PythonParser.RULE_import_from_targets); + let _la: number; + try { + this.state = 611; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 41: + this.enterOuterAlt(localctx, 1); + { + this.state = 602; + this.match(PythonParser.LPAR); + this.state = 603; + this.import_from_as_names(); + this.state = 605; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 604; + this.match(PythonParser.COMMA); + } + } + + this.state = 607; + this.match(PythonParser.RPAR); + } + break; + case 89: + this.enterOuterAlt(localctx, 2); + { + this.state = 609; + this.import_from_as_names(); + } + break; + case 53: + this.enterOuterAlt(localctx, 3); + { + this.state = 610; + this.match(PythonParser.STAR); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public import_from_as_names(): Import_from_as_namesContext { + let localctx: Import_from_as_namesContext = new Import_from_as_namesContext(this, this._ctx, this.state); + this.enterRule(localctx, 50, PythonParser.RULE_import_from_as_names); + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + this.state = 613; + this.import_from_as_name(); + this.state = 618; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 32, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 614; + this.match(PythonParser.COMMA); + this.state = 615; + this.import_from_as_name(); + } + } + } + this.state = 620; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 32, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public import_from_as_name(): Import_from_as_nameContext { + let localctx: Import_from_as_nameContext = new Import_from_as_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 52, PythonParser.RULE_import_from_as_name); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 621; + this.match(PythonParser.NAME); + this.state = 624; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===26) { + { + this.state = 622; + this.match(PythonParser.AS); + this.state = 623; + this.match(PythonParser.NAME); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public dotted_as_names(): Dotted_as_namesContext { + let localctx: Dotted_as_namesContext = new Dotted_as_namesContext(this, this._ctx, this.state); + this.enterRule(localctx, 54, PythonParser.RULE_dotted_as_names); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 626; + this.dotted_as_name(); + this.state = 631; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la===49) { + { + { + this.state = 627; + this.match(PythonParser.COMMA); + this.state = 628; + this.dotted_as_name(); + } + } + this.state = 633; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public dotted_as_name(): Dotted_as_nameContext { + let localctx: Dotted_as_nameContext = new Dotted_as_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 56, PythonParser.RULE_dotted_as_name); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 634; + this.dotted_name(0); + this.state = 637; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===26) { + { + this.state = 635; + this.match(PythonParser.AS); + this.state = 636; + this.match(PythonParser.NAME); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + + public dotted_name(): Dotted_nameContext; + public dotted_name(_p: number): Dotted_nameContext; + // @RuleVersion(0) + public dotted_name(_p?: number): Dotted_nameContext { + if (_p === undefined) { + _p = 0; + } + + let _parentctx: ParserRuleContext = this._ctx; + let _parentState: number = this.state; + let localctx: Dotted_nameContext = new Dotted_nameContext(this, this._ctx, _parentState); + let _prevctx: Dotted_nameContext = localctx; + let _startState: number = 58; + this.enterRecursionRule(localctx, 58, PythonParser.RULE_dotted_name, _p); + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + { + this.state = 640; + this.match(PythonParser.NAME); + } + this._ctx.stop = this._input.LT(-1); + this.state = 647; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 36, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + if (this._parseListeners != null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + { + { + localctx = new Dotted_nameContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, PythonParser.RULE_dotted_name); + this.state = 642; + if (!(this.precpred(this._ctx, 2))) { + throw this.createFailedPredicateException("this.precpred(this._ctx, 2)"); + } + this.state = 643; + this.match(PythonParser.DOT); + this.state = 644; + this.match(PythonParser.NAME); + } + } + } + this.state = 649; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 36, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.unrollRecursionContexts(_parentctx); + } + return localctx; + } + // @RuleVersion(0) + public block(): BlockContext { + let localctx: BlockContext = new BlockContext(this, this._ctx, this.state); + this.enterRule(localctx, 60, PythonParser.RULE_block); + try { + this.state = 656; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 37, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 650; + this.match(PythonParser.NEWLINE); + this.state = 651; + this.match(PythonParser.INDENT); + this.state = 652; + this.statements(); + this.state = 653; + this.match(PythonParser.DEDENT); + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 655; + this.simple_stmts(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public decorators(): DecoratorsContext { + let localctx: DecoratorsContext = new DecoratorsContext(this, this._ctx, this.state); + this.enterRule(localctx, 62, PythonParser.RULE_decorators); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 662; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + { + { + this.state = 658; + this.match(PythonParser.AT); + this.state = 659; + this.named_expression(); + this.state = 660; + this.match(PythonParser.NEWLINE); + } + } + this.state = 664; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while (_la===83); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public class_def(): Class_defContext { + let localctx: Class_defContext = new Class_defContext(this, this._ctx, this.state); + this.enterRule(localctx, 64, PythonParser.RULE_class_def); + try { + this.state = 670; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 83: + this.enterOuterAlt(localctx, 1); + { + this.state = 666; + this.decorators(); + this.state = 667; + this.class_def_raw(); + } + break; + case 17: + this.enterOuterAlt(localctx, 2); + { + this.state = 669; + this.class_def_raw(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public class_def_raw(): Class_def_rawContext { + let localctx: Class_def_rawContext = new Class_def_rawContext(this, this._ctx, this.state); + this.enterRule(localctx, 66, PythonParser.RULE_class_def_raw); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 672; + this.match(PythonParser.CLASS); + this.state = 673; + this.match(PythonParser.NAME); + this.state = 675; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===42) { + { + this.state = 674; + this.type_params(); + } + } + + this.state = 682; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===41) { + { + this.state = 677; + this.match(PythonParser.LPAR); + this.state = 679; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 2148402049) !== 0) || ((((_la - 69)) & ~0x1F) === 0 && ((1 << (_la - 69)) & 7471105) !== 0)) { + { + this.state = 678; + this.arguments(); + } + } + + this.state = 681; + this.match(PythonParser.RPAR); + } + } + + this.state = 684; + this.match(PythonParser.COLON); + this.state = 685; + this.block(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public function_def(): Function_defContext { + let localctx: Function_defContext = new Function_defContext(this, this._ctx, this.state); + this.enterRule(localctx, 68, PythonParser.RULE_function_def); + try { + this.state = 691; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 83: + this.enterOuterAlt(localctx, 1); + { + this.state = 687; + this.decorators(); + this.state = 688; + this.function_def_raw(); + } + break; + case 27: + case 36: + this.enterOuterAlt(localctx, 2); + { + this.state = 690; + this.function_def_raw(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public function_def_raw(): Function_def_rawContext { + let localctx: Function_def_rawContext = new Function_def_rawContext(this, this._ctx, this.state); + this.enterRule(localctx, 70, PythonParser.RULE_function_def_raw); + let _la: number; + try { + this.state = 732; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 27: + this.enterOuterAlt(localctx, 1); + { + this.state = 693; + this.match(PythonParser.DEF); + this.state = 694; + this.match(PythonParser.NAME); + this.state = 696; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===42) { + { + this.state = 695; + this.type_params(); + } + } + + this.state = 698; + this.match(PythonParser.LPAR); + this.state = 700; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===53 || _la===69 || _la===89) { + { + this.state = 699; + this.params(); + } + } + + this.state = 702; + this.match(PythonParser.RPAR); + this.state = 705; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===85) { + { + this.state = 703; + this.match(PythonParser.RARROW); + this.state = 704; + this.expression(); + } + } + + this.state = 707; + this.match(PythonParser.COLON); + this.state = 709; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 47, this._ctx) ) { + case 1: + { + this.state = 708; + this.func_type_comment(); + } + break; + } + this.state = 711; + this.block(); + } + break; + case 36: + this.enterOuterAlt(localctx, 2); + { + this.state = 712; + this.match(PythonParser.ASYNC); + this.state = 713; + this.match(PythonParser.DEF); + this.state = 714; + this.match(PythonParser.NAME); + this.state = 716; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===42) { + { + this.state = 715; + this.type_params(); + } + } + + this.state = 718; + this.match(PythonParser.LPAR); + this.state = 720; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===53 || _la===69 || _la===89) { + { + this.state = 719; + this.params(); + } + } + + this.state = 722; + this.match(PythonParser.RPAR); + this.state = 725; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===85) { + { + this.state = 723; + this.match(PythonParser.RARROW); + this.state = 724; + this.expression(); + } + } + + this.state = 727; + this.match(PythonParser.COLON); + this.state = 729; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 51, this._ctx) ) { + case 1: + { + this.state = 728; + this.func_type_comment(); + } + break; + } + this.state = 731; + this.block(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public params(): ParamsContext { + let localctx: ParamsContext = new ParamsContext(this, this._ctx, this.state); + this.enterRule(localctx, 72, PythonParser.RULE_params); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 734; + this.parameters(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public parameters(): ParametersContext { + let localctx: ParametersContext = new ParametersContext(this, this._ctx, this.state); + this.enterRule(localctx, 74, PythonParser.RULE_parameters); + let _la: number; + try { + let _alt: number; + this.state = 785; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 63, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 736; + this.slash_no_default(); + this.state = 740; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 53, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 737; + this.param_no_default(); + } + } + } + this.state = 742; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 53, this._ctx); + } + this.state = 746; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la===89) { + { + { + this.state = 743; + this.param_with_default(); + } + } + this.state = 748; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 750; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===53 || _la===69) { + { + this.state = 749; + this.star_etc(); + } + } + + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 752; + this.slash_with_default(); + this.state = 756; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la===89) { + { + { + this.state = 753; + this.param_with_default(); + } + } + this.state = 758; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 760; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===53 || _la===69) { + { + this.state = 759; + this.star_etc(); + } + } + + } + break; + case 3: + this.enterOuterAlt(localctx, 3); + { + this.state = 763; + this._errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + this.state = 762; + this.param_no_default(); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 765; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 58, this._ctx); + } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); + this.state = 770; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la===89) { + { + { + this.state = 767; + this.param_with_default(); + } + } + this.state = 772; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 774; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===53 || _la===69) { + { + this.state = 773; + this.star_etc(); + } + } + + } + break; + case 4: + this.enterOuterAlt(localctx, 4); + { + this.state = 777; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + { + { + this.state = 776; + this.param_with_default(); + } + } + this.state = 779; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while (_la===89); + this.state = 782; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===53 || _la===69) { + { + this.state = 781; + this.star_etc(); + } + } + + } + break; + case 5: + this.enterOuterAlt(localctx, 5); + { + this.state = 784; + this.star_etc(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public slash_no_default(): Slash_no_defaultContext { + let localctx: Slash_no_defaultContext = new Slash_no_defaultContext(this, this._ctx, this.state); + this.enterRule(localctx, 76, PythonParser.RULE_slash_no_default); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 788; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + { + { + this.state = 787; + this.param_no_default(); + } + } + this.state = 790; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while (_la===89); + this.state = 792; + this.match(PythonParser.SLASH); + this.state = 794; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 793; + this.match(PythonParser.COMMA); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public slash_with_default(): Slash_with_defaultContext { + let localctx: Slash_with_defaultContext = new Slash_with_defaultContext(this, this._ctx, this.state); + this.enterRule(localctx, 78, PythonParser.RULE_slash_with_default); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + this.state = 799; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 66, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 796; + this.param_no_default(); + } + } + } + this.state = 801; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 66, this._ctx); + } + this.state = 803; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + { + { + this.state = 802; + this.param_with_default(); + } + } + this.state = 805; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while (_la===89); + this.state = 807; + this.match(PythonParser.SLASH); + this.state = 809; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 808; + this.match(PythonParser.COMMA); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public star_etc(): Star_etcContext { + let localctx: Star_etcContext = new Star_etcContext(this, this._ctx, this.state); + this.enterRule(localctx, 80, PythonParser.RULE_star_etc); + let _la: number; + try { + this.state = 844; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 75, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 811; + this.match(PythonParser.STAR); + this.state = 812; + this.param_no_default(); + this.state = 816; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la===89) { + { + { + this.state = 813; + this.param_maybe_default(); + } + } + this.state = 818; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 820; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===69) { + { + this.state = 819; + this.kwds(); + } + } + + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 822; + this.match(PythonParser.STAR); + this.state = 823; + this.param_no_default_star_annotation(); + this.state = 827; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la===89) { + { + { + this.state = 824; + this.param_maybe_default(); + } + } + this.state = 829; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 831; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===69) { + { + this.state = 830; + this.kwds(); + } + } + + } + break; + case 3: + this.enterOuterAlt(localctx, 3); + { + this.state = 833; + this.match(PythonParser.STAR); + this.state = 834; + this.match(PythonParser.COMMA); + this.state = 836; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + { + { + this.state = 835; + this.param_maybe_default(); + } + } + this.state = 838; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while (_la===89); + this.state = 841; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===69) { + { + this.state = 840; + this.kwds(); + } + } + + } + break; + case 4: + this.enterOuterAlt(localctx, 4); + { + this.state = 843; + this.kwds(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public kwds(): KwdsContext { + let localctx: KwdsContext = new KwdsContext(this, this._ctx, this.state); + this.enterRule(localctx, 82, PythonParser.RULE_kwds); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 846; + this.match(PythonParser.DOUBLESTAR); + this.state = 847; + this.param_no_default(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public param_no_default(): Param_no_defaultContext { + let localctx: Param_no_defaultContext = new Param_no_defaultContext(this, this._ctx, this.state); + this.enterRule(localctx, 84, PythonParser.RULE_param_no_default); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 849; + this.param(); + this.state = 851; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 850; + this.match(PythonParser.COMMA); + } + } + + this.state = 854; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===92) { + { + this.state = 853; + this.match(PythonParser.TYPE_COMMENT); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public param_no_default_star_annotation(): Param_no_default_star_annotationContext { + let localctx: Param_no_default_star_annotationContext = new Param_no_default_star_annotationContext(this, this._ctx, this.state); + this.enterRule(localctx, 86, PythonParser.RULE_param_no_default_star_annotation); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 856; + this.param_star_annotation(); + this.state = 858; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 857; + this.match(PythonParser.COMMA); + } + } + + this.state = 861; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===92) { + { + this.state = 860; + this.match(PythonParser.TYPE_COMMENT); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public param_with_default(): Param_with_defaultContext { + let localctx: Param_with_defaultContext = new Param_with_defaultContext(this, this._ctx, this.state); + this.enterRule(localctx, 88, PythonParser.RULE_param_with_default); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 863; + this.param(); + this.state = 864; + this.default_assignment(); + this.state = 866; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 865; + this.match(PythonParser.COMMA); + } + } + + this.state = 869; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===92) { + { + this.state = 868; + this.match(PythonParser.TYPE_COMMENT); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public param_maybe_default(): Param_maybe_defaultContext { + let localctx: Param_maybe_defaultContext = new Param_maybe_defaultContext(this, this._ctx, this.state); + this.enterRule(localctx, 90, PythonParser.RULE_param_maybe_default); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 871; + this.param(); + this.state = 873; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===59) { + { + this.state = 872; + this.default_assignment(); + } + } + + this.state = 876; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 875; + this.match(PythonParser.COMMA); + } + } + + this.state = 879; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===92) { + { + this.state = 878; + this.match(PythonParser.TYPE_COMMENT); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public param(): ParamContext { + let localctx: ParamContext = new ParamContext(this, this._ctx, this.state); + this.enterRule(localctx, 92, PythonParser.RULE_param); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 881; + this.match(PythonParser.NAME); + this.state = 883; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===48) { + { + this.state = 882; + this.annotation(); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public param_star_annotation(): Param_star_annotationContext { + let localctx: Param_star_annotationContext = new Param_star_annotationContext(this, this._ctx, this.state); + this.enterRule(localctx, 94, PythonParser.RULE_param_star_annotation); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 885; + this.match(PythonParser.NAME); + this.state = 886; + this.star_annotation(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public annotation(): AnnotationContext { + let localctx: AnnotationContext = new AnnotationContext(this, this._ctx, this.state); + this.enterRule(localctx, 96, PythonParser.RULE_annotation); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 888; + this.match(PythonParser.COLON); + this.state = 889; + this.expression(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public star_annotation(): Star_annotationContext { + let localctx: Star_annotationContext = new Star_annotationContext(this, this._ctx, this.state); + this.enterRule(localctx, 98, PythonParser.RULE_star_annotation); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 891; + this.match(PythonParser.COLON); + this.state = 892; + this.star_expression(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public default_assignment(): Default_assignmentContext { + let localctx: Default_assignmentContext = new Default_assignmentContext(this, this._ctx, this.state); + this.enterRule(localctx, 100, PythonParser.RULE_default_assignment); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 894; + this.match(PythonParser.EQUAL); + this.state = 895; + this.expression(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public if_stmt(): If_stmtContext { + let localctx: If_stmtContext = new If_stmtContext(this, this._ctx, this.state); + this.enterRule(localctx, 102, PythonParser.RULE_if_stmt); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 897; + this.match(PythonParser.IF); + this.state = 898; + this.named_expression(); + this.state = 899; + this.match(PythonParser.COLON); + this.state = 900; + this.block(); + this.state = 905; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 87, this._ctx) ) { + case 1: + { + this.state = 901; + this.elif_stmt(); + } + break; + case 2: + { + this.state = 903; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 86, this._ctx) ) { + case 1: + { + this.state = 902; + this.else_block(); + } + break; + } + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public elif_stmt(): Elif_stmtContext { + let localctx: Elif_stmtContext = new Elif_stmtContext(this, this._ctx, this.state); + this.enterRule(localctx, 104, PythonParser.RULE_elif_stmt); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 907; + this.match(PythonParser.ELIF); + this.state = 908; + this.named_expression(); + this.state = 909; + this.match(PythonParser.COLON); + this.state = 910; + this.block(); + this.state = 915; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 89, this._ctx) ) { + case 1: + { + this.state = 911; + this.elif_stmt(); + } + break; + case 2: + { + this.state = 913; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 88, this._ctx) ) { + case 1: + { + this.state = 912; + this.else_block(); + } + break; + } + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public else_block(): Else_blockContext { + let localctx: Else_blockContext = new Else_blockContext(this, this._ctx, this.state); + this.enterRule(localctx, 106, PythonParser.RULE_else_block); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 917; + this.match(PythonParser.ELSE); + this.state = 918; + this.match(PythonParser.COLON); + this.state = 919; + this.block(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public while_stmt(): While_stmtContext { + let localctx: While_stmtContext = new While_stmtContext(this, this._ctx, this.state); + this.enterRule(localctx, 108, PythonParser.RULE_while_stmt); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 921; + this.match(PythonParser.WHILE); + this.state = 922; + this.named_expression(); + this.state = 923; + this.match(PythonParser.COLON); + this.state = 924; + this.block(); + this.state = 926; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 90, this._ctx) ) { + case 1: + { + this.state = 925; + this.else_block(); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public for_stmt(): For_stmtContext { + let localctx: For_stmtContext = new For_stmtContext(this, this._ctx, this.state); + this.enterRule(localctx, 110, PythonParser.RULE_for_stmt); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 929; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===36) { + { + this.state = 928; + this.match(PythonParser.ASYNC); + } + } + + this.state = 931; + this.match(PythonParser.FOR); + this.state = 932; + this.star_targets(); + this.state = 933; + this.match(PythonParser.IN); + this.state = 934; + this.star_expressions(); + this.state = 935; + this.match(PythonParser.COLON); + this.state = 937; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 92, this._ctx) ) { + case 1: + { + this.state = 936; + this.match(PythonParser.TYPE_COMMENT); + } + break; + } + this.state = 939; + this.block(); + this.state = 941; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 93, this._ctx) ) { + case 1: + { + this.state = 940; + this.else_block(); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public with_stmt(): With_stmtContext { + let localctx: With_stmtContext = new With_stmtContext(this, this._ctx, this.state); + this.enterRule(localctx, 112, PythonParser.RULE_with_stmt); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + this.state = 944; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===36) { + { + this.state = 943; + this.match(PythonParser.ASYNC); + } + } + + this.state = 946; + this.match(PythonParser.WITH); + this.state = 974; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 99, this._ctx) ) { + case 1: + { + this.state = 947; + this.match(PythonParser.LPAR); + this.state = 948; + this.with_item(); + this.state = 953; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 95, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 949; + this.match(PythonParser.COMMA); + this.state = 950; + this.with_item(); + } + } + } + this.state = 955; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 95, this._ctx); + } + this.state = 957; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 956; + this.match(PythonParser.COMMA); + } + } + + this.state = 959; + this.match(PythonParser.RPAR); + this.state = 960; + this.match(PythonParser.COLON); + } + break; + case 2: + { + this.state = 962; + this.with_item(); + this.state = 967; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la===49) { + { + { + this.state = 963; + this.match(PythonParser.COMMA); + this.state = 964; + this.with_item(); + } + } + this.state = 969; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 970; + this.match(PythonParser.COLON); + this.state = 972; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 98, this._ctx) ) { + case 1: + { + this.state = 971; + this.match(PythonParser.TYPE_COMMENT); + } + break; + } + } + break; + } + this.state = 976; + this.block(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public with_item(): With_itemContext { + let localctx: With_itemContext = new With_itemContext(this, this._ctx, this.state); + this.enterRule(localctx, 114, PythonParser.RULE_with_item); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 978; + this.expression(); + this.state = 981; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===26) { + { + this.state = 979; + this.match(PythonParser.AS); + this.state = 980; + this.star_target(); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public try_stmt(): Try_stmtContext { + let localctx: Try_stmtContext = new Try_stmtContext(this, this._ctx, this.state); + this.enterRule(localctx, 116, PythonParser.RULE_try_stmt); + try { + let _alt: number; + this.state = 1016; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 107, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 983; + this.match(PythonParser.TRY); + this.state = 984; + this.match(PythonParser.COLON); + this.state = 985; + this.block(); + this.state = 986; + this.finally_block(); + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 988; + this.match(PythonParser.TRY); + this.state = 989; + this.match(PythonParser.COLON); + this.state = 990; + this.block(); + this.state = 992; + this._errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + this.state = 991; + this.except_block(); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 994; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 101, this._ctx); + } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); + this.state = 997; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 102, this._ctx) ) { + case 1: + { + this.state = 996; + this.else_block(); + } + break; + } + this.state = 1000; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 103, this._ctx) ) { + case 1: + { + this.state = 999; + this.finally_block(); + } + break; + } + } + break; + case 3: + this.enterOuterAlt(localctx, 3); + { + this.state = 1002; + this.match(PythonParser.TRY); + this.state = 1003; + this.match(PythonParser.COLON); + this.state = 1004; + this.block(); + this.state = 1006; + this._errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + this.state = 1005; + this.except_star_block(); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 1008; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 104, this._ctx); + } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); + this.state = 1011; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 105, this._ctx) ) { + case 1: + { + this.state = 1010; + this.else_block(); + } + break; + } + this.state = 1014; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 106, this._ctx) ) { + case 1: + { + this.state = 1013; + this.finally_block(); + } + break; + } + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public except_block(): Except_blockContext { + let localctx: Except_blockContext = new Except_blockContext(this, this._ctx, this.state); + this.enterRule(localctx, 118, PythonParser.RULE_except_block); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1018; + this.match(PythonParser.EXCEPT); + this.state = 1024; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 2147877761) !== 0) || ((((_la - 86)) & ~0x1F) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { + { + this.state = 1019; + this.expression(); + this.state = 1022; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===26) { + { + this.state = 1020; + this.match(PythonParser.AS); + this.state = 1021; + this.match(PythonParser.NAME); + } + } + + } + } + + this.state = 1026; + this.match(PythonParser.COLON); + this.state = 1027; + this.block(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public except_star_block(): Except_star_blockContext { + let localctx: Except_star_blockContext = new Except_star_blockContext(this, this._ctx, this.state); + this.enterRule(localctx, 120, PythonParser.RULE_except_star_block); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1029; + this.match(PythonParser.EXCEPT); + this.state = 1030; + this.match(PythonParser.STAR); + this.state = 1031; + this.expression(); + this.state = 1034; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===26) { + { + this.state = 1032; + this.match(PythonParser.AS); + this.state = 1033; + this.match(PythonParser.NAME); + } + } + + this.state = 1036; + this.match(PythonParser.COLON); + this.state = 1037; + this.block(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public finally_block(): Finally_blockContext { + let localctx: Finally_blockContext = new Finally_blockContext(this, this._ctx, this.state); + this.enterRule(localctx, 122, PythonParser.RULE_finally_block); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1039; + this.match(PythonParser.FINALLY); + this.state = 1040; + this.match(PythonParser.COLON); + this.state = 1041; + this.block(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public match_stmt(): Match_stmtContext { + let localctx: Match_stmtContext = new Match_stmtContext(this, this._ctx, this.state); + this.enterRule(localctx, 124, PythonParser.RULE_match_stmt); + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + this.state = 1043; + this.soft_kw_match(); + this.state = 1044; + this.subject_expr(); + this.state = 1045; + this.match(PythonParser.COLON); + this.state = 1046; + this.match(PythonParser.NEWLINE); + this.state = 1047; + this.match(PythonParser.INDENT); + this.state = 1049; + this._errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + this.state = 1048; + this.case_block(); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 1051; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 111, this._ctx); + } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); + this.state = 1053; + this.match(PythonParser.DEDENT); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public subject_expr(): Subject_exprContext { + let localctx: Subject_exprContext = new Subject_exprContext(this, this._ctx, this.state); + this.enterRule(localctx, 126, PythonParser.RULE_subject_expr); + let _la: number; + try { + this.state = 1061; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 113, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 1055; + this.star_named_expression(); + this.state = 1056; + this.match(PythonParser.COMMA); + this.state = 1058; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 2148402049) !== 0) || ((((_la - 86)) & ~0x1F) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { + { + this.state = 1057; + this.star_named_expressions(); + } + } + + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 1060; + this.named_expression(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public case_block(): Case_blockContext { + let localctx: Case_blockContext = new Case_blockContext(this, this._ctx, this.state); + this.enterRule(localctx, 128, PythonParser.RULE_case_block); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1063; + this.soft_kw_case(); + this.state = 1064; + this.patterns(); + this.state = 1066; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===38) { + { + this.state = 1065; + this.guard(); + } + } + + this.state = 1068; + this.match(PythonParser.COLON); + this.state = 1069; + this.block(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public guard(): GuardContext { + let localctx: GuardContext = new GuardContext(this, this._ctx, this.state); + this.enterRule(localctx, 130, PythonParser.RULE_guard); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1071; + this.match(PythonParser.IF); + this.state = 1072; + this.named_expression(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public patterns(): PatternsContext { + let localctx: PatternsContext = new PatternsContext(this, this._ctx, this.state); + this.enterRule(localctx, 132, PythonParser.RULE_patterns); + try { + this.state = 1076; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 115, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 1074; + this.open_sequence_pattern(); + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 1075; + this.pattern(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public pattern(): PatternContext { + let localctx: PatternContext = new PatternContext(this, this._ctx, this.state); + this.enterRule(localctx, 134, PythonParser.RULE_pattern); + try { + this.state = 1080; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 116, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 1078; + this.as_pattern(); + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 1079; + this.or_pattern(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public as_pattern(): As_patternContext { + let localctx: As_patternContext = new As_patternContext(this, this._ctx, this.state); + this.enterRule(localctx, 136, PythonParser.RULE_as_pattern); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1082; + this.or_pattern(); + this.state = 1083; + this.match(PythonParser.AS); + this.state = 1084; + this.pattern_capture_target(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public or_pattern(): Or_patternContext { + let localctx: Or_patternContext = new Or_patternContext(this, this._ctx, this.state); + this.enterRule(localctx, 138, PythonParser.RULE_or_pattern); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1086; + this.closed_pattern(); + this.state = 1091; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la===55) { + { + { + this.state = 1087; + this.match(PythonParser.VBAR); + this.state = 1088; + this.closed_pattern(); + } + } + this.state = 1093; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public closed_pattern(): Closed_patternContext { + let localctx: Closed_patternContext = new Closed_patternContext(this, this._ctx, this.state); + this.enterRule(localctx, 140, PythonParser.RULE_closed_pattern); + try { + this.state = 1102; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 118, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 1094; + this.literal_pattern(); + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 1095; + this.capture_pattern(); + } + break; + case 3: + this.enterOuterAlt(localctx, 3); + { + this.state = 1096; + this.wildcard_pattern(); + } + break; + case 4: + this.enterOuterAlt(localctx, 4); + { + this.state = 1097; + this.value_pattern(); + } + break; + case 5: + this.enterOuterAlt(localctx, 5); + { + this.state = 1098; + this.group_pattern(); + } + break; + case 6: + this.enterOuterAlt(localctx, 6); + { + this.state = 1099; + this.sequence_pattern(); + } + break; + case 7: + this.enterOuterAlt(localctx, 7); + { + this.state = 1100; + this.mapping_pattern(); + } + break; + case 8: + this.enterOuterAlt(localctx, 8); + { + this.state = 1101; + this.class_pattern(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public literal_pattern(): Literal_patternContext { + let localctx: Literal_patternContext = new Literal_patternContext(this, this._ctx, this.state); + this.enterRule(localctx, 142, PythonParser.RULE_literal_pattern); + try { + this.state = 1110; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 119, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 1104; + this.signed_number(); + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 1105; + this.complex_number(); + } + break; + case 3: + this.enterOuterAlt(localctx, 3); + { + this.state = 1106; + this.strings(); + } + break; + case 4: + this.enterOuterAlt(localctx, 4); + { + this.state = 1107; + this.match(PythonParser.NONE); + } + break; + case 5: + this.enterOuterAlt(localctx, 5); + { + this.state = 1108; + this.match(PythonParser.TRUE); + } + break; + case 6: + this.enterOuterAlt(localctx, 6); + { + this.state = 1109; + this.match(PythonParser.FALSE); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public literal_expr(): Literal_exprContext { + let localctx: Literal_exprContext = new Literal_exprContext(this, this._ctx, this.state); + this.enterRule(localctx, 144, PythonParser.RULE_literal_expr); + try { + this.state = 1118; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 120, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 1112; + this.signed_number(); + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 1113; + this.complex_number(); + } + break; + case 3: + this.enterOuterAlt(localctx, 3); + { + this.state = 1114; + this.strings(); + } + break; + case 4: + this.enterOuterAlt(localctx, 4); + { + this.state = 1115; + this.match(PythonParser.NONE); + } + break; + case 5: + this.enterOuterAlt(localctx, 5); + { + this.state = 1116; + this.match(PythonParser.TRUE); + } + break; + case 6: + this.enterOuterAlt(localctx, 6); + { + this.state = 1117; + this.match(PythonParser.FALSE); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public complex_number(): Complex_numberContext { + let localctx: Complex_numberContext = new Complex_numberContext(this, this._ctx, this.state); + this.enterRule(localctx, 146, PythonParser.RULE_complex_number); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1120; + this.signed_real_number(); + this.state = 1121; + _la = this._input.LA(1); + if(!(_la===51 || _la===52)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1122; + this.imaginary_number(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public signed_number(): Signed_numberContext { + let localctx: Signed_numberContext = new Signed_numberContext(this, this._ctx, this.state); + this.enterRule(localctx, 148, PythonParser.RULE_signed_number); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1125; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===52) { + { + this.state = 1124; + this.match(PythonParser.MINUS); + } + } + + this.state = 1127; + this.match(PythonParser.NUMBER); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public signed_real_number(): Signed_real_numberContext { + let localctx: Signed_real_numberContext = new Signed_real_numberContext(this, this._ctx, this.state); + this.enterRule(localctx, 150, PythonParser.RULE_signed_real_number); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1130; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===52) { + { + this.state = 1129; + this.match(PythonParser.MINUS); + } + } + + this.state = 1132; + this.real_number(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public real_number(): Real_numberContext { + let localctx: Real_numberContext = new Real_numberContext(this, this._ctx, this.state); + this.enterRule(localctx, 152, PythonParser.RULE_real_number); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1134; + this.match(PythonParser.NUMBER); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public imaginary_number(): Imaginary_numberContext { + let localctx: Imaginary_numberContext = new Imaginary_numberContext(this, this._ctx, this.state); + this.enterRule(localctx, 154, PythonParser.RULE_imaginary_number); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1136; + this.match(PythonParser.NUMBER); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public capture_pattern(): Capture_patternContext { + let localctx: Capture_patternContext = new Capture_patternContext(this, this._ctx, this.state); + this.enterRule(localctx, 156, PythonParser.RULE_capture_pattern); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1138; + this.pattern_capture_target(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public pattern_capture_target(): Pattern_capture_targetContext { + let localctx: Pattern_capture_targetContext = new Pattern_capture_targetContext(this, this._ctx, this.state); + this.enterRule(localctx, 158, PythonParser.RULE_pattern_capture_target); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1140; + this.soft_kw__not__wildcard(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public wildcard_pattern(): Wildcard_patternContext { + let localctx: Wildcard_patternContext = new Wildcard_patternContext(this, this._ctx, this.state); + this.enterRule(localctx, 160, PythonParser.RULE_wildcard_pattern); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1142; + this.soft_kw_wildcard(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public value_pattern(): Value_patternContext { + let localctx: Value_patternContext = new Value_patternContext(this, this._ctx, this.state); + this.enterRule(localctx, 162, PythonParser.RULE_value_pattern); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1144; + this.attr(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public attr(): AttrContext { + let localctx: AttrContext = new AttrContext(this, this._ctx, this.state); + this.enterRule(localctx, 164, PythonParser.RULE_attr); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1146; + this.match(PythonParser.NAME); + this.state = 1149; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + { + { + this.state = 1147; + this.match(PythonParser.DOT); + this.state = 1148; + this.match(PythonParser.NAME); + } + } + this.state = 1151; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while (_la===47); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public name_or_attr(): Name_or_attrContext { + let localctx: Name_or_attrContext = new Name_or_attrContext(this, this._ctx, this.state); + this.enterRule(localctx, 166, PythonParser.RULE_name_or_attr); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1153; + this.match(PythonParser.NAME); + this.state = 1158; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la===47) { + { + { + this.state = 1154; + this.match(PythonParser.DOT); + this.state = 1155; + this.match(PythonParser.NAME); + } + } + this.state = 1160; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public group_pattern(): Group_patternContext { + let localctx: Group_patternContext = new Group_patternContext(this, this._ctx, this.state); + this.enterRule(localctx, 168, PythonParser.RULE_group_pattern); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1161; + this.match(PythonParser.LPAR); + this.state = 1162; + this.pattern(); + this.state = 1163; + this.match(PythonParser.RPAR); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public sequence_pattern(): Sequence_patternContext { + let localctx: Sequence_patternContext = new Sequence_patternContext(this, this._ctx, this.state); + this.enterRule(localctx, 170, PythonParser.RULE_sequence_pattern); + try { + this.state = 1175; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 42: + this.enterOuterAlt(localctx, 1); + { + this.state = 1165; + this.match(PythonParser.LSQB); + this.state = 1167; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 125, this._ctx) ) { + case 1: + { + this.state = 1166; + this.maybe_sequence_pattern(); + } + break; + } + this.state = 1169; + this.match(PythonParser.RSQB); + } + break; + case 41: + this.enterOuterAlt(localctx, 2); + { + this.state = 1170; + this.match(PythonParser.LPAR); + this.state = 1172; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 126, this._ctx) ) { + case 1: + { + this.state = 1171; + this.open_sequence_pattern(); + } + break; + } + this.state = 1174; + this.match(PythonParser.RPAR); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public open_sequence_pattern(): Open_sequence_patternContext { + let localctx: Open_sequence_patternContext = new Open_sequence_patternContext(this, this._ctx, this.state); + this.enterRule(localctx, 172, PythonParser.RULE_open_sequence_pattern); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1177; + this.maybe_star_pattern(); + this.state = 1178; + this.match(PythonParser.COMMA); + this.state = 1180; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 128, this._ctx) ) { + case 1: + { + this.state = 1179; + this.maybe_sequence_pattern(); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public maybe_sequence_pattern(): Maybe_sequence_patternContext { + let localctx: Maybe_sequence_patternContext = new Maybe_sequence_patternContext(this, this._ctx, this.state); + this.enterRule(localctx, 174, PythonParser.RULE_maybe_sequence_pattern); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + this.state = 1182; + this.maybe_star_pattern(); + this.state = 1187; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 129, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 1183; + this.match(PythonParser.COMMA); + this.state = 1184; + this.maybe_star_pattern(); + } + } + } + this.state = 1189; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 129, this._ctx); + } + this.state = 1191; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 1190; + this.match(PythonParser.COMMA); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public maybe_star_pattern(): Maybe_star_patternContext { + let localctx: Maybe_star_patternContext = new Maybe_star_patternContext(this, this._ctx, this.state); + this.enterRule(localctx, 176, PythonParser.RULE_maybe_star_pattern); + try { + this.state = 1195; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 131, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 1193; + this.star_pattern(); + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 1194; + this.pattern(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public star_pattern(): Star_patternContext { + let localctx: Star_patternContext = new Star_patternContext(this, this._ctx, this.state); + this.enterRule(localctx, 178, PythonParser.RULE_star_pattern); + try { + this.state = 1201; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 132, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 1197; + this.match(PythonParser.STAR); + this.state = 1198; + this.pattern_capture_target(); + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 1199; + this.match(PythonParser.STAR); + this.state = 1200; + this.wildcard_pattern(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public mapping_pattern(): Mapping_patternContext { + let localctx: Mapping_patternContext = new Mapping_patternContext(this, this._ctx, this.state); + this.enterRule(localctx, 180, PythonParser.RULE_mapping_pattern); + let _la: number; + try { + this.state = 1223; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 136, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 1203; + this.match(PythonParser.LBRACE); + this.state = 1204; + this.match(PythonParser.RBRACE); + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 1205; + this.match(PythonParser.LBRACE); + this.state = 1206; + this.double_star_pattern(); + this.state = 1208; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 1207; + this.match(PythonParser.COMMA); + } + } + + this.state = 1210; + this.match(PythonParser.RBRACE); + } + break; + case 3: + this.enterOuterAlt(localctx, 3); + { + this.state = 1212; + this.match(PythonParser.LBRACE); + this.state = 1213; + this.items_pattern(); + this.state = 1216; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 134, this._ctx) ) { + case 1: + { + this.state = 1214; + this.match(PythonParser.COMMA); + this.state = 1215; + this.double_star_pattern(); + } + break; + } + this.state = 1219; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 1218; + this.match(PythonParser.COMMA); + } + } + + this.state = 1221; + this.match(PythonParser.RBRACE); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public items_pattern(): Items_patternContext { + let localctx: Items_patternContext = new Items_patternContext(this, this._ctx, this.state); + this.enterRule(localctx, 182, PythonParser.RULE_items_pattern); + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + this.state = 1225; + this.key_value_pattern(); + this.state = 1230; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 137, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 1226; + this.match(PythonParser.COMMA); + this.state = 1227; + this.key_value_pattern(); + } + } + } + this.state = 1232; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 137, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public key_value_pattern(): Key_value_patternContext { + let localctx: Key_value_patternContext = new Key_value_patternContext(this, this._ctx, this.state); + this.enterRule(localctx, 184, PythonParser.RULE_key_value_pattern); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1235; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 3: + case 6: + case 11: + case 16: + case 52: + case 90: + case 91: + { + this.state = 1233; + this.literal_expr(); + } + break; + case 89: + { + this.state = 1234; + this.attr(); + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 1237; + this.match(PythonParser.COLON); + this.state = 1238; + this.pattern(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public double_star_pattern(): Double_star_patternContext { + let localctx: Double_star_patternContext = new Double_star_patternContext(this, this._ctx, this.state); + this.enterRule(localctx, 186, PythonParser.RULE_double_star_pattern); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1240; + this.match(PythonParser.DOUBLESTAR); + this.state = 1241; + this.pattern_capture_target(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public class_pattern(): Class_patternContext { + let localctx: Class_patternContext = new Class_patternContext(this, this._ctx, this.state); + this.enterRule(localctx, 188, PythonParser.RULE_class_pattern); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1243; + this.name_or_attr(); + this.state = 1244; + this.match(PythonParser.LPAR); + this.state = 1256; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 142, this._ctx) ) { + case 1: + { + this.state = 1251; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 140, this._ctx) ) { + case 1: + { + this.state = 1245; + this.positional_patterns(); + this.state = 1248; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 139, this._ctx) ) { + case 1: + { + this.state = 1246; + this.match(PythonParser.COMMA); + this.state = 1247; + this.keyword_patterns(); + } + break; + } + } + break; + case 2: + { + this.state = 1250; + this.keyword_patterns(); + } + break; + } + this.state = 1254; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 1253; + this.match(PythonParser.COMMA); + } + } + + } + break; + } + this.state = 1258; + this.match(PythonParser.RPAR); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public positional_patterns(): Positional_patternsContext { + let localctx: Positional_patternsContext = new Positional_patternsContext(this, this._ctx, this.state); + this.enterRule(localctx, 190, PythonParser.RULE_positional_patterns); + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + this.state = 1260; + this.pattern(); + this.state = 1265; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 143, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 1261; + this.match(PythonParser.COMMA); + this.state = 1262; + this.pattern(); + } + } + } + this.state = 1267; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 143, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public keyword_patterns(): Keyword_patternsContext { + let localctx: Keyword_patternsContext = new Keyword_patternsContext(this, this._ctx, this.state); + this.enterRule(localctx, 192, PythonParser.RULE_keyword_patterns); + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + this.state = 1268; + this.keyword_pattern(); + this.state = 1273; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 144, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 1269; + this.match(PythonParser.COMMA); + this.state = 1270; + this.keyword_pattern(); + } + } + } + this.state = 1275; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 144, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public keyword_pattern(): Keyword_patternContext { + let localctx: Keyword_patternContext = new Keyword_patternContext(this, this._ctx, this.state); + this.enterRule(localctx, 194, PythonParser.RULE_keyword_pattern); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1276; + this.match(PythonParser.NAME); + this.state = 1277; + this.match(PythonParser.EQUAL); + this.state = 1278; + this.pattern(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public type_alias(): Type_aliasContext { + let localctx: Type_aliasContext = new Type_aliasContext(this, this._ctx, this.state); + this.enterRule(localctx, 196, PythonParser.RULE_type_alias); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1280; + this.soft_kw_type(); + this.state = 1281; + this.match(PythonParser.NAME); + this.state = 1283; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===42) { + { + this.state = 1282; + this.type_params(); + } + } + + this.state = 1285; + this.match(PythonParser.EQUAL); + this.state = 1286; + this.expression(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public type_params(): Type_paramsContext { + let localctx: Type_paramsContext = new Type_paramsContext(this, this._ctx, this.state); + this.enterRule(localctx, 198, PythonParser.RULE_type_params); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1288; + this.match(PythonParser.LSQB); + this.state = 1289; + this.type_param_seq(); + this.state = 1290; + this.match(PythonParser.RSQB); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public type_param_seq(): Type_param_seqContext { + let localctx: Type_param_seqContext = new Type_param_seqContext(this, this._ctx, this.state); + this.enterRule(localctx, 200, PythonParser.RULE_type_param_seq); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + this.state = 1292; + this.type_param(); + this.state = 1297; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 146, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 1293; + this.match(PythonParser.COMMA); + this.state = 1294; + this.type_param(); + } + } + } + this.state = 1299; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 146, this._ctx); + } + this.state = 1301; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 1300; + this.match(PythonParser.COMMA); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public type_param(): Type_paramContext { + let localctx: Type_paramContext = new Type_paramContext(this, this._ctx, this.state); + this.enterRule(localctx, 202, PythonParser.RULE_type_param); + let _la: number; + try { + this.state = 1319; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 89: + this.enterOuterAlt(localctx, 1); + { + this.state = 1303; + this.match(PythonParser.NAME); + this.state = 1305; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===48) { + { + this.state = 1304; + this.type_param_bound(); + } + } + + } + break; + case 53: + this.enterOuterAlt(localctx, 2); + { + this.state = 1307; + this.match(PythonParser.STAR); + this.state = 1308; + this.match(PythonParser.NAME); + this.state = 1311; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===48) { + { + this.state = 1309; + this.match(PythonParser.COLON); + this.state = 1310; + this.expression(); + } + } + + } + break; + case 69: + this.enterOuterAlt(localctx, 3); + { + this.state = 1313; + this.match(PythonParser.DOUBLESTAR); + this.state = 1314; + this.match(PythonParser.NAME); + this.state = 1317; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===48) { + { + this.state = 1315; + this.match(PythonParser.COLON); + this.state = 1316; + this.expression(); + } + } + + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public type_param_bound(): Type_param_boundContext { + let localctx: Type_param_boundContext = new Type_param_boundContext(this, this._ctx, this.state); + this.enterRule(localctx, 204, PythonParser.RULE_type_param_bound); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1321; + this.match(PythonParser.COLON); + this.state = 1322; + this.expression(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public expressions(): ExpressionsContext { + let localctx: ExpressionsContext = new ExpressionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 206, PythonParser.RULE_expressions); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + this.state = 1324; + this.expression(); + this.state = 1329; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 152, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 1325; + this.match(PythonParser.COMMA); + this.state = 1326; + this.expression(); + } + } + } + this.state = 1331; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 152, this._ctx); + } + this.state = 1333; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 1332; + this.match(PythonParser.COMMA); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public expression(): ExpressionContext { + let localctx: ExpressionContext = new ExpressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 208, PythonParser.RULE_expression); + let _la: number; + try { + this.state = 1344; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 3: + case 6: + case 7: + case 11: + case 16: + case 34: + case 41: + case 42: + case 43: + case 51: + case 52: + case 65: + case 86: + case 89: + case 90: + case 91: + this.enterOuterAlt(localctx, 1); + { + this.state = 1335; + this.disjunction(); + this.state = 1341; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===38) { + { + this.state = 1336; + this.match(PythonParser.IF); + this.state = 1337; + this.disjunction(); + this.state = 1338; + this.match(PythonParser.ELSE); + this.state = 1339; + this.expression(); + } + } + + } + break; + case 24: + this.enterOuterAlt(localctx, 2); + { + this.state = 1343; + this.lambdef(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public yield_expr(): Yield_exprContext { + let localctx: Yield_exprContext = new Yield_exprContext(this, this._ctx, this.state); + this.enterRule(localctx, 210, PythonParser.RULE_yield_expr); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1346; + this.match(PythonParser.YIELD); + this.state = 1352; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 28: + { + this.state = 1347; + this.match(PythonParser.FROM); + this.state = 1348; + this.expression(); + } + break; + case 3: + case 6: + case 7: + case 11: + case 16: + case 24: + case 34: + case 41: + case 42: + case 43: + case 44: + case 46: + case 48: + case 50: + case 51: + case 52: + case 53: + case 59: + case 65: + case 86: + case 88: + case 89: + case 90: + case 91: + case 92: + case 93: + { + this.state = 1350; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 2148402049) !== 0) || ((((_la - 86)) & ~0x1F) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { + { + this.state = 1349; + this.star_expressions(); + } + } + + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public star_expressions(): Star_expressionsContext { + let localctx: Star_expressionsContext = new Star_expressionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 212, PythonParser.RULE_star_expressions); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + this.state = 1354; + this.star_expression(); + this.state = 1359; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 158, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 1355; + this.match(PythonParser.COMMA); + this.state = 1356; + this.star_expression(); + } + } + } + this.state = 1361; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 158, this._ctx); + } + this.state = 1363; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 1362; + this.match(PythonParser.COMMA); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public star_expression(): Star_expressionContext { + let localctx: Star_expressionContext = new Star_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 214, PythonParser.RULE_star_expression); + try { + this.state = 1368; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 53: + this.enterOuterAlt(localctx, 1); + { + this.state = 1365; + this.match(PythonParser.STAR); + this.state = 1366; + this.bitwise_or(0); + } + break; + case 3: + case 6: + case 7: + case 11: + case 16: + case 24: + case 34: + case 41: + case 42: + case 43: + case 51: + case 52: + case 65: + case 86: + case 89: + case 90: + case 91: + this.enterOuterAlt(localctx, 2); + { + this.state = 1367; + this.expression(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public star_named_expressions(): Star_named_expressionsContext { + let localctx: Star_named_expressionsContext = new Star_named_expressionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 216, PythonParser.RULE_star_named_expressions); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + this.state = 1370; + this.star_named_expression(); + this.state = 1375; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 161, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 1371; + this.match(PythonParser.COMMA); + this.state = 1372; + this.star_named_expression(); + } + } + } + this.state = 1377; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 161, this._ctx); + } + this.state = 1379; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 1378; + this.match(PythonParser.COMMA); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public star_named_expression(): Star_named_expressionContext { + let localctx: Star_named_expressionContext = new Star_named_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 218, PythonParser.RULE_star_named_expression); + try { + this.state = 1384; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 53: + this.enterOuterAlt(localctx, 1); + { + this.state = 1381; + this.match(PythonParser.STAR); + this.state = 1382; + this.bitwise_or(0); + } + break; + case 3: + case 6: + case 7: + case 11: + case 16: + case 24: + case 34: + case 41: + case 42: + case 43: + case 51: + case 52: + case 65: + case 86: + case 89: + case 90: + case 91: + this.enterOuterAlt(localctx, 2); + { + this.state = 1383; + this.named_expression(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public assignment_expression(): Assignment_expressionContext { + let localctx: Assignment_expressionContext = new Assignment_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 220, PythonParser.RULE_assignment_expression); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1386; + this.match(PythonParser.NAME); + this.state = 1387; + this.match(PythonParser.COLONEQUAL); + this.state = 1388; + this.expression(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public named_expression(): Named_expressionContext { + let localctx: Named_expressionContext = new Named_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 222, PythonParser.RULE_named_expression); + try { + this.state = 1392; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 164, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 1390; + this.assignment_expression(); + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 1391; + this.expression(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public disjunction(): DisjunctionContext { + let localctx: DisjunctionContext = new DisjunctionContext(this, this._ctx, this.state); + this.enterRule(localctx, 224, PythonParser.RULE_disjunction); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1394; + this.conjunction(); + this.state = 1399; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la===39) { + { + { + this.state = 1395; + this.match(PythonParser.OR); + this.state = 1396; + this.conjunction(); + } + } + this.state = 1401; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public conjunction(): ConjunctionContext { + let localctx: ConjunctionContext = new ConjunctionContext(this, this._ctx, this.state); + this.enterRule(localctx, 226, PythonParser.RULE_conjunction); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1402; + this.inversion(); + this.state = 1407; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la===21) { + { + { + this.state = 1403; + this.match(PythonParser.AND); + this.state = 1404; + this.inversion(); + } + } + this.state = 1409; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public inversion(): InversionContext { + let localctx: InversionContext = new InversionContext(this, this._ctx, this.state); + this.enterRule(localctx, 228, PythonParser.RULE_inversion); + try { + this.state = 1413; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 34: + this.enterOuterAlt(localctx, 1); + { + this.state = 1410; + this.match(PythonParser.NOT); + this.state = 1411; + this.inversion(); + } + break; + case 3: + case 6: + case 7: + case 11: + case 16: + case 41: + case 42: + case 43: + case 51: + case 52: + case 65: + case 86: + case 89: + case 90: + case 91: + this.enterOuterAlt(localctx, 2); + { + this.state = 1412; + this.comparison(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public comparison(): ComparisonContext { + let localctx: ComparisonContext = new ComparisonContext(this, this._ctx, this.state); + this.enterRule(localctx, 230, PythonParser.RULE_comparison); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1415; + this.bitwise_or(0); + this.state = 1419; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la===14 || _la===19 || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 2038431745) !== 0)) { + { + { + this.state = 1416; + this.compare_op_bitwise_or_pair(); + } + } + this.state = 1421; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public compare_op_bitwise_or_pair(): Compare_op_bitwise_or_pairContext { + let localctx: Compare_op_bitwise_or_pairContext = new Compare_op_bitwise_or_pairContext(this, this._ctx, this.state); + this.enterRule(localctx, 232, PythonParser.RULE_compare_op_bitwise_or_pair); + try { + this.state = 1432; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 169, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 1422; + this.eq_bitwise_or(); + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 1423; + this.noteq_bitwise_or(); + } + break; + case 3: + this.enterOuterAlt(localctx, 3); + { + this.state = 1424; + this.lte_bitwise_or(); + } + break; + case 4: + this.enterOuterAlt(localctx, 4); + { + this.state = 1425; + this.lt_bitwise_or(); + } + break; + case 5: + this.enterOuterAlt(localctx, 5); + { + this.state = 1426; + this.gte_bitwise_or(); + } + break; + case 6: + this.enterOuterAlt(localctx, 6); + { + this.state = 1427; + this.gt_bitwise_or(); + } + break; + case 7: + this.enterOuterAlt(localctx, 7); + { + this.state = 1428; + this.notin_bitwise_or(); + } + break; + case 8: + this.enterOuterAlt(localctx, 8); + { + this.state = 1429; + this.in_bitwise_or(); + } + break; + case 9: + this.enterOuterAlt(localctx, 9); + { + this.state = 1430; + this.isnot_bitwise_or(); + } + break; + case 10: + this.enterOuterAlt(localctx, 10); + { + this.state = 1431; + this.is_bitwise_or(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public eq_bitwise_or(): Eq_bitwise_orContext { + let localctx: Eq_bitwise_orContext = new Eq_bitwise_orContext(this, this._ctx, this.state); + this.enterRule(localctx, 234, PythonParser.RULE_eq_bitwise_or); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1434; + this.match(PythonParser.EQEQUAL); + this.state = 1435; + this.bitwise_or(0); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public noteq_bitwise_or(): Noteq_bitwise_orContext { + let localctx: Noteq_bitwise_orContext = new Noteq_bitwise_orContext(this, this._ctx, this.state); + this.enterRule(localctx, 236, PythonParser.RULE_noteq_bitwise_or); + try { + this.enterOuterAlt(localctx, 1); + { + { + this.state = 1437; + this.match(PythonParser.NOTEQUAL); + } + this.state = 1438; + this.bitwise_or(0); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public lte_bitwise_or(): Lte_bitwise_orContext { + let localctx: Lte_bitwise_orContext = new Lte_bitwise_orContext(this, this._ctx, this.state); + this.enterRule(localctx, 238, PythonParser.RULE_lte_bitwise_or); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1440; + this.match(PythonParser.LESSEQUAL); + this.state = 1441; + this.bitwise_or(0); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public lt_bitwise_or(): Lt_bitwise_orContext { + let localctx: Lt_bitwise_orContext = new Lt_bitwise_orContext(this, this._ctx, this.state); + this.enterRule(localctx, 240, PythonParser.RULE_lt_bitwise_or); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1443; + this.match(PythonParser.LESS); + this.state = 1444; + this.bitwise_or(0); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public gte_bitwise_or(): Gte_bitwise_orContext { + let localctx: Gte_bitwise_orContext = new Gte_bitwise_orContext(this, this._ctx, this.state); + this.enterRule(localctx, 242, PythonParser.RULE_gte_bitwise_or); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1446; + this.match(PythonParser.GREATEREQUAL); + this.state = 1447; + this.bitwise_or(0); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public gt_bitwise_or(): Gt_bitwise_orContext { + let localctx: Gt_bitwise_orContext = new Gt_bitwise_orContext(this, this._ctx, this.state); + this.enterRule(localctx, 244, PythonParser.RULE_gt_bitwise_or); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1449; + this.match(PythonParser.GREATER); + this.state = 1450; + this.bitwise_or(0); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public notin_bitwise_or(): Notin_bitwise_orContext { + let localctx: Notin_bitwise_orContext = new Notin_bitwise_orContext(this, this._ctx, this.state); + this.enterRule(localctx, 246, PythonParser.RULE_notin_bitwise_or); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1452; + this.match(PythonParser.NOT); + this.state = 1453; + this.match(PythonParser.IN); + this.state = 1454; + this.bitwise_or(0); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public in_bitwise_or(): In_bitwise_orContext { + let localctx: In_bitwise_orContext = new In_bitwise_orContext(this, this._ctx, this.state); + this.enterRule(localctx, 248, PythonParser.RULE_in_bitwise_or); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1456; + this.match(PythonParser.IN); + this.state = 1457; + this.bitwise_or(0); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public isnot_bitwise_or(): Isnot_bitwise_orContext { + let localctx: Isnot_bitwise_orContext = new Isnot_bitwise_orContext(this, this._ctx, this.state); + this.enterRule(localctx, 250, PythonParser.RULE_isnot_bitwise_or); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1459; + this.match(PythonParser.IS); + this.state = 1460; + this.match(PythonParser.NOT); + this.state = 1461; + this.bitwise_or(0); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public is_bitwise_or(): Is_bitwise_orContext { + let localctx: Is_bitwise_orContext = new Is_bitwise_orContext(this, this._ctx, this.state); + this.enterRule(localctx, 252, PythonParser.RULE_is_bitwise_or); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1463; + this.match(PythonParser.IS); + this.state = 1464; + this.bitwise_or(0); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + + public bitwise_or(): Bitwise_orContext; + public bitwise_or(_p: number): Bitwise_orContext; + // @RuleVersion(0) + public bitwise_or(_p?: number): Bitwise_orContext { + if (_p === undefined) { + _p = 0; + } + + let _parentctx: ParserRuleContext = this._ctx; + let _parentState: number = this.state; + let localctx: Bitwise_orContext = new Bitwise_orContext(this, this._ctx, _parentState); + let _prevctx: Bitwise_orContext = localctx; + let _startState: number = 254; + this.enterRecursionRule(localctx, 254, PythonParser.RULE_bitwise_or, _p); + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + { + this.state = 1467; + this.bitwise_xor(0); + } + this._ctx.stop = this._input.LT(-1); + this.state = 1474; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 170, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + if (this._parseListeners != null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + { + { + localctx = new Bitwise_orContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, PythonParser.RULE_bitwise_or); + this.state = 1469; + if (!(this.precpred(this._ctx, 2))) { + throw this.createFailedPredicateException("this.precpred(this._ctx, 2)"); + } + this.state = 1470; + this.match(PythonParser.VBAR); + this.state = 1471; + this.bitwise_xor(0); + } + } + } + this.state = 1476; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 170, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.unrollRecursionContexts(_parentctx); + } + return localctx; + } + + public bitwise_xor(): Bitwise_xorContext; + public bitwise_xor(_p: number): Bitwise_xorContext; + // @RuleVersion(0) + public bitwise_xor(_p?: number): Bitwise_xorContext { + if (_p === undefined) { + _p = 0; + } + + let _parentctx: ParserRuleContext = this._ctx; + let _parentState: number = this.state; + let localctx: Bitwise_xorContext = new Bitwise_xorContext(this, this._ctx, _parentState); + let _prevctx: Bitwise_xorContext = localctx; + let _startState: number = 256; + this.enterRecursionRule(localctx, 256, PythonParser.RULE_bitwise_xor, _p); + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + { + this.state = 1478; + this.bitwise_and(0); + } + this._ctx.stop = this._input.LT(-1); + this.state = 1485; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 171, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + if (this._parseListeners != null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + { + { + localctx = new Bitwise_xorContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, PythonParser.RULE_bitwise_xor); + this.state = 1480; + if (!(this.precpred(this._ctx, 2))) { + throw this.createFailedPredicateException("this.precpred(this._ctx, 2)"); + } + this.state = 1481; + this.match(PythonParser.CIRCUMFLEX); + this.state = 1482; + this.bitwise_and(0); + } + } + } + this.state = 1487; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 171, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.unrollRecursionContexts(_parentctx); + } + return localctx; + } + + public bitwise_and(): Bitwise_andContext; + public bitwise_and(_p: number): Bitwise_andContext; + // @RuleVersion(0) + public bitwise_and(_p?: number): Bitwise_andContext { + if (_p === undefined) { + _p = 0; + } + + let _parentctx: ParserRuleContext = this._ctx; + let _parentState: number = this.state; + let localctx: Bitwise_andContext = new Bitwise_andContext(this, this._ctx, _parentState); + let _prevctx: Bitwise_andContext = localctx; + let _startState: number = 258; + this.enterRecursionRule(localctx, 258, PythonParser.RULE_bitwise_and, _p); + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + { + this.state = 1489; + this.shift_expr(0); + } + this._ctx.stop = this._input.LT(-1); + this.state = 1496; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 172, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + if (this._parseListeners != null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + { + { + localctx = new Bitwise_andContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, PythonParser.RULE_bitwise_and); + this.state = 1491; + if (!(this.precpred(this._ctx, 2))) { + throw this.createFailedPredicateException("this.precpred(this._ctx, 2)"); + } + this.state = 1492; + this.match(PythonParser.AMPER); + this.state = 1493; + this.shift_expr(0); + } + } + } + this.state = 1498; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 172, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.unrollRecursionContexts(_parentctx); + } + return localctx; + } + + public shift_expr(): Shift_exprContext; + public shift_expr(_p: number): Shift_exprContext; + // @RuleVersion(0) + public shift_expr(_p?: number): Shift_exprContext { + if (_p === undefined) { + _p = 0; + } + + let _parentctx: ParserRuleContext = this._ctx; + let _parentState: number = this.state; + let localctx: Shift_exprContext = new Shift_exprContext(this, this._ctx, _parentState); + let _prevctx: Shift_exprContext = localctx; + let _startState: number = 260; + this.enterRecursionRule(localctx, 260, PythonParser.RULE_shift_expr, _p); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + { + this.state = 1500; + this.sum(0); + } + this._ctx.stop = this._input.LT(-1); + this.state = 1507; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 173, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + if (this._parseListeners != null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + { + { + localctx = new Shift_exprContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, PythonParser.RULE_shift_expr); + this.state = 1502; + if (!(this.precpred(this._ctx, 2))) { + throw this.createFailedPredicateException("this.precpred(this._ctx, 2)"); + } + this.state = 1503; + _la = this._input.LA(1); + if(!(_la===67 || _la===68)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1504; + this.sum(0); + } + } + } + this.state = 1509; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 173, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.unrollRecursionContexts(_parentctx); + } + return localctx; + } + + public sum(): SumContext; + public sum(_p: number): SumContext; + // @RuleVersion(0) + public sum(_p?: number): SumContext { + if (_p === undefined) { + _p = 0; + } + + let _parentctx: ParserRuleContext = this._ctx; + let _parentState: number = this.state; + let localctx: SumContext = new SumContext(this, this._ctx, _parentState); + let _prevctx: SumContext = localctx; + let _startState: number = 262; + this.enterRecursionRule(localctx, 262, PythonParser.RULE_sum, _p); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + { + this.state = 1511; + this.term(0); + } + this._ctx.stop = this._input.LT(-1); + this.state = 1518; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 174, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + if (this._parseListeners != null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + { + { + localctx = new SumContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, PythonParser.RULE_sum); + this.state = 1513; + if (!(this.precpred(this._ctx, 2))) { + throw this.createFailedPredicateException("this.precpred(this._ctx, 2)"); + } + this.state = 1514; + _la = this._input.LA(1); + if(!(_la===51 || _la===52)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1515; + this.term(0); + } + } + } + this.state = 1520; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 174, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.unrollRecursionContexts(_parentctx); + } + return localctx; + } + + public term(): TermContext; + public term(_p: number): TermContext; + // @RuleVersion(0) + public term(_p?: number): TermContext { + if (_p === undefined) { + _p = 0; + } + + let _parentctx: ParserRuleContext = this._ctx; + let _parentState: number = this.state; + let localctx: TermContext = new TermContext(this, this._ctx, _parentState); + let _prevctx: TermContext = localctx; + let _startState: number = 264; + this.enterRecursionRule(localctx, 264, PythonParser.RULE_term, _p); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + { + this.state = 1522; + this.factor(); + } + this._ctx.stop = this._input.LT(-1); + this.state = 1529; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 175, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + if (this._parseListeners != null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + { + { + localctx = new TermContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, PythonParser.RULE_term); + this.state = 1524; + if (!(this.precpred(this._ctx, 2))) { + throw this.createFailedPredicateException("this.precpred(this._ctx, 2)"); + } + this.state = 1525; + _la = this._input.LA(1); + if(!(((((_la - 53)) & ~0x1F) === 0 && ((1 << (_la - 53)) & 1342177411) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1526; + this.factor(); + } + } + } + this.state = 1531; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 175, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.unrollRecursionContexts(_parentctx); + } + return localctx; + } + // @RuleVersion(0) + public factor(): FactorContext { + let localctx: FactorContext = new FactorContext(this, this._ctx, this.state); + this.enterRule(localctx, 266, PythonParser.RULE_factor); + try { + this.state = 1539; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 51: + this.enterOuterAlt(localctx, 1); + { + this.state = 1532; + this.match(PythonParser.PLUS); + this.state = 1533; + this.factor(); + } + break; + case 52: + this.enterOuterAlt(localctx, 2); + { + this.state = 1534; + this.match(PythonParser.MINUS); + this.state = 1535; + this.factor(); + } + break; + case 65: + this.enterOuterAlt(localctx, 3); + { + this.state = 1536; + this.match(PythonParser.TILDE); + this.state = 1537; + this.factor(); + } + break; + case 3: + case 6: + case 7: + case 11: + case 16: + case 41: + case 42: + case 43: + case 86: + case 89: + case 90: + case 91: + this.enterOuterAlt(localctx, 4); + { + this.state = 1538; + this.power(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public power(): PowerContext { + let localctx: PowerContext = new PowerContext(this, this._ctx, this.state); + this.enterRule(localctx, 268, PythonParser.RULE_power); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1541; + this.await_primary(); + this.state = 1544; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 177, this._ctx) ) { + case 1: + { + this.state = 1542; + this.match(PythonParser.DOUBLESTAR); + this.state = 1543; + this.factor(); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public await_primary(): Await_primaryContext { + let localctx: Await_primaryContext = new Await_primaryContext(this, this._ctx, this.state); + this.enterRule(localctx, 270, PythonParser.RULE_await_primary); + try { + this.state = 1549; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 7: + this.enterOuterAlt(localctx, 1); + { + this.state = 1546; + this.match(PythonParser.AWAIT); + this.state = 1547; + this.primary(0); + } + break; + case 3: + case 6: + case 11: + case 16: + case 41: + case 42: + case 43: + case 86: + case 89: + case 90: + case 91: + this.enterOuterAlt(localctx, 2); + { + this.state = 1548; + this.primary(0); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + + public primary(): PrimaryContext; + public primary(_p: number): PrimaryContext; + // @RuleVersion(0) + public primary(_p?: number): PrimaryContext { + if (_p === undefined) { + _p = 0; + } + + let _parentctx: ParserRuleContext = this._ctx; + let _parentState: number = this.state; + let localctx: PrimaryContext = new PrimaryContext(this, this._ctx, _parentState); + let _prevctx: PrimaryContext = localctx; + let _startState: number = 272; + this.enterRecursionRule(localctx, 272, PythonParser.RULE_primary, _p); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + { + this.state = 1552; + this.atom(); + } + this._ctx.stop = this._input.LT(-1); + this.state = 1571; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 181, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + if (this._parseListeners != null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + { + { + localctx = new PrimaryContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, PythonParser.RULE_primary); + this.state = 1554; + if (!(this.precpred(this._ctx, 2))) { + throw this.createFailedPredicateException("this.precpred(this._ctx, 2)"); + } + this.state = 1567; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 180, this._ctx) ) { + case 1: + { + this.state = 1555; + this.match(PythonParser.DOT); + this.state = 1556; + this.match(PythonParser.NAME); + } + break; + case 2: + { + this.state = 1557; + this.genexp(); + } + break; + case 3: + { + this.state = 1558; + this.match(PythonParser.LPAR); + this.state = 1560; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 2148402049) !== 0) || ((((_la - 69)) & ~0x1F) === 0 && ((1 << (_la - 69)) & 7471105) !== 0)) { + { + this.state = 1559; + this.arguments(); + } + } + + this.state = 1562; + this.match(PythonParser.RPAR); + } + break; + case 4: + { + this.state = 1563; + this.match(PythonParser.LSQB); + this.state = 1564; + this.slices(); + this.state = 1565; + this.match(PythonParser.RSQB); + } + break; + } + } + } + } + this.state = 1573; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 181, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.unrollRecursionContexts(_parentctx); + } + return localctx; + } + // @RuleVersion(0) + public slices(): SlicesContext { + let localctx: SlicesContext = new SlicesContext(this, this._ctx, this.state); + this.enterRule(localctx, 274, PythonParser.RULE_slices); + let _la: number; + try { + let _alt: number; + this.state = 1592; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 186, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 1574; + this.slice(); + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 1577; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 3: + case 6: + case 7: + case 11: + case 16: + case 24: + case 34: + case 41: + case 42: + case 43: + case 48: + case 51: + case 52: + case 65: + case 86: + case 89: + case 90: + case 91: + { + this.state = 1575; + this.slice(); + } + break; + case 53: + { + this.state = 1576; + this.starred_expression(); + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 1586; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 184, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 1579; + this.match(PythonParser.COMMA); + this.state = 1582; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 3: + case 6: + case 7: + case 11: + case 16: + case 24: + case 34: + case 41: + case 42: + case 43: + case 48: + case 51: + case 52: + case 65: + case 86: + case 89: + case 90: + case 91: + { + this.state = 1580; + this.slice(); + } + break; + case 53: + { + this.state = 1581; + this.starred_expression(); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + } + this.state = 1588; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 184, this._ctx); + } + this.state = 1590; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 1589; + this.match(PythonParser.COMMA); + } + } + + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public slice(): SliceContext { + let localctx: SliceContext = new SliceContext(this, this._ctx, this.state); + this.enterRule(localctx, 276, PythonParser.RULE_slice); + let _la: number; + try { + this.state = 1608; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 191, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 1595; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 2147877761) !== 0) || ((((_la - 86)) & ~0x1F) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { + { + this.state = 1594; + this.expression(); + } + } + + this.state = 1597; + this.match(PythonParser.COLON); + this.state = 1599; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 2147877761) !== 0) || ((((_la - 86)) & ~0x1F) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { + { + this.state = 1598; + this.expression(); + } + } + + this.state = 1605; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===48) { + { + this.state = 1601; + this.match(PythonParser.COLON); + this.state = 1603; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 2147877761) !== 0) || ((((_la - 86)) & ~0x1F) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { + { + this.state = 1602; + this.expression(); + } + } + + } + } + + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 1607; + this.named_expression(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public atom(): AtomContext { + let localctx: AtomContext = new AtomContext(this, this._ctx, this.state); + this.enterRule(localctx, 278, PythonParser.RULE_atom); + try { + this.state = 1632; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 89: + this.enterOuterAlt(localctx, 1); + { + this.state = 1610; + this.match(PythonParser.NAME); + } + break; + case 16: + this.enterOuterAlt(localctx, 2); + { + this.state = 1611; + this.match(PythonParser.TRUE); + } + break; + case 6: + this.enterOuterAlt(localctx, 3); + { + this.state = 1612; + this.match(PythonParser.FALSE); + } + break; + case 11: + this.enterOuterAlt(localctx, 4); + { + this.state = 1613; + this.match(PythonParser.NONE); + } + break; + case 3: + case 91: + this.enterOuterAlt(localctx, 5); + { + this.state = 1614; + this.strings(); + } + break; + case 90: + this.enterOuterAlt(localctx, 6); + { + this.state = 1615; + this.match(PythonParser.NUMBER); + } + break; + case 41: + this.enterOuterAlt(localctx, 7); + { + this.state = 1619; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 192, this._ctx) ) { + case 1: + { + this.state = 1616; + this.tuple(); + } + break; + case 2: + { + this.state = 1617; + this.group(); + } + break; + case 3: + { + this.state = 1618; + this.genexp(); + } + break; + } + } + break; + case 42: + this.enterOuterAlt(localctx, 8); + { + this.state = 1623; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 193, this._ctx) ) { + case 1: + { + this.state = 1621; + this.list(); + } + break; + case 2: + { + this.state = 1622; + this.listcomp(); + } + break; + } + } + break; + case 43: + this.enterOuterAlt(localctx, 9); + { + this.state = 1629; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 194, this._ctx) ) { + case 1: + { + this.state = 1625; + this.dict(); + } + break; + case 2: + { + this.state = 1626; + this.set_(); + } + break; + case 3: + { + this.state = 1627; + this.dictcomp(); + } + break; + case 4: + { + this.state = 1628; + this.setcomp(); + } + break; + } + } + break; + case 86: + this.enterOuterAlt(localctx, 10); + { + this.state = 1631; + this.match(PythonParser.ELLIPSIS); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public group(): GroupContext { + let localctx: GroupContext = new GroupContext(this, this._ctx, this.state); + this.enterRule(localctx, 280, PythonParser.RULE_group); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1634; + this.match(PythonParser.LPAR); + this.state = 1637; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 40: + { + this.state = 1635; + this.yield_expr(); + } + break; + case 3: + case 6: + case 7: + case 11: + case 16: + case 24: + case 34: + case 41: + case 42: + case 43: + case 51: + case 52: + case 65: + case 86: + case 89: + case 90: + case 91: + { + this.state = 1636; + this.named_expression(); + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 1639; + this.match(PythonParser.RPAR); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public lambdef(): LambdefContext { + let localctx: LambdefContext = new LambdefContext(this, this._ctx, this.state); + this.enterRule(localctx, 282, PythonParser.RULE_lambdef); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1641; + this.match(PythonParser.LAMBDA); + this.state = 1643; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===53 || _la===69 || _la===89) { + { + this.state = 1642; + this.lambda_params(); + } + } + + this.state = 1645; + this.match(PythonParser.COLON); + this.state = 1646; + this.expression(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public lambda_params(): Lambda_paramsContext { + let localctx: Lambda_paramsContext = new Lambda_paramsContext(this, this._ctx, this.state); + this.enterRule(localctx, 284, PythonParser.RULE_lambda_params); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1648; + this.lambda_parameters(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public lambda_parameters(): Lambda_parametersContext { + let localctx: Lambda_parametersContext = new Lambda_parametersContext(this, this._ctx, this.state); + this.enterRule(localctx, 286, PythonParser.RULE_lambda_parameters); + let _la: number; + try { + let _alt: number; + this.state = 1699; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 208, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 1650; + this.lambda_slash_no_default(); + this.state = 1654; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 198, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 1651; + this.lambda_param_no_default(); + } + } + } + this.state = 1656; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 198, this._ctx); + } + this.state = 1660; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la===89) { + { + { + this.state = 1657; + this.lambda_param_with_default(); + } + } + this.state = 1662; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 1664; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===53 || _la===69) { + { + this.state = 1663; + this.lambda_star_etc(); + } + } + + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 1666; + this.lambda_slash_with_default(); + this.state = 1670; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la===89) { + { + { + this.state = 1667; + this.lambda_param_with_default(); + } + } + this.state = 1672; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 1674; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===53 || _la===69) { + { + this.state = 1673; + this.lambda_star_etc(); + } + } + + } + break; + case 3: + this.enterOuterAlt(localctx, 3); + { + this.state = 1677; + this._errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + this.state = 1676; + this.lambda_param_no_default(); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 1679; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 203, this._ctx); + } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); + this.state = 1684; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la===89) { + { + { + this.state = 1681; + this.lambda_param_with_default(); + } + } + this.state = 1686; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 1688; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===53 || _la===69) { + { + this.state = 1687; + this.lambda_star_etc(); + } + } + + } + break; + case 4: + this.enterOuterAlt(localctx, 4); + { + this.state = 1691; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + { + { + this.state = 1690; + this.lambda_param_with_default(); + } + } + this.state = 1693; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while (_la===89); + this.state = 1696; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===53 || _la===69) { + { + this.state = 1695; + this.lambda_star_etc(); + } + } + + } + break; + case 5: + this.enterOuterAlt(localctx, 5); + { + this.state = 1698; + this.lambda_star_etc(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public lambda_slash_no_default(): Lambda_slash_no_defaultContext { + let localctx: Lambda_slash_no_defaultContext = new Lambda_slash_no_defaultContext(this, this._ctx, this.state); + this.enterRule(localctx, 288, PythonParser.RULE_lambda_slash_no_default); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1702; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + { + { + this.state = 1701; + this.lambda_param_no_default(); + } + } + this.state = 1704; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while (_la===89); + this.state = 1706; + this.match(PythonParser.SLASH); + this.state = 1708; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 1707; + this.match(PythonParser.COMMA); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public lambda_slash_with_default(): Lambda_slash_with_defaultContext { + let localctx: Lambda_slash_with_defaultContext = new Lambda_slash_with_defaultContext(this, this._ctx, this.state); + this.enterRule(localctx, 290, PythonParser.RULE_lambda_slash_with_default); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + this.state = 1713; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 211, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 1710; + this.lambda_param_no_default(); + } + } + } + this.state = 1715; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 211, this._ctx); + } + this.state = 1717; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + { + { + this.state = 1716; + this.lambda_param_with_default(); + } + } + this.state = 1719; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while (_la===89); + this.state = 1721; + this.match(PythonParser.SLASH); + this.state = 1723; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 1722; + this.match(PythonParser.COMMA); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public lambda_star_etc(): Lambda_star_etcContext { + let localctx: Lambda_star_etcContext = new Lambda_star_etcContext(this, this._ctx, this.state); + this.enterRule(localctx, 292, PythonParser.RULE_lambda_star_etc); + let _la: number; + try { + this.state = 1747; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 218, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 1725; + this.match(PythonParser.STAR); + this.state = 1726; + this.lambda_param_no_default(); + this.state = 1730; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la===89) { + { + { + this.state = 1727; + this.lambda_param_maybe_default(); + } + } + this.state = 1732; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 1734; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===69) { + { + this.state = 1733; + this.lambda_kwds(); + } + } + + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 1736; + this.match(PythonParser.STAR); + this.state = 1737; + this.match(PythonParser.COMMA); + this.state = 1739; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + { + { + this.state = 1738; + this.lambda_param_maybe_default(); + } + } + this.state = 1741; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while (_la===89); + this.state = 1744; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===69) { + { + this.state = 1743; + this.lambda_kwds(); + } + } + + } + break; + case 3: + this.enterOuterAlt(localctx, 3); + { + this.state = 1746; + this.lambda_kwds(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public lambda_kwds(): Lambda_kwdsContext { + let localctx: Lambda_kwdsContext = new Lambda_kwdsContext(this, this._ctx, this.state); + this.enterRule(localctx, 294, PythonParser.RULE_lambda_kwds); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1749; + this.match(PythonParser.DOUBLESTAR); + this.state = 1750; + this.lambda_param_no_default(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public lambda_param_no_default(): Lambda_param_no_defaultContext { + let localctx: Lambda_param_no_defaultContext = new Lambda_param_no_defaultContext(this, this._ctx, this.state); + this.enterRule(localctx, 296, PythonParser.RULE_lambda_param_no_default); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1752; + this.lambda_param(); + this.state = 1754; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 1753; + this.match(PythonParser.COMMA); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public lambda_param_with_default(): Lambda_param_with_defaultContext { + let localctx: Lambda_param_with_defaultContext = new Lambda_param_with_defaultContext(this, this._ctx, this.state); + this.enterRule(localctx, 298, PythonParser.RULE_lambda_param_with_default); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1756; + this.lambda_param(); + this.state = 1757; + this.default_assignment(); + this.state = 1759; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 1758; + this.match(PythonParser.COMMA); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public lambda_param_maybe_default(): Lambda_param_maybe_defaultContext { + let localctx: Lambda_param_maybe_defaultContext = new Lambda_param_maybe_defaultContext(this, this._ctx, this.state); + this.enterRule(localctx, 300, PythonParser.RULE_lambda_param_maybe_default); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1761; + this.lambda_param(); + this.state = 1763; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===59) { + { + this.state = 1762; + this.default_assignment(); + } + } + + this.state = 1766; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 1765; + this.match(PythonParser.COMMA); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public lambda_param(): Lambda_paramContext { + let localctx: Lambda_paramContext = new Lambda_paramContext(this, this._ctx, this.state); + this.enterRule(localctx, 302, PythonParser.RULE_lambda_param); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1768; + this.match(PythonParser.NAME); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public fstring_middle(): Fstring_middleContext { + let localctx: Fstring_middleContext = new Fstring_middleContext(this, this._ctx, this.state); + this.enterRule(localctx, 304, PythonParser.RULE_fstring_middle); + try { + this.state = 1772; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 43: + this.enterOuterAlt(localctx, 1); + { + this.state = 1770; + this.fstring_replacement_field(); + } + break; + case 4: + this.enterOuterAlt(localctx, 2); + { + this.state = 1771; + this.match(PythonParser.FSTRING_MIDDLE); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public fstring_replacement_field(): Fstring_replacement_fieldContext { + let localctx: Fstring_replacement_fieldContext = new Fstring_replacement_fieldContext(this, this._ctx, this.state); + this.enterRule(localctx, 306, PythonParser.RULE_fstring_replacement_field); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1774; + this.match(PythonParser.LBRACE); + this.state = 1777; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 40: + { + this.state = 1775; + this.yield_expr(); + } + break; + case 3: + case 6: + case 7: + case 11: + case 16: + case 24: + case 34: + case 41: + case 42: + case 43: + case 51: + case 52: + case 53: + case 65: + case 86: + case 89: + case 90: + case 91: + { + this.state = 1776; + this.star_expressions(); + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 1780; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===59) { + { + this.state = 1779; + this.match(PythonParser.EQUAL); + } + } + + this.state = 1783; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===88) { + { + this.state = 1782; + this.fstring_conversion(); + } + } + + this.state = 1786; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===48) { + { + this.state = 1785; + this.fstring_full_format_spec(); + } + } + + this.state = 1788; + this.match(PythonParser.RBRACE); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public fstring_conversion(): Fstring_conversionContext { + let localctx: Fstring_conversionContext = new Fstring_conversionContext(this, this._ctx, this.state); + this.enterRule(localctx, 308, PythonParser.RULE_fstring_conversion); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1790; + this.match(PythonParser.EXCLAMATION); + this.state = 1791; + this.match(PythonParser.NAME); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public fstring_full_format_spec(): Fstring_full_format_specContext { + let localctx: Fstring_full_format_specContext = new Fstring_full_format_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 310, PythonParser.RULE_fstring_full_format_spec); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1793; + this.match(PythonParser.COLON); + this.state = 1797; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la===4 || _la===43) { + { + { + this.state = 1794; + this.fstring_format_spec(); + } + } + this.state = 1799; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public fstring_format_spec(): Fstring_format_specContext { + let localctx: Fstring_format_specContext = new Fstring_format_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 312, PythonParser.RULE_fstring_format_spec); + try { + this.state = 1802; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 4: + this.enterOuterAlt(localctx, 1); + { + this.state = 1800; + this.match(PythonParser.FSTRING_MIDDLE); + } + break; + case 43: + this.enterOuterAlt(localctx, 2); + { + this.state = 1801; + this.fstring_replacement_field(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public fstring(): FstringContext { + let localctx: FstringContext = new FstringContext(this, this._ctx, this.state); + this.enterRule(localctx, 314, PythonParser.RULE_fstring); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1804; + this.match(PythonParser.FSTRING_START); + this.state = 1808; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la===4 || _la===43) { + { + { + this.state = 1805; + this.fstring_middle(); + } + } + this.state = 1810; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 1811; + this.match(PythonParser.FSTRING_END); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public string_(): StringContext { + let localctx: StringContext = new StringContext(this, this._ctx, this.state); + this.enterRule(localctx, 316, PythonParser.RULE_string); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1813; + this.match(PythonParser.STRING); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public strings(): StringsContext { + let localctx: StringsContext = new StringsContext(this, this._ctx, this.state); + this.enterRule(localctx, 318, PythonParser.RULE_strings); + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + this.state = 1817; + this._errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + this.state = 1817; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 3: + { + this.state = 1815; + this.fstring(); + } + break; + case 91: + { + this.state = 1816; + this.string_(); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 1819; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 232, this._ctx); + } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public list(): ListContext { + let localctx: ListContext = new ListContext(this, this._ctx, this.state); + this.enterRule(localctx, 320, PythonParser.RULE_list); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1821; + this.match(PythonParser.LSQB); + this.state = 1823; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 2148402049) !== 0) || ((((_la - 86)) & ~0x1F) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { + { + this.state = 1822; + this.star_named_expressions(); + } + } + + this.state = 1825; + this.match(PythonParser.RSQB); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public tuple(): TupleContext { + let localctx: TupleContext = new TupleContext(this, this._ctx, this.state); + this.enterRule(localctx, 322, PythonParser.RULE_tuple); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1827; + this.match(PythonParser.LPAR); + this.state = 1833; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 2148402049) !== 0) || ((((_la - 86)) & ~0x1F) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { + { + this.state = 1828; + this.star_named_expression(); + this.state = 1829; + this.match(PythonParser.COMMA); + this.state = 1831; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 2148402049) !== 0) || ((((_la - 86)) & ~0x1F) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { + { + this.state = 1830; + this.star_named_expressions(); + } + } + + } + } + + this.state = 1835; + this.match(PythonParser.RPAR); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public set_(): SetContext { + let localctx: SetContext = new SetContext(this, this._ctx, this.state); + this.enterRule(localctx, 324, PythonParser.RULE_set); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1837; + this.match(PythonParser.LBRACE); + this.state = 1838; + this.star_named_expressions(); + this.state = 1839; + this.match(PythonParser.RBRACE); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public dict(): DictContext { + let localctx: DictContext = new DictContext(this, this._ctx, this.state); + this.enterRule(localctx, 326, PythonParser.RULE_dict); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1841; + this.match(PythonParser.LBRACE); + this.state = 1843; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 2147877761) !== 0) || ((((_la - 69)) & ~0x1F) === 0 && ((1 << (_la - 69)) & 7471105) !== 0)) { + { + this.state = 1842; + this.double_starred_kvpairs(); + } + } + + this.state = 1845; + this.match(PythonParser.RBRACE); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public double_starred_kvpairs(): Double_starred_kvpairsContext { + let localctx: Double_starred_kvpairsContext = new Double_starred_kvpairsContext(this, this._ctx, this.state); + this.enterRule(localctx, 328, PythonParser.RULE_double_starred_kvpairs); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + this.state = 1847; + this.double_starred_kvpair(); + this.state = 1852; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 237, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 1848; + this.match(PythonParser.COMMA); + this.state = 1849; + this.double_starred_kvpair(); + } + } + } + this.state = 1854; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 237, this._ctx); + } + this.state = 1856; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 1855; + this.match(PythonParser.COMMA); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public double_starred_kvpair(): Double_starred_kvpairContext { + let localctx: Double_starred_kvpairContext = new Double_starred_kvpairContext(this, this._ctx, this.state); + this.enterRule(localctx, 330, PythonParser.RULE_double_starred_kvpair); + try { + this.state = 1861; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 69: + this.enterOuterAlt(localctx, 1); + { + this.state = 1858; + this.match(PythonParser.DOUBLESTAR); + this.state = 1859; + this.bitwise_or(0); + } + break; + case 3: + case 6: + case 7: + case 11: + case 16: + case 24: + case 34: + case 41: + case 42: + case 43: + case 51: + case 52: + case 65: + case 86: + case 89: + case 90: + case 91: + this.enterOuterAlt(localctx, 2); + { + this.state = 1860; + this.kvpair(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public kvpair(): KvpairContext { + let localctx: KvpairContext = new KvpairContext(this, this._ctx, this.state); + this.enterRule(localctx, 332, PythonParser.RULE_kvpair); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1863; + this.expression(); + this.state = 1864; + this.match(PythonParser.COLON); + this.state = 1865; + this.expression(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public for_if_clauses(): For_if_clausesContext { + let localctx: For_if_clausesContext = new For_if_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 334, PythonParser.RULE_for_if_clauses); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1868; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + { + { + this.state = 1867; + this.for_if_clause(); + } + } + this.state = 1870; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while (_la===23 || _la===36); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public for_if_clause(): For_if_clauseContext { + let localctx: For_if_clauseContext = new For_if_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 336, PythonParser.RULE_for_if_clause); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1873; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===36) { + { + this.state = 1872; + this.match(PythonParser.ASYNC); + } + } + + this.state = 1875; + this.match(PythonParser.FOR); + this.state = 1876; + this.star_targets(); + this.state = 1877; + this.match(PythonParser.IN); + this.state = 1878; + this.disjunction(); + this.state = 1883; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la===38) { + { + { + this.state = 1879; + this.match(PythonParser.IF); + this.state = 1880; + this.disjunction(); + } + } + this.state = 1885; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public listcomp(): ListcompContext { + let localctx: ListcompContext = new ListcompContext(this, this._ctx, this.state); + this.enterRule(localctx, 338, PythonParser.RULE_listcomp); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1886; + this.match(PythonParser.LSQB); + this.state = 1887; + this.named_expression(); + this.state = 1888; + this.for_if_clauses(); + this.state = 1889; + this.match(PythonParser.RSQB); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public setcomp(): SetcompContext { + let localctx: SetcompContext = new SetcompContext(this, this._ctx, this.state); + this.enterRule(localctx, 340, PythonParser.RULE_setcomp); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1891; + this.match(PythonParser.LBRACE); + this.state = 1892; + this.named_expression(); + this.state = 1893; + this.for_if_clauses(); + this.state = 1894; + this.match(PythonParser.RBRACE); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public genexp(): GenexpContext { + let localctx: GenexpContext = new GenexpContext(this, this._ctx, this.state); + this.enterRule(localctx, 342, PythonParser.RULE_genexp); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1896; + this.match(PythonParser.LPAR); + this.state = 1899; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 243, this._ctx) ) { + case 1: + { + this.state = 1897; + this.assignment_expression(); + } + break; + case 2: + { + this.state = 1898; + this.expression(); + } + break; + } + this.state = 1901; + this.for_if_clauses(); + this.state = 1902; + this.match(PythonParser.RPAR); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public dictcomp(): DictcompContext { + let localctx: DictcompContext = new DictcompContext(this, this._ctx, this.state); + this.enterRule(localctx, 344, PythonParser.RULE_dictcomp); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1904; + this.match(PythonParser.LBRACE); + this.state = 1905; + this.kvpair(); + this.state = 1906; + this.for_if_clauses(); + this.state = 1907; + this.match(PythonParser.RBRACE); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public arguments(): ArgumentsContext { + let localctx: ArgumentsContext = new ArgumentsContext(this, this._ctx, this.state); + this.enterRule(localctx, 346, PythonParser.RULE_arguments); + let _la: number; + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1909; + this.args(); + this.state = 1911; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 1910; + this.match(PythonParser.COMMA); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public args(): ArgsContext { + let localctx: ArgsContext = new ArgsContext(this, this._ctx, this.state); + this.enterRule(localctx, 348, PythonParser.RULE_args); + try { + let _alt: number; + this.state = 1938; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 251, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 1918; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 53: + { + this.state = 1913; + this.starred_expression(); + } + break; + case 3: + case 6: + case 7: + case 11: + case 16: + case 24: + case 34: + case 41: + case 42: + case 43: + case 51: + case 52: + case 65: + case 86: + case 89: + case 90: + case 91: + { + this.state = 1916; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 245, this._ctx) ) { + case 1: + { + this.state = 1914; + this.assignment_expression(); + } + break; + case 2: + { + this.state = 1915; + this.expression(); + } + break; + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 1930; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 249, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 1920; + this.match(PythonParser.COMMA); + this.state = 1926; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 53: + { + this.state = 1921; + this.starred_expression(); + } + break; + case 3: + case 6: + case 7: + case 11: + case 16: + case 24: + case 34: + case 41: + case 42: + case 43: + case 51: + case 52: + case 65: + case 86: + case 89: + case 90: + case 91: + { + this.state = 1924; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 247, this._ctx) ) { + case 1: + { + this.state = 1922; + this.assignment_expression(); + } + break; + case 2: + { + this.state = 1923; + this.expression(); + } + break; + } + } + break; + default: + throw new NoViableAltException(this); + } + } + } + } + this.state = 1932; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 249, this._ctx); + } + this.state = 1935; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 250, this._ctx) ) { + case 1: + { + this.state = 1933; + this.match(PythonParser.COMMA); + this.state = 1934; + this.kwargs(); + } + break; + } + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 1937; + this.kwargs(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public kwargs(): KwargsContext { + let localctx: KwargsContext = new KwargsContext(this, this._ctx, this.state); + this.enterRule(localctx, 350, PythonParser.RULE_kwargs); + try { + let _alt: number; + this.state = 1967; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 256, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 1940; + this.kwarg_or_starred(); + this.state = 1945; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 252, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 1941; + this.match(PythonParser.COMMA); + this.state = 1942; + this.kwarg_or_starred(); + } + } + } + this.state = 1947; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 252, this._ctx); + } + this.state = 1957; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 254, this._ctx) ) { + case 1: + { + this.state = 1948; + this.match(PythonParser.COMMA); + this.state = 1949; + this.kwarg_or_double_starred(); + this.state = 1954; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 253, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 1950; + this.match(PythonParser.COMMA); + this.state = 1951; + this.kwarg_or_double_starred(); + } + } + } + this.state = 1956; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 253, this._ctx); + } + } + break; + } + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 1959; + this.kwarg_or_double_starred(); + this.state = 1964; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 255, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 1960; + this.match(PythonParser.COMMA); + this.state = 1961; + this.kwarg_or_double_starred(); + } + } + } + this.state = 1966; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 255, this._ctx); + } + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public starred_expression(): Starred_expressionContext { + let localctx: Starred_expressionContext = new Starred_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 352, PythonParser.RULE_starred_expression); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 1969; + this.match(PythonParser.STAR); + this.state = 1970; + this.expression(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public kwarg_or_starred(): Kwarg_or_starredContext { + let localctx: Kwarg_or_starredContext = new Kwarg_or_starredContext(this, this._ctx, this.state); + this.enterRule(localctx, 354, PythonParser.RULE_kwarg_or_starred); + try { + this.state = 1976; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 89: + this.enterOuterAlt(localctx, 1); + { + this.state = 1972; + this.match(PythonParser.NAME); + this.state = 1973; + this.match(PythonParser.EQUAL); + this.state = 1974; + this.expression(); + } + break; + case 53: + this.enterOuterAlt(localctx, 2); + { + this.state = 1975; + this.starred_expression(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public kwarg_or_double_starred(): Kwarg_or_double_starredContext { + let localctx: Kwarg_or_double_starredContext = new Kwarg_or_double_starredContext(this, this._ctx, this.state); + this.enterRule(localctx, 356, PythonParser.RULE_kwarg_or_double_starred); + try { + this.state = 1983; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 89: + this.enterOuterAlt(localctx, 1); + { + this.state = 1978; + this.match(PythonParser.NAME); + this.state = 1979; + this.match(PythonParser.EQUAL); + this.state = 1980; + this.expression(); + } + break; + case 69: + this.enterOuterAlt(localctx, 2); + { + this.state = 1981; + this.match(PythonParser.DOUBLESTAR); + this.state = 1982; + this.expression(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public star_targets(): Star_targetsContext { + let localctx: Star_targetsContext = new Star_targetsContext(this, this._ctx, this.state); + this.enterRule(localctx, 358, PythonParser.RULE_star_targets); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + this.state = 1985; + this.star_target(); + this.state = 1990; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 259, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 1986; + this.match(PythonParser.COMMA); + this.state = 1987; + this.star_target(); + } + } + } + this.state = 1992; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 259, this._ctx); + } + this.state = 1994; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 1993; + this.match(PythonParser.COMMA); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public star_targets_list_seq(): Star_targets_list_seqContext { + let localctx: Star_targets_list_seqContext = new Star_targets_list_seqContext(this, this._ctx, this.state); + this.enterRule(localctx, 360, PythonParser.RULE_star_targets_list_seq); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + this.state = 1996; + this.star_target(); + this.state = 1999; + this._errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + this.state = 1997; + this.match(PythonParser.COMMA); + this.state = 1998; + this.star_target(); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 2001; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 261, this._ctx); + } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); + this.state = 2004; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 2003; + this.match(PythonParser.COMMA); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public star_targets_tuple_seq(): Star_targets_tuple_seqContext { + let localctx: Star_targets_tuple_seqContext = new Star_targets_tuple_seqContext(this, this._ctx, this.state); + this.enterRule(localctx, 362, PythonParser.RULE_star_targets_tuple_seq); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + this.state = 2006; + this.star_target(); + this.state = 2017; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 265, this._ctx) ) { + case 1: + { + this.state = 2007; + this.match(PythonParser.COMMA); + } + break; + case 2: + { + this.state = 2010; + this._errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + this.state = 2008; + this.match(PythonParser.COMMA); + this.state = 2009; + this.star_target(); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 2012; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 263, this._ctx); + } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); + this.state = 2015; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 2014; + this.match(PythonParser.COMMA); + } + } + + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public star_target(): Star_targetContext { + let localctx: Star_targetContext = new Star_targetContext(this, this._ctx, this.state); + this.enterRule(localctx, 364, PythonParser.RULE_star_target); + try { + this.state = 2022; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 53: + this.enterOuterAlt(localctx, 1); + { + this.state = 2019; + this.match(PythonParser.STAR); + { + this.state = 2020; + this.star_target(); + } + } + break; + case 3: + case 6: + case 11: + case 16: + case 41: + case 42: + case 43: + case 86: + case 89: + case 90: + case 91: + this.enterOuterAlt(localctx, 2); + { + this.state = 2021; + this.target_with_star_atom(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public target_with_star_atom(): Target_with_star_atomContext { + let localctx: Target_with_star_atomContext = new Target_with_star_atomContext(this, this._ctx, this.state); + this.enterRule(localctx, 366, PythonParser.RULE_target_with_star_atom); + try { + this.state = 2034; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 268, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 2024; + this.t_primary(0); + this.state = 2031; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 47: + { + this.state = 2025; + this.match(PythonParser.DOT); + this.state = 2026; + this.match(PythonParser.NAME); + } + break; + case 42: + { + this.state = 2027; + this.match(PythonParser.LSQB); + this.state = 2028; + this.slices(); + this.state = 2029; + this.match(PythonParser.RSQB); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 2033; + this.star_atom(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public star_atom(): Star_atomContext { + let localctx: Star_atomContext = new Star_atomContext(this, this._ctx, this.state); + this.enterRule(localctx, 368, PythonParser.RULE_star_atom); + let _la: number; + try { + this.state = 2051; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 271, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 2036; + this.match(PythonParser.NAME); + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 2037; + this.match(PythonParser.LPAR); + this.state = 2038; + this.target_with_star_atom(); + this.state = 2039; + this.match(PythonParser.RPAR); + } + break; + case 3: + this.enterOuterAlt(localctx, 3); + { + this.state = 2041; + this.match(PythonParser.LPAR); + this.state = 2043; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 67656) !== 0) || ((((_la - 41)) & ~0x1F) === 0 && ((1 << (_la - 41)) & 4103) !== 0) || ((((_la - 86)) & ~0x1F) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { + { + this.state = 2042; + this.star_targets_tuple_seq(); + } + } + + this.state = 2045; + this.match(PythonParser.RPAR); + } + break; + case 4: + this.enterOuterAlt(localctx, 4); + { + this.state = 2046; + this.match(PythonParser.LSQB); + this.state = 2048; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 67656) !== 0) || ((((_la - 41)) & ~0x1F) === 0 && ((1 << (_la - 41)) & 4103) !== 0) || ((((_la - 86)) & ~0x1F) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { + { + this.state = 2047; + this.star_targets_list_seq(); + } + } + + this.state = 2050; + this.match(PythonParser.RSQB); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public single_target(): Single_targetContext { + let localctx: Single_targetContext = new Single_targetContext(this, this._ctx, this.state); + this.enterRule(localctx, 370, PythonParser.RULE_single_target); + try { + this.state = 2059; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 272, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 2053; + this.single_subscript_attribute_target(); + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 2054; + this.match(PythonParser.NAME); + } + break; + case 3: + this.enterOuterAlt(localctx, 3); + { + this.state = 2055; + this.match(PythonParser.LPAR); + this.state = 2056; + this.single_target(); + this.state = 2057; + this.match(PythonParser.RPAR); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public single_subscript_attribute_target(): Single_subscript_attribute_targetContext { + let localctx: Single_subscript_attribute_targetContext = new Single_subscript_attribute_targetContext(this, this._ctx, this.state); + this.enterRule(localctx, 372, PythonParser.RULE_single_subscript_attribute_target); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 2061; + this.t_primary(0); + this.state = 2068; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 47: + { + this.state = 2062; + this.match(PythonParser.DOT); + this.state = 2063; + this.match(PythonParser.NAME); + } + break; + case 42: + { + this.state = 2064; + this.match(PythonParser.LSQB); + this.state = 2065; + this.slices(); + this.state = 2066; + this.match(PythonParser.RSQB); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + + public t_primary(): T_primaryContext; + public t_primary(_p: number): T_primaryContext; + // @RuleVersion(0) + public t_primary(_p?: number): T_primaryContext { + if (_p === undefined) { + _p = 0; + } + + let _parentctx: ParserRuleContext = this._ctx; + let _parentState: number = this.state; + let localctx: T_primaryContext = new T_primaryContext(this, this._ctx, _parentState); + let _prevctx: T_primaryContext = localctx; + let _startState: number = 374; + this.enterRecursionRule(localctx, 374, PythonParser.RULE_t_primary, _p); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + { + this.state = 2071; + this.atom(); + } + this._ctx.stop = this._input.LT(-1); + this.state = 2090; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 276, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + if (this._parseListeners != null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + { + { + localctx = new T_primaryContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, PythonParser.RULE_t_primary); + this.state = 2073; + if (!(this.precpred(this._ctx, 2))) { + throw this.createFailedPredicateException("this.precpred(this._ctx, 2)"); + } + this.state = 2086; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 275, this._ctx) ) { + case 1: + { + this.state = 2074; + this.match(PythonParser.DOT); + this.state = 2075; + this.match(PythonParser.NAME); + } + break; + case 2: + { + this.state = 2076; + this.match(PythonParser.LSQB); + this.state = 2077; + this.slices(); + this.state = 2078; + this.match(PythonParser.RSQB); + } + break; + case 3: + { + this.state = 2080; + this.genexp(); + } + break; + case 4: + { + this.state = 2081; + this.match(PythonParser.LPAR); + this.state = 2083; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 16845000) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 2148402049) !== 0) || ((((_la - 69)) & ~0x1F) === 0 && ((1 << (_la - 69)) & 7471105) !== 0)) { + { + this.state = 2082; + this.arguments(); + } + } + + this.state = 2085; + this.match(PythonParser.RPAR); + } + break; + } + } + } + } + this.state = 2092; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 276, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.unrollRecursionContexts(_parentctx); + } + return localctx; + } + // @RuleVersion(0) + public del_targets(): Del_targetsContext { + let localctx: Del_targetsContext = new Del_targetsContext(this, this._ctx, this.state); + this.enterRule(localctx, 376, PythonParser.RULE_del_targets); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(localctx, 1); + { + this.state = 2093; + this.del_target(); + this.state = 2098; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 277, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 2094; + this.match(PythonParser.COMMA); + this.state = 2095; + this.del_target(); + } + } + } + this.state = 2100; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 277, this._ctx); + } + this.state = 2102; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 2101; + this.match(PythonParser.COMMA); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public del_target(): Del_targetContext { + let localctx: Del_targetContext = new Del_targetContext(this, this._ctx, this.state); + this.enterRule(localctx, 378, PythonParser.RULE_del_target); + try { + this.state = 2114; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 280, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 2104; + this.t_primary(0); + this.state = 2111; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 47: + { + this.state = 2105; + this.match(PythonParser.DOT); + this.state = 2106; + this.match(PythonParser.NAME); + } + break; + case 42: + { + this.state = 2107; + this.match(PythonParser.LSQB); + this.state = 2108; + this.slices(); + this.state = 2109; + this.match(PythonParser.RSQB); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 2113; + this.del_t_atom(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public del_t_atom(): Del_t_atomContext { + let localctx: Del_t_atomContext = new Del_t_atomContext(this, this._ctx, this.state); + this.enterRule(localctx, 380, PythonParser.RULE_del_t_atom); + let _la: number; + try { + this.state = 2131; + this._errHandler.sync(this); + switch ( this._interp.adaptivePredict(this._input, 283, this._ctx) ) { + case 1: + this.enterOuterAlt(localctx, 1); + { + this.state = 2116; + this.match(PythonParser.NAME); + } + break; + case 2: + this.enterOuterAlt(localctx, 2); + { + this.state = 2117; + this.match(PythonParser.LPAR); + this.state = 2118; + this.del_target(); + this.state = 2119; + this.match(PythonParser.RPAR); + } + break; + case 3: + this.enterOuterAlt(localctx, 3); + { + this.state = 2121; + this.match(PythonParser.LPAR); + this.state = 2123; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 67656) !== 0) || ((((_la - 41)) & ~0x1F) === 0 && ((1 << (_la - 41)) & 7) !== 0) || ((((_la - 86)) & ~0x1F) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { + { + this.state = 2122; + this.del_targets(); + } + } + + this.state = 2125; + this.match(PythonParser.RPAR); + } + break; + case 4: + this.enterOuterAlt(localctx, 4); + { + this.state = 2126; + this.match(PythonParser.LSQB); + this.state = 2128; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 67656) !== 0) || ((((_la - 41)) & ~0x1F) === 0 && ((1 << (_la - 41)) & 7) !== 0) || ((((_la - 86)) & ~0x1F) === 0 && ((1 << (_la - 86)) & 57) !== 0)) { + { + this.state = 2127; + this.del_targets(); + } + } + + this.state = 2130; + this.match(PythonParser.RSQB); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public type_expressions(): Type_expressionsContext { + let localctx: Type_expressionsContext = new Type_expressionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 382, PythonParser.RULE_type_expressions); + let _la: number; + try { + let _alt: number; + this.state = 2164; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 3: + case 6: + case 7: + case 11: + case 16: + case 24: + case 34: + case 41: + case 42: + case 43: + case 51: + case 52: + case 65: + case 86: + case 89: + case 90: + case 91: + this.enterOuterAlt(localctx, 1); + { + this.state = 2133; + this.expression(); + this.state = 2138; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 284, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 2134; + this.match(PythonParser.COMMA); + this.state = 2135; + this.expression(); + } + } + } + this.state = 2140; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input, 284, this._ctx); + } + this.state = 2153; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 2141; + this.match(PythonParser.COMMA); + this.state = 2151; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 53: + { + this.state = 2142; + this.match(PythonParser.STAR); + this.state = 2143; + this.expression(); + this.state = 2147; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 2144; + this.match(PythonParser.COMMA); + this.state = 2145; + this.match(PythonParser.DOUBLESTAR); + this.state = 2146; + this.expression(); + } + } + + } + break; + case 69: + { + this.state = 2149; + this.match(PythonParser.DOUBLESTAR); + this.state = 2150; + this.expression(); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + + } + break; + case 53: + this.enterOuterAlt(localctx, 2); + { + this.state = 2155; + this.match(PythonParser.STAR); + this.state = 2156; + this.expression(); + this.state = 2160; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la===49) { + { + this.state = 2157; + this.match(PythonParser.COMMA); + this.state = 2158; + this.match(PythonParser.DOUBLESTAR); + this.state = 2159; + this.expression(); + } + } + + } + break; + case 69: + this.enterOuterAlt(localctx, 3); + { + this.state = 2162; + this.match(PythonParser.DOUBLESTAR); + this.state = 2163; + this.expression(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public func_type_comment(): Func_type_commentContext { + let localctx: Func_type_commentContext = new Func_type_commentContext(this, this._ctx, this.state); + this.enterRule(localctx, 384, PythonParser.RULE_func_type_comment); + try { + this.state = 2169; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 93: + this.enterOuterAlt(localctx, 1); + { + this.state = 2166; + this.match(PythonParser.NEWLINE); + this.state = 2167; + this.match(PythonParser.TYPE_COMMENT); + } + break; + case 92: + this.enterOuterAlt(localctx, 2); + { + this.state = 2168; + this.match(PythonParser.TYPE_COMMENT); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public soft_kw_type(): Soft_kw_typeContext { + let localctx: Soft_kw_typeContext = new Soft_kw_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 386, PythonParser.RULE_soft_kw_type); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 2171; + if (!(this.isEqualToCurrentTokenText("type"))) { + throw this.createFailedPredicateException("this.isEqualToCurrentTokenText(\"type\")"); + } + this.state = 2172; + this.match(PythonParser.NAME); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public soft_kw_match(): Soft_kw_matchContext { + let localctx: Soft_kw_matchContext = new Soft_kw_matchContext(this, this._ctx, this.state); + this.enterRule(localctx, 388, PythonParser.RULE_soft_kw_match); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 2174; + if (!(this.isEqualToCurrentTokenText("match"))) { + throw this.createFailedPredicateException("this.isEqualToCurrentTokenText(\"match\")"); + } + this.state = 2175; + this.match(PythonParser.NAME); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public soft_kw_case(): Soft_kw_caseContext { + let localctx: Soft_kw_caseContext = new Soft_kw_caseContext(this, this._ctx, this.state); + this.enterRule(localctx, 390, PythonParser.RULE_soft_kw_case); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 2177; + if (!(this.isEqualToCurrentTokenText("case"))) { + throw this.createFailedPredicateException("this.isEqualToCurrentTokenText(\"case\")"); + } + this.state = 2178; + this.match(PythonParser.NAME); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public soft_kw_wildcard(): Soft_kw_wildcardContext { + let localctx: Soft_kw_wildcardContext = new Soft_kw_wildcardContext(this, this._ctx, this.state); + this.enterRule(localctx, 392, PythonParser.RULE_soft_kw_wildcard); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 2180; + if (!(this.isEqualToCurrentTokenText("_"))) { + throw this.createFailedPredicateException("this.isEqualToCurrentTokenText(\"_\")"); + } + this.state = 2181; + this.match(PythonParser.NAME); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + // @RuleVersion(0) + public soft_kw__not__wildcard(): Soft_kw__not__wildcardContext { + let localctx: Soft_kw__not__wildcardContext = new Soft_kw__not__wildcardContext(this, this._ctx, this.state); + this.enterRule(localctx, 394, PythonParser.RULE_soft_kw__not__wildcard); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 2183; + if (!(this.isnotEqualToCurrentTokenText("_"))) { + throw this.createFailedPredicateException("this.isnotEqualToCurrentTokenText(\"_\")"); + } + this.state = 2184; + this.match(PythonParser.NAME); + } + } + catch (re) { + if (re instanceof RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return localctx; + } + + public sempred(localctx: RuleContext, ruleIndex: number, predIndex: number): boolean { + switch (ruleIndex) { + case 29: + return this.dotted_name_sempred(localctx as Dotted_nameContext, predIndex); + case 127: + return this.bitwise_or_sempred(localctx as Bitwise_orContext, predIndex); + case 128: + return this.bitwise_xor_sempred(localctx as Bitwise_xorContext, predIndex); + case 129: + return this.bitwise_and_sempred(localctx as Bitwise_andContext, predIndex); + case 130: + return this.shift_expr_sempred(localctx as Shift_exprContext, predIndex); + case 131: + return this.sum_sempred(localctx as SumContext, predIndex); + case 132: + return this.term_sempred(localctx as TermContext, predIndex); + case 136: + return this.primary_sempred(localctx as PrimaryContext, predIndex); + case 187: + return this.t_primary_sempred(localctx as T_primaryContext, predIndex); + case 193: + return this.soft_kw_type_sempred(localctx as Soft_kw_typeContext, predIndex); + case 194: + return this.soft_kw_match_sempred(localctx as Soft_kw_matchContext, predIndex); + case 195: + return this.soft_kw_case_sempred(localctx as Soft_kw_caseContext, predIndex); + case 196: + return this.soft_kw_wildcard_sempred(localctx as Soft_kw_wildcardContext, predIndex); + case 197: + return this.soft_kw__not__wildcard_sempred(localctx as Soft_kw__not__wildcardContext, predIndex); + } + return true; + } + private dotted_name_sempred(localctx: Dotted_nameContext, predIndex: number): boolean { + switch (predIndex) { + case 0: + return this.precpred(this._ctx, 2); + } + return true; + } + private bitwise_or_sempred(localctx: Bitwise_orContext, predIndex: number): boolean { + switch (predIndex) { + case 1: + return this.precpred(this._ctx, 2); + } + return true; + } + private bitwise_xor_sempred(localctx: Bitwise_xorContext, predIndex: number): boolean { + switch (predIndex) { + case 2: + return this.precpred(this._ctx, 2); + } + return true; + } + private bitwise_and_sempred(localctx: Bitwise_andContext, predIndex: number): boolean { + switch (predIndex) { + case 3: + return this.precpred(this._ctx, 2); + } + return true; + } + private shift_expr_sempred(localctx: Shift_exprContext, predIndex: number): boolean { + switch (predIndex) { + case 4: + return this.precpred(this._ctx, 2); + } + return true; + } + private sum_sempred(localctx: SumContext, predIndex: number): boolean { + switch (predIndex) { + case 5: + return this.precpred(this._ctx, 2); + } + return true; + } + private term_sempred(localctx: TermContext, predIndex: number): boolean { + switch (predIndex) { + case 6: + return this.precpred(this._ctx, 2); + } + return true; + } + private primary_sempred(localctx: PrimaryContext, predIndex: number): boolean { + switch (predIndex) { + case 7: + return this.precpred(this._ctx, 2); + } + return true; + } + private t_primary_sempred(localctx: T_primaryContext, predIndex: number): boolean { + switch (predIndex) { + case 8: + return this.precpred(this._ctx, 2); + } + return true; + } + private soft_kw_type_sempred(localctx: Soft_kw_typeContext, predIndex: number): boolean { + switch (predIndex) { + case 9: + return this.isEqualToCurrentTokenText("type"); + } + return true; + } + private soft_kw_match_sempred(localctx: Soft_kw_matchContext, predIndex: number): boolean { + switch (predIndex) { + case 10: + return this.isEqualToCurrentTokenText("match"); + } + return true; + } + private soft_kw_case_sempred(localctx: Soft_kw_caseContext, predIndex: number): boolean { + switch (predIndex) { + case 11: + return this.isEqualToCurrentTokenText("case"); + } + return true; + } + private soft_kw_wildcard_sempred(localctx: Soft_kw_wildcardContext, predIndex: number): boolean { + switch (predIndex) { + case 12: + return this.isEqualToCurrentTokenText("_"); + } + return true; + } + private soft_kw__not__wildcard_sempred(localctx: Soft_kw__not__wildcardContext, predIndex: number): boolean { + switch (predIndex) { + case 13: + return this.isnotEqualToCurrentTokenText("_"); + } + return true; + } + + public static readonly _serializedATN: number[] = [4,1,97,2187,2,0,7,0, + 2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9, + 2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2, + 17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24, + 7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7, + 31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38, + 2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2, + 46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53, + 7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7, + 60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67, + 2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2, + 75,7,75,2,76,7,76,2,77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82, + 7,82,2,83,7,83,2,84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7, + 89,2,90,7,90,2,91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96, + 2,97,7,97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,103, + 7,103,2,104,7,104,2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108,2,109, + 7,109,2,110,7,110,2,111,7,111,2,112,7,112,2,113,7,113,2,114,7,114,2,115, + 7,115,2,116,7,116,2,117,7,117,2,118,7,118,2,119,7,119,2,120,7,120,2,121, + 7,121,2,122,7,122,2,123,7,123,2,124,7,124,2,125,7,125,2,126,7,126,2,127, + 7,127,2,128,7,128,2,129,7,129,2,130,7,130,2,131,7,131,2,132,7,132,2,133, + 7,133,2,134,7,134,2,135,7,135,2,136,7,136,2,137,7,137,2,138,7,138,2,139, + 7,139,2,140,7,140,2,141,7,141,2,142,7,142,2,143,7,143,2,144,7,144,2,145, + 7,145,2,146,7,146,2,147,7,147,2,148,7,148,2,149,7,149,2,150,7,150,2,151, + 7,151,2,152,7,152,2,153,7,153,2,154,7,154,2,155,7,155,2,156,7,156,2,157, + 7,157,2,158,7,158,2,159,7,159,2,160,7,160,2,161,7,161,2,162,7,162,2,163, + 7,163,2,164,7,164,2,165,7,165,2,166,7,166,2,167,7,167,2,168,7,168,2,169, + 7,169,2,170,7,170,2,171,7,171,2,172,7,172,2,173,7,173,2,174,7,174,2,175, + 7,175,2,176,7,176,2,177,7,177,2,178,7,178,2,179,7,179,2,180,7,180,2,181, + 7,181,2,182,7,182,2,183,7,183,2,184,7,184,2,185,7,185,2,186,7,186,2,187, + 7,187,2,188,7,188,2,189,7,189,2,190,7,190,2,191,7,191,2,192,7,192,2,193, + 7,193,2,194,7,194,2,195,7,195,2,196,7,196,2,197,7,197,1,0,3,0,398,8,0,1, + 0,1,0,1,1,1,1,1,2,1,2,5,2,406,8,2,10,2,12,2,409,9,2,1,2,1,2,1,3,1,3,3,3, + 415,8,3,1,3,1,3,1,3,1,3,5,3,421,8,3,10,3,12,3,424,9,3,1,3,1,3,1,4,1,4,1, + 5,4,5,431,8,5,11,5,12,5,432,1,6,1,6,3,6,437,8,6,1,7,1,7,1,7,1,7,1,7,1,7, + 3,7,445,8,7,1,8,1,8,1,8,5,8,450,8,8,10,8,12,8,453,9,8,1,8,3,8,456,8,8,1, + 8,1,8,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,3,9,474,8, + 9,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,3,10,484,8,10,1,11,1,11,1,11, + 1,11,1,11,3,11,491,8,11,1,11,1,11,1,11,1,11,1,11,3,11,498,8,11,1,11,1,11, + 1,11,1,11,3,11,504,8,11,1,11,1,11,1,11,4,11,509,8,11,11,11,12,11,510,1, + 11,1,11,3,11,515,8,11,1,11,3,11,518,8,11,1,11,1,11,1,11,1,11,3,11,524,8, + 11,3,11,526,8,11,1,12,1,12,3,12,530,8,12,1,13,1,13,1,14,1,14,3,14,536,8, + 14,1,15,1,15,1,15,1,15,3,15,542,8,15,3,15,544,8,15,1,16,1,16,1,16,1,16, + 5,16,550,8,16,10,16,12,16,553,9,16,1,17,1,17,1,17,1,17,5,17,559,8,17,10, + 17,12,17,562,9,17,1,18,1,18,1,18,1,19,1,19,1,20,1,20,1,20,1,20,3,20,573, + 8,20,1,21,1,21,3,21,577,8,21,1,22,1,22,1,22,1,23,1,23,5,23,584,8,23,10, + 23,12,23,587,9,23,1,23,1,23,1,23,1,23,1,23,1,23,4,23,595,8,23,11,23,12, + 23,596,1,23,1,23,3,23,601,8,23,1,24,1,24,1,24,3,24,606,8,24,1,24,1,24,1, + 24,1,24,3,24,612,8,24,1,25,1,25,1,25,5,25,617,8,25,10,25,12,25,620,9,25, + 1,26,1,26,1,26,3,26,625,8,26,1,27,1,27,1,27,5,27,630,8,27,10,27,12,27,633, + 9,27,1,28,1,28,1,28,3,28,638,8,28,1,29,1,29,1,29,1,29,1,29,1,29,5,29,646, + 8,29,10,29,12,29,649,9,29,1,30,1,30,1,30,1,30,1,30,1,30,3,30,657,8,30,1, + 31,1,31,1,31,1,31,4,31,663,8,31,11,31,12,31,664,1,32,1,32,1,32,1,32,3,32, + 671,8,32,1,33,1,33,1,33,3,33,676,8,33,1,33,1,33,3,33,680,8,33,1,33,3,33, + 683,8,33,1,33,1,33,1,33,1,34,1,34,1,34,1,34,3,34,692,8,34,1,35,1,35,1,35, + 3,35,697,8,35,1,35,1,35,3,35,701,8,35,1,35,1,35,1,35,3,35,706,8,35,1,35, + 1,35,3,35,710,8,35,1,35,1,35,1,35,1,35,1,35,3,35,717,8,35,1,35,1,35,3,35, + 721,8,35,1,35,1,35,1,35,3,35,726,8,35,1,35,1,35,3,35,730,8,35,1,35,3,35, + 733,8,35,1,36,1,36,1,37,1,37,5,37,739,8,37,10,37,12,37,742,9,37,1,37,5, + 37,745,8,37,10,37,12,37,748,9,37,1,37,3,37,751,8,37,1,37,1,37,5,37,755, + 8,37,10,37,12,37,758,9,37,1,37,3,37,761,8,37,1,37,4,37,764,8,37,11,37,12, + 37,765,1,37,5,37,769,8,37,10,37,12,37,772,9,37,1,37,3,37,775,8,37,1,37, + 4,37,778,8,37,11,37,12,37,779,1,37,3,37,783,8,37,1,37,3,37,786,8,37,1,38, + 4,38,789,8,38,11,38,12,38,790,1,38,1,38,3,38,795,8,38,1,39,5,39,798,8,39, + 10,39,12,39,801,9,39,1,39,4,39,804,8,39,11,39,12,39,805,1,39,1,39,3,39, + 810,8,39,1,40,1,40,1,40,5,40,815,8,40,10,40,12,40,818,9,40,1,40,3,40,821, + 8,40,1,40,1,40,1,40,5,40,826,8,40,10,40,12,40,829,9,40,1,40,3,40,832,8, + 40,1,40,1,40,1,40,4,40,837,8,40,11,40,12,40,838,1,40,3,40,842,8,40,1,40, + 3,40,845,8,40,1,41,1,41,1,41,1,42,1,42,3,42,852,8,42,1,42,3,42,855,8,42, + 1,43,1,43,3,43,859,8,43,1,43,3,43,862,8,43,1,44,1,44,1,44,3,44,867,8,44, + 1,44,3,44,870,8,44,1,45,1,45,3,45,874,8,45,1,45,3,45,877,8,45,1,45,3,45, + 880,8,45,1,46,1,46,3,46,884,8,46,1,47,1,47,1,47,1,48,1,48,1,48,1,49,1,49, + 1,49,1,50,1,50,1,50,1,51,1,51,1,51,1,51,1,51,1,51,3,51,904,8,51,3,51,906, + 8,51,1,52,1,52,1,52,1,52,1,52,1,52,3,52,914,8,52,3,52,916,8,52,1,53,1,53, + 1,53,1,53,1,54,1,54,1,54,1,54,1,54,3,54,927,8,54,1,55,3,55,930,8,55,1,55, + 1,55,1,55,1,55,1,55,1,55,3,55,938,8,55,1,55,1,55,3,55,942,8,55,1,56,3,56, + 945,8,56,1,56,1,56,1,56,1,56,1,56,5,56,952,8,56,10,56,12,56,955,9,56,1, + 56,3,56,958,8,56,1,56,1,56,1,56,1,56,1,56,1,56,5,56,966,8,56,10,56,12,56, + 969,9,56,1,56,1,56,3,56,973,8,56,3,56,975,8,56,1,56,1,56,1,57,1,57,1,57, + 3,57,982,8,57,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,4,58,993,8,58, + 11,58,12,58,994,1,58,3,58,998,8,58,1,58,3,58,1001,8,58,1,58,1,58,1,58,1, + 58,4,58,1007,8,58,11,58,12,58,1008,1,58,3,58,1012,8,58,1,58,3,58,1015,8, + 58,3,58,1017,8,58,1,59,1,59,1,59,1,59,3,59,1023,8,59,3,59,1025,8,59,1,59, + 1,59,1,59,1,60,1,60,1,60,1,60,1,60,3,60,1035,8,60,1,60,1,60,1,60,1,61,1, + 61,1,61,1,61,1,62,1,62,1,62,1,62,1,62,1,62,4,62,1050,8,62,11,62,12,62,1051, + 1,62,1,62,1,63,1,63,1,63,3,63,1059,8,63,1,63,3,63,1062,8,63,1,64,1,64,1, + 64,3,64,1067,8,64,1,64,1,64,1,64,1,65,1,65,1,65,1,66,1,66,3,66,1077,8,66, + 1,67,1,67,3,67,1081,8,67,1,68,1,68,1,68,1,68,1,69,1,69,1,69,5,69,1090,8, + 69,10,69,12,69,1093,9,69,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,3,70,1103, + 8,70,1,71,1,71,1,71,1,71,1,71,1,71,3,71,1111,8,71,1,72,1,72,1,72,1,72,1, + 72,1,72,3,72,1119,8,72,1,73,1,73,1,73,1,73,1,74,3,74,1126,8,74,1,74,1,74, + 1,75,3,75,1131,8,75,1,75,1,75,1,76,1,76,1,77,1,77,1,78,1,78,1,79,1,79,1, + 80,1,80,1,81,1,81,1,82,1,82,1,82,4,82,1150,8,82,11,82,12,82,1151,1,83,1, + 83,1,83,5,83,1157,8,83,10,83,12,83,1160,9,83,1,84,1,84,1,84,1,84,1,85,1, + 85,3,85,1168,8,85,1,85,1,85,1,85,3,85,1173,8,85,1,85,3,85,1176,8,85,1,86, + 1,86,1,86,3,86,1181,8,86,1,87,1,87,1,87,5,87,1186,8,87,10,87,12,87,1189, + 9,87,1,87,3,87,1192,8,87,1,88,1,88,3,88,1196,8,88,1,89,1,89,1,89,1,89,3, + 89,1202,8,89,1,90,1,90,1,90,1,90,1,90,3,90,1209,8,90,1,90,1,90,1,90,1,90, + 1,90,1,90,3,90,1217,8,90,1,90,3,90,1220,8,90,1,90,1,90,3,90,1224,8,90,1, + 91,1,91,1,91,5,91,1229,8,91,10,91,12,91,1232,9,91,1,92,1,92,3,92,1236,8, + 92,1,92,1,92,1,92,1,93,1,93,1,93,1,94,1,94,1,94,1,94,1,94,3,94,1249,8,94, + 1,94,3,94,1252,8,94,1,94,3,94,1255,8,94,3,94,1257,8,94,1,94,1,94,1,95,1, + 95,1,95,5,95,1264,8,95,10,95,12,95,1267,9,95,1,96,1,96,1,96,5,96,1272,8, + 96,10,96,12,96,1275,9,96,1,97,1,97,1,97,1,97,1,98,1,98,1,98,3,98,1284,8, + 98,1,98,1,98,1,98,1,99,1,99,1,99,1,99,1,100,1,100,1,100,5,100,1296,8,100, + 10,100,12,100,1299,9,100,1,100,3,100,1302,8,100,1,101,1,101,3,101,1306, + 8,101,1,101,1,101,1,101,1,101,3,101,1312,8,101,1,101,1,101,1,101,1,101, + 3,101,1318,8,101,3,101,1320,8,101,1,102,1,102,1,102,1,103,1,103,1,103,5, + 103,1328,8,103,10,103,12,103,1331,9,103,1,103,3,103,1334,8,103,1,104,1, + 104,1,104,1,104,1,104,1,104,3,104,1342,8,104,1,104,3,104,1345,8,104,1,105, + 1,105,1,105,1,105,3,105,1351,8,105,3,105,1353,8,105,1,106,1,106,1,106,5, + 106,1358,8,106,10,106,12,106,1361,9,106,1,106,3,106,1364,8,106,1,107,1, + 107,1,107,3,107,1369,8,107,1,108,1,108,1,108,5,108,1374,8,108,10,108,12, + 108,1377,9,108,1,108,3,108,1380,8,108,1,109,1,109,1,109,3,109,1385,8,109, + 1,110,1,110,1,110,1,110,1,111,1,111,3,111,1393,8,111,1,112,1,112,1,112, + 5,112,1398,8,112,10,112,12,112,1401,9,112,1,113,1,113,1,113,5,113,1406, + 8,113,10,113,12,113,1409,9,113,1,114,1,114,1,114,3,114,1414,8,114,1,115, + 1,115,5,115,1418,8,115,10,115,12,115,1421,9,115,1,116,1,116,1,116,1,116, + 1,116,1,116,1,116,1,116,1,116,1,116,3,116,1433,8,116,1,117,1,117,1,117, + 1,118,1,118,1,118,1,119,1,119,1,119,1,120,1,120,1,120,1,121,1,121,1,121, + 1,122,1,122,1,122,1,123,1,123,1,123,1,123,1,124,1,124,1,124,1,125,1,125, + 1,125,1,125,1,126,1,126,1,126,1,127,1,127,1,127,1,127,1,127,1,127,5,127, + 1473,8,127,10,127,12,127,1476,9,127,1,128,1,128,1,128,1,128,1,128,1,128, + 5,128,1484,8,128,10,128,12,128,1487,9,128,1,129,1,129,1,129,1,129,1,129, + 1,129,5,129,1495,8,129,10,129,12,129,1498,9,129,1,130,1,130,1,130,1,130, + 1,130,1,130,5,130,1506,8,130,10,130,12,130,1509,9,130,1,131,1,131,1,131, + 1,131,1,131,1,131,5,131,1517,8,131,10,131,12,131,1520,9,131,1,132,1,132, + 1,132,1,132,1,132,1,132,5,132,1528,8,132,10,132,12,132,1531,9,132,1,133, + 1,133,1,133,1,133,1,133,1,133,1,133,3,133,1540,8,133,1,134,1,134,1,134, + 3,134,1545,8,134,1,135,1,135,1,135,3,135,1550,8,135,1,136,1,136,1,136,1, + 136,1,136,1,136,1,136,1,136,1,136,3,136,1561,8,136,1,136,1,136,1,136,1, + 136,1,136,3,136,1568,8,136,5,136,1570,8,136,10,136,12,136,1573,9,136,1, + 137,1,137,1,137,3,137,1578,8,137,1,137,1,137,1,137,3,137,1583,8,137,5,137, + 1585,8,137,10,137,12,137,1588,9,137,1,137,3,137,1591,8,137,3,137,1593,8, + 137,1,138,3,138,1596,8,138,1,138,1,138,3,138,1600,8,138,1,138,1,138,3,138, + 1604,8,138,3,138,1606,8,138,1,138,3,138,1609,8,138,1,139,1,139,1,139,1, + 139,1,139,1,139,1,139,1,139,1,139,3,139,1620,8,139,1,139,1,139,3,139,1624, + 8,139,1,139,1,139,1,139,1,139,3,139,1630,8,139,1,139,3,139,1633,8,139,1, + 140,1,140,1,140,3,140,1638,8,140,1,140,1,140,1,141,1,141,3,141,1644,8,141, + 1,141,1,141,1,141,1,142,1,142,1,143,1,143,5,143,1653,8,143,10,143,12,143, + 1656,9,143,1,143,5,143,1659,8,143,10,143,12,143,1662,9,143,1,143,3,143, + 1665,8,143,1,143,1,143,5,143,1669,8,143,10,143,12,143,1672,9,143,1,143, + 3,143,1675,8,143,1,143,4,143,1678,8,143,11,143,12,143,1679,1,143,5,143, + 1683,8,143,10,143,12,143,1686,9,143,1,143,3,143,1689,8,143,1,143,4,143, + 1692,8,143,11,143,12,143,1693,1,143,3,143,1697,8,143,1,143,3,143,1700,8, + 143,1,144,4,144,1703,8,144,11,144,12,144,1704,1,144,1,144,3,144,1709,8, + 144,1,145,5,145,1712,8,145,10,145,12,145,1715,9,145,1,145,4,145,1718,8, + 145,11,145,12,145,1719,1,145,1,145,3,145,1724,8,145,1,146,1,146,1,146,5, + 146,1729,8,146,10,146,12,146,1732,9,146,1,146,3,146,1735,8,146,1,146,1, + 146,1,146,4,146,1740,8,146,11,146,12,146,1741,1,146,3,146,1745,8,146,1, + 146,3,146,1748,8,146,1,147,1,147,1,147,1,148,1,148,3,148,1755,8,148,1,149, + 1,149,1,149,3,149,1760,8,149,1,150,1,150,3,150,1764,8,150,1,150,3,150,1767, + 8,150,1,151,1,151,1,152,1,152,3,152,1773,8,152,1,153,1,153,1,153,3,153, + 1778,8,153,1,153,3,153,1781,8,153,1,153,3,153,1784,8,153,1,153,3,153,1787, + 8,153,1,153,1,153,1,154,1,154,1,154,1,155,1,155,5,155,1796,8,155,10,155, + 12,155,1799,9,155,1,156,1,156,3,156,1803,8,156,1,157,1,157,5,157,1807,8, + 157,10,157,12,157,1810,9,157,1,157,1,157,1,158,1,158,1,159,1,159,4,159, + 1818,8,159,11,159,12,159,1819,1,160,1,160,3,160,1824,8,160,1,160,1,160, + 1,161,1,161,1,161,1,161,3,161,1832,8,161,3,161,1834,8,161,1,161,1,161,1, + 162,1,162,1,162,1,162,1,163,1,163,3,163,1844,8,163,1,163,1,163,1,164,1, + 164,1,164,5,164,1851,8,164,10,164,12,164,1854,9,164,1,164,3,164,1857,8, + 164,1,165,1,165,1,165,3,165,1862,8,165,1,166,1,166,1,166,1,166,1,167,4, + 167,1869,8,167,11,167,12,167,1870,1,168,3,168,1874,8,168,1,168,1,168,1, + 168,1,168,1,168,1,168,5,168,1882,8,168,10,168,12,168,1885,9,168,1,169,1, + 169,1,169,1,169,1,169,1,170,1,170,1,170,1,170,1,170,1,171,1,171,1,171,3, + 171,1900,8,171,1,171,1,171,1,171,1,172,1,172,1,172,1,172,1,172,1,173,1, + 173,3,173,1912,8,173,1,174,1,174,1,174,3,174,1917,8,174,3,174,1919,8,174, + 1,174,1,174,1,174,1,174,3,174,1925,8,174,3,174,1927,8,174,5,174,1929,8, + 174,10,174,12,174,1932,9,174,1,174,1,174,3,174,1936,8,174,1,174,3,174,1939, + 8,174,1,175,1,175,1,175,5,175,1944,8,175,10,175,12,175,1947,9,175,1,175, + 1,175,1,175,1,175,5,175,1953,8,175,10,175,12,175,1956,9,175,3,175,1958, + 8,175,1,175,1,175,1,175,5,175,1963,8,175,10,175,12,175,1966,9,175,3,175, + 1968,8,175,1,176,1,176,1,176,1,177,1,177,1,177,1,177,3,177,1977,8,177,1, + 178,1,178,1,178,1,178,1,178,3,178,1984,8,178,1,179,1,179,1,179,5,179,1989, + 8,179,10,179,12,179,1992,9,179,1,179,3,179,1995,8,179,1,180,1,180,1,180, + 4,180,2000,8,180,11,180,12,180,2001,1,180,3,180,2005,8,180,1,181,1,181, + 1,181,1,181,4,181,2011,8,181,11,181,12,181,2012,1,181,3,181,2016,8,181, + 3,181,2018,8,181,1,182,1,182,1,182,3,182,2023,8,182,1,183,1,183,1,183,1, + 183,1,183,1,183,1,183,3,183,2032,8,183,1,183,3,183,2035,8,183,1,184,1,184, + 1,184,1,184,1,184,1,184,1,184,3,184,2044,8,184,1,184,1,184,1,184,3,184, + 2049,8,184,1,184,3,184,2052,8,184,1,185,1,185,1,185,1,185,1,185,1,185,3, + 185,2060,8,185,1,186,1,186,1,186,1,186,1,186,1,186,1,186,3,186,2069,8,186, + 1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187, + 1,187,3,187,2084,8,187,1,187,3,187,2087,8,187,5,187,2089,8,187,10,187,12, + 187,2092,9,187,1,188,1,188,1,188,5,188,2097,8,188,10,188,12,188,2100,9, + 188,1,188,3,188,2103,8,188,1,189,1,189,1,189,1,189,1,189,1,189,1,189,3, + 189,2112,8,189,1,189,3,189,2115,8,189,1,190,1,190,1,190,1,190,1,190,1,190, + 1,190,3,190,2124,8,190,1,190,1,190,1,190,3,190,2129,8,190,1,190,3,190,2132, + 8,190,1,191,1,191,1,191,5,191,2137,8,191,10,191,12,191,2140,9,191,1,191, + 1,191,1,191,1,191,1,191,1,191,3,191,2148,8,191,1,191,1,191,3,191,2152,8, + 191,3,191,2154,8,191,1,191,1,191,1,191,1,191,1,191,3,191,2161,8,191,1,191, + 1,191,3,191,2165,8,191,1,192,1,192,1,192,3,192,2170,8,192,1,193,1,193,1, + 193,1,194,1,194,1,194,1,195,1,195,1,195,1,196,1,196,1,196,1,197,1,197,1, + 197,1,197,0,9,58,254,256,258,260,262,264,272,374,198,0,2,4,6,8,10,12,14, + 16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62, + 64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108, + 110,112,114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144, + 146,148,150,152,154,156,158,160,162,164,166,168,170,172,174,176,178,180, + 182,184,186,188,190,192,194,196,198,200,202,204,206,208,210,212,214,216, + 218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252, + 254,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288, + 290,292,294,296,298,300,302,304,306,308,310,312,314,316,318,320,322,324, + 326,328,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360, + 362,364,366,368,370,372,374,376,378,380,382,384,386,388,390,392,394,0,5, + 3,0,70,80,82,82,84,84,2,0,47,47,86,86,1,0,51,52,1,0,67,68,4,0,53,54,60, + 60,81,81,83,83,2359,0,397,1,0,0,0,2,401,1,0,0,0,4,403,1,0,0,0,6,412,1,0, + 0,0,8,427,1,0,0,0,10,430,1,0,0,0,12,436,1,0,0,0,14,444,1,0,0,0,16,446,1, + 0,0,0,18,473,1,0,0,0,20,483,1,0,0,0,22,525,1,0,0,0,24,529,1,0,0,0,26,531, + 1,0,0,0,28,533,1,0,0,0,30,537,1,0,0,0,32,545,1,0,0,0,34,554,1,0,0,0,36, + 563,1,0,0,0,38,566,1,0,0,0,40,568,1,0,0,0,42,576,1,0,0,0,44,578,1,0,0,0, + 46,600,1,0,0,0,48,611,1,0,0,0,50,613,1,0,0,0,52,621,1,0,0,0,54,626,1,0, + 0,0,56,634,1,0,0,0,58,639,1,0,0,0,60,656,1,0,0,0,62,662,1,0,0,0,64,670, + 1,0,0,0,66,672,1,0,0,0,68,691,1,0,0,0,70,732,1,0,0,0,72,734,1,0,0,0,74, + 785,1,0,0,0,76,788,1,0,0,0,78,799,1,0,0,0,80,844,1,0,0,0,82,846,1,0,0,0, + 84,849,1,0,0,0,86,856,1,0,0,0,88,863,1,0,0,0,90,871,1,0,0,0,92,881,1,0, + 0,0,94,885,1,0,0,0,96,888,1,0,0,0,98,891,1,0,0,0,100,894,1,0,0,0,102,897, + 1,0,0,0,104,907,1,0,0,0,106,917,1,0,0,0,108,921,1,0,0,0,110,929,1,0,0,0, + 112,944,1,0,0,0,114,978,1,0,0,0,116,1016,1,0,0,0,118,1018,1,0,0,0,120,1029, + 1,0,0,0,122,1039,1,0,0,0,124,1043,1,0,0,0,126,1061,1,0,0,0,128,1063,1,0, + 0,0,130,1071,1,0,0,0,132,1076,1,0,0,0,134,1080,1,0,0,0,136,1082,1,0,0,0, + 138,1086,1,0,0,0,140,1102,1,0,0,0,142,1110,1,0,0,0,144,1118,1,0,0,0,146, + 1120,1,0,0,0,148,1125,1,0,0,0,150,1130,1,0,0,0,152,1134,1,0,0,0,154,1136, + 1,0,0,0,156,1138,1,0,0,0,158,1140,1,0,0,0,160,1142,1,0,0,0,162,1144,1,0, + 0,0,164,1146,1,0,0,0,166,1153,1,0,0,0,168,1161,1,0,0,0,170,1175,1,0,0,0, + 172,1177,1,0,0,0,174,1182,1,0,0,0,176,1195,1,0,0,0,178,1201,1,0,0,0,180, + 1223,1,0,0,0,182,1225,1,0,0,0,184,1235,1,0,0,0,186,1240,1,0,0,0,188,1243, + 1,0,0,0,190,1260,1,0,0,0,192,1268,1,0,0,0,194,1276,1,0,0,0,196,1280,1,0, + 0,0,198,1288,1,0,0,0,200,1292,1,0,0,0,202,1319,1,0,0,0,204,1321,1,0,0,0, + 206,1324,1,0,0,0,208,1344,1,0,0,0,210,1346,1,0,0,0,212,1354,1,0,0,0,214, + 1368,1,0,0,0,216,1370,1,0,0,0,218,1384,1,0,0,0,220,1386,1,0,0,0,222,1392, + 1,0,0,0,224,1394,1,0,0,0,226,1402,1,0,0,0,228,1413,1,0,0,0,230,1415,1,0, + 0,0,232,1432,1,0,0,0,234,1434,1,0,0,0,236,1437,1,0,0,0,238,1440,1,0,0,0, + 240,1443,1,0,0,0,242,1446,1,0,0,0,244,1449,1,0,0,0,246,1452,1,0,0,0,248, + 1456,1,0,0,0,250,1459,1,0,0,0,252,1463,1,0,0,0,254,1466,1,0,0,0,256,1477, + 1,0,0,0,258,1488,1,0,0,0,260,1499,1,0,0,0,262,1510,1,0,0,0,264,1521,1,0, + 0,0,266,1539,1,0,0,0,268,1541,1,0,0,0,270,1549,1,0,0,0,272,1551,1,0,0,0, + 274,1592,1,0,0,0,276,1608,1,0,0,0,278,1632,1,0,0,0,280,1634,1,0,0,0,282, + 1641,1,0,0,0,284,1648,1,0,0,0,286,1699,1,0,0,0,288,1702,1,0,0,0,290,1713, + 1,0,0,0,292,1747,1,0,0,0,294,1749,1,0,0,0,296,1752,1,0,0,0,298,1756,1,0, + 0,0,300,1761,1,0,0,0,302,1768,1,0,0,0,304,1772,1,0,0,0,306,1774,1,0,0,0, + 308,1790,1,0,0,0,310,1793,1,0,0,0,312,1802,1,0,0,0,314,1804,1,0,0,0,316, + 1813,1,0,0,0,318,1817,1,0,0,0,320,1821,1,0,0,0,322,1827,1,0,0,0,324,1837, + 1,0,0,0,326,1841,1,0,0,0,328,1847,1,0,0,0,330,1861,1,0,0,0,332,1863,1,0, + 0,0,334,1868,1,0,0,0,336,1873,1,0,0,0,338,1886,1,0,0,0,340,1891,1,0,0,0, + 342,1896,1,0,0,0,344,1904,1,0,0,0,346,1909,1,0,0,0,348,1938,1,0,0,0,350, + 1967,1,0,0,0,352,1969,1,0,0,0,354,1976,1,0,0,0,356,1983,1,0,0,0,358,1985, + 1,0,0,0,360,1996,1,0,0,0,362,2006,1,0,0,0,364,2022,1,0,0,0,366,2034,1,0, + 0,0,368,2051,1,0,0,0,370,2059,1,0,0,0,372,2061,1,0,0,0,374,2070,1,0,0,0, + 376,2093,1,0,0,0,378,2114,1,0,0,0,380,2131,1,0,0,0,382,2164,1,0,0,0,384, + 2169,1,0,0,0,386,2171,1,0,0,0,388,2174,1,0,0,0,390,2177,1,0,0,0,392,2180, + 1,0,0,0,394,2183,1,0,0,0,396,398,3,10,5,0,397,396,1,0,0,0,397,398,1,0,0, + 0,398,399,1,0,0,0,399,400,5,0,0,1,400,1,1,0,0,0,401,402,3,14,7,0,402,3, + 1,0,0,0,403,407,3,206,103,0,404,406,5,93,0,0,405,404,1,0,0,0,406,409,1, + 0,0,0,407,405,1,0,0,0,407,408,1,0,0,0,408,410,1,0,0,0,409,407,1,0,0,0,410, + 411,5,0,0,1,411,5,1,0,0,0,412,414,5,41,0,0,413,415,3,382,191,0,414,413, + 1,0,0,0,414,415,1,0,0,0,415,416,1,0,0,0,416,417,5,44,0,0,417,418,5,85,0, + 0,418,422,3,208,104,0,419,421,5,93,0,0,420,419,1,0,0,0,421,424,1,0,0,0, + 422,420,1,0,0,0,422,423,1,0,0,0,423,425,1,0,0,0,424,422,1,0,0,0,425,426, + 5,0,0,1,426,7,1,0,0,0,427,428,3,212,106,0,428,9,1,0,0,0,429,431,3,12,6, + 0,430,429,1,0,0,0,431,432,1,0,0,0,432,430,1,0,0,0,432,433,1,0,0,0,433,11, + 1,0,0,0,434,437,3,20,10,0,435,437,3,16,8,0,436,434,1,0,0,0,436,435,1,0, + 0,0,437,13,1,0,0,0,438,439,3,20,10,0,439,440,5,93,0,0,440,445,1,0,0,0,441, + 445,3,16,8,0,442,445,5,93,0,0,443,445,5,0,0,1,444,438,1,0,0,0,444,441,1, + 0,0,0,444,442,1,0,0,0,444,443,1,0,0,0,445,15,1,0,0,0,446,451,3,18,9,0,447, + 448,5,50,0,0,448,450,3,18,9,0,449,447,1,0,0,0,450,453,1,0,0,0,451,449,1, + 0,0,0,451,452,1,0,0,0,452,455,1,0,0,0,453,451,1,0,0,0,454,456,5,50,0,0, + 455,454,1,0,0,0,455,456,1,0,0,0,456,457,1,0,0,0,457,458,5,93,0,0,458,17, + 1,0,0,0,459,474,3,22,11,0,460,474,3,196,98,0,461,474,3,212,106,0,462,474, + 3,28,14,0,463,474,3,42,21,0,464,474,3,30,15,0,465,474,5,10,0,0,466,474, + 3,36,18,0,467,474,3,38,19,0,468,474,3,40,20,0,469,474,5,12,0,0,470,474, + 5,22,0,0,471,474,3,32,16,0,472,474,3,34,17,0,473,459,1,0,0,0,473,460,1, + 0,0,0,473,461,1,0,0,0,473,462,1,0,0,0,473,463,1,0,0,0,473,464,1,0,0,0,473, + 465,1,0,0,0,473,466,1,0,0,0,473,467,1,0,0,0,473,468,1,0,0,0,473,469,1,0, + 0,0,473,470,1,0,0,0,473,471,1,0,0,0,473,472,1,0,0,0,474,19,1,0,0,0,475, + 484,3,68,34,0,476,484,3,102,51,0,477,484,3,64,32,0,478,484,3,112,56,0,479, + 484,3,110,55,0,480,484,3,116,58,0,481,484,3,108,54,0,482,484,3,124,62,0, + 483,475,1,0,0,0,483,476,1,0,0,0,483,477,1,0,0,0,483,478,1,0,0,0,483,479, + 1,0,0,0,483,480,1,0,0,0,483,481,1,0,0,0,483,482,1,0,0,0,484,21,1,0,0,0, + 485,486,5,89,0,0,486,487,5,48,0,0,487,490,3,208,104,0,488,489,5,59,0,0, + 489,491,3,24,12,0,490,488,1,0,0,0,490,491,1,0,0,0,491,526,1,0,0,0,492,493, + 5,41,0,0,493,494,3,370,185,0,494,495,5,44,0,0,495,498,1,0,0,0,496,498,3, + 372,186,0,497,492,1,0,0,0,497,496,1,0,0,0,498,499,1,0,0,0,499,500,5,48, + 0,0,500,503,3,208,104,0,501,502,5,59,0,0,502,504,3,24,12,0,503,501,1,0, + 0,0,503,504,1,0,0,0,504,526,1,0,0,0,505,506,3,358,179,0,506,507,5,59,0, + 0,507,509,1,0,0,0,508,505,1,0,0,0,509,510,1,0,0,0,510,508,1,0,0,0,510,511, + 1,0,0,0,511,514,1,0,0,0,512,515,3,210,105,0,513,515,3,212,106,0,514,512, + 1,0,0,0,514,513,1,0,0,0,515,517,1,0,0,0,516,518,5,92,0,0,517,516,1,0,0, + 0,517,518,1,0,0,0,518,526,1,0,0,0,519,520,3,370,185,0,520,523,3,26,13,0, + 521,524,3,210,105,0,522,524,3,212,106,0,523,521,1,0,0,0,523,522,1,0,0,0, + 524,526,1,0,0,0,525,485,1,0,0,0,525,497,1,0,0,0,525,508,1,0,0,0,525,519, + 1,0,0,0,526,23,1,0,0,0,527,530,3,210,105,0,528,530,3,212,106,0,529,527, + 1,0,0,0,529,528,1,0,0,0,530,25,1,0,0,0,531,532,7,0,0,0,532,27,1,0,0,0,533, + 535,5,20,0,0,534,536,3,212,106,0,535,534,1,0,0,0,535,536,1,0,0,0,536,29, + 1,0,0,0,537,543,5,15,0,0,538,541,3,208,104,0,539,540,5,28,0,0,540,542,3, + 208,104,0,541,539,1,0,0,0,541,542,1,0,0,0,542,544,1,0,0,0,543,538,1,0,0, + 0,543,544,1,0,0,0,544,31,1,0,0,0,545,546,5,33,0,0,546,551,5,89,0,0,547, + 548,5,49,0,0,548,550,5,89,0,0,549,547,1,0,0,0,550,553,1,0,0,0,551,549,1, + 0,0,0,551,552,1,0,0,0,552,33,1,0,0,0,553,551,1,0,0,0,554,555,5,29,0,0,555, + 560,5,89,0,0,556,557,5,49,0,0,557,559,5,89,0,0,558,556,1,0,0,0,559,562, + 1,0,0,0,560,558,1,0,0,0,560,561,1,0,0,0,561,35,1,0,0,0,562,560,1,0,0,0, + 563,564,5,32,0,0,564,565,3,376,188,0,565,37,1,0,0,0,566,567,3,210,105,0, + 567,39,1,0,0,0,568,569,5,31,0,0,569,572,3,208,104,0,570,571,5,49,0,0,571, + 573,3,208,104,0,572,570,1,0,0,0,572,573,1,0,0,0,573,41,1,0,0,0,574,577, + 3,44,22,0,575,577,3,46,23,0,576,574,1,0,0,0,576,575,1,0,0,0,577,43,1,0, + 0,0,578,579,5,9,0,0,579,580,3,54,27,0,580,45,1,0,0,0,581,585,5,28,0,0,582, + 584,7,1,0,0,583,582,1,0,0,0,584,587,1,0,0,0,585,583,1,0,0,0,585,586,1,0, + 0,0,586,588,1,0,0,0,587,585,1,0,0,0,588,589,3,58,29,0,589,590,5,9,0,0,590, + 591,3,48,24,0,591,601,1,0,0,0,592,594,5,28,0,0,593,595,7,1,0,0,594,593, + 1,0,0,0,595,596,1,0,0,0,596,594,1,0,0,0,596,597,1,0,0,0,597,598,1,0,0,0, + 598,599,5,9,0,0,599,601,3,48,24,0,600,581,1,0,0,0,600,592,1,0,0,0,601,47, + 1,0,0,0,602,603,5,41,0,0,603,605,3,50,25,0,604,606,5,49,0,0,605,604,1,0, + 0,0,605,606,1,0,0,0,606,607,1,0,0,0,607,608,5,44,0,0,608,612,1,0,0,0,609, + 612,3,50,25,0,610,612,5,53,0,0,611,602,1,0,0,0,611,609,1,0,0,0,611,610, + 1,0,0,0,612,49,1,0,0,0,613,618,3,52,26,0,614,615,5,49,0,0,615,617,3,52, + 26,0,616,614,1,0,0,0,617,620,1,0,0,0,618,616,1,0,0,0,618,619,1,0,0,0,619, + 51,1,0,0,0,620,618,1,0,0,0,621,624,5,89,0,0,622,623,5,26,0,0,623,625,5, + 89,0,0,624,622,1,0,0,0,624,625,1,0,0,0,625,53,1,0,0,0,626,631,3,56,28,0, + 627,628,5,49,0,0,628,630,3,56,28,0,629,627,1,0,0,0,630,633,1,0,0,0,631, + 629,1,0,0,0,631,632,1,0,0,0,632,55,1,0,0,0,633,631,1,0,0,0,634,637,3,58, + 29,0,635,636,5,26,0,0,636,638,5,89,0,0,637,635,1,0,0,0,637,638,1,0,0,0, + 638,57,1,0,0,0,639,640,6,29,-1,0,640,641,5,89,0,0,641,647,1,0,0,0,642,643, + 10,2,0,0,643,644,5,47,0,0,644,646,5,89,0,0,645,642,1,0,0,0,646,649,1,0, + 0,0,647,645,1,0,0,0,647,648,1,0,0,0,648,59,1,0,0,0,649,647,1,0,0,0,650, + 651,5,93,0,0,651,652,5,1,0,0,652,653,3,10,5,0,653,654,5,2,0,0,654,657,1, + 0,0,0,655,657,3,16,8,0,656,650,1,0,0,0,656,655,1,0,0,0,657,61,1,0,0,0,658, + 659,5,83,0,0,659,660,3,222,111,0,660,661,5,93,0,0,661,663,1,0,0,0,662,658, + 1,0,0,0,663,664,1,0,0,0,664,662,1,0,0,0,664,665,1,0,0,0,665,63,1,0,0,0, + 666,667,3,62,31,0,667,668,3,66,33,0,668,671,1,0,0,0,669,671,3,66,33,0,670, + 666,1,0,0,0,670,669,1,0,0,0,671,65,1,0,0,0,672,673,5,17,0,0,673,675,5,89, + 0,0,674,676,3,198,99,0,675,674,1,0,0,0,675,676,1,0,0,0,676,682,1,0,0,0, + 677,679,5,41,0,0,678,680,3,346,173,0,679,678,1,0,0,0,679,680,1,0,0,0,680, + 681,1,0,0,0,681,683,5,44,0,0,682,677,1,0,0,0,682,683,1,0,0,0,683,684,1, + 0,0,0,684,685,5,48,0,0,685,686,3,60,30,0,686,67,1,0,0,0,687,688,3,62,31, + 0,688,689,3,70,35,0,689,692,1,0,0,0,690,692,3,70,35,0,691,687,1,0,0,0,691, + 690,1,0,0,0,692,69,1,0,0,0,693,694,5,27,0,0,694,696,5,89,0,0,695,697,3, + 198,99,0,696,695,1,0,0,0,696,697,1,0,0,0,697,698,1,0,0,0,698,700,5,41,0, + 0,699,701,3,72,36,0,700,699,1,0,0,0,700,701,1,0,0,0,701,702,1,0,0,0,702, + 705,5,44,0,0,703,704,5,85,0,0,704,706,3,208,104,0,705,703,1,0,0,0,705,706, + 1,0,0,0,706,707,1,0,0,0,707,709,5,48,0,0,708,710,3,384,192,0,709,708,1, + 0,0,0,709,710,1,0,0,0,710,711,1,0,0,0,711,733,3,60,30,0,712,713,5,36,0, + 0,713,714,5,27,0,0,714,716,5,89,0,0,715,717,3,198,99,0,716,715,1,0,0,0, + 716,717,1,0,0,0,717,718,1,0,0,0,718,720,5,41,0,0,719,721,3,72,36,0,720, + 719,1,0,0,0,720,721,1,0,0,0,721,722,1,0,0,0,722,725,5,44,0,0,723,724,5, + 85,0,0,724,726,3,208,104,0,725,723,1,0,0,0,725,726,1,0,0,0,726,727,1,0, + 0,0,727,729,5,48,0,0,728,730,3,384,192,0,729,728,1,0,0,0,729,730,1,0,0, + 0,730,731,1,0,0,0,731,733,3,60,30,0,732,693,1,0,0,0,732,712,1,0,0,0,733, + 71,1,0,0,0,734,735,3,74,37,0,735,73,1,0,0,0,736,740,3,76,38,0,737,739,3, + 84,42,0,738,737,1,0,0,0,739,742,1,0,0,0,740,738,1,0,0,0,740,741,1,0,0,0, + 741,746,1,0,0,0,742,740,1,0,0,0,743,745,3,88,44,0,744,743,1,0,0,0,745,748, + 1,0,0,0,746,744,1,0,0,0,746,747,1,0,0,0,747,750,1,0,0,0,748,746,1,0,0,0, + 749,751,3,80,40,0,750,749,1,0,0,0,750,751,1,0,0,0,751,786,1,0,0,0,752,756, + 3,78,39,0,753,755,3,88,44,0,754,753,1,0,0,0,755,758,1,0,0,0,756,754,1,0, + 0,0,756,757,1,0,0,0,757,760,1,0,0,0,758,756,1,0,0,0,759,761,3,80,40,0,760, + 759,1,0,0,0,760,761,1,0,0,0,761,786,1,0,0,0,762,764,3,84,42,0,763,762,1, + 0,0,0,764,765,1,0,0,0,765,763,1,0,0,0,765,766,1,0,0,0,766,770,1,0,0,0,767, + 769,3,88,44,0,768,767,1,0,0,0,769,772,1,0,0,0,770,768,1,0,0,0,770,771,1, + 0,0,0,771,774,1,0,0,0,772,770,1,0,0,0,773,775,3,80,40,0,774,773,1,0,0,0, + 774,775,1,0,0,0,775,786,1,0,0,0,776,778,3,88,44,0,777,776,1,0,0,0,778,779, + 1,0,0,0,779,777,1,0,0,0,779,780,1,0,0,0,780,782,1,0,0,0,781,783,3,80,40, + 0,782,781,1,0,0,0,782,783,1,0,0,0,783,786,1,0,0,0,784,786,3,80,40,0,785, + 736,1,0,0,0,785,752,1,0,0,0,785,763,1,0,0,0,785,777,1,0,0,0,785,784,1,0, + 0,0,786,75,1,0,0,0,787,789,3,84,42,0,788,787,1,0,0,0,789,790,1,0,0,0,790, + 788,1,0,0,0,790,791,1,0,0,0,791,792,1,0,0,0,792,794,5,54,0,0,793,795,5, + 49,0,0,794,793,1,0,0,0,794,795,1,0,0,0,795,77,1,0,0,0,796,798,3,84,42,0, + 797,796,1,0,0,0,798,801,1,0,0,0,799,797,1,0,0,0,799,800,1,0,0,0,800,803, + 1,0,0,0,801,799,1,0,0,0,802,804,3,88,44,0,803,802,1,0,0,0,804,805,1,0,0, + 0,805,803,1,0,0,0,805,806,1,0,0,0,806,807,1,0,0,0,807,809,5,54,0,0,808, + 810,5,49,0,0,809,808,1,0,0,0,809,810,1,0,0,0,810,79,1,0,0,0,811,812,5,53, + 0,0,812,816,3,84,42,0,813,815,3,90,45,0,814,813,1,0,0,0,815,818,1,0,0,0, + 816,814,1,0,0,0,816,817,1,0,0,0,817,820,1,0,0,0,818,816,1,0,0,0,819,821, + 3,82,41,0,820,819,1,0,0,0,820,821,1,0,0,0,821,845,1,0,0,0,822,823,5,53, + 0,0,823,827,3,86,43,0,824,826,3,90,45,0,825,824,1,0,0,0,826,829,1,0,0,0, + 827,825,1,0,0,0,827,828,1,0,0,0,828,831,1,0,0,0,829,827,1,0,0,0,830,832, + 3,82,41,0,831,830,1,0,0,0,831,832,1,0,0,0,832,845,1,0,0,0,833,834,5,53, + 0,0,834,836,5,49,0,0,835,837,3,90,45,0,836,835,1,0,0,0,837,838,1,0,0,0, + 838,836,1,0,0,0,838,839,1,0,0,0,839,841,1,0,0,0,840,842,3,82,41,0,841,840, + 1,0,0,0,841,842,1,0,0,0,842,845,1,0,0,0,843,845,3,82,41,0,844,811,1,0,0, + 0,844,822,1,0,0,0,844,833,1,0,0,0,844,843,1,0,0,0,845,81,1,0,0,0,846,847, + 5,69,0,0,847,848,3,84,42,0,848,83,1,0,0,0,849,851,3,92,46,0,850,852,5,49, + 0,0,851,850,1,0,0,0,851,852,1,0,0,0,852,854,1,0,0,0,853,855,5,92,0,0,854, + 853,1,0,0,0,854,855,1,0,0,0,855,85,1,0,0,0,856,858,3,94,47,0,857,859,5, + 49,0,0,858,857,1,0,0,0,858,859,1,0,0,0,859,861,1,0,0,0,860,862,5,92,0,0, + 861,860,1,0,0,0,861,862,1,0,0,0,862,87,1,0,0,0,863,864,3,92,46,0,864,866, + 3,100,50,0,865,867,5,49,0,0,866,865,1,0,0,0,866,867,1,0,0,0,867,869,1,0, + 0,0,868,870,5,92,0,0,869,868,1,0,0,0,869,870,1,0,0,0,870,89,1,0,0,0,871, + 873,3,92,46,0,872,874,3,100,50,0,873,872,1,0,0,0,873,874,1,0,0,0,874,876, + 1,0,0,0,875,877,5,49,0,0,876,875,1,0,0,0,876,877,1,0,0,0,877,879,1,0,0, + 0,878,880,5,92,0,0,879,878,1,0,0,0,879,880,1,0,0,0,880,91,1,0,0,0,881,883, + 5,89,0,0,882,884,3,96,48,0,883,882,1,0,0,0,883,884,1,0,0,0,884,93,1,0,0, + 0,885,886,5,89,0,0,886,887,3,98,49,0,887,95,1,0,0,0,888,889,5,48,0,0,889, + 890,3,208,104,0,890,97,1,0,0,0,891,892,5,48,0,0,892,893,3,214,107,0,893, + 99,1,0,0,0,894,895,5,59,0,0,895,896,3,208,104,0,896,101,1,0,0,0,897,898, + 5,38,0,0,898,899,3,222,111,0,899,900,5,48,0,0,900,905,3,60,30,0,901,906, + 3,104,52,0,902,904,3,106,53,0,903,902,1,0,0,0,903,904,1,0,0,0,904,906,1, + 0,0,0,905,901,1,0,0,0,905,903,1,0,0,0,906,103,1,0,0,0,907,908,5,37,0,0, + 908,909,3,222,111,0,909,910,5,48,0,0,910,915,3,60,30,0,911,916,3,104,52, + 0,912,914,3,106,53,0,913,912,1,0,0,0,913,914,1,0,0,0,914,916,1,0,0,0,915, + 911,1,0,0,0,915,913,1,0,0,0,916,105,1,0,0,0,917,918,5,8,0,0,918,919,5,48, + 0,0,919,920,3,60,30,0,920,107,1,0,0,0,921,922,5,30,0,0,922,923,3,222,111, + 0,923,924,5,48,0,0,924,926,3,60,30,0,925,927,3,106,53,0,926,925,1,0,0,0, + 926,927,1,0,0,0,927,109,1,0,0,0,928,930,5,36,0,0,929,928,1,0,0,0,929,930, + 1,0,0,0,930,931,1,0,0,0,931,932,5,23,0,0,932,933,3,358,179,0,933,934,5, + 14,0,0,934,935,3,212,106,0,935,937,5,48,0,0,936,938,5,92,0,0,937,936,1, + 0,0,0,937,938,1,0,0,0,938,939,1,0,0,0,939,941,3,60,30,0,940,942,3,106,53, + 0,941,940,1,0,0,0,941,942,1,0,0,0,942,111,1,0,0,0,943,945,5,36,0,0,944, + 943,1,0,0,0,944,945,1,0,0,0,945,946,1,0,0,0,946,974,5,35,0,0,947,948,5, + 41,0,0,948,953,3,114,57,0,949,950,5,49,0,0,950,952,3,114,57,0,951,949,1, + 0,0,0,952,955,1,0,0,0,953,951,1,0,0,0,953,954,1,0,0,0,954,957,1,0,0,0,955, + 953,1,0,0,0,956,958,5,49,0,0,957,956,1,0,0,0,957,958,1,0,0,0,958,959,1, + 0,0,0,959,960,5,44,0,0,960,961,5,48,0,0,961,975,1,0,0,0,962,967,3,114,57, + 0,963,964,5,49,0,0,964,966,3,114,57,0,965,963,1,0,0,0,966,969,1,0,0,0,967, + 965,1,0,0,0,967,968,1,0,0,0,968,970,1,0,0,0,969,967,1,0,0,0,970,972,5,48, + 0,0,971,973,5,92,0,0,972,971,1,0,0,0,972,973,1,0,0,0,973,975,1,0,0,0,974, + 947,1,0,0,0,974,962,1,0,0,0,975,976,1,0,0,0,976,977,3,60,30,0,977,113,1, + 0,0,0,978,981,3,208,104,0,979,980,5,26,0,0,980,982,3,364,182,0,981,979, + 1,0,0,0,981,982,1,0,0,0,982,115,1,0,0,0,983,984,5,25,0,0,984,985,5,48,0, + 0,985,986,3,60,30,0,986,987,3,122,61,0,987,1017,1,0,0,0,988,989,5,25,0, + 0,989,990,5,48,0,0,990,992,3,60,30,0,991,993,3,118,59,0,992,991,1,0,0,0, + 993,994,1,0,0,0,994,992,1,0,0,0,994,995,1,0,0,0,995,997,1,0,0,0,996,998, + 3,106,53,0,997,996,1,0,0,0,997,998,1,0,0,0,998,1000,1,0,0,0,999,1001,3, + 122,61,0,1000,999,1,0,0,0,1000,1001,1,0,0,0,1001,1017,1,0,0,0,1002,1003, + 5,25,0,0,1003,1004,5,48,0,0,1004,1006,3,60,30,0,1005,1007,3,120,60,0,1006, + 1005,1,0,0,0,1007,1008,1,0,0,0,1008,1006,1,0,0,0,1008,1009,1,0,0,0,1009, + 1011,1,0,0,0,1010,1012,3,106,53,0,1011,1010,1,0,0,0,1011,1012,1,0,0,0,1012, + 1014,1,0,0,0,1013,1015,3,122,61,0,1014,1013,1,0,0,0,1014,1015,1,0,0,0,1015, + 1017,1,0,0,0,1016,983,1,0,0,0,1016,988,1,0,0,0,1016,1002,1,0,0,0,1017,117, + 1,0,0,0,1018,1024,5,13,0,0,1019,1022,3,208,104,0,1020,1021,5,26,0,0,1021, + 1023,5,89,0,0,1022,1020,1,0,0,0,1022,1023,1,0,0,0,1023,1025,1,0,0,0,1024, + 1019,1,0,0,0,1024,1025,1,0,0,0,1025,1026,1,0,0,0,1026,1027,5,48,0,0,1027, + 1028,3,60,30,0,1028,119,1,0,0,0,1029,1030,5,13,0,0,1030,1031,5,53,0,0,1031, + 1034,3,208,104,0,1032,1033,5,26,0,0,1033,1035,5,89,0,0,1034,1032,1,0,0, + 0,1034,1035,1,0,0,0,1035,1036,1,0,0,0,1036,1037,5,48,0,0,1037,1038,3,60, + 30,0,1038,121,1,0,0,0,1039,1040,5,18,0,0,1040,1041,5,48,0,0,1041,1042,3, + 60,30,0,1042,123,1,0,0,0,1043,1044,3,388,194,0,1044,1045,3,126,63,0,1045, + 1046,5,48,0,0,1046,1047,5,93,0,0,1047,1049,5,1,0,0,1048,1050,3,128,64,0, + 1049,1048,1,0,0,0,1050,1051,1,0,0,0,1051,1049,1,0,0,0,1051,1052,1,0,0,0, + 1052,1053,1,0,0,0,1053,1054,5,2,0,0,1054,125,1,0,0,0,1055,1056,3,218,109, + 0,1056,1058,5,49,0,0,1057,1059,3,216,108,0,1058,1057,1,0,0,0,1058,1059, + 1,0,0,0,1059,1062,1,0,0,0,1060,1062,3,222,111,0,1061,1055,1,0,0,0,1061, + 1060,1,0,0,0,1062,127,1,0,0,0,1063,1064,3,390,195,0,1064,1066,3,132,66, + 0,1065,1067,3,130,65,0,1066,1065,1,0,0,0,1066,1067,1,0,0,0,1067,1068,1, + 0,0,0,1068,1069,5,48,0,0,1069,1070,3,60,30,0,1070,129,1,0,0,0,1071,1072, + 5,38,0,0,1072,1073,3,222,111,0,1073,131,1,0,0,0,1074,1077,3,172,86,0,1075, + 1077,3,134,67,0,1076,1074,1,0,0,0,1076,1075,1,0,0,0,1077,133,1,0,0,0,1078, + 1081,3,136,68,0,1079,1081,3,138,69,0,1080,1078,1,0,0,0,1080,1079,1,0,0, + 0,1081,135,1,0,0,0,1082,1083,3,138,69,0,1083,1084,5,26,0,0,1084,1085,3, + 158,79,0,1085,137,1,0,0,0,1086,1091,3,140,70,0,1087,1088,5,55,0,0,1088, + 1090,3,140,70,0,1089,1087,1,0,0,0,1090,1093,1,0,0,0,1091,1089,1,0,0,0,1091, + 1092,1,0,0,0,1092,139,1,0,0,0,1093,1091,1,0,0,0,1094,1103,3,142,71,0,1095, + 1103,3,156,78,0,1096,1103,3,160,80,0,1097,1103,3,162,81,0,1098,1103,3,168, + 84,0,1099,1103,3,170,85,0,1100,1103,3,180,90,0,1101,1103,3,188,94,0,1102, + 1094,1,0,0,0,1102,1095,1,0,0,0,1102,1096,1,0,0,0,1102,1097,1,0,0,0,1102, + 1098,1,0,0,0,1102,1099,1,0,0,0,1102,1100,1,0,0,0,1102,1101,1,0,0,0,1103, + 141,1,0,0,0,1104,1111,3,148,74,0,1105,1111,3,146,73,0,1106,1111,3,318,159, + 0,1107,1111,5,11,0,0,1108,1111,5,16,0,0,1109,1111,5,6,0,0,1110,1104,1,0, + 0,0,1110,1105,1,0,0,0,1110,1106,1,0,0,0,1110,1107,1,0,0,0,1110,1108,1,0, + 0,0,1110,1109,1,0,0,0,1111,143,1,0,0,0,1112,1119,3,148,74,0,1113,1119,3, + 146,73,0,1114,1119,3,318,159,0,1115,1119,5,11,0,0,1116,1119,5,16,0,0,1117, + 1119,5,6,0,0,1118,1112,1,0,0,0,1118,1113,1,0,0,0,1118,1114,1,0,0,0,1118, + 1115,1,0,0,0,1118,1116,1,0,0,0,1118,1117,1,0,0,0,1119,145,1,0,0,0,1120, + 1121,3,150,75,0,1121,1122,7,2,0,0,1122,1123,3,154,77,0,1123,147,1,0,0,0, + 1124,1126,5,52,0,0,1125,1124,1,0,0,0,1125,1126,1,0,0,0,1126,1127,1,0,0, + 0,1127,1128,5,90,0,0,1128,149,1,0,0,0,1129,1131,5,52,0,0,1130,1129,1,0, + 0,0,1130,1131,1,0,0,0,1131,1132,1,0,0,0,1132,1133,3,152,76,0,1133,151,1, + 0,0,0,1134,1135,5,90,0,0,1135,153,1,0,0,0,1136,1137,5,90,0,0,1137,155,1, + 0,0,0,1138,1139,3,158,79,0,1139,157,1,0,0,0,1140,1141,3,394,197,0,1141, + 159,1,0,0,0,1142,1143,3,392,196,0,1143,161,1,0,0,0,1144,1145,3,164,82,0, + 1145,163,1,0,0,0,1146,1149,5,89,0,0,1147,1148,5,47,0,0,1148,1150,5,89,0, + 0,1149,1147,1,0,0,0,1150,1151,1,0,0,0,1151,1149,1,0,0,0,1151,1152,1,0,0, + 0,1152,165,1,0,0,0,1153,1158,5,89,0,0,1154,1155,5,47,0,0,1155,1157,5,89, + 0,0,1156,1154,1,0,0,0,1157,1160,1,0,0,0,1158,1156,1,0,0,0,1158,1159,1,0, + 0,0,1159,167,1,0,0,0,1160,1158,1,0,0,0,1161,1162,5,41,0,0,1162,1163,3,134, + 67,0,1163,1164,5,44,0,0,1164,169,1,0,0,0,1165,1167,5,42,0,0,1166,1168,3, + 174,87,0,1167,1166,1,0,0,0,1167,1168,1,0,0,0,1168,1169,1,0,0,0,1169,1176, + 5,45,0,0,1170,1172,5,41,0,0,1171,1173,3,172,86,0,1172,1171,1,0,0,0,1172, + 1173,1,0,0,0,1173,1174,1,0,0,0,1174,1176,5,44,0,0,1175,1165,1,0,0,0,1175, + 1170,1,0,0,0,1176,171,1,0,0,0,1177,1178,3,176,88,0,1178,1180,5,49,0,0,1179, + 1181,3,174,87,0,1180,1179,1,0,0,0,1180,1181,1,0,0,0,1181,173,1,0,0,0,1182, + 1187,3,176,88,0,1183,1184,5,49,0,0,1184,1186,3,176,88,0,1185,1183,1,0,0, + 0,1186,1189,1,0,0,0,1187,1185,1,0,0,0,1187,1188,1,0,0,0,1188,1191,1,0,0, + 0,1189,1187,1,0,0,0,1190,1192,5,49,0,0,1191,1190,1,0,0,0,1191,1192,1,0, + 0,0,1192,175,1,0,0,0,1193,1196,3,178,89,0,1194,1196,3,134,67,0,1195,1193, + 1,0,0,0,1195,1194,1,0,0,0,1196,177,1,0,0,0,1197,1198,5,53,0,0,1198,1202, + 3,158,79,0,1199,1200,5,53,0,0,1200,1202,3,160,80,0,1201,1197,1,0,0,0,1201, + 1199,1,0,0,0,1202,179,1,0,0,0,1203,1204,5,43,0,0,1204,1224,5,46,0,0,1205, + 1206,5,43,0,0,1206,1208,3,186,93,0,1207,1209,5,49,0,0,1208,1207,1,0,0,0, + 1208,1209,1,0,0,0,1209,1210,1,0,0,0,1210,1211,5,46,0,0,1211,1224,1,0,0, + 0,1212,1213,5,43,0,0,1213,1216,3,182,91,0,1214,1215,5,49,0,0,1215,1217, + 3,186,93,0,1216,1214,1,0,0,0,1216,1217,1,0,0,0,1217,1219,1,0,0,0,1218,1220, + 5,49,0,0,1219,1218,1,0,0,0,1219,1220,1,0,0,0,1220,1221,1,0,0,0,1221,1222, + 5,46,0,0,1222,1224,1,0,0,0,1223,1203,1,0,0,0,1223,1205,1,0,0,0,1223,1212, + 1,0,0,0,1224,181,1,0,0,0,1225,1230,3,184,92,0,1226,1227,5,49,0,0,1227,1229, + 3,184,92,0,1228,1226,1,0,0,0,1229,1232,1,0,0,0,1230,1228,1,0,0,0,1230,1231, + 1,0,0,0,1231,183,1,0,0,0,1232,1230,1,0,0,0,1233,1236,3,144,72,0,1234,1236, + 3,164,82,0,1235,1233,1,0,0,0,1235,1234,1,0,0,0,1236,1237,1,0,0,0,1237,1238, + 5,48,0,0,1238,1239,3,134,67,0,1239,185,1,0,0,0,1240,1241,5,69,0,0,1241, + 1242,3,158,79,0,1242,187,1,0,0,0,1243,1244,3,166,83,0,1244,1256,5,41,0, + 0,1245,1248,3,190,95,0,1246,1247,5,49,0,0,1247,1249,3,192,96,0,1248,1246, + 1,0,0,0,1248,1249,1,0,0,0,1249,1252,1,0,0,0,1250,1252,3,192,96,0,1251,1245, + 1,0,0,0,1251,1250,1,0,0,0,1252,1254,1,0,0,0,1253,1255,5,49,0,0,1254,1253, + 1,0,0,0,1254,1255,1,0,0,0,1255,1257,1,0,0,0,1256,1251,1,0,0,0,1256,1257, + 1,0,0,0,1257,1258,1,0,0,0,1258,1259,5,44,0,0,1259,189,1,0,0,0,1260,1265, + 3,134,67,0,1261,1262,5,49,0,0,1262,1264,3,134,67,0,1263,1261,1,0,0,0,1264, + 1267,1,0,0,0,1265,1263,1,0,0,0,1265,1266,1,0,0,0,1266,191,1,0,0,0,1267, + 1265,1,0,0,0,1268,1273,3,194,97,0,1269,1270,5,49,0,0,1270,1272,3,194,97, + 0,1271,1269,1,0,0,0,1272,1275,1,0,0,0,1273,1271,1,0,0,0,1273,1274,1,0,0, + 0,1274,193,1,0,0,0,1275,1273,1,0,0,0,1276,1277,5,89,0,0,1277,1278,5,59, + 0,0,1278,1279,3,134,67,0,1279,195,1,0,0,0,1280,1281,3,386,193,0,1281,1283, + 5,89,0,0,1282,1284,3,198,99,0,1283,1282,1,0,0,0,1283,1284,1,0,0,0,1284, + 1285,1,0,0,0,1285,1286,5,59,0,0,1286,1287,3,208,104,0,1287,197,1,0,0,0, + 1288,1289,5,42,0,0,1289,1290,3,200,100,0,1290,1291,5,45,0,0,1291,199,1, + 0,0,0,1292,1297,3,202,101,0,1293,1294,5,49,0,0,1294,1296,3,202,101,0,1295, + 1293,1,0,0,0,1296,1299,1,0,0,0,1297,1295,1,0,0,0,1297,1298,1,0,0,0,1298, + 1301,1,0,0,0,1299,1297,1,0,0,0,1300,1302,5,49,0,0,1301,1300,1,0,0,0,1301, + 1302,1,0,0,0,1302,201,1,0,0,0,1303,1305,5,89,0,0,1304,1306,3,204,102,0, + 1305,1304,1,0,0,0,1305,1306,1,0,0,0,1306,1320,1,0,0,0,1307,1308,5,53,0, + 0,1308,1311,5,89,0,0,1309,1310,5,48,0,0,1310,1312,3,208,104,0,1311,1309, + 1,0,0,0,1311,1312,1,0,0,0,1312,1320,1,0,0,0,1313,1314,5,69,0,0,1314,1317, + 5,89,0,0,1315,1316,5,48,0,0,1316,1318,3,208,104,0,1317,1315,1,0,0,0,1317, + 1318,1,0,0,0,1318,1320,1,0,0,0,1319,1303,1,0,0,0,1319,1307,1,0,0,0,1319, + 1313,1,0,0,0,1320,203,1,0,0,0,1321,1322,5,48,0,0,1322,1323,3,208,104,0, + 1323,205,1,0,0,0,1324,1329,3,208,104,0,1325,1326,5,49,0,0,1326,1328,3,208, + 104,0,1327,1325,1,0,0,0,1328,1331,1,0,0,0,1329,1327,1,0,0,0,1329,1330,1, + 0,0,0,1330,1333,1,0,0,0,1331,1329,1,0,0,0,1332,1334,5,49,0,0,1333,1332, + 1,0,0,0,1333,1334,1,0,0,0,1334,207,1,0,0,0,1335,1341,3,224,112,0,1336,1337, + 5,38,0,0,1337,1338,3,224,112,0,1338,1339,5,8,0,0,1339,1340,3,208,104,0, + 1340,1342,1,0,0,0,1341,1336,1,0,0,0,1341,1342,1,0,0,0,1342,1345,1,0,0,0, + 1343,1345,3,282,141,0,1344,1335,1,0,0,0,1344,1343,1,0,0,0,1345,209,1,0, + 0,0,1346,1352,5,40,0,0,1347,1348,5,28,0,0,1348,1353,3,208,104,0,1349,1351, + 3,212,106,0,1350,1349,1,0,0,0,1350,1351,1,0,0,0,1351,1353,1,0,0,0,1352, + 1347,1,0,0,0,1352,1350,1,0,0,0,1353,211,1,0,0,0,1354,1359,3,214,107,0,1355, + 1356,5,49,0,0,1356,1358,3,214,107,0,1357,1355,1,0,0,0,1358,1361,1,0,0,0, + 1359,1357,1,0,0,0,1359,1360,1,0,0,0,1360,1363,1,0,0,0,1361,1359,1,0,0,0, + 1362,1364,5,49,0,0,1363,1362,1,0,0,0,1363,1364,1,0,0,0,1364,213,1,0,0,0, + 1365,1366,5,53,0,0,1366,1369,3,254,127,0,1367,1369,3,208,104,0,1368,1365, + 1,0,0,0,1368,1367,1,0,0,0,1369,215,1,0,0,0,1370,1375,3,218,109,0,1371,1372, + 5,49,0,0,1372,1374,3,218,109,0,1373,1371,1,0,0,0,1374,1377,1,0,0,0,1375, + 1373,1,0,0,0,1375,1376,1,0,0,0,1376,1379,1,0,0,0,1377,1375,1,0,0,0,1378, + 1380,5,49,0,0,1379,1378,1,0,0,0,1379,1380,1,0,0,0,1380,217,1,0,0,0,1381, + 1382,5,53,0,0,1382,1385,3,254,127,0,1383,1385,3,222,111,0,1384,1381,1,0, + 0,0,1384,1383,1,0,0,0,1385,219,1,0,0,0,1386,1387,5,89,0,0,1387,1388,5,87, + 0,0,1388,1389,3,208,104,0,1389,221,1,0,0,0,1390,1393,3,220,110,0,1391,1393, + 3,208,104,0,1392,1390,1,0,0,0,1392,1391,1,0,0,0,1393,223,1,0,0,0,1394,1399, + 3,226,113,0,1395,1396,5,39,0,0,1396,1398,3,226,113,0,1397,1395,1,0,0,0, + 1398,1401,1,0,0,0,1399,1397,1,0,0,0,1399,1400,1,0,0,0,1400,225,1,0,0,0, + 1401,1399,1,0,0,0,1402,1407,3,228,114,0,1403,1404,5,21,0,0,1404,1406,3, + 228,114,0,1405,1403,1,0,0,0,1406,1409,1,0,0,0,1407,1405,1,0,0,0,1407,1408, + 1,0,0,0,1408,227,1,0,0,0,1409,1407,1,0,0,0,1410,1411,5,34,0,0,1411,1414, + 3,228,114,0,1412,1414,3,230,115,0,1413,1410,1,0,0,0,1413,1412,1,0,0,0,1414, + 229,1,0,0,0,1415,1419,3,254,127,0,1416,1418,3,232,116,0,1417,1416,1,0,0, + 0,1418,1421,1,0,0,0,1419,1417,1,0,0,0,1419,1420,1,0,0,0,1420,231,1,0,0, + 0,1421,1419,1,0,0,0,1422,1433,3,234,117,0,1423,1433,3,236,118,0,1424,1433, + 3,238,119,0,1425,1433,3,240,120,0,1426,1433,3,242,121,0,1427,1433,3,244, + 122,0,1428,1433,3,246,123,0,1429,1433,3,248,124,0,1430,1433,3,250,125,0, + 1431,1433,3,252,126,0,1432,1422,1,0,0,0,1432,1423,1,0,0,0,1432,1424,1,0, + 0,0,1432,1425,1,0,0,0,1432,1426,1,0,0,0,1432,1427,1,0,0,0,1432,1428,1,0, + 0,0,1432,1429,1,0,0,0,1432,1430,1,0,0,0,1432,1431,1,0,0,0,1433,233,1,0, + 0,0,1434,1435,5,61,0,0,1435,1436,3,254,127,0,1436,235,1,0,0,0,1437,1438, + 5,62,0,0,1438,1439,3,254,127,0,1439,237,1,0,0,0,1440,1441,5,63,0,0,1441, + 1442,3,254,127,0,1442,239,1,0,0,0,1443,1444,5,57,0,0,1444,1445,3,254,127, + 0,1445,241,1,0,0,0,1446,1447,5,64,0,0,1447,1448,3,254,127,0,1448,243,1, + 0,0,0,1449,1450,5,58,0,0,1450,1451,3,254,127,0,1451,245,1,0,0,0,1452,1453, + 5,34,0,0,1453,1454,5,14,0,0,1454,1455,3,254,127,0,1455,247,1,0,0,0,1456, + 1457,5,14,0,0,1457,1458,3,254,127,0,1458,249,1,0,0,0,1459,1460,5,19,0,0, + 1460,1461,5,34,0,0,1461,1462,3,254,127,0,1462,251,1,0,0,0,1463,1464,5,19, + 0,0,1464,1465,3,254,127,0,1465,253,1,0,0,0,1466,1467,6,127,-1,0,1467,1468, + 3,256,128,0,1468,1474,1,0,0,0,1469,1470,10,2,0,0,1470,1471,5,55,0,0,1471, + 1473,3,256,128,0,1472,1469,1,0,0,0,1473,1476,1,0,0,0,1474,1472,1,0,0,0, + 1474,1475,1,0,0,0,1475,255,1,0,0,0,1476,1474,1,0,0,0,1477,1478,6,128,-1, + 0,1478,1479,3,258,129,0,1479,1485,1,0,0,0,1480,1481,10,2,0,0,1481,1482, + 5,66,0,0,1482,1484,3,258,129,0,1483,1480,1,0,0,0,1484,1487,1,0,0,0,1485, + 1483,1,0,0,0,1485,1486,1,0,0,0,1486,257,1,0,0,0,1487,1485,1,0,0,0,1488, + 1489,6,129,-1,0,1489,1490,3,260,130,0,1490,1496,1,0,0,0,1491,1492,10,2, + 0,0,1492,1493,5,56,0,0,1493,1495,3,260,130,0,1494,1491,1,0,0,0,1495,1498, + 1,0,0,0,1496,1494,1,0,0,0,1496,1497,1,0,0,0,1497,259,1,0,0,0,1498,1496, + 1,0,0,0,1499,1500,6,130,-1,0,1500,1501,3,262,131,0,1501,1507,1,0,0,0,1502, + 1503,10,2,0,0,1503,1504,7,3,0,0,1504,1506,3,262,131,0,1505,1502,1,0,0,0, + 1506,1509,1,0,0,0,1507,1505,1,0,0,0,1507,1508,1,0,0,0,1508,261,1,0,0,0, + 1509,1507,1,0,0,0,1510,1511,6,131,-1,0,1511,1512,3,264,132,0,1512,1518, + 1,0,0,0,1513,1514,10,2,0,0,1514,1515,7,2,0,0,1515,1517,3,264,132,0,1516, + 1513,1,0,0,0,1517,1520,1,0,0,0,1518,1516,1,0,0,0,1518,1519,1,0,0,0,1519, + 263,1,0,0,0,1520,1518,1,0,0,0,1521,1522,6,132,-1,0,1522,1523,3,266,133, + 0,1523,1529,1,0,0,0,1524,1525,10,2,0,0,1525,1526,7,4,0,0,1526,1528,3,266, + 133,0,1527,1524,1,0,0,0,1528,1531,1,0,0,0,1529,1527,1,0,0,0,1529,1530,1, + 0,0,0,1530,265,1,0,0,0,1531,1529,1,0,0,0,1532,1533,5,51,0,0,1533,1540,3, + 266,133,0,1534,1535,5,52,0,0,1535,1540,3,266,133,0,1536,1537,5,65,0,0,1537, + 1540,3,266,133,0,1538,1540,3,268,134,0,1539,1532,1,0,0,0,1539,1534,1,0, + 0,0,1539,1536,1,0,0,0,1539,1538,1,0,0,0,1540,267,1,0,0,0,1541,1544,3,270, + 135,0,1542,1543,5,69,0,0,1543,1545,3,266,133,0,1544,1542,1,0,0,0,1544,1545, + 1,0,0,0,1545,269,1,0,0,0,1546,1547,5,7,0,0,1547,1550,3,272,136,0,1548,1550, + 3,272,136,0,1549,1546,1,0,0,0,1549,1548,1,0,0,0,1550,271,1,0,0,0,1551,1552, + 6,136,-1,0,1552,1553,3,278,139,0,1553,1571,1,0,0,0,1554,1567,10,2,0,0,1555, + 1556,5,47,0,0,1556,1568,5,89,0,0,1557,1568,3,342,171,0,1558,1560,5,41,0, + 0,1559,1561,3,346,173,0,1560,1559,1,0,0,0,1560,1561,1,0,0,0,1561,1562,1, + 0,0,0,1562,1568,5,44,0,0,1563,1564,5,42,0,0,1564,1565,3,274,137,0,1565, + 1566,5,45,0,0,1566,1568,1,0,0,0,1567,1555,1,0,0,0,1567,1557,1,0,0,0,1567, + 1558,1,0,0,0,1567,1563,1,0,0,0,1568,1570,1,0,0,0,1569,1554,1,0,0,0,1570, + 1573,1,0,0,0,1571,1569,1,0,0,0,1571,1572,1,0,0,0,1572,273,1,0,0,0,1573, + 1571,1,0,0,0,1574,1593,3,276,138,0,1575,1578,3,276,138,0,1576,1578,3,352, + 176,0,1577,1575,1,0,0,0,1577,1576,1,0,0,0,1578,1586,1,0,0,0,1579,1582,5, + 49,0,0,1580,1583,3,276,138,0,1581,1583,3,352,176,0,1582,1580,1,0,0,0,1582, + 1581,1,0,0,0,1583,1585,1,0,0,0,1584,1579,1,0,0,0,1585,1588,1,0,0,0,1586, + 1584,1,0,0,0,1586,1587,1,0,0,0,1587,1590,1,0,0,0,1588,1586,1,0,0,0,1589, + 1591,5,49,0,0,1590,1589,1,0,0,0,1590,1591,1,0,0,0,1591,1593,1,0,0,0,1592, + 1574,1,0,0,0,1592,1577,1,0,0,0,1593,275,1,0,0,0,1594,1596,3,208,104,0,1595, + 1594,1,0,0,0,1595,1596,1,0,0,0,1596,1597,1,0,0,0,1597,1599,5,48,0,0,1598, + 1600,3,208,104,0,1599,1598,1,0,0,0,1599,1600,1,0,0,0,1600,1605,1,0,0,0, + 1601,1603,5,48,0,0,1602,1604,3,208,104,0,1603,1602,1,0,0,0,1603,1604,1, + 0,0,0,1604,1606,1,0,0,0,1605,1601,1,0,0,0,1605,1606,1,0,0,0,1606,1609,1, + 0,0,0,1607,1609,3,222,111,0,1608,1595,1,0,0,0,1608,1607,1,0,0,0,1609,277, + 1,0,0,0,1610,1633,5,89,0,0,1611,1633,5,16,0,0,1612,1633,5,6,0,0,1613,1633, + 5,11,0,0,1614,1633,3,318,159,0,1615,1633,5,90,0,0,1616,1620,3,322,161,0, + 1617,1620,3,280,140,0,1618,1620,3,342,171,0,1619,1616,1,0,0,0,1619,1617, + 1,0,0,0,1619,1618,1,0,0,0,1620,1633,1,0,0,0,1621,1624,3,320,160,0,1622, + 1624,3,338,169,0,1623,1621,1,0,0,0,1623,1622,1,0,0,0,1624,1633,1,0,0,0, + 1625,1630,3,326,163,0,1626,1630,3,324,162,0,1627,1630,3,344,172,0,1628, + 1630,3,340,170,0,1629,1625,1,0,0,0,1629,1626,1,0,0,0,1629,1627,1,0,0,0, + 1629,1628,1,0,0,0,1630,1633,1,0,0,0,1631,1633,5,86,0,0,1632,1610,1,0,0, + 0,1632,1611,1,0,0,0,1632,1612,1,0,0,0,1632,1613,1,0,0,0,1632,1614,1,0,0, + 0,1632,1615,1,0,0,0,1632,1619,1,0,0,0,1632,1623,1,0,0,0,1632,1629,1,0,0, + 0,1632,1631,1,0,0,0,1633,279,1,0,0,0,1634,1637,5,41,0,0,1635,1638,3,210, + 105,0,1636,1638,3,222,111,0,1637,1635,1,0,0,0,1637,1636,1,0,0,0,1638,1639, + 1,0,0,0,1639,1640,5,44,0,0,1640,281,1,0,0,0,1641,1643,5,24,0,0,1642,1644, + 3,284,142,0,1643,1642,1,0,0,0,1643,1644,1,0,0,0,1644,1645,1,0,0,0,1645, + 1646,5,48,0,0,1646,1647,3,208,104,0,1647,283,1,0,0,0,1648,1649,3,286,143, + 0,1649,285,1,0,0,0,1650,1654,3,288,144,0,1651,1653,3,296,148,0,1652,1651, + 1,0,0,0,1653,1656,1,0,0,0,1654,1652,1,0,0,0,1654,1655,1,0,0,0,1655,1660, + 1,0,0,0,1656,1654,1,0,0,0,1657,1659,3,298,149,0,1658,1657,1,0,0,0,1659, + 1662,1,0,0,0,1660,1658,1,0,0,0,1660,1661,1,0,0,0,1661,1664,1,0,0,0,1662, + 1660,1,0,0,0,1663,1665,3,292,146,0,1664,1663,1,0,0,0,1664,1665,1,0,0,0, + 1665,1700,1,0,0,0,1666,1670,3,290,145,0,1667,1669,3,298,149,0,1668,1667, + 1,0,0,0,1669,1672,1,0,0,0,1670,1668,1,0,0,0,1670,1671,1,0,0,0,1671,1674, + 1,0,0,0,1672,1670,1,0,0,0,1673,1675,3,292,146,0,1674,1673,1,0,0,0,1674, + 1675,1,0,0,0,1675,1700,1,0,0,0,1676,1678,3,296,148,0,1677,1676,1,0,0,0, + 1678,1679,1,0,0,0,1679,1677,1,0,0,0,1679,1680,1,0,0,0,1680,1684,1,0,0,0, + 1681,1683,3,298,149,0,1682,1681,1,0,0,0,1683,1686,1,0,0,0,1684,1682,1,0, + 0,0,1684,1685,1,0,0,0,1685,1688,1,0,0,0,1686,1684,1,0,0,0,1687,1689,3,292, + 146,0,1688,1687,1,0,0,0,1688,1689,1,0,0,0,1689,1700,1,0,0,0,1690,1692,3, + 298,149,0,1691,1690,1,0,0,0,1692,1693,1,0,0,0,1693,1691,1,0,0,0,1693,1694, + 1,0,0,0,1694,1696,1,0,0,0,1695,1697,3,292,146,0,1696,1695,1,0,0,0,1696, + 1697,1,0,0,0,1697,1700,1,0,0,0,1698,1700,3,292,146,0,1699,1650,1,0,0,0, + 1699,1666,1,0,0,0,1699,1677,1,0,0,0,1699,1691,1,0,0,0,1699,1698,1,0,0,0, + 1700,287,1,0,0,0,1701,1703,3,296,148,0,1702,1701,1,0,0,0,1703,1704,1,0, + 0,0,1704,1702,1,0,0,0,1704,1705,1,0,0,0,1705,1706,1,0,0,0,1706,1708,5,54, + 0,0,1707,1709,5,49,0,0,1708,1707,1,0,0,0,1708,1709,1,0,0,0,1709,289,1,0, + 0,0,1710,1712,3,296,148,0,1711,1710,1,0,0,0,1712,1715,1,0,0,0,1713,1711, + 1,0,0,0,1713,1714,1,0,0,0,1714,1717,1,0,0,0,1715,1713,1,0,0,0,1716,1718, + 3,298,149,0,1717,1716,1,0,0,0,1718,1719,1,0,0,0,1719,1717,1,0,0,0,1719, + 1720,1,0,0,0,1720,1721,1,0,0,0,1721,1723,5,54,0,0,1722,1724,5,49,0,0,1723, + 1722,1,0,0,0,1723,1724,1,0,0,0,1724,291,1,0,0,0,1725,1726,5,53,0,0,1726, + 1730,3,296,148,0,1727,1729,3,300,150,0,1728,1727,1,0,0,0,1729,1732,1,0, + 0,0,1730,1728,1,0,0,0,1730,1731,1,0,0,0,1731,1734,1,0,0,0,1732,1730,1,0, + 0,0,1733,1735,3,294,147,0,1734,1733,1,0,0,0,1734,1735,1,0,0,0,1735,1748, + 1,0,0,0,1736,1737,5,53,0,0,1737,1739,5,49,0,0,1738,1740,3,300,150,0,1739, + 1738,1,0,0,0,1740,1741,1,0,0,0,1741,1739,1,0,0,0,1741,1742,1,0,0,0,1742, + 1744,1,0,0,0,1743,1745,3,294,147,0,1744,1743,1,0,0,0,1744,1745,1,0,0,0, + 1745,1748,1,0,0,0,1746,1748,3,294,147,0,1747,1725,1,0,0,0,1747,1736,1,0, + 0,0,1747,1746,1,0,0,0,1748,293,1,0,0,0,1749,1750,5,69,0,0,1750,1751,3,296, + 148,0,1751,295,1,0,0,0,1752,1754,3,302,151,0,1753,1755,5,49,0,0,1754,1753, + 1,0,0,0,1754,1755,1,0,0,0,1755,297,1,0,0,0,1756,1757,3,302,151,0,1757,1759, + 3,100,50,0,1758,1760,5,49,0,0,1759,1758,1,0,0,0,1759,1760,1,0,0,0,1760, + 299,1,0,0,0,1761,1763,3,302,151,0,1762,1764,3,100,50,0,1763,1762,1,0,0, + 0,1763,1764,1,0,0,0,1764,1766,1,0,0,0,1765,1767,5,49,0,0,1766,1765,1,0, + 0,0,1766,1767,1,0,0,0,1767,301,1,0,0,0,1768,1769,5,89,0,0,1769,303,1,0, + 0,0,1770,1773,3,306,153,0,1771,1773,5,4,0,0,1772,1770,1,0,0,0,1772,1771, + 1,0,0,0,1773,305,1,0,0,0,1774,1777,5,43,0,0,1775,1778,3,210,105,0,1776, + 1778,3,212,106,0,1777,1775,1,0,0,0,1777,1776,1,0,0,0,1778,1780,1,0,0,0, + 1779,1781,5,59,0,0,1780,1779,1,0,0,0,1780,1781,1,0,0,0,1781,1783,1,0,0, + 0,1782,1784,3,308,154,0,1783,1782,1,0,0,0,1783,1784,1,0,0,0,1784,1786,1, + 0,0,0,1785,1787,3,310,155,0,1786,1785,1,0,0,0,1786,1787,1,0,0,0,1787,1788, + 1,0,0,0,1788,1789,5,46,0,0,1789,307,1,0,0,0,1790,1791,5,88,0,0,1791,1792, + 5,89,0,0,1792,309,1,0,0,0,1793,1797,5,48,0,0,1794,1796,3,312,156,0,1795, + 1794,1,0,0,0,1796,1799,1,0,0,0,1797,1795,1,0,0,0,1797,1798,1,0,0,0,1798, + 311,1,0,0,0,1799,1797,1,0,0,0,1800,1803,5,4,0,0,1801,1803,3,306,153,0,1802, + 1800,1,0,0,0,1802,1801,1,0,0,0,1803,313,1,0,0,0,1804,1808,5,3,0,0,1805, + 1807,3,304,152,0,1806,1805,1,0,0,0,1807,1810,1,0,0,0,1808,1806,1,0,0,0, + 1808,1809,1,0,0,0,1809,1811,1,0,0,0,1810,1808,1,0,0,0,1811,1812,5,5,0,0, + 1812,315,1,0,0,0,1813,1814,5,91,0,0,1814,317,1,0,0,0,1815,1818,3,314,157, + 0,1816,1818,3,316,158,0,1817,1815,1,0,0,0,1817,1816,1,0,0,0,1818,1819,1, + 0,0,0,1819,1817,1,0,0,0,1819,1820,1,0,0,0,1820,319,1,0,0,0,1821,1823,5, + 42,0,0,1822,1824,3,216,108,0,1823,1822,1,0,0,0,1823,1824,1,0,0,0,1824,1825, + 1,0,0,0,1825,1826,5,45,0,0,1826,321,1,0,0,0,1827,1833,5,41,0,0,1828,1829, + 3,218,109,0,1829,1831,5,49,0,0,1830,1832,3,216,108,0,1831,1830,1,0,0,0, + 1831,1832,1,0,0,0,1832,1834,1,0,0,0,1833,1828,1,0,0,0,1833,1834,1,0,0,0, + 1834,1835,1,0,0,0,1835,1836,5,44,0,0,1836,323,1,0,0,0,1837,1838,5,43,0, + 0,1838,1839,3,216,108,0,1839,1840,5,46,0,0,1840,325,1,0,0,0,1841,1843,5, + 43,0,0,1842,1844,3,328,164,0,1843,1842,1,0,0,0,1843,1844,1,0,0,0,1844,1845, + 1,0,0,0,1845,1846,5,46,0,0,1846,327,1,0,0,0,1847,1852,3,330,165,0,1848, + 1849,5,49,0,0,1849,1851,3,330,165,0,1850,1848,1,0,0,0,1851,1854,1,0,0,0, + 1852,1850,1,0,0,0,1852,1853,1,0,0,0,1853,1856,1,0,0,0,1854,1852,1,0,0,0, + 1855,1857,5,49,0,0,1856,1855,1,0,0,0,1856,1857,1,0,0,0,1857,329,1,0,0,0, + 1858,1859,5,69,0,0,1859,1862,3,254,127,0,1860,1862,3,332,166,0,1861,1858, + 1,0,0,0,1861,1860,1,0,0,0,1862,331,1,0,0,0,1863,1864,3,208,104,0,1864,1865, + 5,48,0,0,1865,1866,3,208,104,0,1866,333,1,0,0,0,1867,1869,3,336,168,0,1868, + 1867,1,0,0,0,1869,1870,1,0,0,0,1870,1868,1,0,0,0,1870,1871,1,0,0,0,1871, + 335,1,0,0,0,1872,1874,5,36,0,0,1873,1872,1,0,0,0,1873,1874,1,0,0,0,1874, + 1875,1,0,0,0,1875,1876,5,23,0,0,1876,1877,3,358,179,0,1877,1878,5,14,0, + 0,1878,1883,3,224,112,0,1879,1880,5,38,0,0,1880,1882,3,224,112,0,1881,1879, + 1,0,0,0,1882,1885,1,0,0,0,1883,1881,1,0,0,0,1883,1884,1,0,0,0,1884,337, + 1,0,0,0,1885,1883,1,0,0,0,1886,1887,5,42,0,0,1887,1888,3,222,111,0,1888, + 1889,3,334,167,0,1889,1890,5,45,0,0,1890,339,1,0,0,0,1891,1892,5,43,0,0, + 1892,1893,3,222,111,0,1893,1894,3,334,167,0,1894,1895,5,46,0,0,1895,341, + 1,0,0,0,1896,1899,5,41,0,0,1897,1900,3,220,110,0,1898,1900,3,208,104,0, + 1899,1897,1,0,0,0,1899,1898,1,0,0,0,1900,1901,1,0,0,0,1901,1902,3,334,167, + 0,1902,1903,5,44,0,0,1903,343,1,0,0,0,1904,1905,5,43,0,0,1905,1906,3,332, + 166,0,1906,1907,3,334,167,0,1907,1908,5,46,0,0,1908,345,1,0,0,0,1909,1911, + 3,348,174,0,1910,1912,5,49,0,0,1911,1910,1,0,0,0,1911,1912,1,0,0,0,1912, + 347,1,0,0,0,1913,1919,3,352,176,0,1914,1917,3,220,110,0,1915,1917,3,208, + 104,0,1916,1914,1,0,0,0,1916,1915,1,0,0,0,1917,1919,1,0,0,0,1918,1913,1, + 0,0,0,1918,1916,1,0,0,0,1919,1930,1,0,0,0,1920,1926,5,49,0,0,1921,1927, + 3,352,176,0,1922,1925,3,220,110,0,1923,1925,3,208,104,0,1924,1922,1,0,0, + 0,1924,1923,1,0,0,0,1925,1927,1,0,0,0,1926,1921,1,0,0,0,1926,1924,1,0,0, + 0,1927,1929,1,0,0,0,1928,1920,1,0,0,0,1929,1932,1,0,0,0,1930,1928,1,0,0, + 0,1930,1931,1,0,0,0,1931,1935,1,0,0,0,1932,1930,1,0,0,0,1933,1934,5,49, + 0,0,1934,1936,3,350,175,0,1935,1933,1,0,0,0,1935,1936,1,0,0,0,1936,1939, + 1,0,0,0,1937,1939,3,350,175,0,1938,1918,1,0,0,0,1938,1937,1,0,0,0,1939, + 349,1,0,0,0,1940,1945,3,354,177,0,1941,1942,5,49,0,0,1942,1944,3,354,177, + 0,1943,1941,1,0,0,0,1944,1947,1,0,0,0,1945,1943,1,0,0,0,1945,1946,1,0,0, + 0,1946,1957,1,0,0,0,1947,1945,1,0,0,0,1948,1949,5,49,0,0,1949,1954,3,356, + 178,0,1950,1951,5,49,0,0,1951,1953,3,356,178,0,1952,1950,1,0,0,0,1953,1956, + 1,0,0,0,1954,1952,1,0,0,0,1954,1955,1,0,0,0,1955,1958,1,0,0,0,1956,1954, + 1,0,0,0,1957,1948,1,0,0,0,1957,1958,1,0,0,0,1958,1968,1,0,0,0,1959,1964, + 3,356,178,0,1960,1961,5,49,0,0,1961,1963,3,356,178,0,1962,1960,1,0,0,0, + 1963,1966,1,0,0,0,1964,1962,1,0,0,0,1964,1965,1,0,0,0,1965,1968,1,0,0,0, + 1966,1964,1,0,0,0,1967,1940,1,0,0,0,1967,1959,1,0,0,0,1968,351,1,0,0,0, + 1969,1970,5,53,0,0,1970,1971,3,208,104,0,1971,353,1,0,0,0,1972,1973,5,89, + 0,0,1973,1974,5,59,0,0,1974,1977,3,208,104,0,1975,1977,3,352,176,0,1976, + 1972,1,0,0,0,1976,1975,1,0,0,0,1977,355,1,0,0,0,1978,1979,5,89,0,0,1979, + 1980,5,59,0,0,1980,1984,3,208,104,0,1981,1982,5,69,0,0,1982,1984,3,208, + 104,0,1983,1978,1,0,0,0,1983,1981,1,0,0,0,1984,357,1,0,0,0,1985,1990,3, + 364,182,0,1986,1987,5,49,0,0,1987,1989,3,364,182,0,1988,1986,1,0,0,0,1989, + 1992,1,0,0,0,1990,1988,1,0,0,0,1990,1991,1,0,0,0,1991,1994,1,0,0,0,1992, + 1990,1,0,0,0,1993,1995,5,49,0,0,1994,1993,1,0,0,0,1994,1995,1,0,0,0,1995, + 359,1,0,0,0,1996,1999,3,364,182,0,1997,1998,5,49,0,0,1998,2000,3,364,182, + 0,1999,1997,1,0,0,0,2000,2001,1,0,0,0,2001,1999,1,0,0,0,2001,2002,1,0,0, + 0,2002,2004,1,0,0,0,2003,2005,5,49,0,0,2004,2003,1,0,0,0,2004,2005,1,0, + 0,0,2005,361,1,0,0,0,2006,2017,3,364,182,0,2007,2018,5,49,0,0,2008,2009, + 5,49,0,0,2009,2011,3,364,182,0,2010,2008,1,0,0,0,2011,2012,1,0,0,0,2012, + 2010,1,0,0,0,2012,2013,1,0,0,0,2013,2015,1,0,0,0,2014,2016,5,49,0,0,2015, + 2014,1,0,0,0,2015,2016,1,0,0,0,2016,2018,1,0,0,0,2017,2007,1,0,0,0,2017, + 2010,1,0,0,0,2018,363,1,0,0,0,2019,2020,5,53,0,0,2020,2023,3,364,182,0, + 2021,2023,3,366,183,0,2022,2019,1,0,0,0,2022,2021,1,0,0,0,2023,365,1,0, + 0,0,2024,2031,3,374,187,0,2025,2026,5,47,0,0,2026,2032,5,89,0,0,2027,2028, + 5,42,0,0,2028,2029,3,274,137,0,2029,2030,5,45,0,0,2030,2032,1,0,0,0,2031, + 2025,1,0,0,0,2031,2027,1,0,0,0,2032,2035,1,0,0,0,2033,2035,3,368,184,0, + 2034,2024,1,0,0,0,2034,2033,1,0,0,0,2035,367,1,0,0,0,2036,2052,5,89,0,0, + 2037,2038,5,41,0,0,2038,2039,3,366,183,0,2039,2040,5,44,0,0,2040,2052,1, + 0,0,0,2041,2043,5,41,0,0,2042,2044,3,362,181,0,2043,2042,1,0,0,0,2043,2044, + 1,0,0,0,2044,2045,1,0,0,0,2045,2052,5,44,0,0,2046,2048,5,42,0,0,2047,2049, + 3,360,180,0,2048,2047,1,0,0,0,2048,2049,1,0,0,0,2049,2050,1,0,0,0,2050, + 2052,5,45,0,0,2051,2036,1,0,0,0,2051,2037,1,0,0,0,2051,2041,1,0,0,0,2051, + 2046,1,0,0,0,2052,369,1,0,0,0,2053,2060,3,372,186,0,2054,2060,5,89,0,0, + 2055,2056,5,41,0,0,2056,2057,3,370,185,0,2057,2058,5,44,0,0,2058,2060,1, + 0,0,0,2059,2053,1,0,0,0,2059,2054,1,0,0,0,2059,2055,1,0,0,0,2060,371,1, + 0,0,0,2061,2068,3,374,187,0,2062,2063,5,47,0,0,2063,2069,5,89,0,0,2064, + 2065,5,42,0,0,2065,2066,3,274,137,0,2066,2067,5,45,0,0,2067,2069,1,0,0, + 0,2068,2062,1,0,0,0,2068,2064,1,0,0,0,2069,373,1,0,0,0,2070,2071,6,187, + -1,0,2071,2072,3,278,139,0,2072,2090,1,0,0,0,2073,2086,10,2,0,0,2074,2075, + 5,47,0,0,2075,2087,5,89,0,0,2076,2077,5,42,0,0,2077,2078,3,274,137,0,2078, + 2079,5,45,0,0,2079,2087,1,0,0,0,2080,2087,3,342,171,0,2081,2083,5,41,0, + 0,2082,2084,3,346,173,0,2083,2082,1,0,0,0,2083,2084,1,0,0,0,2084,2085,1, + 0,0,0,2085,2087,5,44,0,0,2086,2074,1,0,0,0,2086,2076,1,0,0,0,2086,2080, + 1,0,0,0,2086,2081,1,0,0,0,2087,2089,1,0,0,0,2088,2073,1,0,0,0,2089,2092, + 1,0,0,0,2090,2088,1,0,0,0,2090,2091,1,0,0,0,2091,375,1,0,0,0,2092,2090, + 1,0,0,0,2093,2098,3,378,189,0,2094,2095,5,49,0,0,2095,2097,3,378,189,0, + 2096,2094,1,0,0,0,2097,2100,1,0,0,0,2098,2096,1,0,0,0,2098,2099,1,0,0,0, + 2099,2102,1,0,0,0,2100,2098,1,0,0,0,2101,2103,5,49,0,0,2102,2101,1,0,0, + 0,2102,2103,1,0,0,0,2103,377,1,0,0,0,2104,2111,3,374,187,0,2105,2106,5, + 47,0,0,2106,2112,5,89,0,0,2107,2108,5,42,0,0,2108,2109,3,274,137,0,2109, + 2110,5,45,0,0,2110,2112,1,0,0,0,2111,2105,1,0,0,0,2111,2107,1,0,0,0,2112, + 2115,1,0,0,0,2113,2115,3,380,190,0,2114,2104,1,0,0,0,2114,2113,1,0,0,0, + 2115,379,1,0,0,0,2116,2132,5,89,0,0,2117,2118,5,41,0,0,2118,2119,3,378, + 189,0,2119,2120,5,44,0,0,2120,2132,1,0,0,0,2121,2123,5,41,0,0,2122,2124, + 3,376,188,0,2123,2122,1,0,0,0,2123,2124,1,0,0,0,2124,2125,1,0,0,0,2125, + 2132,5,44,0,0,2126,2128,5,42,0,0,2127,2129,3,376,188,0,2128,2127,1,0,0, + 0,2128,2129,1,0,0,0,2129,2130,1,0,0,0,2130,2132,5,45,0,0,2131,2116,1,0, + 0,0,2131,2117,1,0,0,0,2131,2121,1,0,0,0,2131,2126,1,0,0,0,2132,381,1,0, + 0,0,2133,2138,3,208,104,0,2134,2135,5,49,0,0,2135,2137,3,208,104,0,2136, + 2134,1,0,0,0,2137,2140,1,0,0,0,2138,2136,1,0,0,0,2138,2139,1,0,0,0,2139, + 2153,1,0,0,0,2140,2138,1,0,0,0,2141,2151,5,49,0,0,2142,2143,5,53,0,0,2143, + 2147,3,208,104,0,2144,2145,5,49,0,0,2145,2146,5,69,0,0,2146,2148,3,208, + 104,0,2147,2144,1,0,0,0,2147,2148,1,0,0,0,2148,2152,1,0,0,0,2149,2150,5, + 69,0,0,2150,2152,3,208,104,0,2151,2142,1,0,0,0,2151,2149,1,0,0,0,2152,2154, + 1,0,0,0,2153,2141,1,0,0,0,2153,2154,1,0,0,0,2154,2165,1,0,0,0,2155,2156, + 5,53,0,0,2156,2160,3,208,104,0,2157,2158,5,49,0,0,2158,2159,5,69,0,0,2159, + 2161,3,208,104,0,2160,2157,1,0,0,0,2160,2161,1,0,0,0,2161,2165,1,0,0,0, + 2162,2163,5,69,0,0,2163,2165,3,208,104,0,2164,2133,1,0,0,0,2164,2155,1, + 0,0,0,2164,2162,1,0,0,0,2165,383,1,0,0,0,2166,2167,5,93,0,0,2167,2170,5, + 92,0,0,2168,2170,5,92,0,0,2169,2166,1,0,0,0,2169,2168,1,0,0,0,2170,385, + 1,0,0,0,2171,2172,4,193,9,0,2172,2173,5,89,0,0,2173,387,1,0,0,0,2174,2175, + 4,194,10,0,2175,2176,5,89,0,0,2176,389,1,0,0,0,2177,2178,4,195,11,0,2178, + 2179,5,89,0,0,2179,391,1,0,0,0,2180,2181,4,196,12,0,2181,2182,5,89,0,0, + 2182,393,1,0,0,0,2183,2184,4,197,13,0,2184,2185,5,89,0,0,2185,395,1,0,0, + 0,291,397,407,414,422,432,436,444,451,455,473,483,490,497,503,510,514,517, + 523,525,529,535,541,543,551,560,572,576,585,596,600,605,611,618,624,631, + 637,647,656,664,670,675,679,682,691,696,700,705,709,716,720,725,729,732, + 740,746,750,756,760,765,770,774,779,782,785,790,794,799,805,809,816,820, + 827,831,838,841,844,851,854,858,861,866,869,873,876,879,883,903,905,913, + 915,926,929,937,941,944,953,957,967,972,974,981,994,997,1000,1008,1011, + 1014,1016,1022,1024,1034,1051,1058,1061,1066,1076,1080,1091,1102,1110,1118, + 1125,1130,1151,1158,1167,1172,1175,1180,1187,1191,1195,1201,1208,1216,1219, + 1223,1230,1235,1248,1251,1254,1256,1265,1273,1283,1297,1301,1305,1311,1317, + 1319,1329,1333,1341,1344,1350,1352,1359,1363,1368,1375,1379,1384,1392,1399, + 1407,1413,1419,1432,1474,1485,1496,1507,1518,1529,1539,1544,1549,1560,1567, + 1571,1577,1582,1586,1590,1592,1595,1599,1603,1605,1608,1619,1623,1629,1632, + 1637,1643,1654,1660,1664,1670,1674,1679,1684,1688,1693,1696,1699,1704,1708, + 1713,1719,1723,1730,1734,1741,1744,1747,1754,1759,1763,1766,1772,1777,1780, + 1783,1786,1797,1802,1808,1817,1819,1823,1831,1833,1843,1852,1856,1861,1870, + 1873,1883,1899,1911,1916,1918,1924,1926,1930,1935,1938,1945,1954,1957,1964, + 1967,1976,1983,1990,1994,2001,2004,2012,2015,2017,2022,2031,2034,2043,2048, + 2051,2059,2068,2083,2086,2090,2098,2102,2111,2114,2123,2128,2131,2138,2147, + 2151,2153,2160,2164,2169]; + + private static __ATN: ATN; + public static get _ATN(): ATN { + if (!PythonParser.__ATN) { + PythonParser.__ATN = new ATNDeserializer().deserialize(PythonParser._serializedATN); + } + + return PythonParser.__ATN; + } + + + static DecisionsToDFA = PythonParser._ATN.decisionToState.map( (ds: DecisionState, index: number) => new DFA(ds, index) ); + +} + +export class File_inputContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public EOF(): TerminalNode { + return this.getToken(PythonParser.EOF, 0); + } + public statements(): StatementsContext { + return this.getTypedRuleContext(StatementsContext, 0) as StatementsContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_file_input; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterFile_input) { + listener.enterFile_input(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitFile_input) { + listener.exitFile_input(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitFile_input) { + return visitor.visitFile_input(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class InteractiveContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public statement_newline(): Statement_newlineContext { + return this.getTypedRuleContext(Statement_newlineContext, 0) as Statement_newlineContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_interactive; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterInteractive) { + listener.enterInteractive(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitInteractive) { + listener.exitInteractive(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitInteractive) { + return visitor.visitInteractive(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class EvalContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public expressions(): ExpressionsContext { + return this.getTypedRuleContext(ExpressionsContext, 0) as ExpressionsContext; + } + public EOF(): TerminalNode { + return this.getToken(PythonParser.EOF, 0); + } + public NEWLINE_list(): TerminalNode[] { + return this.getTokens(PythonParser.NEWLINE); + } + public NEWLINE(i: number): TerminalNode { + return this.getToken(PythonParser.NEWLINE, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_eval; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterEval) { + listener.enterEval(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitEval) { + listener.exitEval(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitEval) { + return visitor.visitEval(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Func_typeContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public LPAR(): TerminalNode { + return this.getToken(PythonParser.LPAR, 0); + } + public RPAR(): TerminalNode { + return this.getToken(PythonParser.RPAR, 0); + } + public RARROW(): TerminalNode { + return this.getToken(PythonParser.RARROW, 0); + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public EOF(): TerminalNode { + return this.getToken(PythonParser.EOF, 0); + } + public type_expressions(): Type_expressionsContext { + return this.getTypedRuleContext(Type_expressionsContext, 0) as Type_expressionsContext; + } + public NEWLINE_list(): TerminalNode[] { + return this.getTokens(PythonParser.NEWLINE); + } + public NEWLINE(i: number): TerminalNode { + return this.getToken(PythonParser.NEWLINE, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_func_type; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterFunc_type) { + listener.enterFunc_type(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitFunc_type) { + listener.exitFunc_type(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitFunc_type) { + return visitor.visitFunc_type(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Fstring_inputContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public star_expressions(): Star_expressionsContext { + return this.getTypedRuleContext(Star_expressionsContext, 0) as Star_expressionsContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_fstring_input; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterFstring_input) { + listener.enterFstring_input(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitFstring_input) { + listener.exitFstring_input(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitFstring_input) { + return visitor.visitFstring_input(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class StatementsContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public statement_list(): StatementContext[] { + return this.getTypedRuleContexts(StatementContext) as StatementContext[]; + } + public statement(i: number): StatementContext { + return this.getTypedRuleContext(StatementContext, i) as StatementContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_statements; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterStatements) { + listener.enterStatements(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitStatements) { + listener.exitStatements(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitStatements) { + return visitor.visitStatements(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class StatementContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public compound_stmt(): Compound_stmtContext { + return this.getTypedRuleContext(Compound_stmtContext, 0) as Compound_stmtContext; + } + public simple_stmts(): Simple_stmtsContext { + return this.getTypedRuleContext(Simple_stmtsContext, 0) as Simple_stmtsContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_statement; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterStatement) { + listener.enterStatement(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitStatement) { + listener.exitStatement(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitStatement) { + return visitor.visitStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Statement_newlineContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public compound_stmt(): Compound_stmtContext { + return this.getTypedRuleContext(Compound_stmtContext, 0) as Compound_stmtContext; + } + public NEWLINE(): TerminalNode { + return this.getToken(PythonParser.NEWLINE, 0); + } + public simple_stmts(): Simple_stmtsContext { + return this.getTypedRuleContext(Simple_stmtsContext, 0) as Simple_stmtsContext; + } + public EOF(): TerminalNode { + return this.getToken(PythonParser.EOF, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_statement_newline; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterStatement_newline) { + listener.enterStatement_newline(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitStatement_newline) { + listener.exitStatement_newline(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitStatement_newline) { + return visitor.visitStatement_newline(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Simple_stmtsContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public simple_stmt_list(): Simple_stmtContext[] { + return this.getTypedRuleContexts(Simple_stmtContext) as Simple_stmtContext[]; + } + public simple_stmt(i: number): Simple_stmtContext { + return this.getTypedRuleContext(Simple_stmtContext, i) as Simple_stmtContext; + } + public NEWLINE(): TerminalNode { + return this.getToken(PythonParser.NEWLINE, 0); + } + public SEMI_list(): TerminalNode[] { + return this.getTokens(PythonParser.SEMI); + } + public SEMI(i: number): TerminalNode { + return this.getToken(PythonParser.SEMI, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_simple_stmts; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterSimple_stmts) { + listener.enterSimple_stmts(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitSimple_stmts) { + listener.exitSimple_stmts(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitSimple_stmts) { + return visitor.visitSimple_stmts(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Simple_stmtContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public assignment(): AssignmentContext { + return this.getTypedRuleContext(AssignmentContext, 0) as AssignmentContext; + } + public type_alias(): Type_aliasContext { + return this.getTypedRuleContext(Type_aliasContext, 0) as Type_aliasContext; + } + public star_expressions(): Star_expressionsContext { + return this.getTypedRuleContext(Star_expressionsContext, 0) as Star_expressionsContext; + } + public return_stmt(): Return_stmtContext { + return this.getTypedRuleContext(Return_stmtContext, 0) as Return_stmtContext; + } + public import_stmt(): Import_stmtContext { + return this.getTypedRuleContext(Import_stmtContext, 0) as Import_stmtContext; + } + public raise_stmt(): Raise_stmtContext { + return this.getTypedRuleContext(Raise_stmtContext, 0) as Raise_stmtContext; + } + public PASS(): TerminalNode { + return this.getToken(PythonParser.PASS, 0); + } + public del_stmt(): Del_stmtContext { + return this.getTypedRuleContext(Del_stmtContext, 0) as Del_stmtContext; + } + public yield_stmt(): Yield_stmtContext { + return this.getTypedRuleContext(Yield_stmtContext, 0) as Yield_stmtContext; + } + public assert_stmt(): Assert_stmtContext { + return this.getTypedRuleContext(Assert_stmtContext, 0) as Assert_stmtContext; + } + public BREAK(): TerminalNode { + return this.getToken(PythonParser.BREAK, 0); + } + public CONTINUE(): TerminalNode { + return this.getToken(PythonParser.CONTINUE, 0); + } + public global_stmt(): Global_stmtContext { + return this.getTypedRuleContext(Global_stmtContext, 0) as Global_stmtContext; + } + public nonlocal_stmt(): Nonlocal_stmtContext { + return this.getTypedRuleContext(Nonlocal_stmtContext, 0) as Nonlocal_stmtContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_simple_stmt; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterSimple_stmt) { + listener.enterSimple_stmt(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitSimple_stmt) { + listener.exitSimple_stmt(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitSimple_stmt) { + return visitor.visitSimple_stmt(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Compound_stmtContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public function_def(): Function_defContext { + return this.getTypedRuleContext(Function_defContext, 0) as Function_defContext; + } + public if_stmt(): If_stmtContext { + return this.getTypedRuleContext(If_stmtContext, 0) as If_stmtContext; + } + public class_def(): Class_defContext { + return this.getTypedRuleContext(Class_defContext, 0) as Class_defContext; + } + public with_stmt(): With_stmtContext { + return this.getTypedRuleContext(With_stmtContext, 0) as With_stmtContext; + } + public for_stmt(): For_stmtContext { + return this.getTypedRuleContext(For_stmtContext, 0) as For_stmtContext; + } + public try_stmt(): Try_stmtContext { + return this.getTypedRuleContext(Try_stmtContext, 0) as Try_stmtContext; + } + public while_stmt(): While_stmtContext { + return this.getTypedRuleContext(While_stmtContext, 0) as While_stmtContext; + } + public match_stmt(): Match_stmtContext { + return this.getTypedRuleContext(Match_stmtContext, 0) as Match_stmtContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_compound_stmt; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterCompound_stmt) { + listener.enterCompound_stmt(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitCompound_stmt) { + listener.exitCompound_stmt(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitCompound_stmt) { + return visitor.visitCompound_stmt(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AssignmentContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public COLON(): TerminalNode { + return this.getToken(PythonParser.COLON, 0); + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public EQUAL_list(): TerminalNode[] { + return this.getTokens(PythonParser.EQUAL); + } + public EQUAL(i: number): TerminalNode { + return this.getToken(PythonParser.EQUAL, i); + } + public annotated_rhs(): Annotated_rhsContext { + return this.getTypedRuleContext(Annotated_rhsContext, 0) as Annotated_rhsContext; + } + public LPAR(): TerminalNode { + return this.getToken(PythonParser.LPAR, 0); + } + public single_target(): Single_targetContext { + return this.getTypedRuleContext(Single_targetContext, 0) as Single_targetContext; + } + public RPAR(): TerminalNode { + return this.getToken(PythonParser.RPAR, 0); + } + public single_subscript_attribute_target(): Single_subscript_attribute_targetContext { + return this.getTypedRuleContext(Single_subscript_attribute_targetContext, 0) as Single_subscript_attribute_targetContext; + } + public yield_expr(): Yield_exprContext { + return this.getTypedRuleContext(Yield_exprContext, 0) as Yield_exprContext; + } + public star_expressions(): Star_expressionsContext { + return this.getTypedRuleContext(Star_expressionsContext, 0) as Star_expressionsContext; + } + public star_targets_list(): Star_targetsContext[] { + return this.getTypedRuleContexts(Star_targetsContext) as Star_targetsContext[]; + } + public star_targets(i: number): Star_targetsContext { + return this.getTypedRuleContext(Star_targetsContext, i) as Star_targetsContext; + } + public TYPE_COMMENT(): TerminalNode { + return this.getToken(PythonParser.TYPE_COMMENT, 0); + } + public augassign(): AugassignContext { + return this.getTypedRuleContext(AugassignContext, 0) as AugassignContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_assignment; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterAssignment) { + listener.enterAssignment(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitAssignment) { + listener.exitAssignment(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitAssignment) { + return visitor.visitAssignment(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Annotated_rhsContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public yield_expr(): Yield_exprContext { + return this.getTypedRuleContext(Yield_exprContext, 0) as Yield_exprContext; + } + public star_expressions(): Star_expressionsContext { + return this.getTypedRuleContext(Star_expressionsContext, 0) as Star_expressionsContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_annotated_rhs; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterAnnotated_rhs) { + listener.enterAnnotated_rhs(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitAnnotated_rhs) { + listener.exitAnnotated_rhs(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitAnnotated_rhs) { + return visitor.visitAnnotated_rhs(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AugassignContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public PLUSEQUAL(): TerminalNode { + return this.getToken(PythonParser.PLUSEQUAL, 0); + } + public MINEQUAL(): TerminalNode { + return this.getToken(PythonParser.MINEQUAL, 0); + } + public STAREQUAL(): TerminalNode { + return this.getToken(PythonParser.STAREQUAL, 0); + } + public ATEQUAL(): TerminalNode { + return this.getToken(PythonParser.ATEQUAL, 0); + } + public SLASHEQUAL(): TerminalNode { + return this.getToken(PythonParser.SLASHEQUAL, 0); + } + public PERCENTEQUAL(): TerminalNode { + return this.getToken(PythonParser.PERCENTEQUAL, 0); + } + public AMPEREQUAL(): TerminalNode { + return this.getToken(PythonParser.AMPEREQUAL, 0); + } + public VBAREQUAL(): TerminalNode { + return this.getToken(PythonParser.VBAREQUAL, 0); + } + public CIRCUMFLEXEQUAL(): TerminalNode { + return this.getToken(PythonParser.CIRCUMFLEXEQUAL, 0); + } + public LEFTSHIFTEQUAL(): TerminalNode { + return this.getToken(PythonParser.LEFTSHIFTEQUAL, 0); + } + public RIGHTSHIFTEQUAL(): TerminalNode { + return this.getToken(PythonParser.RIGHTSHIFTEQUAL, 0); + } + public DOUBLESTAREQUAL(): TerminalNode { + return this.getToken(PythonParser.DOUBLESTAREQUAL, 0); + } + public DOUBLESLASHEQUAL(): TerminalNode { + return this.getToken(PythonParser.DOUBLESLASHEQUAL, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_augassign; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterAugassign) { + listener.enterAugassign(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitAugassign) { + listener.exitAugassign(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitAugassign) { + return visitor.visitAugassign(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Return_stmtContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public RETURN(): TerminalNode { + return this.getToken(PythonParser.RETURN, 0); + } + public star_expressions(): Star_expressionsContext { + return this.getTypedRuleContext(Star_expressionsContext, 0) as Star_expressionsContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_return_stmt; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterReturn_stmt) { + listener.enterReturn_stmt(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitReturn_stmt) { + listener.exitReturn_stmt(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitReturn_stmt) { + return visitor.visitReturn_stmt(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Raise_stmtContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public RAISE(): TerminalNode { + return this.getToken(PythonParser.RAISE, 0); + } + public expression_list(): ExpressionContext[] { + return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[]; + } + public expression(i: number): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext; + } + public FROM(): TerminalNode { + return this.getToken(PythonParser.FROM, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_raise_stmt; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterRaise_stmt) { + listener.enterRaise_stmt(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitRaise_stmt) { + listener.exitRaise_stmt(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitRaise_stmt) { + return visitor.visitRaise_stmt(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Global_stmtContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public GLOBAL(): TerminalNode { + return this.getToken(PythonParser.GLOBAL, 0); + } + public NAME_list(): TerminalNode[] { + return this.getTokens(PythonParser.NAME); + } + public NAME(i: number): TerminalNode { + return this.getToken(PythonParser.NAME, i); + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(PythonParser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(PythonParser.COMMA, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_global_stmt; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterGlobal_stmt) { + listener.enterGlobal_stmt(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitGlobal_stmt) { + listener.exitGlobal_stmt(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitGlobal_stmt) { + return visitor.visitGlobal_stmt(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Nonlocal_stmtContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NONLOCAL(): TerminalNode { + return this.getToken(PythonParser.NONLOCAL, 0); + } + public NAME_list(): TerminalNode[] { + return this.getTokens(PythonParser.NAME); + } + public NAME(i: number): TerminalNode { + return this.getToken(PythonParser.NAME, i); + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(PythonParser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(PythonParser.COMMA, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_nonlocal_stmt; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterNonlocal_stmt) { + listener.enterNonlocal_stmt(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitNonlocal_stmt) { + listener.exitNonlocal_stmt(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitNonlocal_stmt) { + return visitor.visitNonlocal_stmt(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Del_stmtContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public DEL(): TerminalNode { + return this.getToken(PythonParser.DEL, 0); + } + public del_targets(): Del_targetsContext { + return this.getTypedRuleContext(Del_targetsContext, 0) as Del_targetsContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_del_stmt; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterDel_stmt) { + listener.enterDel_stmt(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitDel_stmt) { + listener.exitDel_stmt(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitDel_stmt) { + return visitor.visitDel_stmt(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Yield_stmtContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public yield_expr(): Yield_exprContext { + return this.getTypedRuleContext(Yield_exprContext, 0) as Yield_exprContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_yield_stmt; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterYield_stmt) { + listener.enterYield_stmt(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitYield_stmt) { + listener.exitYield_stmt(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitYield_stmt) { + return visitor.visitYield_stmt(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Assert_stmtContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public ASSERT(): TerminalNode { + return this.getToken(PythonParser.ASSERT, 0); + } + public expression_list(): ExpressionContext[] { + return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[]; + } + public expression(i: number): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext; + } + public COMMA(): TerminalNode { + return this.getToken(PythonParser.COMMA, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_assert_stmt; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterAssert_stmt) { + listener.enterAssert_stmt(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitAssert_stmt) { + listener.exitAssert_stmt(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitAssert_stmt) { + return visitor.visitAssert_stmt(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Import_stmtContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public import_name(): Import_nameContext { + return this.getTypedRuleContext(Import_nameContext, 0) as Import_nameContext; + } + public import_from(): Import_fromContext { + return this.getTypedRuleContext(Import_fromContext, 0) as Import_fromContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_import_stmt; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterImport_stmt) { + listener.enterImport_stmt(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitImport_stmt) { + listener.exitImport_stmt(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitImport_stmt) { + return visitor.visitImport_stmt(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Import_nameContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public IMPORT(): TerminalNode { + return this.getToken(PythonParser.IMPORT, 0); + } + public dotted_as_names(): Dotted_as_namesContext { + return this.getTypedRuleContext(Dotted_as_namesContext, 0) as Dotted_as_namesContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_import_name; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterImport_name) { + listener.enterImport_name(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitImport_name) { + listener.exitImport_name(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitImport_name) { + return visitor.visitImport_name(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Import_fromContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public FROM(): TerminalNode { + return this.getToken(PythonParser.FROM, 0); + } + public dotted_name(): Dotted_nameContext { + return this.getTypedRuleContext(Dotted_nameContext, 0) as Dotted_nameContext; + } + public IMPORT(): TerminalNode { + return this.getToken(PythonParser.IMPORT, 0); + } + public import_from_targets(): Import_from_targetsContext { + return this.getTypedRuleContext(Import_from_targetsContext, 0) as Import_from_targetsContext; + } + public DOT_list(): TerminalNode[] { + return this.getTokens(PythonParser.DOT); + } + public DOT(i: number): TerminalNode { + return this.getToken(PythonParser.DOT, i); + } + public ELLIPSIS_list(): TerminalNode[] { + return this.getTokens(PythonParser.ELLIPSIS); + } + public ELLIPSIS(i: number): TerminalNode { + return this.getToken(PythonParser.ELLIPSIS, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_import_from; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterImport_from) { + listener.enterImport_from(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitImport_from) { + listener.exitImport_from(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitImport_from) { + return visitor.visitImport_from(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Import_from_targetsContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public LPAR(): TerminalNode { + return this.getToken(PythonParser.LPAR, 0); + } + public import_from_as_names(): Import_from_as_namesContext { + return this.getTypedRuleContext(Import_from_as_namesContext, 0) as Import_from_as_namesContext; + } + public RPAR(): TerminalNode { + return this.getToken(PythonParser.RPAR, 0); + } + public COMMA(): TerminalNode { + return this.getToken(PythonParser.COMMA, 0); + } + public STAR(): TerminalNode { + return this.getToken(PythonParser.STAR, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_import_from_targets; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterImport_from_targets) { + listener.enterImport_from_targets(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitImport_from_targets) { + listener.exitImport_from_targets(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitImport_from_targets) { + return visitor.visitImport_from_targets(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Import_from_as_namesContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public import_from_as_name_list(): Import_from_as_nameContext[] { + return this.getTypedRuleContexts(Import_from_as_nameContext) as Import_from_as_nameContext[]; + } + public import_from_as_name(i: number): Import_from_as_nameContext { + return this.getTypedRuleContext(Import_from_as_nameContext, i) as Import_from_as_nameContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(PythonParser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(PythonParser.COMMA, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_import_from_as_names; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterImport_from_as_names) { + listener.enterImport_from_as_names(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitImport_from_as_names) { + listener.exitImport_from_as_names(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitImport_from_as_names) { + return visitor.visitImport_from_as_names(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Import_from_as_nameContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NAME_list(): TerminalNode[] { + return this.getTokens(PythonParser.NAME); + } + public NAME(i: number): TerminalNode { + return this.getToken(PythonParser.NAME, i); + } + public AS(): TerminalNode { + return this.getToken(PythonParser.AS, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_import_from_as_name; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterImport_from_as_name) { + listener.enterImport_from_as_name(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitImport_from_as_name) { + listener.exitImport_from_as_name(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitImport_from_as_name) { + return visitor.visitImport_from_as_name(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Dotted_as_namesContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public dotted_as_name_list(): Dotted_as_nameContext[] { + return this.getTypedRuleContexts(Dotted_as_nameContext) as Dotted_as_nameContext[]; + } + public dotted_as_name(i: number): Dotted_as_nameContext { + return this.getTypedRuleContext(Dotted_as_nameContext, i) as Dotted_as_nameContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(PythonParser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(PythonParser.COMMA, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_dotted_as_names; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterDotted_as_names) { + listener.enterDotted_as_names(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitDotted_as_names) { + listener.exitDotted_as_names(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitDotted_as_names) { + return visitor.visitDotted_as_names(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Dotted_as_nameContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public dotted_name(): Dotted_nameContext { + return this.getTypedRuleContext(Dotted_nameContext, 0) as Dotted_nameContext; + } + public AS(): TerminalNode { + return this.getToken(PythonParser.AS, 0); + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_dotted_as_name; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterDotted_as_name) { + listener.enterDotted_as_name(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitDotted_as_name) { + listener.exitDotted_as_name(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitDotted_as_name) { + return visitor.visitDotted_as_name(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Dotted_nameContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public dotted_name(): Dotted_nameContext { + return this.getTypedRuleContext(Dotted_nameContext, 0) as Dotted_nameContext; + } + public DOT(): TerminalNode { + return this.getToken(PythonParser.DOT, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_dotted_name; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterDotted_name) { + listener.enterDotted_name(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitDotted_name) { + listener.exitDotted_name(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitDotted_name) { + return visitor.visitDotted_name(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class BlockContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NEWLINE(): TerminalNode { + return this.getToken(PythonParser.NEWLINE, 0); + } + public INDENT(): TerminalNode { + return this.getToken(PythonParser.INDENT, 0); + } + public statements(): StatementsContext { + return this.getTypedRuleContext(StatementsContext, 0) as StatementsContext; + } + public DEDENT(): TerminalNode { + return this.getToken(PythonParser.DEDENT, 0); + } + public simple_stmts(): Simple_stmtsContext { + return this.getTypedRuleContext(Simple_stmtsContext, 0) as Simple_stmtsContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_block; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterBlock) { + listener.enterBlock(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitBlock) { + listener.exitBlock(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitBlock) { + return visitor.visitBlock(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DecoratorsContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public AT_list(): TerminalNode[] { + return this.getTokens(PythonParser.AT); + } + public AT(i: number): TerminalNode { + return this.getToken(PythonParser.AT, i); + } + public named_expression_list(): Named_expressionContext[] { + return this.getTypedRuleContexts(Named_expressionContext) as Named_expressionContext[]; + } + public named_expression(i: number): Named_expressionContext { + return this.getTypedRuleContext(Named_expressionContext, i) as Named_expressionContext; + } + public NEWLINE_list(): TerminalNode[] { + return this.getTokens(PythonParser.NEWLINE); + } + public NEWLINE(i: number): TerminalNode { + return this.getToken(PythonParser.NEWLINE, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_decorators; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterDecorators) { + listener.enterDecorators(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitDecorators) { + listener.exitDecorators(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitDecorators) { + return visitor.visitDecorators(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Class_defContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public decorators(): DecoratorsContext { + return this.getTypedRuleContext(DecoratorsContext, 0) as DecoratorsContext; + } + public class_def_raw(): Class_def_rawContext { + return this.getTypedRuleContext(Class_def_rawContext, 0) as Class_def_rawContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_class_def; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterClass_def) { + listener.enterClass_def(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitClass_def) { + listener.exitClass_def(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitClass_def) { + return visitor.visitClass_def(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Class_def_rawContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public CLASS(): TerminalNode { + return this.getToken(PythonParser.CLASS, 0); + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public COLON(): TerminalNode { + return this.getToken(PythonParser.COLON, 0); + } + public block(): BlockContext { + return this.getTypedRuleContext(BlockContext, 0) as BlockContext; + } + public type_params(): Type_paramsContext { + return this.getTypedRuleContext(Type_paramsContext, 0) as Type_paramsContext; + } + public LPAR(): TerminalNode { + return this.getToken(PythonParser.LPAR, 0); + } + public RPAR(): TerminalNode { + return this.getToken(PythonParser.RPAR, 0); + } + public arguments(): ArgumentsContext { + return this.getTypedRuleContext(ArgumentsContext, 0) as ArgumentsContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_class_def_raw; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterClass_def_raw) { + listener.enterClass_def_raw(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitClass_def_raw) { + listener.exitClass_def_raw(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitClass_def_raw) { + return visitor.visitClass_def_raw(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Function_defContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public decorators(): DecoratorsContext { + return this.getTypedRuleContext(DecoratorsContext, 0) as DecoratorsContext; + } + public function_def_raw(): Function_def_rawContext { + return this.getTypedRuleContext(Function_def_rawContext, 0) as Function_def_rawContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_function_def; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterFunction_def) { + listener.enterFunction_def(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitFunction_def) { + listener.exitFunction_def(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitFunction_def) { + return visitor.visitFunction_def(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Function_def_rawContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public DEF(): TerminalNode { + return this.getToken(PythonParser.DEF, 0); + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public LPAR(): TerminalNode { + return this.getToken(PythonParser.LPAR, 0); + } + public RPAR(): TerminalNode { + return this.getToken(PythonParser.RPAR, 0); + } + public COLON(): TerminalNode { + return this.getToken(PythonParser.COLON, 0); + } + public block(): BlockContext { + return this.getTypedRuleContext(BlockContext, 0) as BlockContext; + } + public type_params(): Type_paramsContext { + return this.getTypedRuleContext(Type_paramsContext, 0) as Type_paramsContext; + } + public params(): ParamsContext { + return this.getTypedRuleContext(ParamsContext, 0) as ParamsContext; + } + public RARROW(): TerminalNode { + return this.getToken(PythonParser.RARROW, 0); + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public func_type_comment(): Func_type_commentContext { + return this.getTypedRuleContext(Func_type_commentContext, 0) as Func_type_commentContext; + } + public ASYNC(): TerminalNode { + return this.getToken(PythonParser.ASYNC, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_function_def_raw; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterFunction_def_raw) { + listener.enterFunction_def_raw(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitFunction_def_raw) { + listener.exitFunction_def_raw(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitFunction_def_raw) { + return visitor.visitFunction_def_raw(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ParamsContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public parameters(): ParametersContext { + return this.getTypedRuleContext(ParametersContext, 0) as ParametersContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_params; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterParams) { + listener.enterParams(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitParams) { + listener.exitParams(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitParams) { + return visitor.visitParams(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ParametersContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public slash_no_default(): Slash_no_defaultContext { + return this.getTypedRuleContext(Slash_no_defaultContext, 0) as Slash_no_defaultContext; + } + public param_no_default_list(): Param_no_defaultContext[] { + return this.getTypedRuleContexts(Param_no_defaultContext) as Param_no_defaultContext[]; + } + public param_no_default(i: number): Param_no_defaultContext { + return this.getTypedRuleContext(Param_no_defaultContext, i) as Param_no_defaultContext; + } + public param_with_default_list(): Param_with_defaultContext[] { + return this.getTypedRuleContexts(Param_with_defaultContext) as Param_with_defaultContext[]; + } + public param_with_default(i: number): Param_with_defaultContext { + return this.getTypedRuleContext(Param_with_defaultContext, i) as Param_with_defaultContext; + } + public star_etc(): Star_etcContext { + return this.getTypedRuleContext(Star_etcContext, 0) as Star_etcContext; + } + public slash_with_default(): Slash_with_defaultContext { + return this.getTypedRuleContext(Slash_with_defaultContext, 0) as Slash_with_defaultContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_parameters; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterParameters) { + listener.enterParameters(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitParameters) { + listener.exitParameters(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitParameters) { + return visitor.visitParameters(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Slash_no_defaultContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public SLASH(): TerminalNode { + return this.getToken(PythonParser.SLASH, 0); + } + public param_no_default_list(): Param_no_defaultContext[] { + return this.getTypedRuleContexts(Param_no_defaultContext) as Param_no_defaultContext[]; + } + public param_no_default(i: number): Param_no_defaultContext { + return this.getTypedRuleContext(Param_no_defaultContext, i) as Param_no_defaultContext; + } + public COMMA(): TerminalNode { + return this.getToken(PythonParser.COMMA, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_slash_no_default; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterSlash_no_default) { + listener.enterSlash_no_default(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitSlash_no_default) { + listener.exitSlash_no_default(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitSlash_no_default) { + return visitor.visitSlash_no_default(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Slash_with_defaultContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public SLASH(): TerminalNode { + return this.getToken(PythonParser.SLASH, 0); + } + public param_no_default_list(): Param_no_defaultContext[] { + return this.getTypedRuleContexts(Param_no_defaultContext) as Param_no_defaultContext[]; + } + public param_no_default(i: number): Param_no_defaultContext { + return this.getTypedRuleContext(Param_no_defaultContext, i) as Param_no_defaultContext; + } + public param_with_default_list(): Param_with_defaultContext[] { + return this.getTypedRuleContexts(Param_with_defaultContext) as Param_with_defaultContext[]; + } + public param_with_default(i: number): Param_with_defaultContext { + return this.getTypedRuleContext(Param_with_defaultContext, i) as Param_with_defaultContext; + } + public COMMA(): TerminalNode { + return this.getToken(PythonParser.COMMA, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_slash_with_default; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterSlash_with_default) { + listener.enterSlash_with_default(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitSlash_with_default) { + listener.exitSlash_with_default(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitSlash_with_default) { + return visitor.visitSlash_with_default(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Star_etcContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public STAR(): TerminalNode { + return this.getToken(PythonParser.STAR, 0); + } + public param_no_default(): Param_no_defaultContext { + return this.getTypedRuleContext(Param_no_defaultContext, 0) as Param_no_defaultContext; + } + public param_maybe_default_list(): Param_maybe_defaultContext[] { + return this.getTypedRuleContexts(Param_maybe_defaultContext) as Param_maybe_defaultContext[]; + } + public param_maybe_default(i: number): Param_maybe_defaultContext { + return this.getTypedRuleContext(Param_maybe_defaultContext, i) as Param_maybe_defaultContext; + } + public kwds(): KwdsContext { + return this.getTypedRuleContext(KwdsContext, 0) as KwdsContext; + } + public param_no_default_star_annotation(): Param_no_default_star_annotationContext { + return this.getTypedRuleContext(Param_no_default_star_annotationContext, 0) as Param_no_default_star_annotationContext; + } + public COMMA(): TerminalNode { + return this.getToken(PythonParser.COMMA, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_star_etc; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterStar_etc) { + listener.enterStar_etc(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitStar_etc) { + listener.exitStar_etc(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitStar_etc) { + return visitor.visitStar_etc(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class KwdsContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public DOUBLESTAR(): TerminalNode { + return this.getToken(PythonParser.DOUBLESTAR, 0); + } + public param_no_default(): Param_no_defaultContext { + return this.getTypedRuleContext(Param_no_defaultContext, 0) as Param_no_defaultContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_kwds; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterKwds) { + listener.enterKwds(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitKwds) { + listener.exitKwds(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitKwds) { + return visitor.visitKwds(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Param_no_defaultContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public param(): ParamContext { + return this.getTypedRuleContext(ParamContext, 0) as ParamContext; + } + public COMMA(): TerminalNode { + return this.getToken(PythonParser.COMMA, 0); + } + public TYPE_COMMENT(): TerminalNode { + return this.getToken(PythonParser.TYPE_COMMENT, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_param_no_default; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterParam_no_default) { + listener.enterParam_no_default(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitParam_no_default) { + listener.exitParam_no_default(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitParam_no_default) { + return visitor.visitParam_no_default(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Param_no_default_star_annotationContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public param_star_annotation(): Param_star_annotationContext { + return this.getTypedRuleContext(Param_star_annotationContext, 0) as Param_star_annotationContext; + } + public COMMA(): TerminalNode { + return this.getToken(PythonParser.COMMA, 0); + } + public TYPE_COMMENT(): TerminalNode { + return this.getToken(PythonParser.TYPE_COMMENT, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_param_no_default_star_annotation; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterParam_no_default_star_annotation) { + listener.enterParam_no_default_star_annotation(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitParam_no_default_star_annotation) { + listener.exitParam_no_default_star_annotation(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitParam_no_default_star_annotation) { + return visitor.visitParam_no_default_star_annotation(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Param_with_defaultContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public param(): ParamContext { + return this.getTypedRuleContext(ParamContext, 0) as ParamContext; + } + public default_assignment(): Default_assignmentContext { + return this.getTypedRuleContext(Default_assignmentContext, 0) as Default_assignmentContext; + } + public COMMA(): TerminalNode { + return this.getToken(PythonParser.COMMA, 0); + } + public TYPE_COMMENT(): TerminalNode { + return this.getToken(PythonParser.TYPE_COMMENT, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_param_with_default; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterParam_with_default) { + listener.enterParam_with_default(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitParam_with_default) { + listener.exitParam_with_default(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitParam_with_default) { + return visitor.visitParam_with_default(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Param_maybe_defaultContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public param(): ParamContext { + return this.getTypedRuleContext(ParamContext, 0) as ParamContext; + } + public default_assignment(): Default_assignmentContext { + return this.getTypedRuleContext(Default_assignmentContext, 0) as Default_assignmentContext; + } + public COMMA(): TerminalNode { + return this.getToken(PythonParser.COMMA, 0); + } + public TYPE_COMMENT(): TerminalNode { + return this.getToken(PythonParser.TYPE_COMMENT, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_param_maybe_default; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterParam_maybe_default) { + listener.enterParam_maybe_default(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitParam_maybe_default) { + listener.exitParam_maybe_default(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitParam_maybe_default) { + return visitor.visitParam_maybe_default(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ParamContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public annotation(): AnnotationContext { + return this.getTypedRuleContext(AnnotationContext, 0) as AnnotationContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_param; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterParam) { + listener.enterParam(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitParam) { + listener.exitParam(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitParam) { + return visitor.visitParam(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Param_star_annotationContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public star_annotation(): Star_annotationContext { + return this.getTypedRuleContext(Star_annotationContext, 0) as Star_annotationContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_param_star_annotation; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterParam_star_annotation) { + listener.enterParam_star_annotation(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitParam_star_annotation) { + listener.exitParam_star_annotation(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitParam_star_annotation) { + return visitor.visitParam_star_annotation(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AnnotationContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public COLON(): TerminalNode { + return this.getToken(PythonParser.COLON, 0); + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_annotation; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterAnnotation) { + listener.enterAnnotation(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitAnnotation) { + listener.exitAnnotation(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitAnnotation) { + return visitor.visitAnnotation(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Star_annotationContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public COLON(): TerminalNode { + return this.getToken(PythonParser.COLON, 0); + } + public star_expression(): Star_expressionContext { + return this.getTypedRuleContext(Star_expressionContext, 0) as Star_expressionContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_star_annotation; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterStar_annotation) { + listener.enterStar_annotation(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitStar_annotation) { + listener.exitStar_annotation(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitStar_annotation) { + return visitor.visitStar_annotation(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Default_assignmentContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public EQUAL(): TerminalNode { + return this.getToken(PythonParser.EQUAL, 0); + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_default_assignment; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterDefault_assignment) { + listener.enterDefault_assignment(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitDefault_assignment) { + listener.exitDefault_assignment(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitDefault_assignment) { + return visitor.visitDefault_assignment(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class If_stmtContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public IF(): TerminalNode { + return this.getToken(PythonParser.IF, 0); + } + public named_expression(): Named_expressionContext { + return this.getTypedRuleContext(Named_expressionContext, 0) as Named_expressionContext; + } + public COLON(): TerminalNode { + return this.getToken(PythonParser.COLON, 0); + } + public block(): BlockContext { + return this.getTypedRuleContext(BlockContext, 0) as BlockContext; + } + public elif_stmt(): Elif_stmtContext { + return this.getTypedRuleContext(Elif_stmtContext, 0) as Elif_stmtContext; + } + public else_block(): Else_blockContext { + return this.getTypedRuleContext(Else_blockContext, 0) as Else_blockContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_if_stmt; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterIf_stmt) { + listener.enterIf_stmt(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitIf_stmt) { + listener.exitIf_stmt(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitIf_stmt) { + return visitor.visitIf_stmt(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Elif_stmtContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public ELIF(): TerminalNode { + return this.getToken(PythonParser.ELIF, 0); + } + public named_expression(): Named_expressionContext { + return this.getTypedRuleContext(Named_expressionContext, 0) as Named_expressionContext; + } + public COLON(): TerminalNode { + return this.getToken(PythonParser.COLON, 0); + } + public block(): BlockContext { + return this.getTypedRuleContext(BlockContext, 0) as BlockContext; + } + public elif_stmt(): Elif_stmtContext { + return this.getTypedRuleContext(Elif_stmtContext, 0) as Elif_stmtContext; + } + public else_block(): Else_blockContext { + return this.getTypedRuleContext(Else_blockContext, 0) as Else_blockContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_elif_stmt; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterElif_stmt) { + listener.enterElif_stmt(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitElif_stmt) { + listener.exitElif_stmt(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitElif_stmt) { + return visitor.visitElif_stmt(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Else_blockContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public ELSE(): TerminalNode { + return this.getToken(PythonParser.ELSE, 0); + } + public COLON(): TerminalNode { + return this.getToken(PythonParser.COLON, 0); + } + public block(): BlockContext { + return this.getTypedRuleContext(BlockContext, 0) as BlockContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_else_block; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterElse_block) { + listener.enterElse_block(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitElse_block) { + listener.exitElse_block(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitElse_block) { + return visitor.visitElse_block(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class While_stmtContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public WHILE(): TerminalNode { + return this.getToken(PythonParser.WHILE, 0); + } + public named_expression(): Named_expressionContext { + return this.getTypedRuleContext(Named_expressionContext, 0) as Named_expressionContext; + } + public COLON(): TerminalNode { + return this.getToken(PythonParser.COLON, 0); + } + public block(): BlockContext { + return this.getTypedRuleContext(BlockContext, 0) as BlockContext; + } + public else_block(): Else_blockContext { + return this.getTypedRuleContext(Else_blockContext, 0) as Else_blockContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_while_stmt; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterWhile_stmt) { + listener.enterWhile_stmt(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitWhile_stmt) { + listener.exitWhile_stmt(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitWhile_stmt) { + return visitor.visitWhile_stmt(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class For_stmtContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public FOR(): TerminalNode { + return this.getToken(PythonParser.FOR, 0); + } + public star_targets(): Star_targetsContext { + return this.getTypedRuleContext(Star_targetsContext, 0) as Star_targetsContext; + } + public IN(): TerminalNode { + return this.getToken(PythonParser.IN, 0); + } + public star_expressions(): Star_expressionsContext { + return this.getTypedRuleContext(Star_expressionsContext, 0) as Star_expressionsContext; + } + public COLON(): TerminalNode { + return this.getToken(PythonParser.COLON, 0); + } + public block(): BlockContext { + return this.getTypedRuleContext(BlockContext, 0) as BlockContext; + } + public ASYNC(): TerminalNode { + return this.getToken(PythonParser.ASYNC, 0); + } + public TYPE_COMMENT(): TerminalNode { + return this.getToken(PythonParser.TYPE_COMMENT, 0); + } + public else_block(): Else_blockContext { + return this.getTypedRuleContext(Else_blockContext, 0) as Else_blockContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_for_stmt; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterFor_stmt) { + listener.enterFor_stmt(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitFor_stmt) { + listener.exitFor_stmt(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitFor_stmt) { + return visitor.visitFor_stmt(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class With_stmtContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public WITH(): TerminalNode { + return this.getToken(PythonParser.WITH, 0); + } + public block(): BlockContext { + return this.getTypedRuleContext(BlockContext, 0) as BlockContext; + } + public LPAR(): TerminalNode { + return this.getToken(PythonParser.LPAR, 0); + } + public with_item_list(): With_itemContext[] { + return this.getTypedRuleContexts(With_itemContext) as With_itemContext[]; + } + public with_item(i: number): With_itemContext { + return this.getTypedRuleContext(With_itemContext, i) as With_itemContext; + } + public RPAR(): TerminalNode { + return this.getToken(PythonParser.RPAR, 0); + } + public COLON(): TerminalNode { + return this.getToken(PythonParser.COLON, 0); + } + public ASYNC(): TerminalNode { + return this.getToken(PythonParser.ASYNC, 0); + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(PythonParser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(PythonParser.COMMA, i); + } + public TYPE_COMMENT(): TerminalNode { + return this.getToken(PythonParser.TYPE_COMMENT, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_with_stmt; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterWith_stmt) { + listener.enterWith_stmt(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitWith_stmt) { + listener.exitWith_stmt(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitWith_stmt) { + return visitor.visitWith_stmt(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class With_itemContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public AS(): TerminalNode { + return this.getToken(PythonParser.AS, 0); + } + public star_target(): Star_targetContext { + return this.getTypedRuleContext(Star_targetContext, 0) as Star_targetContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_with_item; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterWith_item) { + listener.enterWith_item(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitWith_item) { + listener.exitWith_item(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitWith_item) { + return visitor.visitWith_item(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Try_stmtContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public TRY(): TerminalNode { + return this.getToken(PythonParser.TRY, 0); + } + public COLON(): TerminalNode { + return this.getToken(PythonParser.COLON, 0); + } + public block(): BlockContext { + return this.getTypedRuleContext(BlockContext, 0) as BlockContext; + } + public finally_block(): Finally_blockContext { + return this.getTypedRuleContext(Finally_blockContext, 0) as Finally_blockContext; + } + public except_block_list(): Except_blockContext[] { + return this.getTypedRuleContexts(Except_blockContext) as Except_blockContext[]; + } + public except_block(i: number): Except_blockContext { + return this.getTypedRuleContext(Except_blockContext, i) as Except_blockContext; + } + public else_block(): Else_blockContext { + return this.getTypedRuleContext(Else_blockContext, 0) as Else_blockContext; + } + public except_star_block_list(): Except_star_blockContext[] { + return this.getTypedRuleContexts(Except_star_blockContext) as Except_star_blockContext[]; + } + public except_star_block(i: number): Except_star_blockContext { + return this.getTypedRuleContext(Except_star_blockContext, i) as Except_star_blockContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_try_stmt; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterTry_stmt) { + listener.enterTry_stmt(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitTry_stmt) { + listener.exitTry_stmt(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitTry_stmt) { + return visitor.visitTry_stmt(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Except_blockContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public EXCEPT(): TerminalNode { + return this.getToken(PythonParser.EXCEPT, 0); + } + public COLON(): TerminalNode { + return this.getToken(PythonParser.COLON, 0); + } + public block(): BlockContext { + return this.getTypedRuleContext(BlockContext, 0) as BlockContext; + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public AS(): TerminalNode { + return this.getToken(PythonParser.AS, 0); + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_except_block; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterExcept_block) { + listener.enterExcept_block(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitExcept_block) { + listener.exitExcept_block(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitExcept_block) { + return visitor.visitExcept_block(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Except_star_blockContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public EXCEPT(): TerminalNode { + return this.getToken(PythonParser.EXCEPT, 0); + } + public STAR(): TerminalNode { + return this.getToken(PythonParser.STAR, 0); + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public COLON(): TerminalNode { + return this.getToken(PythonParser.COLON, 0); + } + public block(): BlockContext { + return this.getTypedRuleContext(BlockContext, 0) as BlockContext; + } + public AS(): TerminalNode { + return this.getToken(PythonParser.AS, 0); + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_except_star_block; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterExcept_star_block) { + listener.enterExcept_star_block(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitExcept_star_block) { + listener.exitExcept_star_block(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitExcept_star_block) { + return visitor.visitExcept_star_block(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Finally_blockContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public FINALLY(): TerminalNode { + return this.getToken(PythonParser.FINALLY, 0); + } + public COLON(): TerminalNode { + return this.getToken(PythonParser.COLON, 0); + } + public block(): BlockContext { + return this.getTypedRuleContext(BlockContext, 0) as BlockContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_finally_block; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterFinally_block) { + listener.enterFinally_block(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitFinally_block) { + listener.exitFinally_block(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitFinally_block) { + return visitor.visitFinally_block(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Match_stmtContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public soft_kw_match(): Soft_kw_matchContext { + return this.getTypedRuleContext(Soft_kw_matchContext, 0) as Soft_kw_matchContext; + } + public subject_expr(): Subject_exprContext { + return this.getTypedRuleContext(Subject_exprContext, 0) as Subject_exprContext; + } + public COLON(): TerminalNode { + return this.getToken(PythonParser.COLON, 0); + } + public NEWLINE(): TerminalNode { + return this.getToken(PythonParser.NEWLINE, 0); + } + public INDENT(): TerminalNode { + return this.getToken(PythonParser.INDENT, 0); + } + public DEDENT(): TerminalNode { + return this.getToken(PythonParser.DEDENT, 0); + } + public case_block_list(): Case_blockContext[] { + return this.getTypedRuleContexts(Case_blockContext) as Case_blockContext[]; + } + public case_block(i: number): Case_blockContext { + return this.getTypedRuleContext(Case_blockContext, i) as Case_blockContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_match_stmt; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterMatch_stmt) { + listener.enterMatch_stmt(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitMatch_stmt) { + listener.exitMatch_stmt(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitMatch_stmt) { + return visitor.visitMatch_stmt(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Subject_exprContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public star_named_expression(): Star_named_expressionContext { + return this.getTypedRuleContext(Star_named_expressionContext, 0) as Star_named_expressionContext; + } + public COMMA(): TerminalNode { + return this.getToken(PythonParser.COMMA, 0); + } + public star_named_expressions(): Star_named_expressionsContext { + return this.getTypedRuleContext(Star_named_expressionsContext, 0) as Star_named_expressionsContext; + } + public named_expression(): Named_expressionContext { + return this.getTypedRuleContext(Named_expressionContext, 0) as Named_expressionContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_subject_expr; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterSubject_expr) { + listener.enterSubject_expr(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitSubject_expr) { + listener.exitSubject_expr(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitSubject_expr) { + return visitor.visitSubject_expr(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Case_blockContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public soft_kw_case(): Soft_kw_caseContext { + return this.getTypedRuleContext(Soft_kw_caseContext, 0) as Soft_kw_caseContext; + } + public patterns(): PatternsContext { + return this.getTypedRuleContext(PatternsContext, 0) as PatternsContext; + } + public COLON(): TerminalNode { + return this.getToken(PythonParser.COLON, 0); + } + public block(): BlockContext { + return this.getTypedRuleContext(BlockContext, 0) as BlockContext; + } + public guard(): GuardContext { + return this.getTypedRuleContext(GuardContext, 0) as GuardContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_case_block; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterCase_block) { + listener.enterCase_block(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitCase_block) { + listener.exitCase_block(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitCase_block) { + return visitor.visitCase_block(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class GuardContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public IF(): TerminalNode { + return this.getToken(PythonParser.IF, 0); + } + public named_expression(): Named_expressionContext { + return this.getTypedRuleContext(Named_expressionContext, 0) as Named_expressionContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_guard; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterGuard) { + listener.enterGuard(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitGuard) { + listener.exitGuard(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitGuard) { + return visitor.visitGuard(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class PatternsContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public open_sequence_pattern(): Open_sequence_patternContext { + return this.getTypedRuleContext(Open_sequence_patternContext, 0) as Open_sequence_patternContext; + } + public pattern(): PatternContext { + return this.getTypedRuleContext(PatternContext, 0) as PatternContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_patterns; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterPatterns) { + listener.enterPatterns(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitPatterns) { + listener.exitPatterns(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitPatterns) { + return visitor.visitPatterns(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class PatternContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public as_pattern(): As_patternContext { + return this.getTypedRuleContext(As_patternContext, 0) as As_patternContext; + } + public or_pattern(): Or_patternContext { + return this.getTypedRuleContext(Or_patternContext, 0) as Or_patternContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_pattern; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterPattern) { + listener.enterPattern(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitPattern) { + listener.exitPattern(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitPattern) { + return visitor.visitPattern(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class As_patternContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public or_pattern(): Or_patternContext { + return this.getTypedRuleContext(Or_patternContext, 0) as Or_patternContext; + } + public AS(): TerminalNode { + return this.getToken(PythonParser.AS, 0); + } + public pattern_capture_target(): Pattern_capture_targetContext { + return this.getTypedRuleContext(Pattern_capture_targetContext, 0) as Pattern_capture_targetContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_as_pattern; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterAs_pattern) { + listener.enterAs_pattern(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitAs_pattern) { + listener.exitAs_pattern(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitAs_pattern) { + return visitor.visitAs_pattern(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Or_patternContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public closed_pattern_list(): Closed_patternContext[] { + return this.getTypedRuleContexts(Closed_patternContext) as Closed_patternContext[]; + } + public closed_pattern(i: number): Closed_patternContext { + return this.getTypedRuleContext(Closed_patternContext, i) as Closed_patternContext; + } + public VBAR_list(): TerminalNode[] { + return this.getTokens(PythonParser.VBAR); + } + public VBAR(i: number): TerminalNode { + return this.getToken(PythonParser.VBAR, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_or_pattern; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterOr_pattern) { + listener.enterOr_pattern(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitOr_pattern) { + listener.exitOr_pattern(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitOr_pattern) { + return visitor.visitOr_pattern(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Closed_patternContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public literal_pattern(): Literal_patternContext { + return this.getTypedRuleContext(Literal_patternContext, 0) as Literal_patternContext; + } + public capture_pattern(): Capture_patternContext { + return this.getTypedRuleContext(Capture_patternContext, 0) as Capture_patternContext; + } + public wildcard_pattern(): Wildcard_patternContext { + return this.getTypedRuleContext(Wildcard_patternContext, 0) as Wildcard_patternContext; + } + public value_pattern(): Value_patternContext { + return this.getTypedRuleContext(Value_patternContext, 0) as Value_patternContext; + } + public group_pattern(): Group_patternContext { + return this.getTypedRuleContext(Group_patternContext, 0) as Group_patternContext; + } + public sequence_pattern(): Sequence_patternContext { + return this.getTypedRuleContext(Sequence_patternContext, 0) as Sequence_patternContext; + } + public mapping_pattern(): Mapping_patternContext { + return this.getTypedRuleContext(Mapping_patternContext, 0) as Mapping_patternContext; + } + public class_pattern(): Class_patternContext { + return this.getTypedRuleContext(Class_patternContext, 0) as Class_patternContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_closed_pattern; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterClosed_pattern) { + listener.enterClosed_pattern(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitClosed_pattern) { + listener.exitClosed_pattern(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitClosed_pattern) { + return visitor.visitClosed_pattern(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Literal_patternContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public signed_number(): Signed_numberContext { + return this.getTypedRuleContext(Signed_numberContext, 0) as Signed_numberContext; + } + public complex_number(): Complex_numberContext { + return this.getTypedRuleContext(Complex_numberContext, 0) as Complex_numberContext; + } + public strings(): StringsContext { + return this.getTypedRuleContext(StringsContext, 0) as StringsContext; + } + public NONE(): TerminalNode { + return this.getToken(PythonParser.NONE, 0); + } + public TRUE(): TerminalNode { + return this.getToken(PythonParser.TRUE, 0); + } + public FALSE(): TerminalNode { + return this.getToken(PythonParser.FALSE, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_literal_pattern; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterLiteral_pattern) { + listener.enterLiteral_pattern(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitLiteral_pattern) { + listener.exitLiteral_pattern(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitLiteral_pattern) { + return visitor.visitLiteral_pattern(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Literal_exprContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public signed_number(): Signed_numberContext { + return this.getTypedRuleContext(Signed_numberContext, 0) as Signed_numberContext; + } + public complex_number(): Complex_numberContext { + return this.getTypedRuleContext(Complex_numberContext, 0) as Complex_numberContext; + } + public strings(): StringsContext { + return this.getTypedRuleContext(StringsContext, 0) as StringsContext; + } + public NONE(): TerminalNode { + return this.getToken(PythonParser.NONE, 0); + } + public TRUE(): TerminalNode { + return this.getToken(PythonParser.TRUE, 0); + } + public FALSE(): TerminalNode { + return this.getToken(PythonParser.FALSE, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_literal_expr; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterLiteral_expr) { + listener.enterLiteral_expr(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitLiteral_expr) { + listener.exitLiteral_expr(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitLiteral_expr) { + return visitor.visitLiteral_expr(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Complex_numberContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public signed_real_number(): Signed_real_numberContext { + return this.getTypedRuleContext(Signed_real_numberContext, 0) as Signed_real_numberContext; + } + public imaginary_number(): Imaginary_numberContext { + return this.getTypedRuleContext(Imaginary_numberContext, 0) as Imaginary_numberContext; + } + public PLUS(): TerminalNode { + return this.getToken(PythonParser.PLUS, 0); + } + public MINUS(): TerminalNode { + return this.getToken(PythonParser.MINUS, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_complex_number; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterComplex_number) { + listener.enterComplex_number(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitComplex_number) { + listener.exitComplex_number(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitComplex_number) { + return visitor.visitComplex_number(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Signed_numberContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NUMBER(): TerminalNode { + return this.getToken(PythonParser.NUMBER, 0); + } + public MINUS(): TerminalNode { + return this.getToken(PythonParser.MINUS, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_signed_number; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterSigned_number) { + listener.enterSigned_number(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitSigned_number) { + listener.exitSigned_number(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitSigned_number) { + return visitor.visitSigned_number(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Signed_real_numberContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public real_number(): Real_numberContext { + return this.getTypedRuleContext(Real_numberContext, 0) as Real_numberContext; + } + public MINUS(): TerminalNode { + return this.getToken(PythonParser.MINUS, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_signed_real_number; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterSigned_real_number) { + listener.enterSigned_real_number(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitSigned_real_number) { + listener.exitSigned_real_number(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitSigned_real_number) { + return visitor.visitSigned_real_number(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Real_numberContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NUMBER(): TerminalNode { + return this.getToken(PythonParser.NUMBER, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_real_number; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterReal_number) { + listener.enterReal_number(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitReal_number) { + listener.exitReal_number(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitReal_number) { + return visitor.visitReal_number(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Imaginary_numberContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NUMBER(): TerminalNode { + return this.getToken(PythonParser.NUMBER, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_imaginary_number; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterImaginary_number) { + listener.enterImaginary_number(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitImaginary_number) { + listener.exitImaginary_number(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitImaginary_number) { + return visitor.visitImaginary_number(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Capture_patternContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public pattern_capture_target(): Pattern_capture_targetContext { + return this.getTypedRuleContext(Pattern_capture_targetContext, 0) as Pattern_capture_targetContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_capture_pattern; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterCapture_pattern) { + listener.enterCapture_pattern(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitCapture_pattern) { + listener.exitCapture_pattern(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitCapture_pattern) { + return visitor.visitCapture_pattern(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Pattern_capture_targetContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public soft_kw__not__wildcard(): Soft_kw__not__wildcardContext { + return this.getTypedRuleContext(Soft_kw__not__wildcardContext, 0) as Soft_kw__not__wildcardContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_pattern_capture_target; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterPattern_capture_target) { + listener.enterPattern_capture_target(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitPattern_capture_target) { + listener.exitPattern_capture_target(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitPattern_capture_target) { + return visitor.visitPattern_capture_target(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Wildcard_patternContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public soft_kw_wildcard(): Soft_kw_wildcardContext { + return this.getTypedRuleContext(Soft_kw_wildcardContext, 0) as Soft_kw_wildcardContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_wildcard_pattern; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterWildcard_pattern) { + listener.enterWildcard_pattern(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitWildcard_pattern) { + listener.exitWildcard_pattern(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitWildcard_pattern) { + return visitor.visitWildcard_pattern(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Value_patternContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public attr(): AttrContext { + return this.getTypedRuleContext(AttrContext, 0) as AttrContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_value_pattern; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterValue_pattern) { + listener.enterValue_pattern(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitValue_pattern) { + listener.exitValue_pattern(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitValue_pattern) { + return visitor.visitValue_pattern(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AttrContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NAME_list(): TerminalNode[] { + return this.getTokens(PythonParser.NAME); + } + public NAME(i: number): TerminalNode { + return this.getToken(PythonParser.NAME, i); + } + public DOT_list(): TerminalNode[] { + return this.getTokens(PythonParser.DOT); + } + public DOT(i: number): TerminalNode { + return this.getToken(PythonParser.DOT, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_attr; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterAttr) { + listener.enterAttr(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitAttr) { + listener.exitAttr(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitAttr) { + return visitor.visitAttr(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Name_or_attrContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NAME_list(): TerminalNode[] { + return this.getTokens(PythonParser.NAME); + } + public NAME(i: number): TerminalNode { + return this.getToken(PythonParser.NAME, i); + } + public DOT_list(): TerminalNode[] { + return this.getTokens(PythonParser.DOT); + } + public DOT(i: number): TerminalNode { + return this.getToken(PythonParser.DOT, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_name_or_attr; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterName_or_attr) { + listener.enterName_or_attr(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitName_or_attr) { + listener.exitName_or_attr(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitName_or_attr) { + return visitor.visitName_or_attr(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Group_patternContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public LPAR(): TerminalNode { + return this.getToken(PythonParser.LPAR, 0); + } + public pattern(): PatternContext { + return this.getTypedRuleContext(PatternContext, 0) as PatternContext; + } + public RPAR(): TerminalNode { + return this.getToken(PythonParser.RPAR, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_group_pattern; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterGroup_pattern) { + listener.enterGroup_pattern(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitGroup_pattern) { + listener.exitGroup_pattern(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitGroup_pattern) { + return visitor.visitGroup_pattern(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Sequence_patternContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public LSQB(): TerminalNode { + return this.getToken(PythonParser.LSQB, 0); + } + public RSQB(): TerminalNode { + return this.getToken(PythonParser.RSQB, 0); + } + public maybe_sequence_pattern(): Maybe_sequence_patternContext { + return this.getTypedRuleContext(Maybe_sequence_patternContext, 0) as Maybe_sequence_patternContext; + } + public LPAR(): TerminalNode { + return this.getToken(PythonParser.LPAR, 0); + } + public RPAR(): TerminalNode { + return this.getToken(PythonParser.RPAR, 0); + } + public open_sequence_pattern(): Open_sequence_patternContext { + return this.getTypedRuleContext(Open_sequence_patternContext, 0) as Open_sequence_patternContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_sequence_pattern; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterSequence_pattern) { + listener.enterSequence_pattern(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitSequence_pattern) { + listener.exitSequence_pattern(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitSequence_pattern) { + return visitor.visitSequence_pattern(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Open_sequence_patternContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public maybe_star_pattern(): Maybe_star_patternContext { + return this.getTypedRuleContext(Maybe_star_patternContext, 0) as Maybe_star_patternContext; + } + public COMMA(): TerminalNode { + return this.getToken(PythonParser.COMMA, 0); + } + public maybe_sequence_pattern(): Maybe_sequence_patternContext { + return this.getTypedRuleContext(Maybe_sequence_patternContext, 0) as Maybe_sequence_patternContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_open_sequence_pattern; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterOpen_sequence_pattern) { + listener.enterOpen_sequence_pattern(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitOpen_sequence_pattern) { + listener.exitOpen_sequence_pattern(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitOpen_sequence_pattern) { + return visitor.visitOpen_sequence_pattern(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Maybe_sequence_patternContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public maybe_star_pattern_list(): Maybe_star_patternContext[] { + return this.getTypedRuleContexts(Maybe_star_patternContext) as Maybe_star_patternContext[]; + } + public maybe_star_pattern(i: number): Maybe_star_patternContext { + return this.getTypedRuleContext(Maybe_star_patternContext, i) as Maybe_star_patternContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(PythonParser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(PythonParser.COMMA, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_maybe_sequence_pattern; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterMaybe_sequence_pattern) { + listener.enterMaybe_sequence_pattern(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitMaybe_sequence_pattern) { + listener.exitMaybe_sequence_pattern(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitMaybe_sequence_pattern) { + return visitor.visitMaybe_sequence_pattern(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Maybe_star_patternContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public star_pattern(): Star_patternContext { + return this.getTypedRuleContext(Star_patternContext, 0) as Star_patternContext; + } + public pattern(): PatternContext { + return this.getTypedRuleContext(PatternContext, 0) as PatternContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_maybe_star_pattern; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterMaybe_star_pattern) { + listener.enterMaybe_star_pattern(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitMaybe_star_pattern) { + listener.exitMaybe_star_pattern(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitMaybe_star_pattern) { + return visitor.visitMaybe_star_pattern(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Star_patternContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public STAR(): TerminalNode { + return this.getToken(PythonParser.STAR, 0); + } + public pattern_capture_target(): Pattern_capture_targetContext { + return this.getTypedRuleContext(Pattern_capture_targetContext, 0) as Pattern_capture_targetContext; + } + public wildcard_pattern(): Wildcard_patternContext { + return this.getTypedRuleContext(Wildcard_patternContext, 0) as Wildcard_patternContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_star_pattern; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterStar_pattern) { + listener.enterStar_pattern(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitStar_pattern) { + listener.exitStar_pattern(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitStar_pattern) { + return visitor.visitStar_pattern(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Mapping_patternContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public LBRACE(): TerminalNode { + return this.getToken(PythonParser.LBRACE, 0); + } + public RBRACE(): TerminalNode { + return this.getToken(PythonParser.RBRACE, 0); + } + public double_star_pattern(): Double_star_patternContext { + return this.getTypedRuleContext(Double_star_patternContext, 0) as Double_star_patternContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(PythonParser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(PythonParser.COMMA, i); + } + public items_pattern(): Items_patternContext { + return this.getTypedRuleContext(Items_patternContext, 0) as Items_patternContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_mapping_pattern; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterMapping_pattern) { + listener.enterMapping_pattern(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitMapping_pattern) { + listener.exitMapping_pattern(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitMapping_pattern) { + return visitor.visitMapping_pattern(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Items_patternContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public key_value_pattern_list(): Key_value_patternContext[] { + return this.getTypedRuleContexts(Key_value_patternContext) as Key_value_patternContext[]; + } + public key_value_pattern(i: number): Key_value_patternContext { + return this.getTypedRuleContext(Key_value_patternContext, i) as Key_value_patternContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(PythonParser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(PythonParser.COMMA, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_items_pattern; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterItems_pattern) { + listener.enterItems_pattern(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitItems_pattern) { + listener.exitItems_pattern(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitItems_pattern) { + return visitor.visitItems_pattern(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Key_value_patternContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public COLON(): TerminalNode { + return this.getToken(PythonParser.COLON, 0); + } + public pattern(): PatternContext { + return this.getTypedRuleContext(PatternContext, 0) as PatternContext; + } + public literal_expr(): Literal_exprContext { + return this.getTypedRuleContext(Literal_exprContext, 0) as Literal_exprContext; + } + public attr(): AttrContext { + return this.getTypedRuleContext(AttrContext, 0) as AttrContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_key_value_pattern; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterKey_value_pattern) { + listener.enterKey_value_pattern(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitKey_value_pattern) { + listener.exitKey_value_pattern(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitKey_value_pattern) { + return visitor.visitKey_value_pattern(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Double_star_patternContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public DOUBLESTAR(): TerminalNode { + return this.getToken(PythonParser.DOUBLESTAR, 0); + } + public pattern_capture_target(): Pattern_capture_targetContext { + return this.getTypedRuleContext(Pattern_capture_targetContext, 0) as Pattern_capture_targetContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_double_star_pattern; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterDouble_star_pattern) { + listener.enterDouble_star_pattern(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitDouble_star_pattern) { + listener.exitDouble_star_pattern(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitDouble_star_pattern) { + return visitor.visitDouble_star_pattern(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Class_patternContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public name_or_attr(): Name_or_attrContext { + return this.getTypedRuleContext(Name_or_attrContext, 0) as Name_or_attrContext; + } + public LPAR(): TerminalNode { + return this.getToken(PythonParser.LPAR, 0); + } + public RPAR(): TerminalNode { + return this.getToken(PythonParser.RPAR, 0); + } + public positional_patterns(): Positional_patternsContext { + return this.getTypedRuleContext(Positional_patternsContext, 0) as Positional_patternsContext; + } + public keyword_patterns(): Keyword_patternsContext { + return this.getTypedRuleContext(Keyword_patternsContext, 0) as Keyword_patternsContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(PythonParser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(PythonParser.COMMA, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_class_pattern; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterClass_pattern) { + listener.enterClass_pattern(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitClass_pattern) { + listener.exitClass_pattern(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitClass_pattern) { + return visitor.visitClass_pattern(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Positional_patternsContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public pattern_list(): PatternContext[] { + return this.getTypedRuleContexts(PatternContext) as PatternContext[]; + } + public pattern(i: number): PatternContext { + return this.getTypedRuleContext(PatternContext, i) as PatternContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(PythonParser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(PythonParser.COMMA, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_positional_patterns; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterPositional_patterns) { + listener.enterPositional_patterns(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitPositional_patterns) { + listener.exitPositional_patterns(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitPositional_patterns) { + return visitor.visitPositional_patterns(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Keyword_patternsContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public keyword_pattern_list(): Keyword_patternContext[] { + return this.getTypedRuleContexts(Keyword_patternContext) as Keyword_patternContext[]; + } + public keyword_pattern(i: number): Keyword_patternContext { + return this.getTypedRuleContext(Keyword_patternContext, i) as Keyword_patternContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(PythonParser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(PythonParser.COMMA, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_keyword_patterns; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterKeyword_patterns) { + listener.enterKeyword_patterns(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitKeyword_patterns) { + listener.exitKeyword_patterns(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitKeyword_patterns) { + return visitor.visitKeyword_patterns(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Keyword_patternContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public EQUAL(): TerminalNode { + return this.getToken(PythonParser.EQUAL, 0); + } + public pattern(): PatternContext { + return this.getTypedRuleContext(PatternContext, 0) as PatternContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_keyword_pattern; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterKeyword_pattern) { + listener.enterKeyword_pattern(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitKeyword_pattern) { + listener.exitKeyword_pattern(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitKeyword_pattern) { + return visitor.visitKeyword_pattern(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Type_aliasContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public soft_kw_type(): Soft_kw_typeContext { + return this.getTypedRuleContext(Soft_kw_typeContext, 0) as Soft_kw_typeContext; + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public EQUAL(): TerminalNode { + return this.getToken(PythonParser.EQUAL, 0); + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public type_params(): Type_paramsContext { + return this.getTypedRuleContext(Type_paramsContext, 0) as Type_paramsContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_type_alias; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterType_alias) { + listener.enterType_alias(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitType_alias) { + listener.exitType_alias(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitType_alias) { + return visitor.visitType_alias(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Type_paramsContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public LSQB(): TerminalNode { + return this.getToken(PythonParser.LSQB, 0); + } + public type_param_seq(): Type_param_seqContext { + return this.getTypedRuleContext(Type_param_seqContext, 0) as Type_param_seqContext; + } + public RSQB(): TerminalNode { + return this.getToken(PythonParser.RSQB, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_type_params; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterType_params) { + listener.enterType_params(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitType_params) { + listener.exitType_params(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitType_params) { + return visitor.visitType_params(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Type_param_seqContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public type_param_list(): Type_paramContext[] { + return this.getTypedRuleContexts(Type_paramContext) as Type_paramContext[]; + } + public type_param(i: number): Type_paramContext { + return this.getTypedRuleContext(Type_paramContext, i) as Type_paramContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(PythonParser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(PythonParser.COMMA, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_type_param_seq; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterType_param_seq) { + listener.enterType_param_seq(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitType_param_seq) { + listener.exitType_param_seq(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitType_param_seq) { + return visitor.visitType_param_seq(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Type_paramContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public type_param_bound(): Type_param_boundContext { + return this.getTypedRuleContext(Type_param_boundContext, 0) as Type_param_boundContext; + } + public STAR(): TerminalNode { + return this.getToken(PythonParser.STAR, 0); + } + public COLON(): TerminalNode { + return this.getToken(PythonParser.COLON, 0); + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public DOUBLESTAR(): TerminalNode { + return this.getToken(PythonParser.DOUBLESTAR, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_type_param; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterType_param) { + listener.enterType_param(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitType_param) { + listener.exitType_param(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitType_param) { + return visitor.visitType_param(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Type_param_boundContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public COLON(): TerminalNode { + return this.getToken(PythonParser.COLON, 0); + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_type_param_bound; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterType_param_bound) { + listener.enterType_param_bound(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitType_param_bound) { + listener.exitType_param_bound(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitType_param_bound) { + return visitor.visitType_param_bound(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ExpressionsContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public expression_list(): ExpressionContext[] { + return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[]; + } + public expression(i: number): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(PythonParser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(PythonParser.COMMA, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_expressions; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterExpressions) { + listener.enterExpressions(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitExpressions) { + listener.exitExpressions(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitExpressions) { + return visitor.visitExpressions(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ExpressionContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public disjunction_list(): DisjunctionContext[] { + return this.getTypedRuleContexts(DisjunctionContext) as DisjunctionContext[]; + } + public disjunction(i: number): DisjunctionContext { + return this.getTypedRuleContext(DisjunctionContext, i) as DisjunctionContext; + } + public IF(): TerminalNode { + return this.getToken(PythonParser.IF, 0); + } + public ELSE(): TerminalNode { + return this.getToken(PythonParser.ELSE, 0); + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public lambdef(): LambdefContext { + return this.getTypedRuleContext(LambdefContext, 0) as LambdefContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_expression; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterExpression) { + listener.enterExpression(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitExpression) { + listener.exitExpression(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitExpression) { + return visitor.visitExpression(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Yield_exprContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public YIELD(): TerminalNode { + return this.getToken(PythonParser.YIELD, 0); + } + public FROM(): TerminalNode { + return this.getToken(PythonParser.FROM, 0); + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public star_expressions(): Star_expressionsContext { + return this.getTypedRuleContext(Star_expressionsContext, 0) as Star_expressionsContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_yield_expr; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterYield_expr) { + listener.enterYield_expr(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitYield_expr) { + listener.exitYield_expr(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitYield_expr) { + return visitor.visitYield_expr(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Star_expressionsContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public star_expression_list(): Star_expressionContext[] { + return this.getTypedRuleContexts(Star_expressionContext) as Star_expressionContext[]; + } + public star_expression(i: number): Star_expressionContext { + return this.getTypedRuleContext(Star_expressionContext, i) as Star_expressionContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(PythonParser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(PythonParser.COMMA, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_star_expressions; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterStar_expressions) { + listener.enterStar_expressions(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitStar_expressions) { + listener.exitStar_expressions(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitStar_expressions) { + return visitor.visitStar_expressions(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Star_expressionContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public STAR(): TerminalNode { + return this.getToken(PythonParser.STAR, 0); + } + public bitwise_or(): Bitwise_orContext { + return this.getTypedRuleContext(Bitwise_orContext, 0) as Bitwise_orContext; + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_star_expression; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterStar_expression) { + listener.enterStar_expression(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitStar_expression) { + listener.exitStar_expression(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitStar_expression) { + return visitor.visitStar_expression(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Star_named_expressionsContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public star_named_expression_list(): Star_named_expressionContext[] { + return this.getTypedRuleContexts(Star_named_expressionContext) as Star_named_expressionContext[]; + } + public star_named_expression(i: number): Star_named_expressionContext { + return this.getTypedRuleContext(Star_named_expressionContext, i) as Star_named_expressionContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(PythonParser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(PythonParser.COMMA, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_star_named_expressions; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterStar_named_expressions) { + listener.enterStar_named_expressions(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitStar_named_expressions) { + listener.exitStar_named_expressions(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitStar_named_expressions) { + return visitor.visitStar_named_expressions(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Star_named_expressionContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public STAR(): TerminalNode { + return this.getToken(PythonParser.STAR, 0); + } + public bitwise_or(): Bitwise_orContext { + return this.getTypedRuleContext(Bitwise_orContext, 0) as Bitwise_orContext; + } + public named_expression(): Named_expressionContext { + return this.getTypedRuleContext(Named_expressionContext, 0) as Named_expressionContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_star_named_expression; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterStar_named_expression) { + listener.enterStar_named_expression(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitStar_named_expression) { + listener.exitStar_named_expression(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitStar_named_expression) { + return visitor.visitStar_named_expression(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Assignment_expressionContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public COLONEQUAL(): TerminalNode { + return this.getToken(PythonParser.COLONEQUAL, 0); + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_assignment_expression; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterAssignment_expression) { + listener.enterAssignment_expression(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitAssignment_expression) { + listener.exitAssignment_expression(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitAssignment_expression) { + return visitor.visitAssignment_expression(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Named_expressionContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public assignment_expression(): Assignment_expressionContext { + return this.getTypedRuleContext(Assignment_expressionContext, 0) as Assignment_expressionContext; + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_named_expression; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterNamed_expression) { + listener.enterNamed_expression(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitNamed_expression) { + listener.exitNamed_expression(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitNamed_expression) { + return visitor.visitNamed_expression(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DisjunctionContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public conjunction_list(): ConjunctionContext[] { + return this.getTypedRuleContexts(ConjunctionContext) as ConjunctionContext[]; + } + public conjunction(i: number): ConjunctionContext { + return this.getTypedRuleContext(ConjunctionContext, i) as ConjunctionContext; + } + public OR_list(): TerminalNode[] { + return this.getTokens(PythonParser.OR); + } + public OR(i: number): TerminalNode { + return this.getToken(PythonParser.OR, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_disjunction; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterDisjunction) { + listener.enterDisjunction(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitDisjunction) { + listener.exitDisjunction(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitDisjunction) { + return visitor.visitDisjunction(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ConjunctionContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public inversion_list(): InversionContext[] { + return this.getTypedRuleContexts(InversionContext) as InversionContext[]; + } + public inversion(i: number): InversionContext { + return this.getTypedRuleContext(InversionContext, i) as InversionContext; + } + public AND_list(): TerminalNode[] { + return this.getTokens(PythonParser.AND); + } + public AND(i: number): TerminalNode { + return this.getToken(PythonParser.AND, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_conjunction; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterConjunction) { + listener.enterConjunction(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitConjunction) { + listener.exitConjunction(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitConjunction) { + return visitor.visitConjunction(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class InversionContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NOT(): TerminalNode { + return this.getToken(PythonParser.NOT, 0); + } + public inversion(): InversionContext { + return this.getTypedRuleContext(InversionContext, 0) as InversionContext; + } + public comparison(): ComparisonContext { + return this.getTypedRuleContext(ComparisonContext, 0) as ComparisonContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_inversion; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterInversion) { + listener.enterInversion(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitInversion) { + listener.exitInversion(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitInversion) { + return visitor.visitInversion(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ComparisonContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public bitwise_or(): Bitwise_orContext { + return this.getTypedRuleContext(Bitwise_orContext, 0) as Bitwise_orContext; + } + public compare_op_bitwise_or_pair_list(): Compare_op_bitwise_or_pairContext[] { + return this.getTypedRuleContexts(Compare_op_bitwise_or_pairContext) as Compare_op_bitwise_or_pairContext[]; + } + public compare_op_bitwise_or_pair(i: number): Compare_op_bitwise_or_pairContext { + return this.getTypedRuleContext(Compare_op_bitwise_or_pairContext, i) as Compare_op_bitwise_or_pairContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_comparison; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterComparison) { + listener.enterComparison(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitComparison) { + listener.exitComparison(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitComparison) { + return visitor.visitComparison(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Compare_op_bitwise_or_pairContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public eq_bitwise_or(): Eq_bitwise_orContext { + return this.getTypedRuleContext(Eq_bitwise_orContext, 0) as Eq_bitwise_orContext; + } + public noteq_bitwise_or(): Noteq_bitwise_orContext { + return this.getTypedRuleContext(Noteq_bitwise_orContext, 0) as Noteq_bitwise_orContext; + } + public lte_bitwise_or(): Lte_bitwise_orContext { + return this.getTypedRuleContext(Lte_bitwise_orContext, 0) as Lte_bitwise_orContext; + } + public lt_bitwise_or(): Lt_bitwise_orContext { + return this.getTypedRuleContext(Lt_bitwise_orContext, 0) as Lt_bitwise_orContext; + } + public gte_bitwise_or(): Gte_bitwise_orContext { + return this.getTypedRuleContext(Gte_bitwise_orContext, 0) as Gte_bitwise_orContext; + } + public gt_bitwise_or(): Gt_bitwise_orContext { + return this.getTypedRuleContext(Gt_bitwise_orContext, 0) as Gt_bitwise_orContext; + } + public notin_bitwise_or(): Notin_bitwise_orContext { + return this.getTypedRuleContext(Notin_bitwise_orContext, 0) as Notin_bitwise_orContext; + } + public in_bitwise_or(): In_bitwise_orContext { + return this.getTypedRuleContext(In_bitwise_orContext, 0) as In_bitwise_orContext; + } + public isnot_bitwise_or(): Isnot_bitwise_orContext { + return this.getTypedRuleContext(Isnot_bitwise_orContext, 0) as Isnot_bitwise_orContext; + } + public is_bitwise_or(): Is_bitwise_orContext { + return this.getTypedRuleContext(Is_bitwise_orContext, 0) as Is_bitwise_orContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_compare_op_bitwise_or_pair; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterCompare_op_bitwise_or_pair) { + listener.enterCompare_op_bitwise_or_pair(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitCompare_op_bitwise_or_pair) { + listener.exitCompare_op_bitwise_or_pair(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitCompare_op_bitwise_or_pair) { + return visitor.visitCompare_op_bitwise_or_pair(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Eq_bitwise_orContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public EQEQUAL(): TerminalNode { + return this.getToken(PythonParser.EQEQUAL, 0); + } + public bitwise_or(): Bitwise_orContext { + return this.getTypedRuleContext(Bitwise_orContext, 0) as Bitwise_orContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_eq_bitwise_or; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterEq_bitwise_or) { + listener.enterEq_bitwise_or(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitEq_bitwise_or) { + listener.exitEq_bitwise_or(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitEq_bitwise_or) { + return visitor.visitEq_bitwise_or(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Noteq_bitwise_orContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public bitwise_or(): Bitwise_orContext { + return this.getTypedRuleContext(Bitwise_orContext, 0) as Bitwise_orContext; + } + public NOTEQUAL(): TerminalNode { + return this.getToken(PythonParser.NOTEQUAL, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_noteq_bitwise_or; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterNoteq_bitwise_or) { + listener.enterNoteq_bitwise_or(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitNoteq_bitwise_or) { + listener.exitNoteq_bitwise_or(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitNoteq_bitwise_or) { + return visitor.visitNoteq_bitwise_or(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Lte_bitwise_orContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public LESSEQUAL(): TerminalNode { + return this.getToken(PythonParser.LESSEQUAL, 0); + } + public bitwise_or(): Bitwise_orContext { + return this.getTypedRuleContext(Bitwise_orContext, 0) as Bitwise_orContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_lte_bitwise_or; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterLte_bitwise_or) { + listener.enterLte_bitwise_or(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitLte_bitwise_or) { + listener.exitLte_bitwise_or(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitLte_bitwise_or) { + return visitor.visitLte_bitwise_or(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Lt_bitwise_orContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public LESS(): TerminalNode { + return this.getToken(PythonParser.LESS, 0); + } + public bitwise_or(): Bitwise_orContext { + return this.getTypedRuleContext(Bitwise_orContext, 0) as Bitwise_orContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_lt_bitwise_or; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterLt_bitwise_or) { + listener.enterLt_bitwise_or(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitLt_bitwise_or) { + listener.exitLt_bitwise_or(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitLt_bitwise_or) { + return visitor.visitLt_bitwise_or(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Gte_bitwise_orContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public GREATEREQUAL(): TerminalNode { + return this.getToken(PythonParser.GREATEREQUAL, 0); + } + public bitwise_or(): Bitwise_orContext { + return this.getTypedRuleContext(Bitwise_orContext, 0) as Bitwise_orContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_gte_bitwise_or; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterGte_bitwise_or) { + listener.enterGte_bitwise_or(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitGte_bitwise_or) { + listener.exitGte_bitwise_or(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitGte_bitwise_or) { + return visitor.visitGte_bitwise_or(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Gt_bitwise_orContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public GREATER(): TerminalNode { + return this.getToken(PythonParser.GREATER, 0); + } + public bitwise_or(): Bitwise_orContext { + return this.getTypedRuleContext(Bitwise_orContext, 0) as Bitwise_orContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_gt_bitwise_or; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterGt_bitwise_or) { + listener.enterGt_bitwise_or(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitGt_bitwise_or) { + listener.exitGt_bitwise_or(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitGt_bitwise_or) { + return visitor.visitGt_bitwise_or(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Notin_bitwise_orContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NOT(): TerminalNode { + return this.getToken(PythonParser.NOT, 0); + } + public IN(): TerminalNode { + return this.getToken(PythonParser.IN, 0); + } + public bitwise_or(): Bitwise_orContext { + return this.getTypedRuleContext(Bitwise_orContext, 0) as Bitwise_orContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_notin_bitwise_or; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterNotin_bitwise_or) { + listener.enterNotin_bitwise_or(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitNotin_bitwise_or) { + listener.exitNotin_bitwise_or(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitNotin_bitwise_or) { + return visitor.visitNotin_bitwise_or(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class In_bitwise_orContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public IN(): TerminalNode { + return this.getToken(PythonParser.IN, 0); + } + public bitwise_or(): Bitwise_orContext { + return this.getTypedRuleContext(Bitwise_orContext, 0) as Bitwise_orContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_in_bitwise_or; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterIn_bitwise_or) { + listener.enterIn_bitwise_or(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitIn_bitwise_or) { + listener.exitIn_bitwise_or(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitIn_bitwise_or) { + return visitor.visitIn_bitwise_or(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Isnot_bitwise_orContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public IS(): TerminalNode { + return this.getToken(PythonParser.IS, 0); + } + public NOT(): TerminalNode { + return this.getToken(PythonParser.NOT, 0); + } + public bitwise_or(): Bitwise_orContext { + return this.getTypedRuleContext(Bitwise_orContext, 0) as Bitwise_orContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_isnot_bitwise_or; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterIsnot_bitwise_or) { + listener.enterIsnot_bitwise_or(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitIsnot_bitwise_or) { + listener.exitIsnot_bitwise_or(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitIsnot_bitwise_or) { + return visitor.visitIsnot_bitwise_or(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Is_bitwise_orContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public IS(): TerminalNode { + return this.getToken(PythonParser.IS, 0); + } + public bitwise_or(): Bitwise_orContext { + return this.getTypedRuleContext(Bitwise_orContext, 0) as Bitwise_orContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_is_bitwise_or; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterIs_bitwise_or) { + listener.enterIs_bitwise_or(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitIs_bitwise_or) { + listener.exitIs_bitwise_or(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitIs_bitwise_or) { + return visitor.visitIs_bitwise_or(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Bitwise_orContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public bitwise_xor(): Bitwise_xorContext { + return this.getTypedRuleContext(Bitwise_xorContext, 0) as Bitwise_xorContext; + } + public bitwise_or(): Bitwise_orContext { + return this.getTypedRuleContext(Bitwise_orContext, 0) as Bitwise_orContext; + } + public VBAR(): TerminalNode { + return this.getToken(PythonParser.VBAR, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_bitwise_or; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterBitwise_or) { + listener.enterBitwise_or(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitBitwise_or) { + listener.exitBitwise_or(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitBitwise_or) { + return visitor.visitBitwise_or(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Bitwise_xorContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public bitwise_and(): Bitwise_andContext { + return this.getTypedRuleContext(Bitwise_andContext, 0) as Bitwise_andContext; + } + public bitwise_xor(): Bitwise_xorContext { + return this.getTypedRuleContext(Bitwise_xorContext, 0) as Bitwise_xorContext; + } + public CIRCUMFLEX(): TerminalNode { + return this.getToken(PythonParser.CIRCUMFLEX, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_bitwise_xor; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterBitwise_xor) { + listener.enterBitwise_xor(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitBitwise_xor) { + listener.exitBitwise_xor(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitBitwise_xor) { + return visitor.visitBitwise_xor(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Bitwise_andContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public shift_expr(): Shift_exprContext { + return this.getTypedRuleContext(Shift_exprContext, 0) as Shift_exprContext; + } + public bitwise_and(): Bitwise_andContext { + return this.getTypedRuleContext(Bitwise_andContext, 0) as Bitwise_andContext; + } + public AMPER(): TerminalNode { + return this.getToken(PythonParser.AMPER, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_bitwise_and; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterBitwise_and) { + listener.enterBitwise_and(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitBitwise_and) { + listener.exitBitwise_and(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitBitwise_and) { + return visitor.visitBitwise_and(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Shift_exprContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public sum(): SumContext { + return this.getTypedRuleContext(SumContext, 0) as SumContext; + } + public shift_expr(): Shift_exprContext { + return this.getTypedRuleContext(Shift_exprContext, 0) as Shift_exprContext; + } + public LEFTSHIFT(): TerminalNode { + return this.getToken(PythonParser.LEFTSHIFT, 0); + } + public RIGHTSHIFT(): TerminalNode { + return this.getToken(PythonParser.RIGHTSHIFT, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_shift_expr; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterShift_expr) { + listener.enterShift_expr(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitShift_expr) { + listener.exitShift_expr(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitShift_expr) { + return visitor.visitShift_expr(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SumContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public term(): TermContext { + return this.getTypedRuleContext(TermContext, 0) as TermContext; + } + public sum(): SumContext { + return this.getTypedRuleContext(SumContext, 0) as SumContext; + } + public PLUS(): TerminalNode { + return this.getToken(PythonParser.PLUS, 0); + } + public MINUS(): TerminalNode { + return this.getToken(PythonParser.MINUS, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_sum; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterSum) { + listener.enterSum(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitSum) { + listener.exitSum(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitSum) { + return visitor.visitSum(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class TermContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public factor(): FactorContext { + return this.getTypedRuleContext(FactorContext, 0) as FactorContext; + } + public term(): TermContext { + return this.getTypedRuleContext(TermContext, 0) as TermContext; + } + public STAR(): TerminalNode { + return this.getToken(PythonParser.STAR, 0); + } + public SLASH(): TerminalNode { + return this.getToken(PythonParser.SLASH, 0); + } + public DOUBLESLASH(): TerminalNode { + return this.getToken(PythonParser.DOUBLESLASH, 0); + } + public PERCENT(): TerminalNode { + return this.getToken(PythonParser.PERCENT, 0); + } + public AT(): TerminalNode { + return this.getToken(PythonParser.AT, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_term; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterTerm) { + listener.enterTerm(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitTerm) { + listener.exitTerm(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitTerm) { + return visitor.visitTerm(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class FactorContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public PLUS(): TerminalNode { + return this.getToken(PythonParser.PLUS, 0); + } + public factor(): FactorContext { + return this.getTypedRuleContext(FactorContext, 0) as FactorContext; + } + public MINUS(): TerminalNode { + return this.getToken(PythonParser.MINUS, 0); + } + public TILDE(): TerminalNode { + return this.getToken(PythonParser.TILDE, 0); + } + public power(): PowerContext { + return this.getTypedRuleContext(PowerContext, 0) as PowerContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_factor; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterFactor) { + listener.enterFactor(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitFactor) { + listener.exitFactor(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitFactor) { + return visitor.visitFactor(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class PowerContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public await_primary(): Await_primaryContext { + return this.getTypedRuleContext(Await_primaryContext, 0) as Await_primaryContext; + } + public DOUBLESTAR(): TerminalNode { + return this.getToken(PythonParser.DOUBLESTAR, 0); + } + public factor(): FactorContext { + return this.getTypedRuleContext(FactorContext, 0) as FactorContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_power; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterPower) { + listener.enterPower(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitPower) { + listener.exitPower(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitPower) { + return visitor.visitPower(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Await_primaryContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public AWAIT(): TerminalNode { + return this.getToken(PythonParser.AWAIT, 0); + } + public primary(): PrimaryContext { + return this.getTypedRuleContext(PrimaryContext, 0) as PrimaryContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_await_primary; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterAwait_primary) { + listener.enterAwait_primary(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitAwait_primary) { + listener.exitAwait_primary(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitAwait_primary) { + return visitor.visitAwait_primary(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class PrimaryContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public atom(): AtomContext { + return this.getTypedRuleContext(AtomContext, 0) as AtomContext; + } + public primary(): PrimaryContext { + return this.getTypedRuleContext(PrimaryContext, 0) as PrimaryContext; + } + public DOT(): TerminalNode { + return this.getToken(PythonParser.DOT, 0); + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public genexp(): GenexpContext { + return this.getTypedRuleContext(GenexpContext, 0) as GenexpContext; + } + public LPAR(): TerminalNode { + return this.getToken(PythonParser.LPAR, 0); + } + public RPAR(): TerminalNode { + return this.getToken(PythonParser.RPAR, 0); + } + public LSQB(): TerminalNode { + return this.getToken(PythonParser.LSQB, 0); + } + public slices(): SlicesContext { + return this.getTypedRuleContext(SlicesContext, 0) as SlicesContext; + } + public RSQB(): TerminalNode { + return this.getToken(PythonParser.RSQB, 0); + } + public arguments(): ArgumentsContext { + return this.getTypedRuleContext(ArgumentsContext, 0) as ArgumentsContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_primary; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterPrimary) { + listener.enterPrimary(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitPrimary) { + listener.exitPrimary(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitPrimary) { + return visitor.visitPrimary(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SlicesContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public slice_list(): SliceContext[] { + return this.getTypedRuleContexts(SliceContext) as SliceContext[]; + } + public slice(i: number): SliceContext { + return this.getTypedRuleContext(SliceContext, i) as SliceContext; + } + public starred_expression_list(): Starred_expressionContext[] { + return this.getTypedRuleContexts(Starred_expressionContext) as Starred_expressionContext[]; + } + public starred_expression(i: number): Starred_expressionContext { + return this.getTypedRuleContext(Starred_expressionContext, i) as Starred_expressionContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(PythonParser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(PythonParser.COMMA, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_slices; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterSlices) { + listener.enterSlices(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitSlices) { + listener.exitSlices(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitSlices) { + return visitor.visitSlices(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SliceContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public COLON_list(): TerminalNode[] { + return this.getTokens(PythonParser.COLON); + } + public COLON(i: number): TerminalNode { + return this.getToken(PythonParser.COLON, i); + } + public expression_list(): ExpressionContext[] { + return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[]; + } + public expression(i: number): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext; + } + public named_expression(): Named_expressionContext { + return this.getTypedRuleContext(Named_expressionContext, 0) as Named_expressionContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_slice; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterSlice) { + listener.enterSlice(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitSlice) { + listener.exitSlice(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitSlice) { + return visitor.visitSlice(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AtomContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public TRUE(): TerminalNode { + return this.getToken(PythonParser.TRUE, 0); + } + public FALSE(): TerminalNode { + return this.getToken(PythonParser.FALSE, 0); + } + public NONE(): TerminalNode { + return this.getToken(PythonParser.NONE, 0); + } + public strings(): StringsContext { + return this.getTypedRuleContext(StringsContext, 0) as StringsContext; + } + public NUMBER(): TerminalNode { + return this.getToken(PythonParser.NUMBER, 0); + } + public tuple(): TupleContext { + return this.getTypedRuleContext(TupleContext, 0) as TupleContext; + } + public group(): GroupContext { + return this.getTypedRuleContext(GroupContext, 0) as GroupContext; + } + public genexp(): GenexpContext { + return this.getTypedRuleContext(GenexpContext, 0) as GenexpContext; + } + public list(): ListContext { + return this.getTypedRuleContext(ListContext, 0) as ListContext; + } + public listcomp(): ListcompContext { + return this.getTypedRuleContext(ListcompContext, 0) as ListcompContext; + } + public dict(): DictContext { + return this.getTypedRuleContext(DictContext, 0) as DictContext; + } + public set_(): SetContext { + return this.getTypedRuleContext(SetContext, 0) as SetContext; + } + public dictcomp(): DictcompContext { + return this.getTypedRuleContext(DictcompContext, 0) as DictcompContext; + } + public setcomp(): SetcompContext { + return this.getTypedRuleContext(SetcompContext, 0) as SetcompContext; + } + public ELLIPSIS(): TerminalNode { + return this.getToken(PythonParser.ELLIPSIS, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_atom; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterAtom) { + listener.enterAtom(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitAtom) { + listener.exitAtom(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitAtom) { + return visitor.visitAtom(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class GroupContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public LPAR(): TerminalNode { + return this.getToken(PythonParser.LPAR, 0); + } + public RPAR(): TerminalNode { + return this.getToken(PythonParser.RPAR, 0); + } + public yield_expr(): Yield_exprContext { + return this.getTypedRuleContext(Yield_exprContext, 0) as Yield_exprContext; + } + public named_expression(): Named_expressionContext { + return this.getTypedRuleContext(Named_expressionContext, 0) as Named_expressionContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_group; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterGroup) { + listener.enterGroup(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitGroup) { + listener.exitGroup(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitGroup) { + return visitor.visitGroup(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class LambdefContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public LAMBDA(): TerminalNode { + return this.getToken(PythonParser.LAMBDA, 0); + } + public COLON(): TerminalNode { + return this.getToken(PythonParser.COLON, 0); + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public lambda_params(): Lambda_paramsContext { + return this.getTypedRuleContext(Lambda_paramsContext, 0) as Lambda_paramsContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_lambdef; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterLambdef) { + listener.enterLambdef(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitLambdef) { + listener.exitLambdef(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitLambdef) { + return visitor.visitLambdef(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Lambda_paramsContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public lambda_parameters(): Lambda_parametersContext { + return this.getTypedRuleContext(Lambda_parametersContext, 0) as Lambda_parametersContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_lambda_params; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterLambda_params) { + listener.enterLambda_params(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitLambda_params) { + listener.exitLambda_params(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitLambda_params) { + return visitor.visitLambda_params(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Lambda_parametersContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public lambda_slash_no_default(): Lambda_slash_no_defaultContext { + return this.getTypedRuleContext(Lambda_slash_no_defaultContext, 0) as Lambda_slash_no_defaultContext; + } + public lambda_param_no_default_list(): Lambda_param_no_defaultContext[] { + return this.getTypedRuleContexts(Lambda_param_no_defaultContext) as Lambda_param_no_defaultContext[]; + } + public lambda_param_no_default(i: number): Lambda_param_no_defaultContext { + return this.getTypedRuleContext(Lambda_param_no_defaultContext, i) as Lambda_param_no_defaultContext; + } + public lambda_param_with_default_list(): Lambda_param_with_defaultContext[] { + return this.getTypedRuleContexts(Lambda_param_with_defaultContext) as Lambda_param_with_defaultContext[]; + } + public lambda_param_with_default(i: number): Lambda_param_with_defaultContext { + return this.getTypedRuleContext(Lambda_param_with_defaultContext, i) as Lambda_param_with_defaultContext; + } + public lambda_star_etc(): Lambda_star_etcContext { + return this.getTypedRuleContext(Lambda_star_etcContext, 0) as Lambda_star_etcContext; + } + public lambda_slash_with_default(): Lambda_slash_with_defaultContext { + return this.getTypedRuleContext(Lambda_slash_with_defaultContext, 0) as Lambda_slash_with_defaultContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_lambda_parameters; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterLambda_parameters) { + listener.enterLambda_parameters(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitLambda_parameters) { + listener.exitLambda_parameters(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitLambda_parameters) { + return visitor.visitLambda_parameters(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Lambda_slash_no_defaultContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public SLASH(): TerminalNode { + return this.getToken(PythonParser.SLASH, 0); + } + public lambda_param_no_default_list(): Lambda_param_no_defaultContext[] { + return this.getTypedRuleContexts(Lambda_param_no_defaultContext) as Lambda_param_no_defaultContext[]; + } + public lambda_param_no_default(i: number): Lambda_param_no_defaultContext { + return this.getTypedRuleContext(Lambda_param_no_defaultContext, i) as Lambda_param_no_defaultContext; + } + public COMMA(): TerminalNode { + return this.getToken(PythonParser.COMMA, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_lambda_slash_no_default; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterLambda_slash_no_default) { + listener.enterLambda_slash_no_default(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitLambda_slash_no_default) { + listener.exitLambda_slash_no_default(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitLambda_slash_no_default) { + return visitor.visitLambda_slash_no_default(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Lambda_slash_with_defaultContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public SLASH(): TerminalNode { + return this.getToken(PythonParser.SLASH, 0); + } + public lambda_param_no_default_list(): Lambda_param_no_defaultContext[] { + return this.getTypedRuleContexts(Lambda_param_no_defaultContext) as Lambda_param_no_defaultContext[]; + } + public lambda_param_no_default(i: number): Lambda_param_no_defaultContext { + return this.getTypedRuleContext(Lambda_param_no_defaultContext, i) as Lambda_param_no_defaultContext; + } + public lambda_param_with_default_list(): Lambda_param_with_defaultContext[] { + return this.getTypedRuleContexts(Lambda_param_with_defaultContext) as Lambda_param_with_defaultContext[]; + } + public lambda_param_with_default(i: number): Lambda_param_with_defaultContext { + return this.getTypedRuleContext(Lambda_param_with_defaultContext, i) as Lambda_param_with_defaultContext; + } + public COMMA(): TerminalNode { + return this.getToken(PythonParser.COMMA, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_lambda_slash_with_default; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterLambda_slash_with_default) { + listener.enterLambda_slash_with_default(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitLambda_slash_with_default) { + listener.exitLambda_slash_with_default(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitLambda_slash_with_default) { + return visitor.visitLambda_slash_with_default(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Lambda_star_etcContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public STAR(): TerminalNode { + return this.getToken(PythonParser.STAR, 0); + } + public lambda_param_no_default(): Lambda_param_no_defaultContext { + return this.getTypedRuleContext(Lambda_param_no_defaultContext, 0) as Lambda_param_no_defaultContext; + } + public lambda_param_maybe_default_list(): Lambda_param_maybe_defaultContext[] { + return this.getTypedRuleContexts(Lambda_param_maybe_defaultContext) as Lambda_param_maybe_defaultContext[]; + } + public lambda_param_maybe_default(i: number): Lambda_param_maybe_defaultContext { + return this.getTypedRuleContext(Lambda_param_maybe_defaultContext, i) as Lambda_param_maybe_defaultContext; + } + public lambda_kwds(): Lambda_kwdsContext { + return this.getTypedRuleContext(Lambda_kwdsContext, 0) as Lambda_kwdsContext; + } + public COMMA(): TerminalNode { + return this.getToken(PythonParser.COMMA, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_lambda_star_etc; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterLambda_star_etc) { + listener.enterLambda_star_etc(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitLambda_star_etc) { + listener.exitLambda_star_etc(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitLambda_star_etc) { + return visitor.visitLambda_star_etc(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Lambda_kwdsContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public DOUBLESTAR(): TerminalNode { + return this.getToken(PythonParser.DOUBLESTAR, 0); + } + public lambda_param_no_default(): Lambda_param_no_defaultContext { + return this.getTypedRuleContext(Lambda_param_no_defaultContext, 0) as Lambda_param_no_defaultContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_lambda_kwds; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterLambda_kwds) { + listener.enterLambda_kwds(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitLambda_kwds) { + listener.exitLambda_kwds(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitLambda_kwds) { + return visitor.visitLambda_kwds(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Lambda_param_no_defaultContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public lambda_param(): Lambda_paramContext { + return this.getTypedRuleContext(Lambda_paramContext, 0) as Lambda_paramContext; + } + public COMMA(): TerminalNode { + return this.getToken(PythonParser.COMMA, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_lambda_param_no_default; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterLambda_param_no_default) { + listener.enterLambda_param_no_default(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitLambda_param_no_default) { + listener.exitLambda_param_no_default(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitLambda_param_no_default) { + return visitor.visitLambda_param_no_default(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Lambda_param_with_defaultContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public lambda_param(): Lambda_paramContext { + return this.getTypedRuleContext(Lambda_paramContext, 0) as Lambda_paramContext; + } + public default_assignment(): Default_assignmentContext { + return this.getTypedRuleContext(Default_assignmentContext, 0) as Default_assignmentContext; + } + public COMMA(): TerminalNode { + return this.getToken(PythonParser.COMMA, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_lambda_param_with_default; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterLambda_param_with_default) { + listener.enterLambda_param_with_default(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitLambda_param_with_default) { + listener.exitLambda_param_with_default(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitLambda_param_with_default) { + return visitor.visitLambda_param_with_default(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Lambda_param_maybe_defaultContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public lambda_param(): Lambda_paramContext { + return this.getTypedRuleContext(Lambda_paramContext, 0) as Lambda_paramContext; + } + public default_assignment(): Default_assignmentContext { + return this.getTypedRuleContext(Default_assignmentContext, 0) as Default_assignmentContext; + } + public COMMA(): TerminalNode { + return this.getToken(PythonParser.COMMA, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_lambda_param_maybe_default; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterLambda_param_maybe_default) { + listener.enterLambda_param_maybe_default(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitLambda_param_maybe_default) { + listener.exitLambda_param_maybe_default(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitLambda_param_maybe_default) { + return visitor.visitLambda_param_maybe_default(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Lambda_paramContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_lambda_param; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterLambda_param) { + listener.enterLambda_param(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitLambda_param) { + listener.exitLambda_param(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitLambda_param) { + return visitor.visitLambda_param(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Fstring_middleContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public fstring_replacement_field(): Fstring_replacement_fieldContext { + return this.getTypedRuleContext(Fstring_replacement_fieldContext, 0) as Fstring_replacement_fieldContext; + } + public FSTRING_MIDDLE(): TerminalNode { + return this.getToken(PythonParser.FSTRING_MIDDLE, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_fstring_middle; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterFstring_middle) { + listener.enterFstring_middle(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitFstring_middle) { + listener.exitFstring_middle(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitFstring_middle) { + return visitor.visitFstring_middle(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Fstring_replacement_fieldContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public LBRACE(): TerminalNode { + return this.getToken(PythonParser.LBRACE, 0); + } + public RBRACE(): TerminalNode { + return this.getToken(PythonParser.RBRACE, 0); + } + public yield_expr(): Yield_exprContext { + return this.getTypedRuleContext(Yield_exprContext, 0) as Yield_exprContext; + } + public star_expressions(): Star_expressionsContext { + return this.getTypedRuleContext(Star_expressionsContext, 0) as Star_expressionsContext; + } + public EQUAL(): TerminalNode { + return this.getToken(PythonParser.EQUAL, 0); + } + public fstring_conversion(): Fstring_conversionContext { + return this.getTypedRuleContext(Fstring_conversionContext, 0) as Fstring_conversionContext; + } + public fstring_full_format_spec(): Fstring_full_format_specContext { + return this.getTypedRuleContext(Fstring_full_format_specContext, 0) as Fstring_full_format_specContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_fstring_replacement_field; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterFstring_replacement_field) { + listener.enterFstring_replacement_field(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitFstring_replacement_field) { + listener.exitFstring_replacement_field(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitFstring_replacement_field) { + return visitor.visitFstring_replacement_field(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Fstring_conversionContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public EXCLAMATION(): TerminalNode { + return this.getToken(PythonParser.EXCLAMATION, 0); + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_fstring_conversion; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterFstring_conversion) { + listener.enterFstring_conversion(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitFstring_conversion) { + listener.exitFstring_conversion(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitFstring_conversion) { + return visitor.visitFstring_conversion(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Fstring_full_format_specContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public COLON(): TerminalNode { + return this.getToken(PythonParser.COLON, 0); + } + public fstring_format_spec_list(): Fstring_format_specContext[] { + return this.getTypedRuleContexts(Fstring_format_specContext) as Fstring_format_specContext[]; + } + public fstring_format_spec(i: number): Fstring_format_specContext { + return this.getTypedRuleContext(Fstring_format_specContext, i) as Fstring_format_specContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_fstring_full_format_spec; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterFstring_full_format_spec) { + listener.enterFstring_full_format_spec(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitFstring_full_format_spec) { + listener.exitFstring_full_format_spec(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitFstring_full_format_spec) { + return visitor.visitFstring_full_format_spec(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Fstring_format_specContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public FSTRING_MIDDLE(): TerminalNode { + return this.getToken(PythonParser.FSTRING_MIDDLE, 0); + } + public fstring_replacement_field(): Fstring_replacement_fieldContext { + return this.getTypedRuleContext(Fstring_replacement_fieldContext, 0) as Fstring_replacement_fieldContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_fstring_format_spec; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterFstring_format_spec) { + listener.enterFstring_format_spec(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitFstring_format_spec) { + listener.exitFstring_format_spec(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitFstring_format_spec) { + return visitor.visitFstring_format_spec(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class FstringContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public FSTRING_START(): TerminalNode { + return this.getToken(PythonParser.FSTRING_START, 0); + } + public FSTRING_END(): TerminalNode { + return this.getToken(PythonParser.FSTRING_END, 0); + } + public fstring_middle_list(): Fstring_middleContext[] { + return this.getTypedRuleContexts(Fstring_middleContext) as Fstring_middleContext[]; + } + public fstring_middle(i: number): Fstring_middleContext { + return this.getTypedRuleContext(Fstring_middleContext, i) as Fstring_middleContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_fstring; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterFstring) { + listener.enterFstring(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitFstring) { + listener.exitFstring(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitFstring) { + return visitor.visitFstring(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class StringContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public STRING(): TerminalNode { + return this.getToken(PythonParser.STRING, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_string; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterString) { + listener.enterString(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitString) { + listener.exitString(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitString) { + return visitor.visitString(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class StringsContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public fstring_list(): FstringContext[] { + return this.getTypedRuleContexts(FstringContext) as FstringContext[]; + } + public fstring(i: number): FstringContext { + return this.getTypedRuleContext(FstringContext, i) as FstringContext; + } + public string__list(): StringContext[] { + return this.getTypedRuleContexts(StringContext) as StringContext[]; + } + public string_(i: number): StringContext { + return this.getTypedRuleContext(StringContext, i) as StringContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_strings; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterStrings) { + listener.enterStrings(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitStrings) { + listener.exitStrings(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitStrings) { + return visitor.visitStrings(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ListContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public LSQB(): TerminalNode { + return this.getToken(PythonParser.LSQB, 0); + } + public RSQB(): TerminalNode { + return this.getToken(PythonParser.RSQB, 0); + } + public star_named_expressions(): Star_named_expressionsContext { + return this.getTypedRuleContext(Star_named_expressionsContext, 0) as Star_named_expressionsContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_list; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterList) { + listener.enterList(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitList) { + listener.exitList(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitList) { + return visitor.visitList(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class TupleContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public LPAR(): TerminalNode { + return this.getToken(PythonParser.LPAR, 0); + } + public RPAR(): TerminalNode { + return this.getToken(PythonParser.RPAR, 0); + } + public star_named_expression(): Star_named_expressionContext { + return this.getTypedRuleContext(Star_named_expressionContext, 0) as Star_named_expressionContext; + } + public COMMA(): TerminalNode { + return this.getToken(PythonParser.COMMA, 0); + } + public star_named_expressions(): Star_named_expressionsContext { + return this.getTypedRuleContext(Star_named_expressionsContext, 0) as Star_named_expressionsContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_tuple; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterTuple) { + listener.enterTuple(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitTuple) { + listener.exitTuple(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitTuple) { + return visitor.visitTuple(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SetContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public LBRACE(): TerminalNode { + return this.getToken(PythonParser.LBRACE, 0); + } + public star_named_expressions(): Star_named_expressionsContext { + return this.getTypedRuleContext(Star_named_expressionsContext, 0) as Star_named_expressionsContext; + } + public RBRACE(): TerminalNode { + return this.getToken(PythonParser.RBRACE, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_set; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterSet) { + listener.enterSet(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitSet) { + listener.exitSet(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitSet) { + return visitor.visitSet(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DictContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public LBRACE(): TerminalNode { + return this.getToken(PythonParser.LBRACE, 0); + } + public RBRACE(): TerminalNode { + return this.getToken(PythonParser.RBRACE, 0); + } + public double_starred_kvpairs(): Double_starred_kvpairsContext { + return this.getTypedRuleContext(Double_starred_kvpairsContext, 0) as Double_starred_kvpairsContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_dict; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterDict) { + listener.enterDict(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitDict) { + listener.exitDict(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitDict) { + return visitor.visitDict(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Double_starred_kvpairsContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public double_starred_kvpair_list(): Double_starred_kvpairContext[] { + return this.getTypedRuleContexts(Double_starred_kvpairContext) as Double_starred_kvpairContext[]; + } + public double_starred_kvpair(i: number): Double_starred_kvpairContext { + return this.getTypedRuleContext(Double_starred_kvpairContext, i) as Double_starred_kvpairContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(PythonParser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(PythonParser.COMMA, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_double_starred_kvpairs; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterDouble_starred_kvpairs) { + listener.enterDouble_starred_kvpairs(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitDouble_starred_kvpairs) { + listener.exitDouble_starred_kvpairs(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitDouble_starred_kvpairs) { + return visitor.visitDouble_starred_kvpairs(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Double_starred_kvpairContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public DOUBLESTAR(): TerminalNode { + return this.getToken(PythonParser.DOUBLESTAR, 0); + } + public bitwise_or(): Bitwise_orContext { + return this.getTypedRuleContext(Bitwise_orContext, 0) as Bitwise_orContext; + } + public kvpair(): KvpairContext { + return this.getTypedRuleContext(KvpairContext, 0) as KvpairContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_double_starred_kvpair; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterDouble_starred_kvpair) { + listener.enterDouble_starred_kvpair(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitDouble_starred_kvpair) { + listener.exitDouble_starred_kvpair(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitDouble_starred_kvpair) { + return visitor.visitDouble_starred_kvpair(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class KvpairContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public expression_list(): ExpressionContext[] { + return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[]; + } + public expression(i: number): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext; + } + public COLON(): TerminalNode { + return this.getToken(PythonParser.COLON, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_kvpair; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterKvpair) { + listener.enterKvpair(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitKvpair) { + listener.exitKvpair(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitKvpair) { + return visitor.visitKvpair(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class For_if_clausesContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public for_if_clause_list(): For_if_clauseContext[] { + return this.getTypedRuleContexts(For_if_clauseContext) as For_if_clauseContext[]; + } + public for_if_clause(i: number): For_if_clauseContext { + return this.getTypedRuleContext(For_if_clauseContext, i) as For_if_clauseContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_for_if_clauses; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterFor_if_clauses) { + listener.enterFor_if_clauses(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitFor_if_clauses) { + listener.exitFor_if_clauses(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitFor_if_clauses) { + return visitor.visitFor_if_clauses(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class For_if_clauseContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public FOR(): TerminalNode { + return this.getToken(PythonParser.FOR, 0); + } + public star_targets(): Star_targetsContext { + return this.getTypedRuleContext(Star_targetsContext, 0) as Star_targetsContext; + } + public IN(): TerminalNode { + return this.getToken(PythonParser.IN, 0); + } + public disjunction_list(): DisjunctionContext[] { + return this.getTypedRuleContexts(DisjunctionContext) as DisjunctionContext[]; + } + public disjunction(i: number): DisjunctionContext { + return this.getTypedRuleContext(DisjunctionContext, i) as DisjunctionContext; + } + public ASYNC(): TerminalNode { + return this.getToken(PythonParser.ASYNC, 0); + } + public IF_list(): TerminalNode[] { + return this.getTokens(PythonParser.IF); + } + public IF(i: number): TerminalNode { + return this.getToken(PythonParser.IF, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_for_if_clause; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterFor_if_clause) { + listener.enterFor_if_clause(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitFor_if_clause) { + listener.exitFor_if_clause(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitFor_if_clause) { + return visitor.visitFor_if_clause(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ListcompContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public LSQB(): TerminalNode { + return this.getToken(PythonParser.LSQB, 0); + } + public named_expression(): Named_expressionContext { + return this.getTypedRuleContext(Named_expressionContext, 0) as Named_expressionContext; + } + public for_if_clauses(): For_if_clausesContext { + return this.getTypedRuleContext(For_if_clausesContext, 0) as For_if_clausesContext; + } + public RSQB(): TerminalNode { + return this.getToken(PythonParser.RSQB, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_listcomp; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterListcomp) { + listener.enterListcomp(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitListcomp) { + listener.exitListcomp(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitListcomp) { + return visitor.visitListcomp(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SetcompContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public LBRACE(): TerminalNode { + return this.getToken(PythonParser.LBRACE, 0); + } + public named_expression(): Named_expressionContext { + return this.getTypedRuleContext(Named_expressionContext, 0) as Named_expressionContext; + } + public for_if_clauses(): For_if_clausesContext { + return this.getTypedRuleContext(For_if_clausesContext, 0) as For_if_clausesContext; + } + public RBRACE(): TerminalNode { + return this.getToken(PythonParser.RBRACE, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_setcomp; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterSetcomp) { + listener.enterSetcomp(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitSetcomp) { + listener.exitSetcomp(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitSetcomp) { + return visitor.visitSetcomp(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class GenexpContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public LPAR(): TerminalNode { + return this.getToken(PythonParser.LPAR, 0); + } + public for_if_clauses(): For_if_clausesContext { + return this.getTypedRuleContext(For_if_clausesContext, 0) as For_if_clausesContext; + } + public RPAR(): TerminalNode { + return this.getToken(PythonParser.RPAR, 0); + } + public assignment_expression(): Assignment_expressionContext { + return this.getTypedRuleContext(Assignment_expressionContext, 0) as Assignment_expressionContext; + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_genexp; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterGenexp) { + listener.enterGenexp(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitGenexp) { + listener.exitGenexp(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitGenexp) { + return visitor.visitGenexp(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DictcompContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public LBRACE(): TerminalNode { + return this.getToken(PythonParser.LBRACE, 0); + } + public kvpair(): KvpairContext { + return this.getTypedRuleContext(KvpairContext, 0) as KvpairContext; + } + public for_if_clauses(): For_if_clausesContext { + return this.getTypedRuleContext(For_if_clausesContext, 0) as For_if_clausesContext; + } + public RBRACE(): TerminalNode { + return this.getToken(PythonParser.RBRACE, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_dictcomp; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterDictcomp) { + listener.enterDictcomp(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitDictcomp) { + listener.exitDictcomp(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitDictcomp) { + return visitor.visitDictcomp(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ArgumentsContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public args(): ArgsContext { + return this.getTypedRuleContext(ArgsContext, 0) as ArgsContext; + } + public COMMA(): TerminalNode { + return this.getToken(PythonParser.COMMA, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_arguments; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterArguments) { + listener.enterArguments(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitArguments) { + listener.exitArguments(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitArguments) { + return visitor.visitArguments(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ArgsContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public starred_expression_list(): Starred_expressionContext[] { + return this.getTypedRuleContexts(Starred_expressionContext) as Starred_expressionContext[]; + } + public starred_expression(i: number): Starred_expressionContext { + return this.getTypedRuleContext(Starred_expressionContext, i) as Starred_expressionContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(PythonParser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(PythonParser.COMMA, i); + } + public kwargs(): KwargsContext { + return this.getTypedRuleContext(KwargsContext, 0) as KwargsContext; + } + public assignment_expression_list(): Assignment_expressionContext[] { + return this.getTypedRuleContexts(Assignment_expressionContext) as Assignment_expressionContext[]; + } + public assignment_expression(i: number): Assignment_expressionContext { + return this.getTypedRuleContext(Assignment_expressionContext, i) as Assignment_expressionContext; + } + public expression_list(): ExpressionContext[] { + return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[]; + } + public expression(i: number): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_args; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterArgs) { + listener.enterArgs(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitArgs) { + listener.exitArgs(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitArgs) { + return visitor.visitArgs(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class KwargsContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public kwarg_or_starred_list(): Kwarg_or_starredContext[] { + return this.getTypedRuleContexts(Kwarg_or_starredContext) as Kwarg_or_starredContext[]; + } + public kwarg_or_starred(i: number): Kwarg_or_starredContext { + return this.getTypedRuleContext(Kwarg_or_starredContext, i) as Kwarg_or_starredContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(PythonParser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(PythonParser.COMMA, i); + } + public kwarg_or_double_starred_list(): Kwarg_or_double_starredContext[] { + return this.getTypedRuleContexts(Kwarg_or_double_starredContext) as Kwarg_or_double_starredContext[]; + } + public kwarg_or_double_starred(i: number): Kwarg_or_double_starredContext { + return this.getTypedRuleContext(Kwarg_or_double_starredContext, i) as Kwarg_or_double_starredContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_kwargs; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterKwargs) { + listener.enterKwargs(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitKwargs) { + listener.exitKwargs(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitKwargs) { + return visitor.visitKwargs(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Starred_expressionContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public STAR(): TerminalNode { + return this.getToken(PythonParser.STAR, 0); + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_starred_expression; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterStarred_expression) { + listener.enterStarred_expression(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitStarred_expression) { + listener.exitStarred_expression(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitStarred_expression) { + return visitor.visitStarred_expression(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Kwarg_or_starredContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public EQUAL(): TerminalNode { + return this.getToken(PythonParser.EQUAL, 0); + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public starred_expression(): Starred_expressionContext { + return this.getTypedRuleContext(Starred_expressionContext, 0) as Starred_expressionContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_kwarg_or_starred; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterKwarg_or_starred) { + listener.enterKwarg_or_starred(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitKwarg_or_starred) { + listener.exitKwarg_or_starred(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitKwarg_or_starred) { + return visitor.visitKwarg_or_starred(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Kwarg_or_double_starredContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public EQUAL(): TerminalNode { + return this.getToken(PythonParser.EQUAL, 0); + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public DOUBLESTAR(): TerminalNode { + return this.getToken(PythonParser.DOUBLESTAR, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_kwarg_or_double_starred; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterKwarg_or_double_starred) { + listener.enterKwarg_or_double_starred(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitKwarg_or_double_starred) { + listener.exitKwarg_or_double_starred(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitKwarg_or_double_starred) { + return visitor.visitKwarg_or_double_starred(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Star_targetsContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public star_target_list(): Star_targetContext[] { + return this.getTypedRuleContexts(Star_targetContext) as Star_targetContext[]; + } + public star_target(i: number): Star_targetContext { + return this.getTypedRuleContext(Star_targetContext, i) as Star_targetContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(PythonParser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(PythonParser.COMMA, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_star_targets; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterStar_targets) { + listener.enterStar_targets(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitStar_targets) { + listener.exitStar_targets(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitStar_targets) { + return visitor.visitStar_targets(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Star_targets_list_seqContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public star_target_list(): Star_targetContext[] { + return this.getTypedRuleContexts(Star_targetContext) as Star_targetContext[]; + } + public star_target(i: number): Star_targetContext { + return this.getTypedRuleContext(Star_targetContext, i) as Star_targetContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(PythonParser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(PythonParser.COMMA, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_star_targets_list_seq; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterStar_targets_list_seq) { + listener.enterStar_targets_list_seq(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitStar_targets_list_seq) { + listener.exitStar_targets_list_seq(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitStar_targets_list_seq) { + return visitor.visitStar_targets_list_seq(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Star_targets_tuple_seqContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public star_target_list(): Star_targetContext[] { + return this.getTypedRuleContexts(Star_targetContext) as Star_targetContext[]; + } + public star_target(i: number): Star_targetContext { + return this.getTypedRuleContext(Star_targetContext, i) as Star_targetContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(PythonParser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(PythonParser.COMMA, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_star_targets_tuple_seq; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterStar_targets_tuple_seq) { + listener.enterStar_targets_tuple_seq(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitStar_targets_tuple_seq) { + listener.exitStar_targets_tuple_seq(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitStar_targets_tuple_seq) { + return visitor.visitStar_targets_tuple_seq(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Star_targetContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public STAR(): TerminalNode { + return this.getToken(PythonParser.STAR, 0); + } + public star_target(): Star_targetContext { + return this.getTypedRuleContext(Star_targetContext, 0) as Star_targetContext; + } + public target_with_star_atom(): Target_with_star_atomContext { + return this.getTypedRuleContext(Target_with_star_atomContext, 0) as Target_with_star_atomContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_star_target; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterStar_target) { + listener.enterStar_target(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitStar_target) { + listener.exitStar_target(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitStar_target) { + return visitor.visitStar_target(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Target_with_star_atomContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public t_primary(): T_primaryContext { + return this.getTypedRuleContext(T_primaryContext, 0) as T_primaryContext; + } + public DOT(): TerminalNode { + return this.getToken(PythonParser.DOT, 0); + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public LSQB(): TerminalNode { + return this.getToken(PythonParser.LSQB, 0); + } + public slices(): SlicesContext { + return this.getTypedRuleContext(SlicesContext, 0) as SlicesContext; + } + public RSQB(): TerminalNode { + return this.getToken(PythonParser.RSQB, 0); + } + public star_atom(): Star_atomContext { + return this.getTypedRuleContext(Star_atomContext, 0) as Star_atomContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_target_with_star_atom; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterTarget_with_star_atom) { + listener.enterTarget_with_star_atom(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitTarget_with_star_atom) { + listener.exitTarget_with_star_atom(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitTarget_with_star_atom) { + return visitor.visitTarget_with_star_atom(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Star_atomContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public LPAR(): TerminalNode { + return this.getToken(PythonParser.LPAR, 0); + } + public target_with_star_atom(): Target_with_star_atomContext { + return this.getTypedRuleContext(Target_with_star_atomContext, 0) as Target_with_star_atomContext; + } + public RPAR(): TerminalNode { + return this.getToken(PythonParser.RPAR, 0); + } + public star_targets_tuple_seq(): Star_targets_tuple_seqContext { + return this.getTypedRuleContext(Star_targets_tuple_seqContext, 0) as Star_targets_tuple_seqContext; + } + public LSQB(): TerminalNode { + return this.getToken(PythonParser.LSQB, 0); + } + public RSQB(): TerminalNode { + return this.getToken(PythonParser.RSQB, 0); + } + public star_targets_list_seq(): Star_targets_list_seqContext { + return this.getTypedRuleContext(Star_targets_list_seqContext, 0) as Star_targets_list_seqContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_star_atom; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterStar_atom) { + listener.enterStar_atom(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitStar_atom) { + listener.exitStar_atom(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitStar_atom) { + return visitor.visitStar_atom(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Single_targetContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public single_subscript_attribute_target(): Single_subscript_attribute_targetContext { + return this.getTypedRuleContext(Single_subscript_attribute_targetContext, 0) as Single_subscript_attribute_targetContext; + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public LPAR(): TerminalNode { + return this.getToken(PythonParser.LPAR, 0); + } + public single_target(): Single_targetContext { + return this.getTypedRuleContext(Single_targetContext, 0) as Single_targetContext; + } + public RPAR(): TerminalNode { + return this.getToken(PythonParser.RPAR, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_single_target; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterSingle_target) { + listener.enterSingle_target(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitSingle_target) { + listener.exitSingle_target(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitSingle_target) { + return visitor.visitSingle_target(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Single_subscript_attribute_targetContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public t_primary(): T_primaryContext { + return this.getTypedRuleContext(T_primaryContext, 0) as T_primaryContext; + } + public DOT(): TerminalNode { + return this.getToken(PythonParser.DOT, 0); + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public LSQB(): TerminalNode { + return this.getToken(PythonParser.LSQB, 0); + } + public slices(): SlicesContext { + return this.getTypedRuleContext(SlicesContext, 0) as SlicesContext; + } + public RSQB(): TerminalNode { + return this.getToken(PythonParser.RSQB, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_single_subscript_attribute_target; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterSingle_subscript_attribute_target) { + listener.enterSingle_subscript_attribute_target(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitSingle_subscript_attribute_target) { + listener.exitSingle_subscript_attribute_target(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitSingle_subscript_attribute_target) { + return visitor.visitSingle_subscript_attribute_target(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class T_primaryContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public atom(): AtomContext { + return this.getTypedRuleContext(AtomContext, 0) as AtomContext; + } + public t_primary(): T_primaryContext { + return this.getTypedRuleContext(T_primaryContext, 0) as T_primaryContext; + } + public DOT(): TerminalNode { + return this.getToken(PythonParser.DOT, 0); + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public LSQB(): TerminalNode { + return this.getToken(PythonParser.LSQB, 0); + } + public slices(): SlicesContext { + return this.getTypedRuleContext(SlicesContext, 0) as SlicesContext; + } + public RSQB(): TerminalNode { + return this.getToken(PythonParser.RSQB, 0); + } + public genexp(): GenexpContext { + return this.getTypedRuleContext(GenexpContext, 0) as GenexpContext; + } + public LPAR(): TerminalNode { + return this.getToken(PythonParser.LPAR, 0); + } + public RPAR(): TerminalNode { + return this.getToken(PythonParser.RPAR, 0); + } + public arguments(): ArgumentsContext { + return this.getTypedRuleContext(ArgumentsContext, 0) as ArgumentsContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_t_primary; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterT_primary) { + listener.enterT_primary(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitT_primary) { + listener.exitT_primary(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitT_primary) { + return visitor.visitT_primary(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Del_targetsContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public del_target_list(): Del_targetContext[] { + return this.getTypedRuleContexts(Del_targetContext) as Del_targetContext[]; + } + public del_target(i: number): Del_targetContext { + return this.getTypedRuleContext(Del_targetContext, i) as Del_targetContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(PythonParser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(PythonParser.COMMA, i); + } + public get ruleIndex(): number { + return PythonParser.RULE_del_targets; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterDel_targets) { + listener.enterDel_targets(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitDel_targets) { + listener.exitDel_targets(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitDel_targets) { + return visitor.visitDel_targets(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Del_targetContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public t_primary(): T_primaryContext { + return this.getTypedRuleContext(T_primaryContext, 0) as T_primaryContext; + } + public DOT(): TerminalNode { + return this.getToken(PythonParser.DOT, 0); + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public LSQB(): TerminalNode { + return this.getToken(PythonParser.LSQB, 0); + } + public slices(): SlicesContext { + return this.getTypedRuleContext(SlicesContext, 0) as SlicesContext; + } + public RSQB(): TerminalNode { + return this.getToken(PythonParser.RSQB, 0); + } + public del_t_atom(): Del_t_atomContext { + return this.getTypedRuleContext(Del_t_atomContext, 0) as Del_t_atomContext; + } + public get ruleIndex(): number { + return PythonParser.RULE_del_target; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterDel_target) { + listener.enterDel_target(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitDel_target) { + listener.exitDel_target(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitDel_target) { + return visitor.visitDel_target(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Del_t_atomContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public LPAR(): TerminalNode { + return this.getToken(PythonParser.LPAR, 0); + } + public del_target(): Del_targetContext { + return this.getTypedRuleContext(Del_targetContext, 0) as Del_targetContext; + } + public RPAR(): TerminalNode { + return this.getToken(PythonParser.RPAR, 0); + } + public del_targets(): Del_targetsContext { + return this.getTypedRuleContext(Del_targetsContext, 0) as Del_targetsContext; + } + public LSQB(): TerminalNode { + return this.getToken(PythonParser.LSQB, 0); + } + public RSQB(): TerminalNode { + return this.getToken(PythonParser.RSQB, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_del_t_atom; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterDel_t_atom) { + listener.enterDel_t_atom(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitDel_t_atom) { + listener.exitDel_t_atom(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitDel_t_atom) { + return visitor.visitDel_t_atom(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Type_expressionsContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public expression_list(): ExpressionContext[] { + return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[]; + } + public expression(i: number): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(PythonParser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(PythonParser.COMMA, i); + } + public STAR(): TerminalNode { + return this.getToken(PythonParser.STAR, 0); + } + public DOUBLESTAR(): TerminalNode { + return this.getToken(PythonParser.DOUBLESTAR, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_type_expressions; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterType_expressions) { + listener.enterType_expressions(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitType_expressions) { + listener.exitType_expressions(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitType_expressions) { + return visitor.visitType_expressions(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Func_type_commentContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NEWLINE(): TerminalNode { + return this.getToken(PythonParser.NEWLINE, 0); + } + public TYPE_COMMENT(): TerminalNode { + return this.getToken(PythonParser.TYPE_COMMENT, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_func_type_comment; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterFunc_type_comment) { + listener.enterFunc_type_comment(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitFunc_type_comment) { + listener.exitFunc_type_comment(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitFunc_type_comment) { + return visitor.visitFunc_type_comment(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Soft_kw_typeContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_soft_kw_type; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterSoft_kw_type) { + listener.enterSoft_kw_type(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitSoft_kw_type) { + listener.exitSoft_kw_type(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitSoft_kw_type) { + return visitor.visitSoft_kw_type(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Soft_kw_matchContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_soft_kw_match; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterSoft_kw_match) { + listener.enterSoft_kw_match(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitSoft_kw_match) { + listener.exitSoft_kw_match(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitSoft_kw_match) { + return visitor.visitSoft_kw_match(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Soft_kw_caseContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_soft_kw_case; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterSoft_kw_case) { + listener.enterSoft_kw_case(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitSoft_kw_case) { + listener.exitSoft_kw_case(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitSoft_kw_case) { + return visitor.visitSoft_kw_case(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Soft_kw_wildcardContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_soft_kw_wildcard; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterSoft_kw_wildcard) { + listener.enterSoft_kw_wildcard(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitSoft_kw_wildcard) { + listener.exitSoft_kw_wildcard(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitSoft_kw_wildcard) { + return visitor.visitSoft_kw_wildcard(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class Soft_kw__not__wildcardContext extends ParserRuleContext { + constructor(parser?: PythonParser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public NAME(): TerminalNode { + return this.getToken(PythonParser.NAME, 0); + } + public get ruleIndex(): number { + return PythonParser.RULE_soft_kw__not__wildcard; + } + public enterRule(listener: PythonParserListener): void { + if(listener.enterSoft_kw__not__wildcard) { + listener.enterSoft_kw__not__wildcard(this); + } + } + public exitRule(listener: PythonParserListener): void { + if(listener.exitSoft_kw__not__wildcard) { + listener.exitSoft_kw__not__wildcard(this); + } + } + // @Override + public accept(visitor: PythonParserVisitor): Result { + if (visitor.visitSoft_kw__not__wildcard) { + return visitor.visitSoft_kw__not__wildcard(this); + } else { + return visitor.visitChildren(this); + } + } +} diff --git a/grammars-v4/python/python3_12_1/PythonParserBase.ts b/grammars-v4/python/python3_12_1/PythonParserBase.ts new file mode 100644 index 0000000..65a85eb --- /dev/null +++ b/grammars-v4/python/python3_12_1/PythonParserBase.ts @@ -0,0 +1,16 @@ +import { Parser, TokenStream } from "antlr4"; +//import antlr4 from "antlr4"; + +export default class PythonParserBase extends Parser { + constructor(input: TokenStream) { + super(input); + } + + isEqualToCurrentTokenText(tokenText: string): boolean { + return this.getCurrentToken().text === tokenText; + } + + isnotEqualToCurrentTokenText(tokenText: string): boolean { + return !this.isEqualToCurrentTokenText(tokenText); // for compatibility with the Python 'not' logical operator + } +} \ No newline at end of file diff --git a/grammars-v4/python/python3_12_1/PythonParserListener.ts b/grammars-v4/python/python3_12_1/PythonParserListener.ts new file mode 100644 index 0000000..5313b27 --- /dev/null +++ b/grammars-v4/python/python3_12_1/PythonParserListener.ts @@ -0,0 +1,2192 @@ +// Generated from PythonParser.g4 by ANTLR 4.13.2 + +import {ParseTreeListener} from "antlr4"; + + +import { File_inputContext } from "./PythonParser.js"; +import { InteractiveContext } from "./PythonParser.js"; +import { EvalContext } from "./PythonParser.js"; +import { Func_typeContext } from "./PythonParser.js"; +import { Fstring_inputContext } from "./PythonParser.js"; +import { StatementsContext } from "./PythonParser.js"; +import { StatementContext } from "./PythonParser.js"; +import { Statement_newlineContext } from "./PythonParser.js"; +import { Simple_stmtsContext } from "./PythonParser.js"; +import { Simple_stmtContext } from "./PythonParser.js"; +import { Compound_stmtContext } from "./PythonParser.js"; +import { AssignmentContext } from "./PythonParser.js"; +import { Annotated_rhsContext } from "./PythonParser.js"; +import { AugassignContext } from "./PythonParser.js"; +import { Return_stmtContext } from "./PythonParser.js"; +import { Raise_stmtContext } from "./PythonParser.js"; +import { Global_stmtContext } from "./PythonParser.js"; +import { Nonlocal_stmtContext } from "./PythonParser.js"; +import { Del_stmtContext } from "./PythonParser.js"; +import { Yield_stmtContext } from "./PythonParser.js"; +import { Assert_stmtContext } from "./PythonParser.js"; +import { Import_stmtContext } from "./PythonParser.js"; +import { Import_nameContext } from "./PythonParser.js"; +import { Import_fromContext } from "./PythonParser.js"; +import { Import_from_targetsContext } from "./PythonParser.js"; +import { Import_from_as_namesContext } from "./PythonParser.js"; +import { Import_from_as_nameContext } from "./PythonParser.js"; +import { Dotted_as_namesContext } from "./PythonParser.js"; +import { Dotted_as_nameContext } from "./PythonParser.js"; +import { Dotted_nameContext } from "./PythonParser.js"; +import { BlockContext } from "./PythonParser.js"; +import { DecoratorsContext } from "./PythonParser.js"; +import { Class_defContext } from "./PythonParser.js"; +import { Class_def_rawContext } from "./PythonParser.js"; +import { Function_defContext } from "./PythonParser.js"; +import { Function_def_rawContext } from "./PythonParser.js"; +import { ParamsContext } from "./PythonParser.js"; +import { ParametersContext } from "./PythonParser.js"; +import { Slash_no_defaultContext } from "./PythonParser.js"; +import { Slash_with_defaultContext } from "./PythonParser.js"; +import { Star_etcContext } from "./PythonParser.js"; +import { KwdsContext } from "./PythonParser.js"; +import { Param_no_defaultContext } from "./PythonParser.js"; +import { Param_no_default_star_annotationContext } from "./PythonParser.js"; +import { Param_with_defaultContext } from "./PythonParser.js"; +import { Param_maybe_defaultContext } from "./PythonParser.js"; +import { ParamContext } from "./PythonParser.js"; +import { Param_star_annotationContext } from "./PythonParser.js"; +import { AnnotationContext } from "./PythonParser.js"; +import { Star_annotationContext } from "./PythonParser.js"; +import { Default_assignmentContext } from "./PythonParser.js"; +import { If_stmtContext } from "./PythonParser.js"; +import { Elif_stmtContext } from "./PythonParser.js"; +import { Else_blockContext } from "./PythonParser.js"; +import { While_stmtContext } from "./PythonParser.js"; +import { For_stmtContext } from "./PythonParser.js"; +import { With_stmtContext } from "./PythonParser.js"; +import { With_itemContext } from "./PythonParser.js"; +import { Try_stmtContext } from "./PythonParser.js"; +import { Except_blockContext } from "./PythonParser.js"; +import { Except_star_blockContext } from "./PythonParser.js"; +import { Finally_blockContext } from "./PythonParser.js"; +import { Match_stmtContext } from "./PythonParser.js"; +import { Subject_exprContext } from "./PythonParser.js"; +import { Case_blockContext } from "./PythonParser.js"; +import { GuardContext } from "./PythonParser.js"; +import { PatternsContext } from "./PythonParser.js"; +import { PatternContext } from "./PythonParser.js"; +import { As_patternContext } from "./PythonParser.js"; +import { Or_patternContext } from "./PythonParser.js"; +import { Closed_patternContext } from "./PythonParser.js"; +import { Literal_patternContext } from "./PythonParser.js"; +import { Literal_exprContext } from "./PythonParser.js"; +import { Complex_numberContext } from "./PythonParser.js"; +import { Signed_numberContext } from "./PythonParser.js"; +import { Signed_real_numberContext } from "./PythonParser.js"; +import { Real_numberContext } from "./PythonParser.js"; +import { Imaginary_numberContext } from "./PythonParser.js"; +import { Capture_patternContext } from "./PythonParser.js"; +import { Pattern_capture_targetContext } from "./PythonParser.js"; +import { Wildcard_patternContext } from "./PythonParser.js"; +import { Value_patternContext } from "./PythonParser.js"; +import { AttrContext } from "./PythonParser.js"; +import { Name_or_attrContext } from "./PythonParser.js"; +import { Group_patternContext } from "./PythonParser.js"; +import { Sequence_patternContext } from "./PythonParser.js"; +import { Open_sequence_patternContext } from "./PythonParser.js"; +import { Maybe_sequence_patternContext } from "./PythonParser.js"; +import { Maybe_star_patternContext } from "./PythonParser.js"; +import { Star_patternContext } from "./PythonParser.js"; +import { Mapping_patternContext } from "./PythonParser.js"; +import { Items_patternContext } from "./PythonParser.js"; +import { Key_value_patternContext } from "./PythonParser.js"; +import { Double_star_patternContext } from "./PythonParser.js"; +import { Class_patternContext } from "./PythonParser.js"; +import { Positional_patternsContext } from "./PythonParser.js"; +import { Keyword_patternsContext } from "./PythonParser.js"; +import { Keyword_patternContext } from "./PythonParser.js"; +import { Type_aliasContext } from "./PythonParser.js"; +import { Type_paramsContext } from "./PythonParser.js"; +import { Type_param_seqContext } from "./PythonParser.js"; +import { Type_paramContext } from "./PythonParser.js"; +import { Type_param_boundContext } from "./PythonParser.js"; +import { ExpressionsContext } from "./PythonParser.js"; +import { ExpressionContext } from "./PythonParser.js"; +import { Yield_exprContext } from "./PythonParser.js"; +import { Star_expressionsContext } from "./PythonParser.js"; +import { Star_expressionContext } from "./PythonParser.js"; +import { Star_named_expressionsContext } from "./PythonParser.js"; +import { Star_named_expressionContext } from "./PythonParser.js"; +import { Assignment_expressionContext } from "./PythonParser.js"; +import { Named_expressionContext } from "./PythonParser.js"; +import { DisjunctionContext } from "./PythonParser.js"; +import { ConjunctionContext } from "./PythonParser.js"; +import { InversionContext } from "./PythonParser.js"; +import { ComparisonContext } from "./PythonParser.js"; +import { Compare_op_bitwise_or_pairContext } from "./PythonParser.js"; +import { Eq_bitwise_orContext } from "./PythonParser.js"; +import { Noteq_bitwise_orContext } from "./PythonParser.js"; +import { Lte_bitwise_orContext } from "./PythonParser.js"; +import { Lt_bitwise_orContext } from "./PythonParser.js"; +import { Gte_bitwise_orContext } from "./PythonParser.js"; +import { Gt_bitwise_orContext } from "./PythonParser.js"; +import { Notin_bitwise_orContext } from "./PythonParser.js"; +import { In_bitwise_orContext } from "./PythonParser.js"; +import { Isnot_bitwise_orContext } from "./PythonParser.js"; +import { Is_bitwise_orContext } from "./PythonParser.js"; +import { Bitwise_orContext } from "./PythonParser.js"; +import { Bitwise_xorContext } from "./PythonParser.js"; +import { Bitwise_andContext } from "./PythonParser.js"; +import { Shift_exprContext } from "./PythonParser.js"; +import { SumContext } from "./PythonParser.js"; +import { TermContext } from "./PythonParser.js"; +import { FactorContext } from "./PythonParser.js"; +import { PowerContext } from "./PythonParser.js"; +import { Await_primaryContext } from "./PythonParser.js"; +import { PrimaryContext } from "./PythonParser.js"; +import { SlicesContext } from "./PythonParser.js"; +import { SliceContext } from "./PythonParser.js"; +import { AtomContext } from "./PythonParser.js"; +import { GroupContext } from "./PythonParser.js"; +import { LambdefContext } from "./PythonParser.js"; +import { Lambda_paramsContext } from "./PythonParser.js"; +import { Lambda_parametersContext } from "./PythonParser.js"; +import { Lambda_slash_no_defaultContext } from "./PythonParser.js"; +import { Lambda_slash_with_defaultContext } from "./PythonParser.js"; +import { Lambda_star_etcContext } from "./PythonParser.js"; +import { Lambda_kwdsContext } from "./PythonParser.js"; +import { Lambda_param_no_defaultContext } from "./PythonParser.js"; +import { Lambda_param_with_defaultContext } from "./PythonParser.js"; +import { Lambda_param_maybe_defaultContext } from "./PythonParser.js"; +import { Lambda_paramContext } from "./PythonParser.js"; +import { Fstring_middleContext } from "./PythonParser.js"; +import { Fstring_replacement_fieldContext } from "./PythonParser.js"; +import { Fstring_conversionContext } from "./PythonParser.js"; +import { Fstring_full_format_specContext } from "./PythonParser.js"; +import { Fstring_format_specContext } from "./PythonParser.js"; +import { FstringContext } from "./PythonParser.js"; +import { StringContext } from "./PythonParser.js"; +import { StringsContext } from "./PythonParser.js"; +import { ListContext } from "./PythonParser.js"; +import { TupleContext } from "./PythonParser.js"; +import { SetContext } from "./PythonParser.js"; +import { DictContext } from "./PythonParser.js"; +import { Double_starred_kvpairsContext } from "./PythonParser.js"; +import { Double_starred_kvpairContext } from "./PythonParser.js"; +import { KvpairContext } from "./PythonParser.js"; +import { For_if_clausesContext } from "./PythonParser.js"; +import { For_if_clauseContext } from "./PythonParser.js"; +import { ListcompContext } from "./PythonParser.js"; +import { SetcompContext } from "./PythonParser.js"; +import { GenexpContext } from "./PythonParser.js"; +import { DictcompContext } from "./PythonParser.js"; +import { ArgumentsContext } from "./PythonParser.js"; +import { ArgsContext } from "./PythonParser.js"; +import { KwargsContext } from "./PythonParser.js"; +import { Starred_expressionContext } from "./PythonParser.js"; +import { Kwarg_or_starredContext } from "./PythonParser.js"; +import { Kwarg_or_double_starredContext } from "./PythonParser.js"; +import { Star_targetsContext } from "./PythonParser.js"; +import { Star_targets_list_seqContext } from "./PythonParser.js"; +import { Star_targets_tuple_seqContext } from "./PythonParser.js"; +import { Star_targetContext } from "./PythonParser.js"; +import { Target_with_star_atomContext } from "./PythonParser.js"; +import { Star_atomContext } from "./PythonParser.js"; +import { Single_targetContext } from "./PythonParser.js"; +import { Single_subscript_attribute_targetContext } from "./PythonParser.js"; +import { T_primaryContext } from "./PythonParser.js"; +import { Del_targetsContext } from "./PythonParser.js"; +import { Del_targetContext } from "./PythonParser.js"; +import { Del_t_atomContext } from "./PythonParser.js"; +import { Type_expressionsContext } from "./PythonParser.js"; +import { Func_type_commentContext } from "./PythonParser.js"; +import { Soft_kw_typeContext } from "./PythonParser.js"; +import { Soft_kw_matchContext } from "./PythonParser.js"; +import { Soft_kw_caseContext } from "./PythonParser.js"; +import { Soft_kw_wildcardContext } from "./PythonParser.js"; +import { Soft_kw__not__wildcardContext } from "./PythonParser.js"; + + +/** + * This interface defines a complete listener for a parse tree produced by + * `PythonParser`. + */ +export default class PythonParserListener extends ParseTreeListener { + /** + * Enter a parse tree produced by `PythonParser.file_input`. + * @param ctx the parse tree + */ + enterFile_input?: (ctx: File_inputContext) => void; + /** + * Exit a parse tree produced by `PythonParser.file_input`. + * @param ctx the parse tree + */ + exitFile_input?: (ctx: File_inputContext) => void; + /** + * Enter a parse tree produced by `PythonParser.interactive`. + * @param ctx the parse tree + */ + enterInteractive?: (ctx: InteractiveContext) => void; + /** + * Exit a parse tree produced by `PythonParser.interactive`. + * @param ctx the parse tree + */ + exitInteractive?: (ctx: InteractiveContext) => void; + /** + * Enter a parse tree produced by `PythonParser.eval`. + * @param ctx the parse tree + */ + enterEval?: (ctx: EvalContext) => void; + /** + * Exit a parse tree produced by `PythonParser.eval`. + * @param ctx the parse tree + */ + exitEval?: (ctx: EvalContext) => void; + /** + * Enter a parse tree produced by `PythonParser.func_type`. + * @param ctx the parse tree + */ + enterFunc_type?: (ctx: Func_typeContext) => void; + /** + * Exit a parse tree produced by `PythonParser.func_type`. + * @param ctx the parse tree + */ + exitFunc_type?: (ctx: Func_typeContext) => void; + /** + * Enter a parse tree produced by `PythonParser.fstring_input`. + * @param ctx the parse tree + */ + enterFstring_input?: (ctx: Fstring_inputContext) => void; + /** + * Exit a parse tree produced by `PythonParser.fstring_input`. + * @param ctx the parse tree + */ + exitFstring_input?: (ctx: Fstring_inputContext) => void; + /** + * Enter a parse tree produced by `PythonParser.statements`. + * @param ctx the parse tree + */ + enterStatements?: (ctx: StatementsContext) => void; + /** + * Exit a parse tree produced by `PythonParser.statements`. + * @param ctx the parse tree + */ + exitStatements?: (ctx: StatementsContext) => void; + /** + * Enter a parse tree produced by `PythonParser.statement`. + * @param ctx the parse tree + */ + enterStatement?: (ctx: StatementContext) => void; + /** + * Exit a parse tree produced by `PythonParser.statement`. + * @param ctx the parse tree + */ + exitStatement?: (ctx: StatementContext) => void; + /** + * Enter a parse tree produced by `PythonParser.statement_newline`. + * @param ctx the parse tree + */ + enterStatement_newline?: (ctx: Statement_newlineContext) => void; + /** + * Exit a parse tree produced by `PythonParser.statement_newline`. + * @param ctx the parse tree + */ + exitStatement_newline?: (ctx: Statement_newlineContext) => void; + /** + * Enter a parse tree produced by `PythonParser.simple_stmts`. + * @param ctx the parse tree + */ + enterSimple_stmts?: (ctx: Simple_stmtsContext) => void; + /** + * Exit a parse tree produced by `PythonParser.simple_stmts`. + * @param ctx the parse tree + */ + exitSimple_stmts?: (ctx: Simple_stmtsContext) => void; + /** + * Enter a parse tree produced by `PythonParser.simple_stmt`. + * @param ctx the parse tree + */ + enterSimple_stmt?: (ctx: Simple_stmtContext) => void; + /** + * Exit a parse tree produced by `PythonParser.simple_stmt`. + * @param ctx the parse tree + */ + exitSimple_stmt?: (ctx: Simple_stmtContext) => void; + /** + * Enter a parse tree produced by `PythonParser.compound_stmt`. + * @param ctx the parse tree + */ + enterCompound_stmt?: (ctx: Compound_stmtContext) => void; + /** + * Exit a parse tree produced by `PythonParser.compound_stmt`. + * @param ctx the parse tree + */ + exitCompound_stmt?: (ctx: Compound_stmtContext) => void; + /** + * Enter a parse tree produced by `PythonParser.assignment`. + * @param ctx the parse tree + */ + enterAssignment?: (ctx: AssignmentContext) => void; + /** + * Exit a parse tree produced by `PythonParser.assignment`. + * @param ctx the parse tree + */ + exitAssignment?: (ctx: AssignmentContext) => void; + /** + * Enter a parse tree produced by `PythonParser.annotated_rhs`. + * @param ctx the parse tree + */ + enterAnnotated_rhs?: (ctx: Annotated_rhsContext) => void; + /** + * Exit a parse tree produced by `PythonParser.annotated_rhs`. + * @param ctx the parse tree + */ + exitAnnotated_rhs?: (ctx: Annotated_rhsContext) => void; + /** + * Enter a parse tree produced by `PythonParser.augassign`. + * @param ctx the parse tree + */ + enterAugassign?: (ctx: AugassignContext) => void; + /** + * Exit a parse tree produced by `PythonParser.augassign`. + * @param ctx the parse tree + */ + exitAugassign?: (ctx: AugassignContext) => void; + /** + * Enter a parse tree produced by `PythonParser.return_stmt`. + * @param ctx the parse tree + */ + enterReturn_stmt?: (ctx: Return_stmtContext) => void; + /** + * Exit a parse tree produced by `PythonParser.return_stmt`. + * @param ctx the parse tree + */ + exitReturn_stmt?: (ctx: Return_stmtContext) => void; + /** + * Enter a parse tree produced by `PythonParser.raise_stmt`. + * @param ctx the parse tree + */ + enterRaise_stmt?: (ctx: Raise_stmtContext) => void; + /** + * Exit a parse tree produced by `PythonParser.raise_stmt`. + * @param ctx the parse tree + */ + exitRaise_stmt?: (ctx: Raise_stmtContext) => void; + /** + * Enter a parse tree produced by `PythonParser.global_stmt`. + * @param ctx the parse tree + */ + enterGlobal_stmt?: (ctx: Global_stmtContext) => void; + /** + * Exit a parse tree produced by `PythonParser.global_stmt`. + * @param ctx the parse tree + */ + exitGlobal_stmt?: (ctx: Global_stmtContext) => void; + /** + * Enter a parse tree produced by `PythonParser.nonlocal_stmt`. + * @param ctx the parse tree + */ + enterNonlocal_stmt?: (ctx: Nonlocal_stmtContext) => void; + /** + * Exit a parse tree produced by `PythonParser.nonlocal_stmt`. + * @param ctx the parse tree + */ + exitNonlocal_stmt?: (ctx: Nonlocal_stmtContext) => void; + /** + * Enter a parse tree produced by `PythonParser.del_stmt`. + * @param ctx the parse tree + */ + enterDel_stmt?: (ctx: Del_stmtContext) => void; + /** + * Exit a parse tree produced by `PythonParser.del_stmt`. + * @param ctx the parse tree + */ + exitDel_stmt?: (ctx: Del_stmtContext) => void; + /** + * Enter a parse tree produced by `PythonParser.yield_stmt`. + * @param ctx the parse tree + */ + enterYield_stmt?: (ctx: Yield_stmtContext) => void; + /** + * Exit a parse tree produced by `PythonParser.yield_stmt`. + * @param ctx the parse tree + */ + exitYield_stmt?: (ctx: Yield_stmtContext) => void; + /** + * Enter a parse tree produced by `PythonParser.assert_stmt`. + * @param ctx the parse tree + */ + enterAssert_stmt?: (ctx: Assert_stmtContext) => void; + /** + * Exit a parse tree produced by `PythonParser.assert_stmt`. + * @param ctx the parse tree + */ + exitAssert_stmt?: (ctx: Assert_stmtContext) => void; + /** + * Enter a parse tree produced by `PythonParser.import_stmt`. + * @param ctx the parse tree + */ + enterImport_stmt?: (ctx: Import_stmtContext) => void; + /** + * Exit a parse tree produced by `PythonParser.import_stmt`. + * @param ctx the parse tree + */ + exitImport_stmt?: (ctx: Import_stmtContext) => void; + /** + * Enter a parse tree produced by `PythonParser.import_name`. + * @param ctx the parse tree + */ + enterImport_name?: (ctx: Import_nameContext) => void; + /** + * Exit a parse tree produced by `PythonParser.import_name`. + * @param ctx the parse tree + */ + exitImport_name?: (ctx: Import_nameContext) => void; + /** + * Enter a parse tree produced by `PythonParser.import_from`. + * @param ctx the parse tree + */ + enterImport_from?: (ctx: Import_fromContext) => void; + /** + * Exit a parse tree produced by `PythonParser.import_from`. + * @param ctx the parse tree + */ + exitImport_from?: (ctx: Import_fromContext) => void; + /** + * Enter a parse tree produced by `PythonParser.import_from_targets`. + * @param ctx the parse tree + */ + enterImport_from_targets?: (ctx: Import_from_targetsContext) => void; + /** + * Exit a parse tree produced by `PythonParser.import_from_targets`. + * @param ctx the parse tree + */ + exitImport_from_targets?: (ctx: Import_from_targetsContext) => void; + /** + * Enter a parse tree produced by `PythonParser.import_from_as_names`. + * @param ctx the parse tree + */ + enterImport_from_as_names?: (ctx: Import_from_as_namesContext) => void; + /** + * Exit a parse tree produced by `PythonParser.import_from_as_names`. + * @param ctx the parse tree + */ + exitImport_from_as_names?: (ctx: Import_from_as_namesContext) => void; + /** + * Enter a parse tree produced by `PythonParser.import_from_as_name`. + * @param ctx the parse tree + */ + enterImport_from_as_name?: (ctx: Import_from_as_nameContext) => void; + /** + * Exit a parse tree produced by `PythonParser.import_from_as_name`. + * @param ctx the parse tree + */ + exitImport_from_as_name?: (ctx: Import_from_as_nameContext) => void; + /** + * Enter a parse tree produced by `PythonParser.dotted_as_names`. + * @param ctx the parse tree + */ + enterDotted_as_names?: (ctx: Dotted_as_namesContext) => void; + /** + * Exit a parse tree produced by `PythonParser.dotted_as_names`. + * @param ctx the parse tree + */ + exitDotted_as_names?: (ctx: Dotted_as_namesContext) => void; + /** + * Enter a parse tree produced by `PythonParser.dotted_as_name`. + * @param ctx the parse tree + */ + enterDotted_as_name?: (ctx: Dotted_as_nameContext) => void; + /** + * Exit a parse tree produced by `PythonParser.dotted_as_name`. + * @param ctx the parse tree + */ + exitDotted_as_name?: (ctx: Dotted_as_nameContext) => void; + /** + * Enter a parse tree produced by `PythonParser.dotted_name`. + * @param ctx the parse tree + */ + enterDotted_name?: (ctx: Dotted_nameContext) => void; + /** + * Exit a parse tree produced by `PythonParser.dotted_name`. + * @param ctx the parse tree + */ + exitDotted_name?: (ctx: Dotted_nameContext) => void; + /** + * Enter a parse tree produced by `PythonParser.block`. + * @param ctx the parse tree + */ + enterBlock?: (ctx: BlockContext) => void; + /** + * Exit a parse tree produced by `PythonParser.block`. + * @param ctx the parse tree + */ + exitBlock?: (ctx: BlockContext) => void; + /** + * Enter a parse tree produced by `PythonParser.decorators`. + * @param ctx the parse tree + */ + enterDecorators?: (ctx: DecoratorsContext) => void; + /** + * Exit a parse tree produced by `PythonParser.decorators`. + * @param ctx the parse tree + */ + exitDecorators?: (ctx: DecoratorsContext) => void; + /** + * Enter a parse tree produced by `PythonParser.class_def`. + * @param ctx the parse tree + */ + enterClass_def?: (ctx: Class_defContext) => void; + /** + * Exit a parse tree produced by `PythonParser.class_def`. + * @param ctx the parse tree + */ + exitClass_def?: (ctx: Class_defContext) => void; + /** + * Enter a parse tree produced by `PythonParser.class_def_raw`. + * @param ctx the parse tree + */ + enterClass_def_raw?: (ctx: Class_def_rawContext) => void; + /** + * Exit a parse tree produced by `PythonParser.class_def_raw`. + * @param ctx the parse tree + */ + exitClass_def_raw?: (ctx: Class_def_rawContext) => void; + /** + * Enter a parse tree produced by `PythonParser.function_def`. + * @param ctx the parse tree + */ + enterFunction_def?: (ctx: Function_defContext) => void; + /** + * Exit a parse tree produced by `PythonParser.function_def`. + * @param ctx the parse tree + */ + exitFunction_def?: (ctx: Function_defContext) => void; + /** + * Enter a parse tree produced by `PythonParser.function_def_raw`. + * @param ctx the parse tree + */ + enterFunction_def_raw?: (ctx: Function_def_rawContext) => void; + /** + * Exit a parse tree produced by `PythonParser.function_def_raw`. + * @param ctx the parse tree + */ + exitFunction_def_raw?: (ctx: Function_def_rawContext) => void; + /** + * Enter a parse tree produced by `PythonParser.params`. + * @param ctx the parse tree + */ + enterParams?: (ctx: ParamsContext) => void; + /** + * Exit a parse tree produced by `PythonParser.params`. + * @param ctx the parse tree + */ + exitParams?: (ctx: ParamsContext) => void; + /** + * Enter a parse tree produced by `PythonParser.parameters`. + * @param ctx the parse tree + */ + enterParameters?: (ctx: ParametersContext) => void; + /** + * Exit a parse tree produced by `PythonParser.parameters`. + * @param ctx the parse tree + */ + exitParameters?: (ctx: ParametersContext) => void; + /** + * Enter a parse tree produced by `PythonParser.slash_no_default`. + * @param ctx the parse tree + */ + enterSlash_no_default?: (ctx: Slash_no_defaultContext) => void; + /** + * Exit a parse tree produced by `PythonParser.slash_no_default`. + * @param ctx the parse tree + */ + exitSlash_no_default?: (ctx: Slash_no_defaultContext) => void; + /** + * Enter a parse tree produced by `PythonParser.slash_with_default`. + * @param ctx the parse tree + */ + enterSlash_with_default?: (ctx: Slash_with_defaultContext) => void; + /** + * Exit a parse tree produced by `PythonParser.slash_with_default`. + * @param ctx the parse tree + */ + exitSlash_with_default?: (ctx: Slash_with_defaultContext) => void; + /** + * Enter a parse tree produced by `PythonParser.star_etc`. + * @param ctx the parse tree + */ + enterStar_etc?: (ctx: Star_etcContext) => void; + /** + * Exit a parse tree produced by `PythonParser.star_etc`. + * @param ctx the parse tree + */ + exitStar_etc?: (ctx: Star_etcContext) => void; + /** + * Enter a parse tree produced by `PythonParser.kwds`. + * @param ctx the parse tree + */ + enterKwds?: (ctx: KwdsContext) => void; + /** + * Exit a parse tree produced by `PythonParser.kwds`. + * @param ctx the parse tree + */ + exitKwds?: (ctx: KwdsContext) => void; + /** + * Enter a parse tree produced by `PythonParser.param_no_default`. + * @param ctx the parse tree + */ + enterParam_no_default?: (ctx: Param_no_defaultContext) => void; + /** + * Exit a parse tree produced by `PythonParser.param_no_default`. + * @param ctx the parse tree + */ + exitParam_no_default?: (ctx: Param_no_defaultContext) => void; + /** + * Enter a parse tree produced by `PythonParser.param_no_default_star_annotation`. + * @param ctx the parse tree + */ + enterParam_no_default_star_annotation?: (ctx: Param_no_default_star_annotationContext) => void; + /** + * Exit a parse tree produced by `PythonParser.param_no_default_star_annotation`. + * @param ctx the parse tree + */ + exitParam_no_default_star_annotation?: (ctx: Param_no_default_star_annotationContext) => void; + /** + * Enter a parse tree produced by `PythonParser.param_with_default`. + * @param ctx the parse tree + */ + enterParam_with_default?: (ctx: Param_with_defaultContext) => void; + /** + * Exit a parse tree produced by `PythonParser.param_with_default`. + * @param ctx the parse tree + */ + exitParam_with_default?: (ctx: Param_with_defaultContext) => void; + /** + * Enter a parse tree produced by `PythonParser.param_maybe_default`. + * @param ctx the parse tree + */ + enterParam_maybe_default?: (ctx: Param_maybe_defaultContext) => void; + /** + * Exit a parse tree produced by `PythonParser.param_maybe_default`. + * @param ctx the parse tree + */ + exitParam_maybe_default?: (ctx: Param_maybe_defaultContext) => void; + /** + * Enter a parse tree produced by `PythonParser.param`. + * @param ctx the parse tree + */ + enterParam?: (ctx: ParamContext) => void; + /** + * Exit a parse tree produced by `PythonParser.param`. + * @param ctx the parse tree + */ + exitParam?: (ctx: ParamContext) => void; + /** + * Enter a parse tree produced by `PythonParser.param_star_annotation`. + * @param ctx the parse tree + */ + enterParam_star_annotation?: (ctx: Param_star_annotationContext) => void; + /** + * Exit a parse tree produced by `PythonParser.param_star_annotation`. + * @param ctx the parse tree + */ + exitParam_star_annotation?: (ctx: Param_star_annotationContext) => void; + /** + * Enter a parse tree produced by `PythonParser.annotation`. + * @param ctx the parse tree + */ + enterAnnotation?: (ctx: AnnotationContext) => void; + /** + * Exit a parse tree produced by `PythonParser.annotation`. + * @param ctx the parse tree + */ + exitAnnotation?: (ctx: AnnotationContext) => void; + /** + * Enter a parse tree produced by `PythonParser.star_annotation`. + * @param ctx the parse tree + */ + enterStar_annotation?: (ctx: Star_annotationContext) => void; + /** + * Exit a parse tree produced by `PythonParser.star_annotation`. + * @param ctx the parse tree + */ + exitStar_annotation?: (ctx: Star_annotationContext) => void; + /** + * Enter a parse tree produced by `PythonParser.default_assignment`. + * @param ctx the parse tree + */ + enterDefault_assignment?: (ctx: Default_assignmentContext) => void; + /** + * Exit a parse tree produced by `PythonParser.default_assignment`. + * @param ctx the parse tree + */ + exitDefault_assignment?: (ctx: Default_assignmentContext) => void; + /** + * Enter a parse tree produced by `PythonParser.if_stmt`. + * @param ctx the parse tree + */ + enterIf_stmt?: (ctx: If_stmtContext) => void; + /** + * Exit a parse tree produced by `PythonParser.if_stmt`. + * @param ctx the parse tree + */ + exitIf_stmt?: (ctx: If_stmtContext) => void; + /** + * Enter a parse tree produced by `PythonParser.elif_stmt`. + * @param ctx the parse tree + */ + enterElif_stmt?: (ctx: Elif_stmtContext) => void; + /** + * Exit a parse tree produced by `PythonParser.elif_stmt`. + * @param ctx the parse tree + */ + exitElif_stmt?: (ctx: Elif_stmtContext) => void; + /** + * Enter a parse tree produced by `PythonParser.else_block`. + * @param ctx the parse tree + */ + enterElse_block?: (ctx: Else_blockContext) => void; + /** + * Exit a parse tree produced by `PythonParser.else_block`. + * @param ctx the parse tree + */ + exitElse_block?: (ctx: Else_blockContext) => void; + /** + * Enter a parse tree produced by `PythonParser.while_stmt`. + * @param ctx the parse tree + */ + enterWhile_stmt?: (ctx: While_stmtContext) => void; + /** + * Exit a parse tree produced by `PythonParser.while_stmt`. + * @param ctx the parse tree + */ + exitWhile_stmt?: (ctx: While_stmtContext) => void; + /** + * Enter a parse tree produced by `PythonParser.for_stmt`. + * @param ctx the parse tree + */ + enterFor_stmt?: (ctx: For_stmtContext) => void; + /** + * Exit a parse tree produced by `PythonParser.for_stmt`. + * @param ctx the parse tree + */ + exitFor_stmt?: (ctx: For_stmtContext) => void; + /** + * Enter a parse tree produced by `PythonParser.with_stmt`. + * @param ctx the parse tree + */ + enterWith_stmt?: (ctx: With_stmtContext) => void; + /** + * Exit a parse tree produced by `PythonParser.with_stmt`. + * @param ctx the parse tree + */ + exitWith_stmt?: (ctx: With_stmtContext) => void; + /** + * Enter a parse tree produced by `PythonParser.with_item`. + * @param ctx the parse tree + */ + enterWith_item?: (ctx: With_itemContext) => void; + /** + * Exit a parse tree produced by `PythonParser.with_item`. + * @param ctx the parse tree + */ + exitWith_item?: (ctx: With_itemContext) => void; + /** + * Enter a parse tree produced by `PythonParser.try_stmt`. + * @param ctx the parse tree + */ + enterTry_stmt?: (ctx: Try_stmtContext) => void; + /** + * Exit a parse tree produced by `PythonParser.try_stmt`. + * @param ctx the parse tree + */ + exitTry_stmt?: (ctx: Try_stmtContext) => void; + /** + * Enter a parse tree produced by `PythonParser.except_block`. + * @param ctx the parse tree + */ + enterExcept_block?: (ctx: Except_blockContext) => void; + /** + * Exit a parse tree produced by `PythonParser.except_block`. + * @param ctx the parse tree + */ + exitExcept_block?: (ctx: Except_blockContext) => void; + /** + * Enter a parse tree produced by `PythonParser.except_star_block`. + * @param ctx the parse tree + */ + enterExcept_star_block?: (ctx: Except_star_blockContext) => void; + /** + * Exit a parse tree produced by `PythonParser.except_star_block`. + * @param ctx the parse tree + */ + exitExcept_star_block?: (ctx: Except_star_blockContext) => void; + /** + * Enter a parse tree produced by `PythonParser.finally_block`. + * @param ctx the parse tree + */ + enterFinally_block?: (ctx: Finally_blockContext) => void; + /** + * Exit a parse tree produced by `PythonParser.finally_block`. + * @param ctx the parse tree + */ + exitFinally_block?: (ctx: Finally_blockContext) => void; + /** + * Enter a parse tree produced by `PythonParser.match_stmt`. + * @param ctx the parse tree + */ + enterMatch_stmt?: (ctx: Match_stmtContext) => void; + /** + * Exit a parse tree produced by `PythonParser.match_stmt`. + * @param ctx the parse tree + */ + exitMatch_stmt?: (ctx: Match_stmtContext) => void; + /** + * Enter a parse tree produced by `PythonParser.subject_expr`. + * @param ctx the parse tree + */ + enterSubject_expr?: (ctx: Subject_exprContext) => void; + /** + * Exit a parse tree produced by `PythonParser.subject_expr`. + * @param ctx the parse tree + */ + exitSubject_expr?: (ctx: Subject_exprContext) => void; + /** + * Enter a parse tree produced by `PythonParser.case_block`. + * @param ctx the parse tree + */ + enterCase_block?: (ctx: Case_blockContext) => void; + /** + * Exit a parse tree produced by `PythonParser.case_block`. + * @param ctx the parse tree + */ + exitCase_block?: (ctx: Case_blockContext) => void; + /** + * Enter a parse tree produced by `PythonParser.guard`. + * @param ctx the parse tree + */ + enterGuard?: (ctx: GuardContext) => void; + /** + * Exit a parse tree produced by `PythonParser.guard`. + * @param ctx the parse tree + */ + exitGuard?: (ctx: GuardContext) => void; + /** + * Enter a parse tree produced by `PythonParser.patterns`. + * @param ctx the parse tree + */ + enterPatterns?: (ctx: PatternsContext) => void; + /** + * Exit a parse tree produced by `PythonParser.patterns`. + * @param ctx the parse tree + */ + exitPatterns?: (ctx: PatternsContext) => void; + /** + * Enter a parse tree produced by `PythonParser.pattern`. + * @param ctx the parse tree + */ + enterPattern?: (ctx: PatternContext) => void; + /** + * Exit a parse tree produced by `PythonParser.pattern`. + * @param ctx the parse tree + */ + exitPattern?: (ctx: PatternContext) => void; + /** + * Enter a parse tree produced by `PythonParser.as_pattern`. + * @param ctx the parse tree + */ + enterAs_pattern?: (ctx: As_patternContext) => void; + /** + * Exit a parse tree produced by `PythonParser.as_pattern`. + * @param ctx the parse tree + */ + exitAs_pattern?: (ctx: As_patternContext) => void; + /** + * Enter a parse tree produced by `PythonParser.or_pattern`. + * @param ctx the parse tree + */ + enterOr_pattern?: (ctx: Or_patternContext) => void; + /** + * Exit a parse tree produced by `PythonParser.or_pattern`. + * @param ctx the parse tree + */ + exitOr_pattern?: (ctx: Or_patternContext) => void; + /** + * Enter a parse tree produced by `PythonParser.closed_pattern`. + * @param ctx the parse tree + */ + enterClosed_pattern?: (ctx: Closed_patternContext) => void; + /** + * Exit a parse tree produced by `PythonParser.closed_pattern`. + * @param ctx the parse tree + */ + exitClosed_pattern?: (ctx: Closed_patternContext) => void; + /** + * Enter a parse tree produced by `PythonParser.literal_pattern`. + * @param ctx the parse tree + */ + enterLiteral_pattern?: (ctx: Literal_patternContext) => void; + /** + * Exit a parse tree produced by `PythonParser.literal_pattern`. + * @param ctx the parse tree + */ + exitLiteral_pattern?: (ctx: Literal_patternContext) => void; + /** + * Enter a parse tree produced by `PythonParser.literal_expr`. + * @param ctx the parse tree + */ + enterLiteral_expr?: (ctx: Literal_exprContext) => void; + /** + * Exit a parse tree produced by `PythonParser.literal_expr`. + * @param ctx the parse tree + */ + exitLiteral_expr?: (ctx: Literal_exprContext) => void; + /** + * Enter a parse tree produced by `PythonParser.complex_number`. + * @param ctx the parse tree + */ + enterComplex_number?: (ctx: Complex_numberContext) => void; + /** + * Exit a parse tree produced by `PythonParser.complex_number`. + * @param ctx the parse tree + */ + exitComplex_number?: (ctx: Complex_numberContext) => void; + /** + * Enter a parse tree produced by `PythonParser.signed_number`. + * @param ctx the parse tree + */ + enterSigned_number?: (ctx: Signed_numberContext) => void; + /** + * Exit a parse tree produced by `PythonParser.signed_number`. + * @param ctx the parse tree + */ + exitSigned_number?: (ctx: Signed_numberContext) => void; + /** + * Enter a parse tree produced by `PythonParser.signed_real_number`. + * @param ctx the parse tree + */ + enterSigned_real_number?: (ctx: Signed_real_numberContext) => void; + /** + * Exit a parse tree produced by `PythonParser.signed_real_number`. + * @param ctx the parse tree + */ + exitSigned_real_number?: (ctx: Signed_real_numberContext) => void; + /** + * Enter a parse tree produced by `PythonParser.real_number`. + * @param ctx the parse tree + */ + enterReal_number?: (ctx: Real_numberContext) => void; + /** + * Exit a parse tree produced by `PythonParser.real_number`. + * @param ctx the parse tree + */ + exitReal_number?: (ctx: Real_numberContext) => void; + /** + * Enter a parse tree produced by `PythonParser.imaginary_number`. + * @param ctx the parse tree + */ + enterImaginary_number?: (ctx: Imaginary_numberContext) => void; + /** + * Exit a parse tree produced by `PythonParser.imaginary_number`. + * @param ctx the parse tree + */ + exitImaginary_number?: (ctx: Imaginary_numberContext) => void; + /** + * Enter a parse tree produced by `PythonParser.capture_pattern`. + * @param ctx the parse tree + */ + enterCapture_pattern?: (ctx: Capture_patternContext) => void; + /** + * Exit a parse tree produced by `PythonParser.capture_pattern`. + * @param ctx the parse tree + */ + exitCapture_pattern?: (ctx: Capture_patternContext) => void; + /** + * Enter a parse tree produced by `PythonParser.pattern_capture_target`. + * @param ctx the parse tree + */ + enterPattern_capture_target?: (ctx: Pattern_capture_targetContext) => void; + /** + * Exit a parse tree produced by `PythonParser.pattern_capture_target`. + * @param ctx the parse tree + */ + exitPattern_capture_target?: (ctx: Pattern_capture_targetContext) => void; + /** + * Enter a parse tree produced by `PythonParser.wildcard_pattern`. + * @param ctx the parse tree + */ + enterWildcard_pattern?: (ctx: Wildcard_patternContext) => void; + /** + * Exit a parse tree produced by `PythonParser.wildcard_pattern`. + * @param ctx the parse tree + */ + exitWildcard_pattern?: (ctx: Wildcard_patternContext) => void; + /** + * Enter a parse tree produced by `PythonParser.value_pattern`. + * @param ctx the parse tree + */ + enterValue_pattern?: (ctx: Value_patternContext) => void; + /** + * Exit a parse tree produced by `PythonParser.value_pattern`. + * @param ctx the parse tree + */ + exitValue_pattern?: (ctx: Value_patternContext) => void; + /** + * Enter a parse tree produced by `PythonParser.attr`. + * @param ctx the parse tree + */ + enterAttr?: (ctx: AttrContext) => void; + /** + * Exit a parse tree produced by `PythonParser.attr`. + * @param ctx the parse tree + */ + exitAttr?: (ctx: AttrContext) => void; + /** + * Enter a parse tree produced by `PythonParser.name_or_attr`. + * @param ctx the parse tree + */ + enterName_or_attr?: (ctx: Name_or_attrContext) => void; + /** + * Exit a parse tree produced by `PythonParser.name_or_attr`. + * @param ctx the parse tree + */ + exitName_or_attr?: (ctx: Name_or_attrContext) => void; + /** + * Enter a parse tree produced by `PythonParser.group_pattern`. + * @param ctx the parse tree + */ + enterGroup_pattern?: (ctx: Group_patternContext) => void; + /** + * Exit a parse tree produced by `PythonParser.group_pattern`. + * @param ctx the parse tree + */ + exitGroup_pattern?: (ctx: Group_patternContext) => void; + /** + * Enter a parse tree produced by `PythonParser.sequence_pattern`. + * @param ctx the parse tree + */ + enterSequence_pattern?: (ctx: Sequence_patternContext) => void; + /** + * Exit a parse tree produced by `PythonParser.sequence_pattern`. + * @param ctx the parse tree + */ + exitSequence_pattern?: (ctx: Sequence_patternContext) => void; + /** + * Enter a parse tree produced by `PythonParser.open_sequence_pattern`. + * @param ctx the parse tree + */ + enterOpen_sequence_pattern?: (ctx: Open_sequence_patternContext) => void; + /** + * Exit a parse tree produced by `PythonParser.open_sequence_pattern`. + * @param ctx the parse tree + */ + exitOpen_sequence_pattern?: (ctx: Open_sequence_patternContext) => void; + /** + * Enter a parse tree produced by `PythonParser.maybe_sequence_pattern`. + * @param ctx the parse tree + */ + enterMaybe_sequence_pattern?: (ctx: Maybe_sequence_patternContext) => void; + /** + * Exit a parse tree produced by `PythonParser.maybe_sequence_pattern`. + * @param ctx the parse tree + */ + exitMaybe_sequence_pattern?: (ctx: Maybe_sequence_patternContext) => void; + /** + * Enter a parse tree produced by `PythonParser.maybe_star_pattern`. + * @param ctx the parse tree + */ + enterMaybe_star_pattern?: (ctx: Maybe_star_patternContext) => void; + /** + * Exit a parse tree produced by `PythonParser.maybe_star_pattern`. + * @param ctx the parse tree + */ + exitMaybe_star_pattern?: (ctx: Maybe_star_patternContext) => void; + /** + * Enter a parse tree produced by `PythonParser.star_pattern`. + * @param ctx the parse tree + */ + enterStar_pattern?: (ctx: Star_patternContext) => void; + /** + * Exit a parse tree produced by `PythonParser.star_pattern`. + * @param ctx the parse tree + */ + exitStar_pattern?: (ctx: Star_patternContext) => void; + /** + * Enter a parse tree produced by `PythonParser.mapping_pattern`. + * @param ctx the parse tree + */ + enterMapping_pattern?: (ctx: Mapping_patternContext) => void; + /** + * Exit a parse tree produced by `PythonParser.mapping_pattern`. + * @param ctx the parse tree + */ + exitMapping_pattern?: (ctx: Mapping_patternContext) => void; + /** + * Enter a parse tree produced by `PythonParser.items_pattern`. + * @param ctx the parse tree + */ + enterItems_pattern?: (ctx: Items_patternContext) => void; + /** + * Exit a parse tree produced by `PythonParser.items_pattern`. + * @param ctx the parse tree + */ + exitItems_pattern?: (ctx: Items_patternContext) => void; + /** + * Enter a parse tree produced by `PythonParser.key_value_pattern`. + * @param ctx the parse tree + */ + enterKey_value_pattern?: (ctx: Key_value_patternContext) => void; + /** + * Exit a parse tree produced by `PythonParser.key_value_pattern`. + * @param ctx the parse tree + */ + exitKey_value_pattern?: (ctx: Key_value_patternContext) => void; + /** + * Enter a parse tree produced by `PythonParser.double_star_pattern`. + * @param ctx the parse tree + */ + enterDouble_star_pattern?: (ctx: Double_star_patternContext) => void; + /** + * Exit a parse tree produced by `PythonParser.double_star_pattern`. + * @param ctx the parse tree + */ + exitDouble_star_pattern?: (ctx: Double_star_patternContext) => void; + /** + * Enter a parse tree produced by `PythonParser.class_pattern`. + * @param ctx the parse tree + */ + enterClass_pattern?: (ctx: Class_patternContext) => void; + /** + * Exit a parse tree produced by `PythonParser.class_pattern`. + * @param ctx the parse tree + */ + exitClass_pattern?: (ctx: Class_patternContext) => void; + /** + * Enter a parse tree produced by `PythonParser.positional_patterns`. + * @param ctx the parse tree + */ + enterPositional_patterns?: (ctx: Positional_patternsContext) => void; + /** + * Exit a parse tree produced by `PythonParser.positional_patterns`. + * @param ctx the parse tree + */ + exitPositional_patterns?: (ctx: Positional_patternsContext) => void; + /** + * Enter a parse tree produced by `PythonParser.keyword_patterns`. + * @param ctx the parse tree + */ + enterKeyword_patterns?: (ctx: Keyword_patternsContext) => void; + /** + * Exit a parse tree produced by `PythonParser.keyword_patterns`. + * @param ctx the parse tree + */ + exitKeyword_patterns?: (ctx: Keyword_patternsContext) => void; + /** + * Enter a parse tree produced by `PythonParser.keyword_pattern`. + * @param ctx the parse tree + */ + enterKeyword_pattern?: (ctx: Keyword_patternContext) => void; + /** + * Exit a parse tree produced by `PythonParser.keyword_pattern`. + * @param ctx the parse tree + */ + exitKeyword_pattern?: (ctx: Keyword_patternContext) => void; + /** + * Enter a parse tree produced by `PythonParser.type_alias`. + * @param ctx the parse tree + */ + enterType_alias?: (ctx: Type_aliasContext) => void; + /** + * Exit a parse tree produced by `PythonParser.type_alias`. + * @param ctx the parse tree + */ + exitType_alias?: (ctx: Type_aliasContext) => void; + /** + * Enter a parse tree produced by `PythonParser.type_params`. + * @param ctx the parse tree + */ + enterType_params?: (ctx: Type_paramsContext) => void; + /** + * Exit a parse tree produced by `PythonParser.type_params`. + * @param ctx the parse tree + */ + exitType_params?: (ctx: Type_paramsContext) => void; + /** + * Enter a parse tree produced by `PythonParser.type_param_seq`. + * @param ctx the parse tree + */ + enterType_param_seq?: (ctx: Type_param_seqContext) => void; + /** + * Exit a parse tree produced by `PythonParser.type_param_seq`. + * @param ctx the parse tree + */ + exitType_param_seq?: (ctx: Type_param_seqContext) => void; + /** + * Enter a parse tree produced by `PythonParser.type_param`. + * @param ctx the parse tree + */ + enterType_param?: (ctx: Type_paramContext) => void; + /** + * Exit a parse tree produced by `PythonParser.type_param`. + * @param ctx the parse tree + */ + exitType_param?: (ctx: Type_paramContext) => void; + /** + * Enter a parse tree produced by `PythonParser.type_param_bound`. + * @param ctx the parse tree + */ + enterType_param_bound?: (ctx: Type_param_boundContext) => void; + /** + * Exit a parse tree produced by `PythonParser.type_param_bound`. + * @param ctx the parse tree + */ + exitType_param_bound?: (ctx: Type_param_boundContext) => void; + /** + * Enter a parse tree produced by `PythonParser.expressions`. + * @param ctx the parse tree + */ + enterExpressions?: (ctx: ExpressionsContext) => void; + /** + * Exit a parse tree produced by `PythonParser.expressions`. + * @param ctx the parse tree + */ + exitExpressions?: (ctx: ExpressionsContext) => void; + /** + * Enter a parse tree produced by `PythonParser.expression`. + * @param ctx the parse tree + */ + enterExpression?: (ctx: ExpressionContext) => void; + /** + * Exit a parse tree produced by `PythonParser.expression`. + * @param ctx the parse tree + */ + exitExpression?: (ctx: ExpressionContext) => void; + /** + * Enter a parse tree produced by `PythonParser.yield_expr`. + * @param ctx the parse tree + */ + enterYield_expr?: (ctx: Yield_exprContext) => void; + /** + * Exit a parse tree produced by `PythonParser.yield_expr`. + * @param ctx the parse tree + */ + exitYield_expr?: (ctx: Yield_exprContext) => void; + /** + * Enter a parse tree produced by `PythonParser.star_expressions`. + * @param ctx the parse tree + */ + enterStar_expressions?: (ctx: Star_expressionsContext) => void; + /** + * Exit a parse tree produced by `PythonParser.star_expressions`. + * @param ctx the parse tree + */ + exitStar_expressions?: (ctx: Star_expressionsContext) => void; + /** + * Enter a parse tree produced by `PythonParser.star_expression`. + * @param ctx the parse tree + */ + enterStar_expression?: (ctx: Star_expressionContext) => void; + /** + * Exit a parse tree produced by `PythonParser.star_expression`. + * @param ctx the parse tree + */ + exitStar_expression?: (ctx: Star_expressionContext) => void; + /** + * Enter a parse tree produced by `PythonParser.star_named_expressions`. + * @param ctx the parse tree + */ + enterStar_named_expressions?: (ctx: Star_named_expressionsContext) => void; + /** + * Exit a parse tree produced by `PythonParser.star_named_expressions`. + * @param ctx the parse tree + */ + exitStar_named_expressions?: (ctx: Star_named_expressionsContext) => void; + /** + * Enter a parse tree produced by `PythonParser.star_named_expression`. + * @param ctx the parse tree + */ + enterStar_named_expression?: (ctx: Star_named_expressionContext) => void; + /** + * Exit a parse tree produced by `PythonParser.star_named_expression`. + * @param ctx the parse tree + */ + exitStar_named_expression?: (ctx: Star_named_expressionContext) => void; + /** + * Enter a parse tree produced by `PythonParser.assignment_expression`. + * @param ctx the parse tree + */ + enterAssignment_expression?: (ctx: Assignment_expressionContext) => void; + /** + * Exit a parse tree produced by `PythonParser.assignment_expression`. + * @param ctx the parse tree + */ + exitAssignment_expression?: (ctx: Assignment_expressionContext) => void; + /** + * Enter a parse tree produced by `PythonParser.named_expression`. + * @param ctx the parse tree + */ + enterNamed_expression?: (ctx: Named_expressionContext) => void; + /** + * Exit a parse tree produced by `PythonParser.named_expression`. + * @param ctx the parse tree + */ + exitNamed_expression?: (ctx: Named_expressionContext) => void; + /** + * Enter a parse tree produced by `PythonParser.disjunction`. + * @param ctx the parse tree + */ + enterDisjunction?: (ctx: DisjunctionContext) => void; + /** + * Exit a parse tree produced by `PythonParser.disjunction`. + * @param ctx the parse tree + */ + exitDisjunction?: (ctx: DisjunctionContext) => void; + /** + * Enter a parse tree produced by `PythonParser.conjunction`. + * @param ctx the parse tree + */ + enterConjunction?: (ctx: ConjunctionContext) => void; + /** + * Exit a parse tree produced by `PythonParser.conjunction`. + * @param ctx the parse tree + */ + exitConjunction?: (ctx: ConjunctionContext) => void; + /** + * Enter a parse tree produced by `PythonParser.inversion`. + * @param ctx the parse tree + */ + enterInversion?: (ctx: InversionContext) => void; + /** + * Exit a parse tree produced by `PythonParser.inversion`. + * @param ctx the parse tree + */ + exitInversion?: (ctx: InversionContext) => void; + /** + * Enter a parse tree produced by `PythonParser.comparison`. + * @param ctx the parse tree + */ + enterComparison?: (ctx: ComparisonContext) => void; + /** + * Exit a parse tree produced by `PythonParser.comparison`. + * @param ctx the parse tree + */ + exitComparison?: (ctx: ComparisonContext) => void; + /** + * Enter a parse tree produced by `PythonParser.compare_op_bitwise_or_pair`. + * @param ctx the parse tree + */ + enterCompare_op_bitwise_or_pair?: (ctx: Compare_op_bitwise_or_pairContext) => void; + /** + * Exit a parse tree produced by `PythonParser.compare_op_bitwise_or_pair`. + * @param ctx the parse tree + */ + exitCompare_op_bitwise_or_pair?: (ctx: Compare_op_bitwise_or_pairContext) => void; + /** + * Enter a parse tree produced by `PythonParser.eq_bitwise_or`. + * @param ctx the parse tree + */ + enterEq_bitwise_or?: (ctx: Eq_bitwise_orContext) => void; + /** + * Exit a parse tree produced by `PythonParser.eq_bitwise_or`. + * @param ctx the parse tree + */ + exitEq_bitwise_or?: (ctx: Eq_bitwise_orContext) => void; + /** + * Enter a parse tree produced by `PythonParser.noteq_bitwise_or`. + * @param ctx the parse tree + */ + enterNoteq_bitwise_or?: (ctx: Noteq_bitwise_orContext) => void; + /** + * Exit a parse tree produced by `PythonParser.noteq_bitwise_or`. + * @param ctx the parse tree + */ + exitNoteq_bitwise_or?: (ctx: Noteq_bitwise_orContext) => void; + /** + * Enter a parse tree produced by `PythonParser.lte_bitwise_or`. + * @param ctx the parse tree + */ + enterLte_bitwise_or?: (ctx: Lte_bitwise_orContext) => void; + /** + * Exit a parse tree produced by `PythonParser.lte_bitwise_or`. + * @param ctx the parse tree + */ + exitLte_bitwise_or?: (ctx: Lte_bitwise_orContext) => void; + /** + * Enter a parse tree produced by `PythonParser.lt_bitwise_or`. + * @param ctx the parse tree + */ + enterLt_bitwise_or?: (ctx: Lt_bitwise_orContext) => void; + /** + * Exit a parse tree produced by `PythonParser.lt_bitwise_or`. + * @param ctx the parse tree + */ + exitLt_bitwise_or?: (ctx: Lt_bitwise_orContext) => void; + /** + * Enter a parse tree produced by `PythonParser.gte_bitwise_or`. + * @param ctx the parse tree + */ + enterGte_bitwise_or?: (ctx: Gte_bitwise_orContext) => void; + /** + * Exit a parse tree produced by `PythonParser.gte_bitwise_or`. + * @param ctx the parse tree + */ + exitGte_bitwise_or?: (ctx: Gte_bitwise_orContext) => void; + /** + * Enter a parse tree produced by `PythonParser.gt_bitwise_or`. + * @param ctx the parse tree + */ + enterGt_bitwise_or?: (ctx: Gt_bitwise_orContext) => void; + /** + * Exit a parse tree produced by `PythonParser.gt_bitwise_or`. + * @param ctx the parse tree + */ + exitGt_bitwise_or?: (ctx: Gt_bitwise_orContext) => void; + /** + * Enter a parse tree produced by `PythonParser.notin_bitwise_or`. + * @param ctx the parse tree + */ + enterNotin_bitwise_or?: (ctx: Notin_bitwise_orContext) => void; + /** + * Exit a parse tree produced by `PythonParser.notin_bitwise_or`. + * @param ctx the parse tree + */ + exitNotin_bitwise_or?: (ctx: Notin_bitwise_orContext) => void; + /** + * Enter a parse tree produced by `PythonParser.in_bitwise_or`. + * @param ctx the parse tree + */ + enterIn_bitwise_or?: (ctx: In_bitwise_orContext) => void; + /** + * Exit a parse tree produced by `PythonParser.in_bitwise_or`. + * @param ctx the parse tree + */ + exitIn_bitwise_or?: (ctx: In_bitwise_orContext) => void; + /** + * Enter a parse tree produced by `PythonParser.isnot_bitwise_or`. + * @param ctx the parse tree + */ + enterIsnot_bitwise_or?: (ctx: Isnot_bitwise_orContext) => void; + /** + * Exit a parse tree produced by `PythonParser.isnot_bitwise_or`. + * @param ctx the parse tree + */ + exitIsnot_bitwise_or?: (ctx: Isnot_bitwise_orContext) => void; + /** + * Enter a parse tree produced by `PythonParser.is_bitwise_or`. + * @param ctx the parse tree + */ + enterIs_bitwise_or?: (ctx: Is_bitwise_orContext) => void; + /** + * Exit a parse tree produced by `PythonParser.is_bitwise_or`. + * @param ctx the parse tree + */ + exitIs_bitwise_or?: (ctx: Is_bitwise_orContext) => void; + /** + * Enter a parse tree produced by `PythonParser.bitwise_or`. + * @param ctx the parse tree + */ + enterBitwise_or?: (ctx: Bitwise_orContext) => void; + /** + * Exit a parse tree produced by `PythonParser.bitwise_or`. + * @param ctx the parse tree + */ + exitBitwise_or?: (ctx: Bitwise_orContext) => void; + /** + * Enter a parse tree produced by `PythonParser.bitwise_xor`. + * @param ctx the parse tree + */ + enterBitwise_xor?: (ctx: Bitwise_xorContext) => void; + /** + * Exit a parse tree produced by `PythonParser.bitwise_xor`. + * @param ctx the parse tree + */ + exitBitwise_xor?: (ctx: Bitwise_xorContext) => void; + /** + * Enter a parse tree produced by `PythonParser.bitwise_and`. + * @param ctx the parse tree + */ + enterBitwise_and?: (ctx: Bitwise_andContext) => void; + /** + * Exit a parse tree produced by `PythonParser.bitwise_and`. + * @param ctx the parse tree + */ + exitBitwise_and?: (ctx: Bitwise_andContext) => void; + /** + * Enter a parse tree produced by `PythonParser.shift_expr`. + * @param ctx the parse tree + */ + enterShift_expr?: (ctx: Shift_exprContext) => void; + /** + * Exit a parse tree produced by `PythonParser.shift_expr`. + * @param ctx the parse tree + */ + exitShift_expr?: (ctx: Shift_exprContext) => void; + /** + * Enter a parse tree produced by `PythonParser.sum`. + * @param ctx the parse tree + */ + enterSum?: (ctx: SumContext) => void; + /** + * Exit a parse tree produced by `PythonParser.sum`. + * @param ctx the parse tree + */ + exitSum?: (ctx: SumContext) => void; + /** + * Enter a parse tree produced by `PythonParser.term`. + * @param ctx the parse tree + */ + enterTerm?: (ctx: TermContext) => void; + /** + * Exit a parse tree produced by `PythonParser.term`. + * @param ctx the parse tree + */ + exitTerm?: (ctx: TermContext) => void; + /** + * Enter a parse tree produced by `PythonParser.factor`. + * @param ctx the parse tree + */ + enterFactor?: (ctx: FactorContext) => void; + /** + * Exit a parse tree produced by `PythonParser.factor`. + * @param ctx the parse tree + */ + exitFactor?: (ctx: FactorContext) => void; + /** + * Enter a parse tree produced by `PythonParser.power`. + * @param ctx the parse tree + */ + enterPower?: (ctx: PowerContext) => void; + /** + * Exit a parse tree produced by `PythonParser.power`. + * @param ctx the parse tree + */ + exitPower?: (ctx: PowerContext) => void; + /** + * Enter a parse tree produced by `PythonParser.await_primary`. + * @param ctx the parse tree + */ + enterAwait_primary?: (ctx: Await_primaryContext) => void; + /** + * Exit a parse tree produced by `PythonParser.await_primary`. + * @param ctx the parse tree + */ + exitAwait_primary?: (ctx: Await_primaryContext) => void; + /** + * Enter a parse tree produced by `PythonParser.primary`. + * @param ctx the parse tree + */ + enterPrimary?: (ctx: PrimaryContext) => void; + /** + * Exit a parse tree produced by `PythonParser.primary`. + * @param ctx the parse tree + */ + exitPrimary?: (ctx: PrimaryContext) => void; + /** + * Enter a parse tree produced by `PythonParser.slices`. + * @param ctx the parse tree + */ + enterSlices?: (ctx: SlicesContext) => void; + /** + * Exit a parse tree produced by `PythonParser.slices`. + * @param ctx the parse tree + */ + exitSlices?: (ctx: SlicesContext) => void; + /** + * Enter a parse tree produced by `PythonParser.slice`. + * @param ctx the parse tree + */ + enterSlice?: (ctx: SliceContext) => void; + /** + * Exit a parse tree produced by `PythonParser.slice`. + * @param ctx the parse tree + */ + exitSlice?: (ctx: SliceContext) => void; + /** + * Enter a parse tree produced by `PythonParser.atom`. + * @param ctx the parse tree + */ + enterAtom?: (ctx: AtomContext) => void; + /** + * Exit a parse tree produced by `PythonParser.atom`. + * @param ctx the parse tree + */ + exitAtom?: (ctx: AtomContext) => void; + /** + * Enter a parse tree produced by `PythonParser.group`. + * @param ctx the parse tree + */ + enterGroup?: (ctx: GroupContext) => void; + /** + * Exit a parse tree produced by `PythonParser.group`. + * @param ctx the parse tree + */ + exitGroup?: (ctx: GroupContext) => void; + /** + * Enter a parse tree produced by `PythonParser.lambdef`. + * @param ctx the parse tree + */ + enterLambdef?: (ctx: LambdefContext) => void; + /** + * Exit a parse tree produced by `PythonParser.lambdef`. + * @param ctx the parse tree + */ + exitLambdef?: (ctx: LambdefContext) => void; + /** + * Enter a parse tree produced by `PythonParser.lambda_params`. + * @param ctx the parse tree + */ + enterLambda_params?: (ctx: Lambda_paramsContext) => void; + /** + * Exit a parse tree produced by `PythonParser.lambda_params`. + * @param ctx the parse tree + */ + exitLambda_params?: (ctx: Lambda_paramsContext) => void; + /** + * Enter a parse tree produced by `PythonParser.lambda_parameters`. + * @param ctx the parse tree + */ + enterLambda_parameters?: (ctx: Lambda_parametersContext) => void; + /** + * Exit a parse tree produced by `PythonParser.lambda_parameters`. + * @param ctx the parse tree + */ + exitLambda_parameters?: (ctx: Lambda_parametersContext) => void; + /** + * Enter a parse tree produced by `PythonParser.lambda_slash_no_default`. + * @param ctx the parse tree + */ + enterLambda_slash_no_default?: (ctx: Lambda_slash_no_defaultContext) => void; + /** + * Exit a parse tree produced by `PythonParser.lambda_slash_no_default`. + * @param ctx the parse tree + */ + exitLambda_slash_no_default?: (ctx: Lambda_slash_no_defaultContext) => void; + /** + * Enter a parse tree produced by `PythonParser.lambda_slash_with_default`. + * @param ctx the parse tree + */ + enterLambda_slash_with_default?: (ctx: Lambda_slash_with_defaultContext) => void; + /** + * Exit a parse tree produced by `PythonParser.lambda_slash_with_default`. + * @param ctx the parse tree + */ + exitLambda_slash_with_default?: (ctx: Lambda_slash_with_defaultContext) => void; + /** + * Enter a parse tree produced by `PythonParser.lambda_star_etc`. + * @param ctx the parse tree + */ + enterLambda_star_etc?: (ctx: Lambda_star_etcContext) => void; + /** + * Exit a parse tree produced by `PythonParser.lambda_star_etc`. + * @param ctx the parse tree + */ + exitLambda_star_etc?: (ctx: Lambda_star_etcContext) => void; + /** + * Enter a parse tree produced by `PythonParser.lambda_kwds`. + * @param ctx the parse tree + */ + enterLambda_kwds?: (ctx: Lambda_kwdsContext) => void; + /** + * Exit a parse tree produced by `PythonParser.lambda_kwds`. + * @param ctx the parse tree + */ + exitLambda_kwds?: (ctx: Lambda_kwdsContext) => void; + /** + * Enter a parse tree produced by `PythonParser.lambda_param_no_default`. + * @param ctx the parse tree + */ + enterLambda_param_no_default?: (ctx: Lambda_param_no_defaultContext) => void; + /** + * Exit a parse tree produced by `PythonParser.lambda_param_no_default`. + * @param ctx the parse tree + */ + exitLambda_param_no_default?: (ctx: Lambda_param_no_defaultContext) => void; + /** + * Enter a parse tree produced by `PythonParser.lambda_param_with_default`. + * @param ctx the parse tree + */ + enterLambda_param_with_default?: (ctx: Lambda_param_with_defaultContext) => void; + /** + * Exit a parse tree produced by `PythonParser.lambda_param_with_default`. + * @param ctx the parse tree + */ + exitLambda_param_with_default?: (ctx: Lambda_param_with_defaultContext) => void; + /** + * Enter a parse tree produced by `PythonParser.lambda_param_maybe_default`. + * @param ctx the parse tree + */ + enterLambda_param_maybe_default?: (ctx: Lambda_param_maybe_defaultContext) => void; + /** + * Exit a parse tree produced by `PythonParser.lambda_param_maybe_default`. + * @param ctx the parse tree + */ + exitLambda_param_maybe_default?: (ctx: Lambda_param_maybe_defaultContext) => void; + /** + * Enter a parse tree produced by `PythonParser.lambda_param`. + * @param ctx the parse tree + */ + enterLambda_param?: (ctx: Lambda_paramContext) => void; + /** + * Exit a parse tree produced by `PythonParser.lambda_param`. + * @param ctx the parse tree + */ + exitLambda_param?: (ctx: Lambda_paramContext) => void; + /** + * Enter a parse tree produced by `PythonParser.fstring_middle`. + * @param ctx the parse tree + */ + enterFstring_middle?: (ctx: Fstring_middleContext) => void; + /** + * Exit a parse tree produced by `PythonParser.fstring_middle`. + * @param ctx the parse tree + */ + exitFstring_middle?: (ctx: Fstring_middleContext) => void; + /** + * Enter a parse tree produced by `PythonParser.fstring_replacement_field`. + * @param ctx the parse tree + */ + enterFstring_replacement_field?: (ctx: Fstring_replacement_fieldContext) => void; + /** + * Exit a parse tree produced by `PythonParser.fstring_replacement_field`. + * @param ctx the parse tree + */ + exitFstring_replacement_field?: (ctx: Fstring_replacement_fieldContext) => void; + /** + * Enter a parse tree produced by `PythonParser.fstring_conversion`. + * @param ctx the parse tree + */ + enterFstring_conversion?: (ctx: Fstring_conversionContext) => void; + /** + * Exit a parse tree produced by `PythonParser.fstring_conversion`. + * @param ctx the parse tree + */ + exitFstring_conversion?: (ctx: Fstring_conversionContext) => void; + /** + * Enter a parse tree produced by `PythonParser.fstring_full_format_spec`. + * @param ctx the parse tree + */ + enterFstring_full_format_spec?: (ctx: Fstring_full_format_specContext) => void; + /** + * Exit a parse tree produced by `PythonParser.fstring_full_format_spec`. + * @param ctx the parse tree + */ + exitFstring_full_format_spec?: (ctx: Fstring_full_format_specContext) => void; + /** + * Enter a parse tree produced by `PythonParser.fstring_format_spec`. + * @param ctx the parse tree + */ + enterFstring_format_spec?: (ctx: Fstring_format_specContext) => void; + /** + * Exit a parse tree produced by `PythonParser.fstring_format_spec`. + * @param ctx the parse tree + */ + exitFstring_format_spec?: (ctx: Fstring_format_specContext) => void; + /** + * Enter a parse tree produced by `PythonParser.fstring`. + * @param ctx the parse tree + */ + enterFstring?: (ctx: FstringContext) => void; + /** + * Exit a parse tree produced by `PythonParser.fstring`. + * @param ctx the parse tree + */ + exitFstring?: (ctx: FstringContext) => void; + /** + * Enter a parse tree produced by `PythonParser.string`. + * @param ctx the parse tree + */ + enterString?: (ctx: StringContext) => void; + /** + * Exit a parse tree produced by `PythonParser.string`. + * @param ctx the parse tree + */ + exitString?: (ctx: StringContext) => void; + /** + * Enter a parse tree produced by `PythonParser.strings`. + * @param ctx the parse tree + */ + enterStrings?: (ctx: StringsContext) => void; + /** + * Exit a parse tree produced by `PythonParser.strings`. + * @param ctx the parse tree + */ + exitStrings?: (ctx: StringsContext) => void; + /** + * Enter a parse tree produced by `PythonParser.list`. + * @param ctx the parse tree + */ + enterList?: (ctx: ListContext) => void; + /** + * Exit a parse tree produced by `PythonParser.list`. + * @param ctx the parse tree + */ + exitList?: (ctx: ListContext) => void; + /** + * Enter a parse tree produced by `PythonParser.tuple`. + * @param ctx the parse tree + */ + enterTuple?: (ctx: TupleContext) => void; + /** + * Exit a parse tree produced by `PythonParser.tuple`. + * @param ctx the parse tree + */ + exitTuple?: (ctx: TupleContext) => void; + /** + * Enter a parse tree produced by `PythonParser.set`. + * @param ctx the parse tree + */ + enterSet?: (ctx: SetContext) => void; + /** + * Exit a parse tree produced by `PythonParser.set`. + * @param ctx the parse tree + */ + exitSet?: (ctx: SetContext) => void; + /** + * Enter a parse tree produced by `PythonParser.dict`. + * @param ctx the parse tree + */ + enterDict?: (ctx: DictContext) => void; + /** + * Exit a parse tree produced by `PythonParser.dict`. + * @param ctx the parse tree + */ + exitDict?: (ctx: DictContext) => void; + /** + * Enter a parse tree produced by `PythonParser.double_starred_kvpairs`. + * @param ctx the parse tree + */ + enterDouble_starred_kvpairs?: (ctx: Double_starred_kvpairsContext) => void; + /** + * Exit a parse tree produced by `PythonParser.double_starred_kvpairs`. + * @param ctx the parse tree + */ + exitDouble_starred_kvpairs?: (ctx: Double_starred_kvpairsContext) => void; + /** + * Enter a parse tree produced by `PythonParser.double_starred_kvpair`. + * @param ctx the parse tree + */ + enterDouble_starred_kvpair?: (ctx: Double_starred_kvpairContext) => void; + /** + * Exit a parse tree produced by `PythonParser.double_starred_kvpair`. + * @param ctx the parse tree + */ + exitDouble_starred_kvpair?: (ctx: Double_starred_kvpairContext) => void; + /** + * Enter a parse tree produced by `PythonParser.kvpair`. + * @param ctx the parse tree + */ + enterKvpair?: (ctx: KvpairContext) => void; + /** + * Exit a parse tree produced by `PythonParser.kvpair`. + * @param ctx the parse tree + */ + exitKvpair?: (ctx: KvpairContext) => void; + /** + * Enter a parse tree produced by `PythonParser.for_if_clauses`. + * @param ctx the parse tree + */ + enterFor_if_clauses?: (ctx: For_if_clausesContext) => void; + /** + * Exit a parse tree produced by `PythonParser.for_if_clauses`. + * @param ctx the parse tree + */ + exitFor_if_clauses?: (ctx: For_if_clausesContext) => void; + /** + * Enter a parse tree produced by `PythonParser.for_if_clause`. + * @param ctx the parse tree + */ + enterFor_if_clause?: (ctx: For_if_clauseContext) => void; + /** + * Exit a parse tree produced by `PythonParser.for_if_clause`. + * @param ctx the parse tree + */ + exitFor_if_clause?: (ctx: For_if_clauseContext) => void; + /** + * Enter a parse tree produced by `PythonParser.listcomp`. + * @param ctx the parse tree + */ + enterListcomp?: (ctx: ListcompContext) => void; + /** + * Exit a parse tree produced by `PythonParser.listcomp`. + * @param ctx the parse tree + */ + exitListcomp?: (ctx: ListcompContext) => void; + /** + * Enter a parse tree produced by `PythonParser.setcomp`. + * @param ctx the parse tree + */ + enterSetcomp?: (ctx: SetcompContext) => void; + /** + * Exit a parse tree produced by `PythonParser.setcomp`. + * @param ctx the parse tree + */ + exitSetcomp?: (ctx: SetcompContext) => void; + /** + * Enter a parse tree produced by `PythonParser.genexp`. + * @param ctx the parse tree + */ + enterGenexp?: (ctx: GenexpContext) => void; + /** + * Exit a parse tree produced by `PythonParser.genexp`. + * @param ctx the parse tree + */ + exitGenexp?: (ctx: GenexpContext) => void; + /** + * Enter a parse tree produced by `PythonParser.dictcomp`. + * @param ctx the parse tree + */ + enterDictcomp?: (ctx: DictcompContext) => void; + /** + * Exit a parse tree produced by `PythonParser.dictcomp`. + * @param ctx the parse tree + */ + exitDictcomp?: (ctx: DictcompContext) => void; + /** + * Enter a parse tree produced by `PythonParser.arguments`. + * @param ctx the parse tree + */ + enterArguments?: (ctx: ArgumentsContext) => void; + /** + * Exit a parse tree produced by `PythonParser.arguments`. + * @param ctx the parse tree + */ + exitArguments?: (ctx: ArgumentsContext) => void; + /** + * Enter a parse tree produced by `PythonParser.args`. + * @param ctx the parse tree + */ + enterArgs?: (ctx: ArgsContext) => void; + /** + * Exit a parse tree produced by `PythonParser.args`. + * @param ctx the parse tree + */ + exitArgs?: (ctx: ArgsContext) => void; + /** + * Enter a parse tree produced by `PythonParser.kwargs`. + * @param ctx the parse tree + */ + enterKwargs?: (ctx: KwargsContext) => void; + /** + * Exit a parse tree produced by `PythonParser.kwargs`. + * @param ctx the parse tree + */ + exitKwargs?: (ctx: KwargsContext) => void; + /** + * Enter a parse tree produced by `PythonParser.starred_expression`. + * @param ctx the parse tree + */ + enterStarred_expression?: (ctx: Starred_expressionContext) => void; + /** + * Exit a parse tree produced by `PythonParser.starred_expression`. + * @param ctx the parse tree + */ + exitStarred_expression?: (ctx: Starred_expressionContext) => void; + /** + * Enter a parse tree produced by `PythonParser.kwarg_or_starred`. + * @param ctx the parse tree + */ + enterKwarg_or_starred?: (ctx: Kwarg_or_starredContext) => void; + /** + * Exit a parse tree produced by `PythonParser.kwarg_or_starred`. + * @param ctx the parse tree + */ + exitKwarg_or_starred?: (ctx: Kwarg_or_starredContext) => void; + /** + * Enter a parse tree produced by `PythonParser.kwarg_or_double_starred`. + * @param ctx the parse tree + */ + enterKwarg_or_double_starred?: (ctx: Kwarg_or_double_starredContext) => void; + /** + * Exit a parse tree produced by `PythonParser.kwarg_or_double_starred`. + * @param ctx the parse tree + */ + exitKwarg_or_double_starred?: (ctx: Kwarg_or_double_starredContext) => void; + /** + * Enter a parse tree produced by `PythonParser.star_targets`. + * @param ctx the parse tree + */ + enterStar_targets?: (ctx: Star_targetsContext) => void; + /** + * Exit a parse tree produced by `PythonParser.star_targets`. + * @param ctx the parse tree + */ + exitStar_targets?: (ctx: Star_targetsContext) => void; + /** + * Enter a parse tree produced by `PythonParser.star_targets_list_seq`. + * @param ctx the parse tree + */ + enterStar_targets_list_seq?: (ctx: Star_targets_list_seqContext) => void; + /** + * Exit a parse tree produced by `PythonParser.star_targets_list_seq`. + * @param ctx the parse tree + */ + exitStar_targets_list_seq?: (ctx: Star_targets_list_seqContext) => void; + /** + * Enter a parse tree produced by `PythonParser.star_targets_tuple_seq`. + * @param ctx the parse tree + */ + enterStar_targets_tuple_seq?: (ctx: Star_targets_tuple_seqContext) => void; + /** + * Exit a parse tree produced by `PythonParser.star_targets_tuple_seq`. + * @param ctx the parse tree + */ + exitStar_targets_tuple_seq?: (ctx: Star_targets_tuple_seqContext) => void; + /** + * Enter a parse tree produced by `PythonParser.star_target`. + * @param ctx the parse tree + */ + enterStar_target?: (ctx: Star_targetContext) => void; + /** + * Exit a parse tree produced by `PythonParser.star_target`. + * @param ctx the parse tree + */ + exitStar_target?: (ctx: Star_targetContext) => void; + /** + * Enter a parse tree produced by `PythonParser.target_with_star_atom`. + * @param ctx the parse tree + */ + enterTarget_with_star_atom?: (ctx: Target_with_star_atomContext) => void; + /** + * Exit a parse tree produced by `PythonParser.target_with_star_atom`. + * @param ctx the parse tree + */ + exitTarget_with_star_atom?: (ctx: Target_with_star_atomContext) => void; + /** + * Enter a parse tree produced by `PythonParser.star_atom`. + * @param ctx the parse tree + */ + enterStar_atom?: (ctx: Star_atomContext) => void; + /** + * Exit a parse tree produced by `PythonParser.star_atom`. + * @param ctx the parse tree + */ + exitStar_atom?: (ctx: Star_atomContext) => void; + /** + * Enter a parse tree produced by `PythonParser.single_target`. + * @param ctx the parse tree + */ + enterSingle_target?: (ctx: Single_targetContext) => void; + /** + * Exit a parse tree produced by `PythonParser.single_target`. + * @param ctx the parse tree + */ + exitSingle_target?: (ctx: Single_targetContext) => void; + /** + * Enter a parse tree produced by `PythonParser.single_subscript_attribute_target`. + * @param ctx the parse tree + */ + enterSingle_subscript_attribute_target?: (ctx: Single_subscript_attribute_targetContext) => void; + /** + * Exit a parse tree produced by `PythonParser.single_subscript_attribute_target`. + * @param ctx the parse tree + */ + exitSingle_subscript_attribute_target?: (ctx: Single_subscript_attribute_targetContext) => void; + /** + * Enter a parse tree produced by `PythonParser.t_primary`. + * @param ctx the parse tree + */ + enterT_primary?: (ctx: T_primaryContext) => void; + /** + * Exit a parse tree produced by `PythonParser.t_primary`. + * @param ctx the parse tree + */ + exitT_primary?: (ctx: T_primaryContext) => void; + /** + * Enter a parse tree produced by `PythonParser.del_targets`. + * @param ctx the parse tree + */ + enterDel_targets?: (ctx: Del_targetsContext) => void; + /** + * Exit a parse tree produced by `PythonParser.del_targets`. + * @param ctx the parse tree + */ + exitDel_targets?: (ctx: Del_targetsContext) => void; + /** + * Enter a parse tree produced by `PythonParser.del_target`. + * @param ctx the parse tree + */ + enterDel_target?: (ctx: Del_targetContext) => void; + /** + * Exit a parse tree produced by `PythonParser.del_target`. + * @param ctx the parse tree + */ + exitDel_target?: (ctx: Del_targetContext) => void; + /** + * Enter a parse tree produced by `PythonParser.del_t_atom`. + * @param ctx the parse tree + */ + enterDel_t_atom?: (ctx: Del_t_atomContext) => void; + /** + * Exit a parse tree produced by `PythonParser.del_t_atom`. + * @param ctx the parse tree + */ + exitDel_t_atom?: (ctx: Del_t_atomContext) => void; + /** + * Enter a parse tree produced by `PythonParser.type_expressions`. + * @param ctx the parse tree + */ + enterType_expressions?: (ctx: Type_expressionsContext) => void; + /** + * Exit a parse tree produced by `PythonParser.type_expressions`. + * @param ctx the parse tree + */ + exitType_expressions?: (ctx: Type_expressionsContext) => void; + /** + * Enter a parse tree produced by `PythonParser.func_type_comment`. + * @param ctx the parse tree + */ + enterFunc_type_comment?: (ctx: Func_type_commentContext) => void; + /** + * Exit a parse tree produced by `PythonParser.func_type_comment`. + * @param ctx the parse tree + */ + exitFunc_type_comment?: (ctx: Func_type_commentContext) => void; + /** + * Enter a parse tree produced by `PythonParser.soft_kw_type`. + * @param ctx the parse tree + */ + enterSoft_kw_type?: (ctx: Soft_kw_typeContext) => void; + /** + * Exit a parse tree produced by `PythonParser.soft_kw_type`. + * @param ctx the parse tree + */ + exitSoft_kw_type?: (ctx: Soft_kw_typeContext) => void; + /** + * Enter a parse tree produced by `PythonParser.soft_kw_match`. + * @param ctx the parse tree + */ + enterSoft_kw_match?: (ctx: Soft_kw_matchContext) => void; + /** + * Exit a parse tree produced by `PythonParser.soft_kw_match`. + * @param ctx the parse tree + */ + exitSoft_kw_match?: (ctx: Soft_kw_matchContext) => void; + /** + * Enter a parse tree produced by `PythonParser.soft_kw_case`. + * @param ctx the parse tree + */ + enterSoft_kw_case?: (ctx: Soft_kw_caseContext) => void; + /** + * Exit a parse tree produced by `PythonParser.soft_kw_case`. + * @param ctx the parse tree + */ + exitSoft_kw_case?: (ctx: Soft_kw_caseContext) => void; + /** + * Enter a parse tree produced by `PythonParser.soft_kw_wildcard`. + * @param ctx the parse tree + */ + enterSoft_kw_wildcard?: (ctx: Soft_kw_wildcardContext) => void; + /** + * Exit a parse tree produced by `PythonParser.soft_kw_wildcard`. + * @param ctx the parse tree + */ + exitSoft_kw_wildcard?: (ctx: Soft_kw_wildcardContext) => void; + /** + * Enter a parse tree produced by `PythonParser.soft_kw__not__wildcard`. + * @param ctx the parse tree + */ + enterSoft_kw__not__wildcard?: (ctx: Soft_kw__not__wildcardContext) => void; + /** + * Exit a parse tree produced by `PythonParser.soft_kw__not__wildcard`. + * @param ctx the parse tree + */ + exitSoft_kw__not__wildcard?: (ctx: Soft_kw__not__wildcardContext) => void; +} + diff --git a/grammars-v4/python/python3_12_1/PythonParserVisitor.ts b/grammars-v4/python/python3_12_1/PythonParserVisitor.ts new file mode 100644 index 0000000..b38c463 --- /dev/null +++ b/grammars-v4/python/python3_12_1/PythonParserVisitor.ts @@ -0,0 +1,1403 @@ +// Generated from PythonParser.g4 by ANTLR 4.13.2 + +import {ParseTreeVisitor} from 'antlr4'; + + +import { File_inputContext } from "./PythonParser.js"; +import { InteractiveContext } from "./PythonParser.js"; +import { EvalContext } from "./PythonParser.js"; +import { Func_typeContext } from "./PythonParser.js"; +import { Fstring_inputContext } from "./PythonParser.js"; +import { StatementsContext } from "./PythonParser.js"; +import { StatementContext } from "./PythonParser.js"; +import { Statement_newlineContext } from "./PythonParser.js"; +import { Simple_stmtsContext } from "./PythonParser.js"; +import { Simple_stmtContext } from "./PythonParser.js"; +import { Compound_stmtContext } from "./PythonParser.js"; +import { AssignmentContext } from "./PythonParser.js"; +import { Annotated_rhsContext } from "./PythonParser.js"; +import { AugassignContext } from "./PythonParser.js"; +import { Return_stmtContext } from "./PythonParser.js"; +import { Raise_stmtContext } from "./PythonParser.js"; +import { Global_stmtContext } from "./PythonParser.js"; +import { Nonlocal_stmtContext } from "./PythonParser.js"; +import { Del_stmtContext } from "./PythonParser.js"; +import { Yield_stmtContext } from "./PythonParser.js"; +import { Assert_stmtContext } from "./PythonParser.js"; +import { Import_stmtContext } from "./PythonParser.js"; +import { Import_nameContext } from "./PythonParser.js"; +import { Import_fromContext } from "./PythonParser.js"; +import { Import_from_targetsContext } from "./PythonParser.js"; +import { Import_from_as_namesContext } from "./PythonParser.js"; +import { Import_from_as_nameContext } from "./PythonParser.js"; +import { Dotted_as_namesContext } from "./PythonParser.js"; +import { Dotted_as_nameContext } from "./PythonParser.js"; +import { Dotted_nameContext } from "./PythonParser.js"; +import { BlockContext } from "./PythonParser.js"; +import { DecoratorsContext } from "./PythonParser.js"; +import { Class_defContext } from "./PythonParser.js"; +import { Class_def_rawContext } from "./PythonParser.js"; +import { Function_defContext } from "./PythonParser.js"; +import { Function_def_rawContext } from "./PythonParser.js"; +import { ParamsContext } from "./PythonParser.js"; +import { ParametersContext } from "./PythonParser.js"; +import { Slash_no_defaultContext } from "./PythonParser.js"; +import { Slash_with_defaultContext } from "./PythonParser.js"; +import { Star_etcContext } from "./PythonParser.js"; +import { KwdsContext } from "./PythonParser.js"; +import { Param_no_defaultContext } from "./PythonParser.js"; +import { Param_no_default_star_annotationContext } from "./PythonParser.js"; +import { Param_with_defaultContext } from "./PythonParser.js"; +import { Param_maybe_defaultContext } from "./PythonParser.js"; +import { ParamContext } from "./PythonParser.js"; +import { Param_star_annotationContext } from "./PythonParser.js"; +import { AnnotationContext } from "./PythonParser.js"; +import { Star_annotationContext } from "./PythonParser.js"; +import { Default_assignmentContext } from "./PythonParser.js"; +import { If_stmtContext } from "./PythonParser.js"; +import { Elif_stmtContext } from "./PythonParser.js"; +import { Else_blockContext } from "./PythonParser.js"; +import { While_stmtContext } from "./PythonParser.js"; +import { For_stmtContext } from "./PythonParser.js"; +import { With_stmtContext } from "./PythonParser.js"; +import { With_itemContext } from "./PythonParser.js"; +import { Try_stmtContext } from "./PythonParser.js"; +import { Except_blockContext } from "./PythonParser.js"; +import { Except_star_blockContext } from "./PythonParser.js"; +import { Finally_blockContext } from "./PythonParser.js"; +import { Match_stmtContext } from "./PythonParser.js"; +import { Subject_exprContext } from "./PythonParser.js"; +import { Case_blockContext } from "./PythonParser.js"; +import { GuardContext } from "./PythonParser.js"; +import { PatternsContext } from "./PythonParser.js"; +import { PatternContext } from "./PythonParser.js"; +import { As_patternContext } from "./PythonParser.js"; +import { Or_patternContext } from "./PythonParser.js"; +import { Closed_patternContext } from "./PythonParser.js"; +import { Literal_patternContext } from "./PythonParser.js"; +import { Literal_exprContext } from "./PythonParser.js"; +import { Complex_numberContext } from "./PythonParser.js"; +import { Signed_numberContext } from "./PythonParser.js"; +import { Signed_real_numberContext } from "./PythonParser.js"; +import { Real_numberContext } from "./PythonParser.js"; +import { Imaginary_numberContext } from "./PythonParser.js"; +import { Capture_patternContext } from "./PythonParser.js"; +import { Pattern_capture_targetContext } from "./PythonParser.js"; +import { Wildcard_patternContext } from "./PythonParser.js"; +import { Value_patternContext } from "./PythonParser.js"; +import { AttrContext } from "./PythonParser.js"; +import { Name_or_attrContext } from "./PythonParser.js"; +import { Group_patternContext } from "./PythonParser.js"; +import { Sequence_patternContext } from "./PythonParser.js"; +import { Open_sequence_patternContext } from "./PythonParser.js"; +import { Maybe_sequence_patternContext } from "./PythonParser.js"; +import { Maybe_star_patternContext } from "./PythonParser.js"; +import { Star_patternContext } from "./PythonParser.js"; +import { Mapping_patternContext } from "./PythonParser.js"; +import { Items_patternContext } from "./PythonParser.js"; +import { Key_value_patternContext } from "./PythonParser.js"; +import { Double_star_patternContext } from "./PythonParser.js"; +import { Class_patternContext } from "./PythonParser.js"; +import { Positional_patternsContext } from "./PythonParser.js"; +import { Keyword_patternsContext } from "./PythonParser.js"; +import { Keyword_patternContext } from "./PythonParser.js"; +import { Type_aliasContext } from "./PythonParser.js"; +import { Type_paramsContext } from "./PythonParser.js"; +import { Type_param_seqContext } from "./PythonParser.js"; +import { Type_paramContext } from "./PythonParser.js"; +import { Type_param_boundContext } from "./PythonParser.js"; +import { ExpressionsContext } from "./PythonParser.js"; +import { ExpressionContext } from "./PythonParser.js"; +import { Yield_exprContext } from "./PythonParser.js"; +import { Star_expressionsContext } from "./PythonParser.js"; +import { Star_expressionContext } from "./PythonParser.js"; +import { Star_named_expressionsContext } from "./PythonParser.js"; +import { Star_named_expressionContext } from "./PythonParser.js"; +import { Assignment_expressionContext } from "./PythonParser.js"; +import { Named_expressionContext } from "./PythonParser.js"; +import { DisjunctionContext } from "./PythonParser.js"; +import { ConjunctionContext } from "./PythonParser.js"; +import { InversionContext } from "./PythonParser.js"; +import { ComparisonContext } from "./PythonParser.js"; +import { Compare_op_bitwise_or_pairContext } from "./PythonParser.js"; +import { Eq_bitwise_orContext } from "./PythonParser.js"; +import { Noteq_bitwise_orContext } from "./PythonParser.js"; +import { Lte_bitwise_orContext } from "./PythonParser.js"; +import { Lt_bitwise_orContext } from "./PythonParser.js"; +import { Gte_bitwise_orContext } from "./PythonParser.js"; +import { Gt_bitwise_orContext } from "./PythonParser.js"; +import { Notin_bitwise_orContext } from "./PythonParser.js"; +import { In_bitwise_orContext } from "./PythonParser.js"; +import { Isnot_bitwise_orContext } from "./PythonParser.js"; +import { Is_bitwise_orContext } from "./PythonParser.js"; +import { Bitwise_orContext } from "./PythonParser.js"; +import { Bitwise_xorContext } from "./PythonParser.js"; +import { Bitwise_andContext } from "./PythonParser.js"; +import { Shift_exprContext } from "./PythonParser.js"; +import { SumContext } from "./PythonParser.js"; +import { TermContext } from "./PythonParser.js"; +import { FactorContext } from "./PythonParser.js"; +import { PowerContext } from "./PythonParser.js"; +import { Await_primaryContext } from "./PythonParser.js"; +import { PrimaryContext } from "./PythonParser.js"; +import { SlicesContext } from "./PythonParser.js"; +import { SliceContext } from "./PythonParser.js"; +import { AtomContext } from "./PythonParser.js"; +import { GroupContext } from "./PythonParser.js"; +import { LambdefContext } from "./PythonParser.js"; +import { Lambda_paramsContext } from "./PythonParser.js"; +import { Lambda_parametersContext } from "./PythonParser.js"; +import { Lambda_slash_no_defaultContext } from "./PythonParser.js"; +import { Lambda_slash_with_defaultContext } from "./PythonParser.js"; +import { Lambda_star_etcContext } from "./PythonParser.js"; +import { Lambda_kwdsContext } from "./PythonParser.js"; +import { Lambda_param_no_defaultContext } from "./PythonParser.js"; +import { Lambda_param_with_defaultContext } from "./PythonParser.js"; +import { Lambda_param_maybe_defaultContext } from "./PythonParser.js"; +import { Lambda_paramContext } from "./PythonParser.js"; +import { Fstring_middleContext } from "./PythonParser.js"; +import { Fstring_replacement_fieldContext } from "./PythonParser.js"; +import { Fstring_conversionContext } from "./PythonParser.js"; +import { Fstring_full_format_specContext } from "./PythonParser.js"; +import { Fstring_format_specContext } from "./PythonParser.js"; +import { FstringContext } from "./PythonParser.js"; +import { StringContext } from "./PythonParser.js"; +import { StringsContext } from "./PythonParser.js"; +import { ListContext } from "./PythonParser.js"; +import { TupleContext } from "./PythonParser.js"; +import { SetContext } from "./PythonParser.js"; +import { DictContext } from "./PythonParser.js"; +import { Double_starred_kvpairsContext } from "./PythonParser.js"; +import { Double_starred_kvpairContext } from "./PythonParser.js"; +import { KvpairContext } from "./PythonParser.js"; +import { For_if_clausesContext } from "./PythonParser.js"; +import { For_if_clauseContext } from "./PythonParser.js"; +import { ListcompContext } from "./PythonParser.js"; +import { SetcompContext } from "./PythonParser.js"; +import { GenexpContext } from "./PythonParser.js"; +import { DictcompContext } from "./PythonParser.js"; +import { ArgumentsContext } from "./PythonParser.js"; +import { ArgsContext } from "./PythonParser.js"; +import { KwargsContext } from "./PythonParser.js"; +import { Starred_expressionContext } from "./PythonParser.js"; +import { Kwarg_or_starredContext } from "./PythonParser.js"; +import { Kwarg_or_double_starredContext } from "./PythonParser.js"; +import { Star_targetsContext } from "./PythonParser.js"; +import { Star_targets_list_seqContext } from "./PythonParser.js"; +import { Star_targets_tuple_seqContext } from "./PythonParser.js"; +import { Star_targetContext } from "./PythonParser.js"; +import { Target_with_star_atomContext } from "./PythonParser.js"; +import { Star_atomContext } from "./PythonParser.js"; +import { Single_targetContext } from "./PythonParser.js"; +import { Single_subscript_attribute_targetContext } from "./PythonParser.js"; +import { T_primaryContext } from "./PythonParser.js"; +import { Del_targetsContext } from "./PythonParser.js"; +import { Del_targetContext } from "./PythonParser.js"; +import { Del_t_atomContext } from "./PythonParser.js"; +import { Type_expressionsContext } from "./PythonParser.js"; +import { Func_type_commentContext } from "./PythonParser.js"; +import { Soft_kw_typeContext } from "./PythonParser.js"; +import { Soft_kw_matchContext } from "./PythonParser.js"; +import { Soft_kw_caseContext } from "./PythonParser.js"; +import { Soft_kw_wildcardContext } from "./PythonParser.js"; +import { Soft_kw__not__wildcardContext } from "./PythonParser.js"; + + +/** + * This interface defines a complete generic visitor for a parse tree produced + * by `PythonParser`. + * + * @param The return type of the visit operation. Use `void` for + * operations with no return type. + */ +export default class PythonParserVisitor extends ParseTreeVisitor { + /** + * Visit a parse tree produced by `PythonParser.file_input`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFile_input?: (ctx: File_inputContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.interactive`. + * @param ctx the parse tree + * @return the visitor result + */ + visitInteractive?: (ctx: InteractiveContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.eval`. + * @param ctx the parse tree + * @return the visitor result + */ + visitEval?: (ctx: EvalContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.func_type`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFunc_type?: (ctx: Func_typeContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.fstring_input`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFstring_input?: (ctx: Fstring_inputContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.statements`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStatements?: (ctx: StatementsContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.statement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStatement?: (ctx: StatementContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.statement_newline`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStatement_newline?: (ctx: Statement_newlineContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.simple_stmts`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSimple_stmts?: (ctx: Simple_stmtsContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.simple_stmt`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSimple_stmt?: (ctx: Simple_stmtContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.compound_stmt`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCompound_stmt?: (ctx: Compound_stmtContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.assignment`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAssignment?: (ctx: AssignmentContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.annotated_rhs`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAnnotated_rhs?: (ctx: Annotated_rhsContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.augassign`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAugassign?: (ctx: AugassignContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.return_stmt`. + * @param ctx the parse tree + * @return the visitor result + */ + visitReturn_stmt?: (ctx: Return_stmtContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.raise_stmt`. + * @param ctx the parse tree + * @return the visitor result + */ + visitRaise_stmt?: (ctx: Raise_stmtContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.global_stmt`. + * @param ctx the parse tree + * @return the visitor result + */ + visitGlobal_stmt?: (ctx: Global_stmtContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.nonlocal_stmt`. + * @param ctx the parse tree + * @return the visitor result + */ + visitNonlocal_stmt?: (ctx: Nonlocal_stmtContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.del_stmt`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDel_stmt?: (ctx: Del_stmtContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.yield_stmt`. + * @param ctx the parse tree + * @return the visitor result + */ + visitYield_stmt?: (ctx: Yield_stmtContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.assert_stmt`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAssert_stmt?: (ctx: Assert_stmtContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.import_stmt`. + * @param ctx the parse tree + * @return the visitor result + */ + visitImport_stmt?: (ctx: Import_stmtContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.import_name`. + * @param ctx the parse tree + * @return the visitor result + */ + visitImport_name?: (ctx: Import_nameContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.import_from`. + * @param ctx the parse tree + * @return the visitor result + */ + visitImport_from?: (ctx: Import_fromContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.import_from_targets`. + * @param ctx the parse tree + * @return the visitor result + */ + visitImport_from_targets?: (ctx: Import_from_targetsContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.import_from_as_names`. + * @param ctx the parse tree + * @return the visitor result + */ + visitImport_from_as_names?: (ctx: Import_from_as_namesContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.import_from_as_name`. + * @param ctx the parse tree + * @return the visitor result + */ + visitImport_from_as_name?: (ctx: Import_from_as_nameContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.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 `PythonParser.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 `PythonParser.dotted_name`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDotted_name?: (ctx: Dotted_nameContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.block`. + * @param ctx the parse tree + * @return the visitor result + */ + visitBlock?: (ctx: BlockContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.decorators`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDecorators?: (ctx: DecoratorsContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.class_def`. + * @param ctx the parse tree + * @return the visitor result + */ + visitClass_def?: (ctx: Class_defContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.class_def_raw`. + * @param ctx the parse tree + * @return the visitor result + */ + visitClass_def_raw?: (ctx: Class_def_rawContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.function_def`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFunction_def?: (ctx: Function_defContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.function_def_raw`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFunction_def_raw?: (ctx: Function_def_rawContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.params`. + * @param ctx the parse tree + * @return the visitor result + */ + visitParams?: (ctx: ParamsContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.parameters`. + * @param ctx the parse tree + * @return the visitor result + */ + visitParameters?: (ctx: ParametersContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.slash_no_default`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSlash_no_default?: (ctx: Slash_no_defaultContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.slash_with_default`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSlash_with_default?: (ctx: Slash_with_defaultContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.star_etc`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStar_etc?: (ctx: Star_etcContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.kwds`. + * @param ctx the parse tree + * @return the visitor result + */ + visitKwds?: (ctx: KwdsContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.param_no_default`. + * @param ctx the parse tree + * @return the visitor result + */ + visitParam_no_default?: (ctx: Param_no_defaultContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.param_no_default_star_annotation`. + * @param ctx the parse tree + * @return the visitor result + */ + visitParam_no_default_star_annotation?: (ctx: Param_no_default_star_annotationContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.param_with_default`. + * @param ctx the parse tree + * @return the visitor result + */ + visitParam_with_default?: (ctx: Param_with_defaultContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.param_maybe_default`. + * @param ctx the parse tree + * @return the visitor result + */ + visitParam_maybe_default?: (ctx: Param_maybe_defaultContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.param`. + * @param ctx the parse tree + * @return the visitor result + */ + visitParam?: (ctx: ParamContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.param_star_annotation`. + * @param ctx the parse tree + * @return the visitor result + */ + visitParam_star_annotation?: (ctx: Param_star_annotationContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.annotation`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAnnotation?: (ctx: AnnotationContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.star_annotation`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStar_annotation?: (ctx: Star_annotationContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.default_assignment`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDefault_assignment?: (ctx: Default_assignmentContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.if_stmt`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIf_stmt?: (ctx: If_stmtContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.elif_stmt`. + * @param ctx the parse tree + * @return the visitor result + */ + visitElif_stmt?: (ctx: Elif_stmtContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.else_block`. + * @param ctx the parse tree + * @return the visitor result + */ + visitElse_block?: (ctx: Else_blockContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.while_stmt`. + * @param ctx the parse tree + * @return the visitor result + */ + visitWhile_stmt?: (ctx: While_stmtContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.for_stmt`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFor_stmt?: (ctx: For_stmtContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.with_stmt`. + * @param ctx the parse tree + * @return the visitor result + */ + visitWith_stmt?: (ctx: With_stmtContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.with_item`. + * @param ctx the parse tree + * @return the visitor result + */ + visitWith_item?: (ctx: With_itemContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.try_stmt`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTry_stmt?: (ctx: Try_stmtContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.except_block`. + * @param ctx the parse tree + * @return the visitor result + */ + visitExcept_block?: (ctx: Except_blockContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.except_star_block`. + * @param ctx the parse tree + * @return the visitor result + */ + visitExcept_star_block?: (ctx: Except_star_blockContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.finally_block`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFinally_block?: (ctx: Finally_blockContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.match_stmt`. + * @param ctx the parse tree + * @return the visitor result + */ + visitMatch_stmt?: (ctx: Match_stmtContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.subject_expr`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSubject_expr?: (ctx: Subject_exprContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.case_block`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCase_block?: (ctx: Case_blockContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.guard`. + * @param ctx the parse tree + * @return the visitor result + */ + visitGuard?: (ctx: GuardContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.patterns`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPatterns?: (ctx: PatternsContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.pattern`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPattern?: (ctx: PatternContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.as_pattern`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAs_pattern?: (ctx: As_patternContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.or_pattern`. + * @param ctx the parse tree + * @return the visitor result + */ + visitOr_pattern?: (ctx: Or_patternContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.closed_pattern`. + * @param ctx the parse tree + * @return the visitor result + */ + visitClosed_pattern?: (ctx: Closed_patternContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.literal_pattern`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLiteral_pattern?: (ctx: Literal_patternContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.literal_expr`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLiteral_expr?: (ctx: Literal_exprContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.complex_number`. + * @param ctx the parse tree + * @return the visitor result + */ + visitComplex_number?: (ctx: Complex_numberContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.signed_number`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSigned_number?: (ctx: Signed_numberContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.signed_real_number`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSigned_real_number?: (ctx: Signed_real_numberContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.real_number`. + * @param ctx the parse tree + * @return the visitor result + */ + visitReal_number?: (ctx: Real_numberContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.imaginary_number`. + * @param ctx the parse tree + * @return the visitor result + */ + visitImaginary_number?: (ctx: Imaginary_numberContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.capture_pattern`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCapture_pattern?: (ctx: Capture_patternContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.pattern_capture_target`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPattern_capture_target?: (ctx: Pattern_capture_targetContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.wildcard_pattern`. + * @param ctx the parse tree + * @return the visitor result + */ + visitWildcard_pattern?: (ctx: Wildcard_patternContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.value_pattern`. + * @param ctx the parse tree + * @return the visitor result + */ + visitValue_pattern?: (ctx: Value_patternContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.attr`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAttr?: (ctx: AttrContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.name_or_attr`. + * @param ctx the parse tree + * @return the visitor result + */ + visitName_or_attr?: (ctx: Name_or_attrContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.group_pattern`. + * @param ctx the parse tree + * @return the visitor result + */ + visitGroup_pattern?: (ctx: Group_patternContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.sequence_pattern`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSequence_pattern?: (ctx: Sequence_patternContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.open_sequence_pattern`. + * @param ctx the parse tree + * @return the visitor result + */ + visitOpen_sequence_pattern?: (ctx: Open_sequence_patternContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.maybe_sequence_pattern`. + * @param ctx the parse tree + * @return the visitor result + */ + visitMaybe_sequence_pattern?: (ctx: Maybe_sequence_patternContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.maybe_star_pattern`. + * @param ctx the parse tree + * @return the visitor result + */ + visitMaybe_star_pattern?: (ctx: Maybe_star_patternContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.star_pattern`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStar_pattern?: (ctx: Star_patternContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.mapping_pattern`. + * @param ctx the parse tree + * @return the visitor result + */ + visitMapping_pattern?: (ctx: Mapping_patternContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.items_pattern`. + * @param ctx the parse tree + * @return the visitor result + */ + visitItems_pattern?: (ctx: Items_patternContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.key_value_pattern`. + * @param ctx the parse tree + * @return the visitor result + */ + visitKey_value_pattern?: (ctx: Key_value_patternContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.double_star_pattern`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDouble_star_pattern?: (ctx: Double_star_patternContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.class_pattern`. + * @param ctx the parse tree + * @return the visitor result + */ + visitClass_pattern?: (ctx: Class_patternContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.positional_patterns`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPositional_patterns?: (ctx: Positional_patternsContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.keyword_patterns`. + * @param ctx the parse tree + * @return the visitor result + */ + visitKeyword_patterns?: (ctx: Keyword_patternsContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.keyword_pattern`. + * @param ctx the parse tree + * @return the visitor result + */ + visitKeyword_pattern?: (ctx: Keyword_patternContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.type_alias`. + * @param ctx the parse tree + * @return the visitor result + */ + visitType_alias?: (ctx: Type_aliasContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.type_params`. + * @param ctx the parse tree + * @return the visitor result + */ + visitType_params?: (ctx: Type_paramsContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.type_param_seq`. + * @param ctx the parse tree + * @return the visitor result + */ + visitType_param_seq?: (ctx: Type_param_seqContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.type_param`. + * @param ctx the parse tree + * @return the visitor result + */ + visitType_param?: (ctx: Type_paramContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.type_param_bound`. + * @param ctx the parse tree + * @return the visitor result + */ + visitType_param_bound?: (ctx: Type_param_boundContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.expressions`. + * @param ctx the parse tree + * @return the visitor result + */ + visitExpressions?: (ctx: ExpressionsContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.expression`. + * @param ctx the parse tree + * @return the visitor result + */ + visitExpression?: (ctx: ExpressionContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.yield_expr`. + * @param ctx the parse tree + * @return the visitor result + */ + visitYield_expr?: (ctx: Yield_exprContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.star_expressions`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStar_expressions?: (ctx: Star_expressionsContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.star_expression`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStar_expression?: (ctx: Star_expressionContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.star_named_expressions`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStar_named_expressions?: (ctx: Star_named_expressionsContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.star_named_expression`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStar_named_expression?: (ctx: Star_named_expressionContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.assignment_expression`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAssignment_expression?: (ctx: Assignment_expressionContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.named_expression`. + * @param ctx the parse tree + * @return the visitor result + */ + visitNamed_expression?: (ctx: Named_expressionContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.disjunction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDisjunction?: (ctx: DisjunctionContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.conjunction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitConjunction?: (ctx: ConjunctionContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.inversion`. + * @param ctx the parse tree + * @return the visitor result + */ + visitInversion?: (ctx: InversionContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.comparison`. + * @param ctx the parse tree + * @return the visitor result + */ + visitComparison?: (ctx: ComparisonContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.compare_op_bitwise_or_pair`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCompare_op_bitwise_or_pair?: (ctx: Compare_op_bitwise_or_pairContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.eq_bitwise_or`. + * @param ctx the parse tree + * @return the visitor result + */ + visitEq_bitwise_or?: (ctx: Eq_bitwise_orContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.noteq_bitwise_or`. + * @param ctx the parse tree + * @return the visitor result + */ + visitNoteq_bitwise_or?: (ctx: Noteq_bitwise_orContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.lte_bitwise_or`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLte_bitwise_or?: (ctx: Lte_bitwise_orContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.lt_bitwise_or`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLt_bitwise_or?: (ctx: Lt_bitwise_orContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.gte_bitwise_or`. + * @param ctx the parse tree + * @return the visitor result + */ + visitGte_bitwise_or?: (ctx: Gte_bitwise_orContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.gt_bitwise_or`. + * @param ctx the parse tree + * @return the visitor result + */ + visitGt_bitwise_or?: (ctx: Gt_bitwise_orContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.notin_bitwise_or`. + * @param ctx the parse tree + * @return the visitor result + */ + visitNotin_bitwise_or?: (ctx: Notin_bitwise_orContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.in_bitwise_or`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIn_bitwise_or?: (ctx: In_bitwise_orContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.isnot_bitwise_or`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIsnot_bitwise_or?: (ctx: Isnot_bitwise_orContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.is_bitwise_or`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIs_bitwise_or?: (ctx: Is_bitwise_orContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.bitwise_or`. + * @param ctx the parse tree + * @return the visitor result + */ + visitBitwise_or?: (ctx: Bitwise_orContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.bitwise_xor`. + * @param ctx the parse tree + * @return the visitor result + */ + visitBitwise_xor?: (ctx: Bitwise_xorContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.bitwise_and`. + * @param ctx the parse tree + * @return the visitor result + */ + visitBitwise_and?: (ctx: Bitwise_andContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.shift_expr`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShift_expr?: (ctx: Shift_exprContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.sum`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSum?: (ctx: SumContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.term`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTerm?: (ctx: TermContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.factor`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFactor?: (ctx: FactorContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.power`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPower?: (ctx: PowerContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.await_primary`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAwait_primary?: (ctx: Await_primaryContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.primary`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPrimary?: (ctx: PrimaryContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.slices`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSlices?: (ctx: SlicesContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.slice`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSlice?: (ctx: SliceContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.atom`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAtom?: (ctx: AtomContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.group`. + * @param ctx the parse tree + * @return the visitor result + */ + visitGroup?: (ctx: GroupContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.lambdef`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLambdef?: (ctx: LambdefContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.lambda_params`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLambda_params?: (ctx: Lambda_paramsContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.lambda_parameters`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLambda_parameters?: (ctx: Lambda_parametersContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.lambda_slash_no_default`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLambda_slash_no_default?: (ctx: Lambda_slash_no_defaultContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.lambda_slash_with_default`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLambda_slash_with_default?: (ctx: Lambda_slash_with_defaultContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.lambda_star_etc`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLambda_star_etc?: (ctx: Lambda_star_etcContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.lambda_kwds`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLambda_kwds?: (ctx: Lambda_kwdsContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.lambda_param_no_default`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLambda_param_no_default?: (ctx: Lambda_param_no_defaultContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.lambda_param_with_default`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLambda_param_with_default?: (ctx: Lambda_param_with_defaultContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.lambda_param_maybe_default`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLambda_param_maybe_default?: (ctx: Lambda_param_maybe_defaultContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.lambda_param`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLambda_param?: (ctx: Lambda_paramContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.fstring_middle`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFstring_middle?: (ctx: Fstring_middleContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.fstring_replacement_field`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFstring_replacement_field?: (ctx: Fstring_replacement_fieldContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.fstring_conversion`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFstring_conversion?: (ctx: Fstring_conversionContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.fstring_full_format_spec`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFstring_full_format_spec?: (ctx: Fstring_full_format_specContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.fstring_format_spec`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFstring_format_spec?: (ctx: Fstring_format_specContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.fstring`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFstring?: (ctx: FstringContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.string`. + * @param ctx the parse tree + * @return the visitor result + */ + visitString?: (ctx: StringContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.strings`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStrings?: (ctx: StringsContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.list`. + * @param ctx the parse tree + * @return the visitor result + */ + visitList?: (ctx: ListContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.tuple`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTuple?: (ctx: TupleContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.set`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSet?: (ctx: SetContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.dict`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDict?: (ctx: DictContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.double_starred_kvpairs`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDouble_starred_kvpairs?: (ctx: Double_starred_kvpairsContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.double_starred_kvpair`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDouble_starred_kvpair?: (ctx: Double_starred_kvpairContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.kvpair`. + * @param ctx the parse tree + * @return the visitor result + */ + visitKvpair?: (ctx: KvpairContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.for_if_clauses`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFor_if_clauses?: (ctx: For_if_clausesContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.for_if_clause`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFor_if_clause?: (ctx: For_if_clauseContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.listcomp`. + * @param ctx the parse tree + * @return the visitor result + */ + visitListcomp?: (ctx: ListcompContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.setcomp`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSetcomp?: (ctx: SetcompContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.genexp`. + * @param ctx the parse tree + * @return the visitor result + */ + visitGenexp?: (ctx: GenexpContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.dictcomp`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDictcomp?: (ctx: DictcompContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.arguments`. + * @param ctx the parse tree + * @return the visitor result + */ + visitArguments?: (ctx: ArgumentsContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.args`. + * @param ctx the parse tree + * @return the visitor result + */ + visitArgs?: (ctx: ArgsContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.kwargs`. + * @param ctx the parse tree + * @return the visitor result + */ + visitKwargs?: (ctx: KwargsContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.starred_expression`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStarred_expression?: (ctx: Starred_expressionContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.kwarg_or_starred`. + * @param ctx the parse tree + * @return the visitor result + */ + visitKwarg_or_starred?: (ctx: Kwarg_or_starredContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.kwarg_or_double_starred`. + * @param ctx the parse tree + * @return the visitor result + */ + visitKwarg_or_double_starred?: (ctx: Kwarg_or_double_starredContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.star_targets`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStar_targets?: (ctx: Star_targetsContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.star_targets_list_seq`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStar_targets_list_seq?: (ctx: Star_targets_list_seqContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.star_targets_tuple_seq`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStar_targets_tuple_seq?: (ctx: Star_targets_tuple_seqContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.star_target`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStar_target?: (ctx: Star_targetContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.target_with_star_atom`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTarget_with_star_atom?: (ctx: Target_with_star_atomContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.star_atom`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStar_atom?: (ctx: Star_atomContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.single_target`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSingle_target?: (ctx: Single_targetContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.single_subscript_attribute_target`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSingle_subscript_attribute_target?: (ctx: Single_subscript_attribute_targetContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.t_primary`. + * @param ctx the parse tree + * @return the visitor result + */ + visitT_primary?: (ctx: T_primaryContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.del_targets`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDel_targets?: (ctx: Del_targetsContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.del_target`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDel_target?: (ctx: Del_targetContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.del_t_atom`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDel_t_atom?: (ctx: Del_t_atomContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.type_expressions`. + * @param ctx the parse tree + * @return the visitor result + */ + visitType_expressions?: (ctx: Type_expressionsContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.func_type_comment`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFunc_type_comment?: (ctx: Func_type_commentContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.soft_kw_type`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSoft_kw_type?: (ctx: Soft_kw_typeContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.soft_kw_match`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSoft_kw_match?: (ctx: Soft_kw_matchContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.soft_kw_case`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSoft_kw_case?: (ctx: Soft_kw_caseContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.soft_kw_wildcard`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSoft_kw_wildcard?: (ctx: Soft_kw_wildcardContext) => Result; + /** + * Visit a parse tree produced by `PythonParser.soft_kw__not__wildcard`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSoft_kw__not__wildcard?: (ctx: Soft_kw__not__wildcardContext) => Result; +} + diff --git a/jest.config.ts b/jest.config.ts new file mode 100644 index 0000000..e240a4d --- /dev/null +++ b/jest.config.ts @@ -0,0 +1,11 @@ +import type {Config} from 'jest'; + +const config: Config = { + testEnvironment: "node", + verbose: true, + transform: { + "^.+.tsx?$": ["ts-jest",{}], + }, +}; + +export default config; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index fd73c2e..b6c8bc7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,10 +10,19 @@ "license": "Apache-2.0", "dependencies": { "@types/antlr4": "^4.11.6", - "antlr4": "4.13.2" + "antlr4": "4.13.2", + "typedoc-plugin-rename-defaults": "^0.7.1", + "typescript-collections": "^1.3.3" }, "devDependencies": { - "jest": "^29.7.0" + "@jest/globals": "^29.7.0", + "@types/jest": "^29.5.13", + "jest": "^29.7.0", + "ts-jest": "^29.2.5", + "tsx": "^4.19.1", + "typedoc": "^0.26.7", + "typedoc-theme-hierarchy": "^5.0.0", + "typescript": "^5.6.2" } }, "node_modules/@ampproject/remapping": { @@ -580,6 +589,416 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", + "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", + "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", + "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", + "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", + "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", + "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", + "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", + "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", + "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", + "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", + "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", + "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", + "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", + "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", + "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", + "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", + "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", + "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", + "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", + "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", + "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", + "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", + "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", + "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -931,6 +1350,52 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@shikijs/core": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.18.0.tgz", + "integrity": "sha512-VK4BNVCd2leY62Nm2JjyxtRLkyrZT/tv104O81eyaCjHq4Adceq2uJVFJJAIof6lT1mBwZrEo2qT/T+grv3MQQ==", + "dependencies": { + "@shikijs/engine-javascript": "1.18.0", + "@shikijs/engine-oniguruma": "1.18.0", + "@shikijs/types": "1.18.0", + "@shikijs/vscode-textmate": "^9.2.2", + "@types/hast": "^3.0.4", + "hast-util-to-html": "^9.0.3" + } + }, + "node_modules/@shikijs/engine-javascript": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.18.0.tgz", + "integrity": "sha512-qoP/aO/ATNwYAUw1YMdaip/YVEstMZEgrwhePm83Ll9OeQPuxDZd48szZR8oSQNQBT8m8UlWxZv8EA3lFuyI5A==", + "dependencies": { + "@shikijs/types": "1.18.0", + "@shikijs/vscode-textmate": "^9.2.2", + "oniguruma-to-js": "0.4.3" + } + }, + "node_modules/@shikijs/engine-oniguruma": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.18.0.tgz", + "integrity": "sha512-B9u0ZKI/cud+TcmF8Chyh+R4V5qQVvyDOqXC2l2a4x73PBSBc6sZ0JRAX3eqyJswqir6ktwApUUGBYePdKnMJg==", + "dependencies": { + "@shikijs/types": "1.18.0", + "@shikijs/vscode-textmate": "^9.2.2" + } + }, + "node_modules/@shikijs/types": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.18.0.tgz", + "integrity": "sha512-O9N36UEaGGrxv1yUrN2nye7gDLG5Uq0/c1LyfmxsvzNPqlHzWo9DI0A4+fhW2y3bGKuQu/fwS7EPdKJJCowcVA==", + "dependencies": { + "@shikijs/vscode-textmate": "^9.2.2", + "@types/hast": "^3.0.4" + } + }, + "node_modules/@shikijs/vscode-textmate": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-9.2.2.tgz", + "integrity": "sha512-TMp15K+GGYrWlZM8+Lnj9EaHEFmOen0WJBrfa17hF7taDOYthuPPV0GWzfd/9iMij0akS/8Yw2ikquH7uVi/fg==" + }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -955,6 +1420,38 @@ "@sinonjs/commons": "^3.0.0" } }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true, + "optional": true, + "peer": true + }, "node_modules/@types/antlr4": { "version": "4.11.6", "resolved": "https://registry.npmjs.org/@types/antlr4/-/antlr4-4.11.6.tgz", @@ -1010,6 +1507,14 @@ "@types/node": "*" } }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dependencies": { + "@types/unist": "*" + } + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", @@ -1034,6 +1539,24 @@ "@types/istanbul-lib-report": "*" } }, + "node_modules/@types/jest": { + "version": "29.5.13", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.13.tgz", + "integrity": "sha512-wd+MVEZCHt23V0/L642O5APvspWply/rGY5BcW4SUETo2UzPU3Z26qr8jC2qxpimI2jjx9h7+2cj2FwIr01bXg==", + "dev": true, + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dependencies": { + "@types/unist": "*" + } + }, "node_modules/@types/node": { "version": "22.5.5", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.5.tgz", @@ -1049,6 +1572,11 @@ "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", "dev": true }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==" + }, "node_modules/@types/yargs": { "version": "17.0.33", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", @@ -1064,13 +1592,46 @@ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, - "dependencies": { - "type-fest": "^0.21.3" + "optional": true, + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" }, "engines": { "node": ">=8" @@ -1124,6 +1685,14 @@ "node": ">= 8" } }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "optional": true, + "peer": true + }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -1133,6 +1702,12 @@ "sprintf-js": "~1.0.2" } }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true + }, "node_modules/babel-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", @@ -1246,8 +1821,7 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/brace-expansion": { "version": "1.1.11", @@ -1303,6 +1877,18 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/bser": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", @@ -1356,6 +1942,15 @@ } ] }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -1381,6 +1976,24 @@ "node": ">=10" } }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", @@ -1450,6 +2063,15 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1483,6 +2105,14 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true, + "optional": true, + "peer": true + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -1537,6 +2167,14 @@ "node": ">=0.10.0" } }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -1546,6 +2184,29 @@ "node": ">=8" } }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/diff-sequences": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", @@ -1555,6 +2216,21 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dev": true, + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/electron-to-chromium": { "version": "1.5.23", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.23.tgz", @@ -1579,6 +2255,17 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -1588,6 +2275,45 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/esbuild": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", + "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.23.1", + "@esbuild/android-arm": "0.23.1", + "@esbuild/android-arm64": "0.23.1", + "@esbuild/android-x64": "0.23.1", + "@esbuild/darwin-arm64": "0.23.1", + "@esbuild/darwin-x64": "0.23.1", + "@esbuild/freebsd-arm64": "0.23.1", + "@esbuild/freebsd-x64": "0.23.1", + "@esbuild/linux-arm": "0.23.1", + "@esbuild/linux-arm64": "0.23.1", + "@esbuild/linux-ia32": "0.23.1", + "@esbuild/linux-loong64": "0.23.1", + "@esbuild/linux-mips64el": "0.23.1", + "@esbuild/linux-ppc64": "0.23.1", + "@esbuild/linux-riscv64": "0.23.1", + "@esbuild/linux-s390x": "0.23.1", + "@esbuild/linux-x64": "0.23.1", + "@esbuild/netbsd-x64": "0.23.1", + "@esbuild/openbsd-arm64": "0.23.1", + "@esbuild/openbsd-x64": "0.23.1", + "@esbuild/sunos-x64": "0.23.1", + "@esbuild/win32-arm64": "0.23.1", + "@esbuild/win32-ia32": "0.23.1", + "@esbuild/win32-x64": "0.23.1" + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -1682,6 +2408,36 @@ "bser": "2.1.1" } }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -1707,6 +2463,20 @@ "node": ">=8" } }, + "node_modules/fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -1775,6 +2545,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-tsconfig": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", + "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -1832,12 +2614,55 @@ "node": ">= 0.4" } }, + "node_modules/hast-util-to-html": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.3.tgz", + "integrity": "sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -2036,6 +2861,24 @@ "node": ">=8" } }, + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "dev": true, + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", @@ -2652,6 +3495,18 @@ "node": ">=6" } }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", @@ -2676,6 +3531,14 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, "node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -2688,6 +3551,12 @@ "node": ">=8" } }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -2697,6 +3566,11 @@ "yallist": "^3.0.2" } }, + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==" + }, "node_modules/make-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", @@ -2724,6 +3598,12 @@ "node": ">=10" } }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", @@ -2733,12 +3613,142 @@ "tmpl": "1.0.5" } }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-it/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==" + }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, + "node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, "node_modules/micromatch": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", @@ -2842,6 +3852,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/oniguruma-to-js": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/oniguruma-to-js/-/oniguruma-to-js-0.4.3.tgz", + "integrity": "sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==", + "dependencies": { + "regex": "^4.3.2" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -3022,6 +4043,23 @@ "node": ">= 6" } }, + "node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "engines": { + "node": ">=6" + } + }, "node_modules/pure-rand": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", @@ -3044,6 +4082,11 @@ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, + "node_modules/regex": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/regex/-/regex-4.3.2.tgz", + "integrity": "sha512-kK/AA3A9K6q2js89+VMymcboLOlF5lZRCYJv3gzszXFHBr6kO6qLGzbm+UIugBEV8SMMKCTR59txoY6ctRHYVw==" + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -3091,6 +4134,15 @@ "node": ">=8" } }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/resolve.exports": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", @@ -3130,6 +4182,19 @@ "node": ">=8" } }, + "node_modules/shiki": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.18.0.tgz", + "integrity": "sha512-8jo7tOXr96h9PBQmOHVrltnETn1honZZY76YA79MHheGQg55jBvbm9dtU+MI5pjC5NJCFuA6rvVTLVeSW5cE4A==", + "dependencies": { + "@shikijs/core": "1.18.0", + "@shikijs/engine-javascript": "1.18.0", + "@shikijs/engine-oniguruma": "1.18.0", + "@shikijs/types": "1.18.0", + "@shikijs/vscode-textmate": "^9.2.2", + "@types/hast": "^3.0.4" + } + }, "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -3170,6 +4235,15 @@ "source-map": "^0.6.0" } }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -3215,6 +4289,19 @@ "node": ">=8" } }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -3322,6 +4409,139 @@ "node": ">=8.0" } }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/ts-jest": { + "version": "29.2.5", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.5.tgz", + "integrity": "sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==", + "dev": true, + "dependencies": { + "bs-logger": "^0.2.6", + "ejs": "^3.1.10", + "fast-json-stable-stringify": "^2.1.0", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "^4.1.2", + "make-error": "^1.3.6", + "semver": "^7.6.3", + "yargs-parser": "^21.1.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/transform": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/ts-jest/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tsx": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.1.tgz", + "integrity": "sha512-0flMz1lh74BR4wOvBjuh9olbnwqCPc35OOlfyzHba0Dc+QNUeWX/Gq2YTbnwcWPO3BMd8fkzRVrHcsR+a7z7rA==", + "dev": true, + "dependencies": { + "esbuild": "~0.23.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -3343,12 +4563,183 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/typedoc": { + "version": "0.26.7", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.26.7.tgz", + "integrity": "sha512-gUeI/Wk99vjXXMi8kanwzyhmeFEGv1LTdTQsiyIsmSYsBebvFxhbcyAx7Zjo4cMbpLGxM4Uz3jVIjksu/I2v6Q==", + "dependencies": { + "lunr": "^2.3.9", + "markdown-it": "^14.1.0", + "minimatch": "^9.0.5", + "shiki": "^1.16.2", + "yaml": "^2.5.1" + }, + "bin": { + "typedoc": "bin/typedoc" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x" + } + }, + "node_modules/typedoc-plugin-rename-defaults": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/typedoc-plugin-rename-defaults/-/typedoc-plugin-rename-defaults-0.7.1.tgz", + "integrity": "sha512-hgg4mAy5IumgUmPOnVVGmGywjTGtUCmRJ2jRbseqtXdlUuYKj652ODL9joUWFt5uvNu4Dr/pNILc/qsKGHJw+w==", + "dependencies": { + "camelcase": "^8.0.0" + }, + "peerDependencies": { + "typedoc": ">=0.22.x <0.27.x" + } + }, + "node_modules/typedoc-plugin-rename-defaults/node_modules/camelcase": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz", + "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedoc-theme-hierarchy": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/typedoc-theme-hierarchy/-/typedoc-theme-hierarchy-5.0.0.tgz", + "integrity": "sha512-rAi5oFvllXBVEpZTg3EosPP6oEY6QJOaDTFY8iiUZ/pTNhuX+fKYlf9+1zEqCDs5Py/XZWyEFCco70n1eoHOTA==", + "dev": true, + "dependencies": { + "fs-extra": "11.1.1" + }, + "peerDependencies": { + "typedoc": "^0.26.0" + } + }, + "node_modules/typedoc/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/typedoc/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typescript": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-collections": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/typescript-collections/-/typescript-collections-1.3.3.tgz", + "integrity": "sha512-7sI4e/bZijOzyURng88oOFZCISQPTHozfE2sUu5AviFYk5QV7fYGb6YiDl+vKjF/pICA354JImBImL9XJWUvdQ==" + }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==" + }, "node_modules/undici-types": { "version": "6.19.8", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "dev": true }, + "node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/update-browserslist-db": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", @@ -3379,6 +4770,14 @@ "browserslist": ">= 4.21.0" } }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true, + "optional": true, + "peer": true + }, "node_modules/v8-to-istanbul": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", @@ -3393,6 +4792,32 @@ "node": ">=10.12.0" } }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", @@ -3468,6 +4893,17 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, + "node_modules/yaml": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz", + "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", @@ -3495,6 +4931,17 @@ "node": ">=12" } }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -3506,6 +4953,15 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } } } } diff --git a/package.json b/package.json index 4365d16..c5b757c 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,10 @@ "description": "", "main": "index.js", "scripts": { - "test": "jest" + "test": "jest", + "dev": "cd example && npx tsx index.ts", + "build": "tsc", + "docs": "rm -rf website/* & npx typedoc" }, "keywords": [], "type": "module", @@ -12,9 +15,18 @@ "license": "Apache-2.0", "dependencies": { "@types/antlr4": "^4.11.6", - "antlr4": "4.13.2" + "antlr4": "4.13.2", + "typedoc-plugin-rename-defaults": "^0.7.1", + "typescript-collections": "^1.3.3" }, "devDependencies": { - "jest": "^29.7.0" + "@jest/globals": "^29.7.0", + "@types/jest": "^29.5.13", + "jest": "^29.7.0", + "ts-jest": "^29.2.5", + "tsx": "^4.19.1", + "typedoc": "^0.26.7", + "typedoc-theme-hierarchy": "^5.0.0", + "typescript": "^5.6.2" } } diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..0d402d0 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,22 @@ +{ + "include": [ + "./codemetrica/**/*.ts", + ], + "exclude": [ + "node_modules", // Exclude the node_modules folder. + "dist", // Exclude the dist folder. + "build", + "grammars-v4" + ], + "compilerOptions": { + "target": "es2020", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ + "module": "ESNext", /* Specify what module code is generated. */ + "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ + "sourceMap": true, /* Create source map files for emitted JavaScript files. */ + "outDir": "./dist/", /* Specify an output folder for all emitted files. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ + "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ + "strict": true, /* Enable all strict type-checking options. */ + "skipLibCheck": true /* Skip type checking all .d.ts files. */ + } +} diff --git a/typedoc.json b/typedoc.json new file mode 100644 index 0000000..d06507f --- /dev/null +++ b/typedoc.json @@ -0,0 +1,43 @@ +{ + "$schema": "https://typedoc.org/schema.json", + "name": "CodeMetrica", + // "projectDocuments": ["docs/*"], + "entryPoints": [ + "./codemetrica/index.ts", + "./codemetrica/python/index.ts", + "./codemetrica/python/smells/index.ts", + ], + // "entryPointStrategy": "expand", + "exclude": [ + "**/node_modules/**", + "**/grammars-v4/**", + "**/tests/**", + "**/examples/**", + // "./*.ts", + "./*.json", + ], + "out": "website", + "customFooterHtml": "

Copyright CodeMetrica 2024

", + "navigationLinks": { + "Docs": "http://example.com", + "Example": "http://example.com", + "API": "http://example.com", + "GitHub": "https://github.com/sparklabOrg/codemetrica" + }, + "sidebarLinks": { + "Example": "http://example.com" + }, + "navigation": { + // "includeCategories": true, + // "includeGroups": true, + // "includeFolders": false + }, + // "categorizeByGroup": false, + // "disableSources": true, + // "excludePrivate": true, + // "excludeProtected": true, + // "plugin": ["typedoc-plugin-rename-defaults"], + // "theme": "hierarchy", + // "excludeNotExported": false + "readme": "./docs/CodeMetrica.md", +} \ No newline at end of file