From aa368d211225b8038de38f76085d48f52644da63 Mon Sep 17 00:00:00 2001 From: Rosco Kalis Date: Thu, 4 Jun 2026 10:38:05 +0200 Subject: [PATCH] Replace copied grammar with direct cashc compilation for diagnostics --- package.json | 2 +- src/CashscriptLinter/CashscriptLinter.ts | 78 +- src/CashscriptLinter/ErrorListeners.ts | 20 +- src/CashscriptLinter/grammar/CashScript.g4 | 290 -- .../grammar/CashScript.interp | 210 - .../grammar/CashScript.tokens | 143 - .../grammar/CashScriptLexer.interp | 260 -- .../grammar/CashScriptLexer.tokens | 143 - .../grammar/CashScriptLexer.ts | 548 --- .../grammar/CashScriptParser.ts | 3752 ----------------- .../grammar/CashScriptVisitor.ts | 373 -- src/server.ts | 2 +- yarn.lock | 49 +- 13 files changed, 112 insertions(+), 5758 deletions(-) delete mode 100644 src/CashscriptLinter/grammar/CashScript.g4 delete mode 100644 src/CashscriptLinter/grammar/CashScript.interp delete mode 100644 src/CashscriptLinter/grammar/CashScript.tokens delete mode 100644 src/CashscriptLinter/grammar/CashScriptLexer.interp delete mode 100644 src/CashscriptLinter/grammar/CashScriptLexer.tokens delete mode 100644 src/CashscriptLinter/grammar/CashScriptLexer.ts delete mode 100644 src/CashscriptLinter/grammar/CashScriptParser.ts delete mode 100644 src/CashscriptLinter/grammar/CashScriptVisitor.ts diff --git a/package.json b/package.json index 5b25886..fd3e508 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ ] }, "dependencies": { - "antlr4": "^4.13.2", + "cashc": "file:../cashscript/packages/cashc", "vsce": "^2.15.0", "vscode-languageclient": "^7.0.0", "vscode-languageserver": "^7.0.0", diff --git a/src/CashscriptLinter/CashscriptLinter.ts b/src/CashscriptLinter/CashscriptLinter.ts index c89f7e4..600025c 100644 --- a/src/CashscriptLinter/CashscriptLinter.ts +++ b/src/CashscriptLinter/CashscriptLinter.ts @@ -1,25 +1,61 @@ -import { CharStream, CommonTokenStream } from 'antlr4'; -import { Diagnostic } from 'vscode-languageserver'; -import { SafeErrorListener, SafeErrorStrategy } from './ErrorListeners'; -import CashScriptLexer from './grammar/CashScriptLexer'; -import CashScriptParser from './grammar/CashScriptParser'; +import { Diagnostic, DiagnosticSeverity, Range } from 'vscode-languageserver'; +import { SafeErrorListener } from './ErrorListeners'; +import type { CashScriptError, Point } from 'cashc'; +type CashcModule = Pick; +type SourcePoint = Pick; + +// Preserve import() in CommonJS output so VS Code can load cashc's ESM package. +// Note that VS Code extensions *do* support ESM (since April 2025 / v1.100), +// but Cursor does not support this yet, and we do want to support Cursor. +const importCashc = new Function('return import("cashc")') as () => Promise; +let cashcModule: Promise; + +async function loadCashc(): Promise { + cashcModule ??= importCashc(); + return cashcModule; +} export default class CashscriptLinter { - static getDiagnostics(code: string): Diagnostic[] { - const errListener = new SafeErrorListener(); - - const inputStream = new CharStream(code); - const lexer = new CashScriptLexer(inputStream); - lexer.removeErrorListeners(); - lexer.addErrorListener(errListener); - - const tokenStream = new CommonTokenStream(lexer); - const parser = new CashScriptParser(tokenStream); - parser._errHandler = new SafeErrorStrategy(); - parser.removeErrorListeners(); - parser.addErrorListener(errListener); - const parseTree = parser.sourceFile(); - - return errListener.getErrs(); + static async getDiagnostics(code: string): Promise { + const errorListener = new SafeErrorListener(); + + try { + const { compileString } = await loadCashc(); + compileString(code, { errorListener }); + } catch (error) { + if (errorListener.getErrs().length === 0) { + return [diagnosticFromCompilerError(error)]; + } + } + + return errorListener.getErrs(); } } + +function diagnosticFromCompilerError(error: unknown): Diagnostic { + const originalMessage = error instanceof Error ? error.message : String(error); + const message = withoutLocationSuffix(originalMessage); + const location = (error as Partial | null | undefined)?.node?.location; + const messageLocation = originalMessage.match(/\bat Line (\d+), Column (\d+)$/); + const fallbackPoint = messageLocation + ? { line: Number(messageLocation[1]), column: Number(messageLocation[2]) } + : { line: 1, column: 0 }; + + const range: Range = { + start: pointToPosition(location?.start ?? fallbackPoint), + end: pointToPosition(location?.end ?? fallbackPoint), + }; + + return Diagnostic.create(range, message, DiagnosticSeverity.Error); +} + +function pointToPosition(point: SourcePoint): Range['start'] { + return { + line: Math.max(point.line - 1, 0), + character: Math.max(point.column, 0), + }; +} + +function withoutLocationSuffix(message: string): string { + return message.replace(/\s+at Line \d+, Column \d+$/, ''); +} diff --git a/src/CashscriptLinter/ErrorListeners.ts b/src/CashscriptLinter/ErrorListeners.ts index a2cf0fb..cf3d2b5 100644 --- a/src/CashscriptLinter/ErrorListeners.ts +++ b/src/CashscriptLinter/ErrorListeners.ts @@ -1,26 +1,22 @@ -import { ErrorListener, DefaultErrorStrategy, Parser, RecognitionException, Recognizer } from 'antlr4'; import { Diagnostic, DiagnosticSeverity, Range } from 'vscode-languageserver'; -export class SafeErrorListener extends ErrorListener { - static readonly INSTANCE = new SafeErrorListener(); - - errs: Diagnostic[] = []; +export class SafeErrorListener { + private errs: Diagnostic[] = []; getErrs(): Diagnostic[] { return this.errs; } syntaxError( - recognizer: Recognizer, - offendingSymbol: T, + _recognizer: unknown, + _offendingSymbol: T, line: number, charPositionInLine: number, message: string, - e?: RecognitionException, + _e?: unknown, ): void { const capitalisedMessage = message.charAt(0).toUpperCase() + message.slice(1); - //console.log(capitalisedMessage); const range: Range = { start: { line: line - 1, @@ -36,9 +32,3 @@ export class SafeErrorListener extends ErrorListener { this.errs.push(diag); } } - -export class SafeErrorStrategy extends DefaultErrorStrategy { - sync(recognizer: Parser): void { - return; - } -} diff --git a/src/CashscriptLinter/grammar/CashScript.g4 b/src/CashscriptLinter/grammar/CashScript.g4 deleted file mode 100644 index 2986432..0000000 --- a/src/CashscriptLinter/grammar/CashScript.g4 +++ /dev/null @@ -1,290 +0,0 @@ -grammar CashScript; - -sourceFile - : pragmaDirective* contractDefinition EOF - ; - -pragmaDirective - : 'pragma' pragmaName pragmaValue ';' - ; - -pragmaName - : 'cashscript' - ; - -pragmaValue - : versionConstraint versionConstraint? - ; - -versionConstraint - : versionOperator? VersionLiteral - ; - -versionOperator - : '^' | '~' | '>=' | '>' | '<' | '<=' | '=' - ; - -contractDefinition - : 'contract' Identifier parameterList '{' functionDefinition* '}' - ; - -functionDefinition - : 'function' Identifier parameterList '{' statement* '}' - ; - -parameterList - : '(' (parameter (',' parameter)* ','?)? ')' - ; - -parameter - : typeName Identifier - ; - -block - : '{' statement* '}' - | statement - ; - -statement - : controlStatement - | nonControlStatement ';' - ; - -nonControlStatement - : variableDefinition - | tupleAssignment - | assignStatement - | timeOpStatement - | requireStatement - | consoleStatement - ; - -controlStatement - : ifStatement - | loopStatement - ; - -variableDefinition - : typeName modifier* Identifier '=' expression - ; - -tupleAssignment - : typeName Identifier ',' typeName Identifier '=' expression - ; - -assignStatement - : Identifier op=('=' | '+=' | '-=') expression - | Identifier op=('++' | '--') - ; - -timeOpStatement - : 'require' '(' TxVar '>=' expression (',' requireMessage)? ')' - ; - -requireStatement - : 'require' '(' expression (',' requireMessage)? ')' - ; - -consoleStatement - : 'console.log' consoleParameterList - ; - -ifStatement - : 'if' '(' expression ')' ifBlock=block ('else' elseBlock=block)? - ; - -loopStatement - : doWhileStatement - | whileStatement - | forStatement - ; - -doWhileStatement - : 'do' block 'while' '(' expression ')' ';' - ; - -whileStatement - : 'while' '(' expression ')' block - ; - -forStatement - : 'for' '(' forInit ';' expression ';' assignStatement ')' block - ; - -forInit - : variableDefinition - | assignStatement - ; - -requireMessage - : StringLiteral - ; - -consoleParameter - : Identifier - | literal - ; - -consoleParameterList - : '(' (consoleParameter (',' consoleParameter)* ','?)? ')' - ; - -functionCall - : Identifier expressionList // Only built-in functions are accepted - ; - -expressionList - : '(' (expression (',' expression)* ','?)? ')' - ; - -expression - : '(' expression ')' # Parenthesised - | typeCast '(' castable=expression ','? ')' # Cast - | functionCall # FunctionCallExpression - | 'new' Identifier expressionList #Instantiation - | expression '[' index=NumberLiteral ']' # TupleIndexOp - | scope='tx.outputs' '[' expression ']' op=('.value' | '.lockingBytecode' | '.tokenCategory' | '.nftCommitment' | '.tokenAmount') # UnaryIntrospectionOp - | scope='tx.inputs' '[' expression ']' op=('.value' | '.lockingBytecode' | '.outpointTransactionHash' | '.outpointIndex' | '.unlockingBytecode' | '.sequenceNumber' | '.tokenCategory' | '.nftCommitment' | '.tokenAmount') # UnaryIntrospectionOp - | expression op=('.reverse()' | '.length') # UnaryOp - | left=expression op='.split' '(' right=expression ')' # BinaryOp - | element=expression '.slice' '(' start=expression ',' end=expression ')' # Slice - | op=('!' | '-' | '~') expression # UnaryOp - | left=expression op=('*' | '/' | '%') right=expression # BinaryOp - | left=expression op=('+' | '-') right=expression # BinaryOp - | left=expression op=('>>' | '<<') right=expression # BinaryOp - | left=expression op=('<' | '<=' | '>' | '>=') right=expression # BinaryOp - | left=expression op=('==' | '!=') right=expression # BinaryOp - | left=expression op='&' right=expression # BinaryOp - | left=expression op='^' right=expression # BinaryOp - | left=expression op='|' right=expression # BinaryOp - | left=expression op='&&' right=expression # BinaryOp - | left=expression op='||' right=expression # BinaryOp - | '[' (expression (',' expression)* ','?)? ']' # Array - | NullaryOp # NullaryOp - | Identifier # Identifier - | literal # LiteralExpression - ; - -modifier - : 'constant' - ; - -literal - : BooleanLiteral - | numberLiteral - | StringLiteral - | DateLiteral - | HexLiteral - ; - -numberLiteral - : NumberLiteral NumberUnit? - ; - -typeName - : PrimitiveType - | BoundedBytes - | UnboundedBytes - ; - -typeCast - : PrimitiveType - | UnboundedBytes - | UnsafeCast - ; - -VersionLiteral - : [0-9]+ '.' [0-9]+ '.' [0-9]+ - ; - -BooleanLiteral - : 'true' | 'false' - ; - -NumberUnit - : 'satoshis' | 'sats' | 'finney' | 'bits' | 'bitcoin' - | 'seconds' | 'minutes' | 'hours' | 'days' | 'weeks' - ; - -NumberLiteral - : '-'? NumberPart ExponentPart? - ; - -NumberPart - : [0-9]+ ('_' [0-9]+)* - ; - -ExponentPart - : [eE] NumberPart - ; - -PrimitiveType - : 'int' - | 'bool' - | 'string' - | 'pubkey' - | 'sig' - | 'datasig' - ; - -UnboundedBytes - : 'bytes' - ; - -BoundedBytes - : 'bytes' Bound | 'byte' - ; - -Bound - : [1-9] [0-9]* - ; - -StringLiteral - : '"' ('\\"' | ~["\r\n])*? '"' - | '\'' ('\\\'' | ~['\r\n])*? '\'' - ; - -DateLiteral - : 'date(' StringLiteral ')' - ; - -HexLiteral - : '0' [xX] [0-9A-Fa-f]* - ; - -TxVar - : 'this.age' - | 'tx.time' - ; - -UnsafeCast - : 'unsafe_int' - | 'unsafe_bool' - | 'unsafe_bytes' Bound? - | 'unsafe_byte' - ; - -NullaryOp - : 'this.activeInputIndex' - | 'this.activeBytecode' - | 'tx.inputs.length' - | 'tx.outputs.length' - | 'tx.version' - | 'tx.locktime' - ; - -Identifier - : [a-zA-Z] [a-zA-Z0-9_]* - ; - -WHITESPACE - : [ \t\r\n\u000C]+ -> skip - ; - -COMMENT - : '/*' .*? '*/' -> channel(HIDDEN) - ; - -LINE_COMMENT - : '//' ~[\r\n]* -> channel(HIDDEN) - ; diff --git a/src/CashscriptLinter/grammar/CashScript.interp b/src/CashscriptLinter/grammar/CashScript.interp deleted file mode 100644 index 40c9e53..0000000 --- a/src/CashscriptLinter/grammar/CashScript.interp +++ /dev/null @@ -1,210 +0,0 @@ -token literal names: -null -'pragma' -';' -'cashscript' -'^' -'~' -'>=' -'>' -'<' -'<=' -'=' -'contract' -'{' -'}' -'function' -'(' -',' -')' -'+=' -'-=' -'++' -'--' -'require' -'console.log' -'if' -'else' -'do' -'while' -'for' -'new' -'[' -']' -'tx.outputs' -'.value' -'.lockingBytecode' -'.tokenCategory' -'.nftCommitment' -'.tokenAmount' -'tx.inputs' -'.outpointTransactionHash' -'.outpointIndex' -'.unlockingBytecode' -'.sequenceNumber' -'.reverse()' -'.length' -'.split' -'.slice' -'!' -'-' -'*' -'/' -'%' -'+' -'>>' -'<<' -'==' -'!=' -'&' -'|' -'&&' -'||' -'constant' -null -null -null -null -null -null -null -'bytes' -null -null -null -null -null -null -null -null -null -null -null -null - -token symbolic names: -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -VersionLiteral -BooleanLiteral -NumberUnit -NumberLiteral -NumberPart -ExponentPart -PrimitiveType -UnboundedBytes -BoundedBytes -Bound -StringLiteral -DateLiteral -HexLiteral -TxVar -UnsafeCast -NullaryOp -Identifier -WHITESPACE -COMMENT -LINE_COMMENT - -rule names: -sourceFile -pragmaDirective -pragmaName -pragmaValue -versionConstraint -versionOperator -contractDefinition -functionDefinition -parameterList -parameter -block -statement -nonControlStatement -controlStatement -variableDefinition -tupleAssignment -assignStatement -timeOpStatement -requireStatement -consoleStatement -ifStatement -loopStatement -doWhileStatement -whileStatement -forStatement -forInit -requireMessage -consoleParameter -consoleParameterList -functionCall -expressionList -expression -modifier -literal -numberLiteral -typeName -typeCast - - -atn: -[4, 1, 81, 429, 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, 1, 0, 5, 0, 76, 8, 0, 10, 0, 12, 0, 79, 9, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 3, 3, 93, 8, 3, 1, 4, 3, 4, 96, 8, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 5, 6, 107, 8, 6, 10, 6, 12, 6, 110, 9, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 5, 7, 119, 8, 7, 10, 7, 12, 7, 122, 9, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 5, 8, 130, 8, 8, 10, 8, 12, 8, 133, 9, 8, 1, 8, 3, 8, 136, 8, 8, 3, 8, 138, 8, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 5, 10, 147, 8, 10, 10, 10, 12, 10, 150, 9, 10, 1, 10, 1, 10, 3, 10, 154, 8, 10, 1, 11, 1, 11, 1, 11, 1, 11, 3, 11, 160, 8, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 3, 12, 168, 8, 12, 1, 13, 1, 13, 3, 13, 172, 8, 13, 1, 14, 1, 14, 5, 14, 176, 8, 14, 10, 14, 12, 14, 179, 9, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 3, 16, 198, 8, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 3, 17, 207, 8, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 3, 18, 216, 8, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 3, 20, 230, 8, 20, 1, 21, 1, 21, 1, 21, 3, 21, 235, 8, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 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, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 3, 25, 263, 8, 25, 1, 26, 1, 26, 1, 27, 1, 27, 3, 27, 269, 8, 27, 1, 28, 1, 28, 1, 28, 1, 28, 5, 28, 275, 8, 28, 10, 28, 12, 28, 278, 9, 28, 1, 28, 3, 28, 281, 8, 28, 3, 28, 283, 8, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 5, 30, 294, 8, 30, 10, 30, 12, 30, 297, 9, 30, 1, 30, 3, 30, 300, 8, 30, 3, 30, 302, 8, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 315, 8, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 5, 31, 341, 8, 31, 10, 31, 12, 31, 344, 9, 31, 1, 31, 3, 31, 347, 8, 31, 3, 31, 349, 8, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 355, 8, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 5, 31, 407, 8, 31, 10, 31, 12, 31, 410, 9, 31, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 3, 33, 419, 8, 33, 1, 34, 1, 34, 3, 34, 423, 8, 34, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 0, 1, 62, 37, 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, 0, 14, 1, 0, 4, 10, 2, 0, 10, 10, 18, 19, 1, 0, 20, 21, 1, 0, 33, 37, 2, 0, 33, 37, 39, 42, 2, 0, 5, 5, 47, 48, 1, 0, 49, 51, 2, 0, 48, 48, 52, 52, 1, 0, 53, 54, 1, 0, 6, 9, 1, 0, 55, 56, 1, 0, 43, 44, 1, 0, 68, 70, 2, 0, 68, 69, 76, 76, 456, 0, 77, 1, 0, 0, 0, 2, 83, 1, 0, 0, 0, 4, 88, 1, 0, 0, 0, 6, 90, 1, 0, 0, 0, 8, 95, 1, 0, 0, 0, 10, 99, 1, 0, 0, 0, 12, 101, 1, 0, 0, 0, 14, 113, 1, 0, 0, 0, 16, 125, 1, 0, 0, 0, 18, 141, 1, 0, 0, 0, 20, 153, 1, 0, 0, 0, 22, 159, 1, 0, 0, 0, 24, 167, 1, 0, 0, 0, 26, 171, 1, 0, 0, 0, 28, 173, 1, 0, 0, 0, 30, 184, 1, 0, 0, 0, 32, 197, 1, 0, 0, 0, 34, 199, 1, 0, 0, 0, 36, 210, 1, 0, 0, 0, 38, 219, 1, 0, 0, 0, 40, 222, 1, 0, 0, 0, 42, 234, 1, 0, 0, 0, 44, 236, 1, 0, 0, 0, 46, 244, 1, 0, 0, 0, 48, 250, 1, 0, 0, 0, 50, 262, 1, 0, 0, 0, 52, 264, 1, 0, 0, 0, 54, 268, 1, 0, 0, 0, 56, 270, 1, 0, 0, 0, 58, 286, 1, 0, 0, 0, 60, 289, 1, 0, 0, 0, 62, 354, 1, 0, 0, 0, 64, 411, 1, 0, 0, 0, 66, 418, 1, 0, 0, 0, 68, 420, 1, 0, 0, 0, 70, 424, 1, 0, 0, 0, 72, 426, 1, 0, 0, 0, 74, 76, 3, 2, 1, 0, 75, 74, 1, 0, 0, 0, 76, 79, 1, 0, 0, 0, 77, 75, 1, 0, 0, 0, 77, 78, 1, 0, 0, 0, 78, 80, 1, 0, 0, 0, 79, 77, 1, 0, 0, 0, 80, 81, 3, 12, 6, 0, 81, 82, 5, 0, 0, 1, 82, 1, 1, 0, 0, 0, 83, 84, 5, 1, 0, 0, 84, 85, 3, 4, 2, 0, 85, 86, 3, 6, 3, 0, 86, 87, 5, 2, 0, 0, 87, 3, 1, 0, 0, 0, 88, 89, 5, 3, 0, 0, 89, 5, 1, 0, 0, 0, 90, 92, 3, 8, 4, 0, 91, 93, 3, 8, 4, 0, 92, 91, 1, 0, 0, 0, 92, 93, 1, 0, 0, 0, 93, 7, 1, 0, 0, 0, 94, 96, 3, 10, 5, 0, 95, 94, 1, 0, 0, 0, 95, 96, 1, 0, 0, 0, 96, 97, 1, 0, 0, 0, 97, 98, 5, 62, 0, 0, 98, 9, 1, 0, 0, 0, 99, 100, 7, 0, 0, 0, 100, 11, 1, 0, 0, 0, 101, 102, 5, 11, 0, 0, 102, 103, 5, 78, 0, 0, 103, 104, 3, 16, 8, 0, 104, 108, 5, 12, 0, 0, 105, 107, 3, 14, 7, 0, 106, 105, 1, 0, 0, 0, 107, 110, 1, 0, 0, 0, 108, 106, 1, 0, 0, 0, 108, 109, 1, 0, 0, 0, 109, 111, 1, 0, 0, 0, 110, 108, 1, 0, 0, 0, 111, 112, 5, 13, 0, 0, 112, 13, 1, 0, 0, 0, 113, 114, 5, 14, 0, 0, 114, 115, 5, 78, 0, 0, 115, 116, 3, 16, 8, 0, 116, 120, 5, 12, 0, 0, 117, 119, 3, 22, 11, 0, 118, 117, 1, 0, 0, 0, 119, 122, 1, 0, 0, 0, 120, 118, 1, 0, 0, 0, 120, 121, 1, 0, 0, 0, 121, 123, 1, 0, 0, 0, 122, 120, 1, 0, 0, 0, 123, 124, 5, 13, 0, 0, 124, 15, 1, 0, 0, 0, 125, 137, 5, 15, 0, 0, 126, 131, 3, 18, 9, 0, 127, 128, 5, 16, 0, 0, 128, 130, 3, 18, 9, 0, 129, 127, 1, 0, 0, 0, 130, 133, 1, 0, 0, 0, 131, 129, 1, 0, 0, 0, 131, 132, 1, 0, 0, 0, 132, 135, 1, 0, 0, 0, 133, 131, 1, 0, 0, 0, 134, 136, 5, 16, 0, 0, 135, 134, 1, 0, 0, 0, 135, 136, 1, 0, 0, 0, 136, 138, 1, 0, 0, 0, 137, 126, 1, 0, 0, 0, 137, 138, 1, 0, 0, 0, 138, 139, 1, 0, 0, 0, 139, 140, 5, 17, 0, 0, 140, 17, 1, 0, 0, 0, 141, 142, 3, 70, 35, 0, 142, 143, 5, 78, 0, 0, 143, 19, 1, 0, 0, 0, 144, 148, 5, 12, 0, 0, 145, 147, 3, 22, 11, 0, 146, 145, 1, 0, 0, 0, 147, 150, 1, 0, 0, 0, 148, 146, 1, 0, 0, 0, 148, 149, 1, 0, 0, 0, 149, 151, 1, 0, 0, 0, 150, 148, 1, 0, 0, 0, 151, 154, 5, 13, 0, 0, 152, 154, 3, 22, 11, 0, 153, 144, 1, 0, 0, 0, 153, 152, 1, 0, 0, 0, 154, 21, 1, 0, 0, 0, 155, 160, 3, 26, 13, 0, 156, 157, 3, 24, 12, 0, 157, 158, 5, 2, 0, 0, 158, 160, 1, 0, 0, 0, 159, 155, 1, 0, 0, 0, 159, 156, 1, 0, 0, 0, 160, 23, 1, 0, 0, 0, 161, 168, 3, 28, 14, 0, 162, 168, 3, 30, 15, 0, 163, 168, 3, 32, 16, 0, 164, 168, 3, 34, 17, 0, 165, 168, 3, 36, 18, 0, 166, 168, 3, 38, 19, 0, 167, 161, 1, 0, 0, 0, 167, 162, 1, 0, 0, 0, 167, 163, 1, 0, 0, 0, 167, 164, 1, 0, 0, 0, 167, 165, 1, 0, 0, 0, 167, 166, 1, 0, 0, 0, 168, 25, 1, 0, 0, 0, 169, 172, 3, 40, 20, 0, 170, 172, 3, 42, 21, 0, 171, 169, 1, 0, 0, 0, 171, 170, 1, 0, 0, 0, 172, 27, 1, 0, 0, 0, 173, 177, 3, 70, 35, 0, 174, 176, 3, 64, 32, 0, 175, 174, 1, 0, 0, 0, 176, 179, 1, 0, 0, 0, 177, 175, 1, 0, 0, 0, 177, 178, 1, 0, 0, 0, 178, 180, 1, 0, 0, 0, 179, 177, 1, 0, 0, 0, 180, 181, 5, 78, 0, 0, 181, 182, 5, 10, 0, 0, 182, 183, 3, 62, 31, 0, 183, 29, 1, 0, 0, 0, 184, 185, 3, 70, 35, 0, 185, 186, 5, 78, 0, 0, 186, 187, 5, 16, 0, 0, 187, 188, 3, 70, 35, 0, 188, 189, 5, 78, 0, 0, 189, 190, 5, 10, 0, 0, 190, 191, 3, 62, 31, 0, 191, 31, 1, 0, 0, 0, 192, 193, 5, 78, 0, 0, 193, 194, 7, 1, 0, 0, 194, 198, 3, 62, 31, 0, 195, 196, 5, 78, 0, 0, 196, 198, 7, 2, 0, 0, 197, 192, 1, 0, 0, 0, 197, 195, 1, 0, 0, 0, 198, 33, 1, 0, 0, 0, 199, 200, 5, 22, 0, 0, 200, 201, 5, 15, 0, 0, 201, 202, 5, 75, 0, 0, 202, 203, 5, 6, 0, 0, 203, 206, 3, 62, 31, 0, 204, 205, 5, 16, 0, 0, 205, 207, 3, 52, 26, 0, 206, 204, 1, 0, 0, 0, 206, 207, 1, 0, 0, 0, 207, 208, 1, 0, 0, 0, 208, 209, 5, 17, 0, 0, 209, 35, 1, 0, 0, 0, 210, 211, 5, 22, 0, 0, 211, 212, 5, 15, 0, 0, 212, 215, 3, 62, 31, 0, 213, 214, 5, 16, 0, 0, 214, 216, 3, 52, 26, 0, 215, 213, 1, 0, 0, 0, 215, 216, 1, 0, 0, 0, 216, 217, 1, 0, 0, 0, 217, 218, 5, 17, 0, 0, 218, 37, 1, 0, 0, 0, 219, 220, 5, 23, 0, 0, 220, 221, 3, 56, 28, 0, 221, 39, 1, 0, 0, 0, 222, 223, 5, 24, 0, 0, 223, 224, 5, 15, 0, 0, 224, 225, 3, 62, 31, 0, 225, 226, 5, 17, 0, 0, 226, 229, 3, 20, 10, 0, 227, 228, 5, 25, 0, 0, 228, 230, 3, 20, 10, 0, 229, 227, 1, 0, 0, 0, 229, 230, 1, 0, 0, 0, 230, 41, 1, 0, 0, 0, 231, 235, 3, 44, 22, 0, 232, 235, 3, 46, 23, 0, 233, 235, 3, 48, 24, 0, 234, 231, 1, 0, 0, 0, 234, 232, 1, 0, 0, 0, 234, 233, 1, 0, 0, 0, 235, 43, 1, 0, 0, 0, 236, 237, 5, 26, 0, 0, 237, 238, 3, 20, 10, 0, 238, 239, 5, 27, 0, 0, 239, 240, 5, 15, 0, 0, 240, 241, 3, 62, 31, 0, 241, 242, 5, 17, 0, 0, 242, 243, 5, 2, 0, 0, 243, 45, 1, 0, 0, 0, 244, 245, 5, 27, 0, 0, 245, 246, 5, 15, 0, 0, 246, 247, 3, 62, 31, 0, 247, 248, 5, 17, 0, 0, 248, 249, 3, 20, 10, 0, 249, 47, 1, 0, 0, 0, 250, 251, 5, 28, 0, 0, 251, 252, 5, 15, 0, 0, 252, 253, 3, 50, 25, 0, 253, 254, 5, 2, 0, 0, 254, 255, 3, 62, 31, 0, 255, 256, 5, 2, 0, 0, 256, 257, 3, 32, 16, 0, 257, 258, 5, 17, 0, 0, 258, 259, 3, 20, 10, 0, 259, 49, 1, 0, 0, 0, 260, 263, 3, 28, 14, 0, 261, 263, 3, 32, 16, 0, 262, 260, 1, 0, 0, 0, 262, 261, 1, 0, 0, 0, 263, 51, 1, 0, 0, 0, 264, 265, 5, 72, 0, 0, 265, 53, 1, 0, 0, 0, 266, 269, 5, 78, 0, 0, 267, 269, 3, 66, 33, 0, 268, 266, 1, 0, 0, 0, 268, 267, 1, 0, 0, 0, 269, 55, 1, 0, 0, 0, 270, 282, 5, 15, 0, 0, 271, 276, 3, 54, 27, 0, 272, 273, 5, 16, 0, 0, 273, 275, 3, 54, 27, 0, 274, 272, 1, 0, 0, 0, 275, 278, 1, 0, 0, 0, 276, 274, 1, 0, 0, 0, 276, 277, 1, 0, 0, 0, 277, 280, 1, 0, 0, 0, 278, 276, 1, 0, 0, 0, 279, 281, 5, 16, 0, 0, 280, 279, 1, 0, 0, 0, 280, 281, 1, 0, 0, 0, 281, 283, 1, 0, 0, 0, 282, 271, 1, 0, 0, 0, 282, 283, 1, 0, 0, 0, 283, 284, 1, 0, 0, 0, 284, 285, 5, 17, 0, 0, 285, 57, 1, 0, 0, 0, 286, 287, 5, 78, 0, 0, 287, 288, 3, 60, 30, 0, 288, 59, 1, 0, 0, 0, 289, 301, 5, 15, 0, 0, 290, 295, 3, 62, 31, 0, 291, 292, 5, 16, 0, 0, 292, 294, 3, 62, 31, 0, 293, 291, 1, 0, 0, 0, 294, 297, 1, 0, 0, 0, 295, 293, 1, 0, 0, 0, 295, 296, 1, 0, 0, 0, 296, 299, 1, 0, 0, 0, 297, 295, 1, 0, 0, 0, 298, 300, 5, 16, 0, 0, 299, 298, 1, 0, 0, 0, 299, 300, 1, 0, 0, 0, 300, 302, 1, 0, 0, 0, 301, 290, 1, 0, 0, 0, 301, 302, 1, 0, 0, 0, 302, 303, 1, 0, 0, 0, 303, 304, 5, 17, 0, 0, 304, 61, 1, 0, 0, 0, 305, 306, 6, 31, -1, 0, 306, 307, 5, 15, 0, 0, 307, 308, 3, 62, 31, 0, 308, 309, 5, 17, 0, 0, 309, 355, 1, 0, 0, 0, 310, 311, 3, 72, 36, 0, 311, 312, 5, 15, 0, 0, 312, 314, 3, 62, 31, 0, 313, 315, 5, 16, 0, 0, 314, 313, 1, 0, 0, 0, 314, 315, 1, 0, 0, 0, 315, 316, 1, 0, 0, 0, 316, 317, 5, 17, 0, 0, 317, 355, 1, 0, 0, 0, 318, 355, 3, 58, 29, 0, 319, 320, 5, 29, 0, 0, 320, 321, 5, 78, 0, 0, 321, 355, 3, 60, 30, 0, 322, 323, 5, 32, 0, 0, 323, 324, 5, 30, 0, 0, 324, 325, 3, 62, 31, 0, 325, 326, 5, 31, 0, 0, 326, 327, 7, 3, 0, 0, 327, 355, 1, 0, 0, 0, 328, 329, 5, 38, 0, 0, 329, 330, 5, 30, 0, 0, 330, 331, 3, 62, 31, 0, 331, 332, 5, 31, 0, 0, 332, 333, 7, 4, 0, 0, 333, 355, 1, 0, 0, 0, 334, 335, 7, 5, 0, 0, 335, 355, 3, 62, 31, 15, 336, 348, 5, 30, 0, 0, 337, 342, 3, 62, 31, 0, 338, 339, 5, 16, 0, 0, 339, 341, 3, 62, 31, 0, 340, 338, 1, 0, 0, 0, 341, 344, 1, 0, 0, 0, 342, 340, 1, 0, 0, 0, 342, 343, 1, 0, 0, 0, 343, 346, 1, 0, 0, 0, 344, 342, 1, 0, 0, 0, 345, 347, 5, 16, 0, 0, 346, 345, 1, 0, 0, 0, 346, 347, 1, 0, 0, 0, 347, 349, 1, 0, 0, 0, 348, 337, 1, 0, 0, 0, 348, 349, 1, 0, 0, 0, 349, 350, 1, 0, 0, 0, 350, 355, 5, 31, 0, 0, 351, 355, 5, 77, 0, 0, 352, 355, 5, 78, 0, 0, 353, 355, 3, 66, 33, 0, 354, 305, 1, 0, 0, 0, 354, 310, 1, 0, 0, 0, 354, 318, 1, 0, 0, 0, 354, 319, 1, 0, 0, 0, 354, 322, 1, 0, 0, 0, 354, 328, 1, 0, 0, 0, 354, 334, 1, 0, 0, 0, 354, 336, 1, 0, 0, 0, 354, 351, 1, 0, 0, 0, 354, 352, 1, 0, 0, 0, 354, 353, 1, 0, 0, 0, 355, 408, 1, 0, 0, 0, 356, 357, 10, 14, 0, 0, 357, 358, 7, 6, 0, 0, 358, 407, 3, 62, 31, 15, 359, 360, 10, 13, 0, 0, 360, 361, 7, 7, 0, 0, 361, 407, 3, 62, 31, 14, 362, 363, 10, 12, 0, 0, 363, 364, 7, 8, 0, 0, 364, 407, 3, 62, 31, 13, 365, 366, 10, 11, 0, 0, 366, 367, 7, 9, 0, 0, 367, 407, 3, 62, 31, 12, 368, 369, 10, 10, 0, 0, 369, 370, 7, 10, 0, 0, 370, 407, 3, 62, 31, 11, 371, 372, 10, 9, 0, 0, 372, 373, 5, 57, 0, 0, 373, 407, 3, 62, 31, 10, 374, 375, 10, 8, 0, 0, 375, 376, 5, 4, 0, 0, 376, 407, 3, 62, 31, 9, 377, 378, 10, 7, 0, 0, 378, 379, 5, 58, 0, 0, 379, 407, 3, 62, 31, 8, 380, 381, 10, 6, 0, 0, 381, 382, 5, 59, 0, 0, 382, 407, 3, 62, 31, 7, 383, 384, 10, 5, 0, 0, 384, 385, 5, 60, 0, 0, 385, 407, 3, 62, 31, 6, 386, 387, 10, 21, 0, 0, 387, 388, 5, 30, 0, 0, 388, 389, 5, 65, 0, 0, 389, 407, 5, 31, 0, 0, 390, 391, 10, 18, 0, 0, 391, 407, 7, 11, 0, 0, 392, 393, 10, 17, 0, 0, 393, 394, 5, 45, 0, 0, 394, 395, 5, 15, 0, 0, 395, 396, 3, 62, 31, 0, 396, 397, 5, 17, 0, 0, 397, 407, 1, 0, 0, 0, 398, 399, 10, 16, 0, 0, 399, 400, 5, 46, 0, 0, 400, 401, 5, 15, 0, 0, 401, 402, 3, 62, 31, 0, 402, 403, 5, 16, 0, 0, 403, 404, 3, 62, 31, 0, 404, 405, 5, 17, 0, 0, 405, 407, 1, 0, 0, 0, 406, 356, 1, 0, 0, 0, 406, 359, 1, 0, 0, 0, 406, 362, 1, 0, 0, 0, 406, 365, 1, 0, 0, 0, 406, 368, 1, 0, 0, 0, 406, 371, 1, 0, 0, 0, 406, 374, 1, 0, 0, 0, 406, 377, 1, 0, 0, 0, 406, 380, 1, 0, 0, 0, 406, 383, 1, 0, 0, 0, 406, 386, 1, 0, 0, 0, 406, 390, 1, 0, 0, 0, 406, 392, 1, 0, 0, 0, 406, 398, 1, 0, 0, 0, 407, 410, 1, 0, 0, 0, 408, 406, 1, 0, 0, 0, 408, 409, 1, 0, 0, 0, 409, 63, 1, 0, 0, 0, 410, 408, 1, 0, 0, 0, 411, 412, 5, 61, 0, 0, 412, 65, 1, 0, 0, 0, 413, 419, 5, 63, 0, 0, 414, 419, 3, 68, 34, 0, 415, 419, 5, 72, 0, 0, 416, 419, 5, 73, 0, 0, 417, 419, 5, 74, 0, 0, 418, 413, 1, 0, 0, 0, 418, 414, 1, 0, 0, 0, 418, 415, 1, 0, 0, 0, 418, 416, 1, 0, 0, 0, 418, 417, 1, 0, 0, 0, 419, 67, 1, 0, 0, 0, 420, 422, 5, 65, 0, 0, 421, 423, 5, 64, 0, 0, 422, 421, 1, 0, 0, 0, 422, 423, 1, 0, 0, 0, 423, 69, 1, 0, 0, 0, 424, 425, 7, 12, 0, 0, 425, 71, 1, 0, 0, 0, 426, 427, 7, 13, 0, 0, 427, 73, 1, 0, 0, 0, 36, 77, 92, 95, 108, 120, 131, 135, 137, 148, 153, 159, 167, 171, 177, 197, 206, 215, 229, 234, 262, 268, 276, 280, 282, 295, 299, 301, 314, 342, 346, 348, 354, 406, 408, 418, 422] \ No newline at end of file diff --git a/src/CashscriptLinter/grammar/CashScript.tokens b/src/CashscriptLinter/grammar/CashScript.tokens deleted file mode 100644 index b9cfb61..0000000 --- a/src/CashscriptLinter/grammar/CashScript.tokens +++ /dev/null @@ -1,143 +0,0 @@ -T__0=1 -T__1=2 -T__2=3 -T__3=4 -T__4=5 -T__5=6 -T__6=7 -T__7=8 -T__8=9 -T__9=10 -T__10=11 -T__11=12 -T__12=13 -T__13=14 -T__14=15 -T__15=16 -T__16=17 -T__17=18 -T__18=19 -T__19=20 -T__20=21 -T__21=22 -T__22=23 -T__23=24 -T__24=25 -T__25=26 -T__26=27 -T__27=28 -T__28=29 -T__29=30 -T__30=31 -T__31=32 -T__32=33 -T__33=34 -T__34=35 -T__35=36 -T__36=37 -T__37=38 -T__38=39 -T__39=40 -T__40=41 -T__41=42 -T__42=43 -T__43=44 -T__44=45 -T__45=46 -T__46=47 -T__47=48 -T__48=49 -T__49=50 -T__50=51 -T__51=52 -T__52=53 -T__53=54 -T__54=55 -T__55=56 -T__56=57 -T__57=58 -T__58=59 -T__59=60 -T__60=61 -VersionLiteral=62 -BooleanLiteral=63 -NumberUnit=64 -NumberLiteral=65 -NumberPart=66 -ExponentPart=67 -PrimitiveType=68 -UnboundedBytes=69 -BoundedBytes=70 -Bound=71 -StringLiteral=72 -DateLiteral=73 -HexLiteral=74 -TxVar=75 -UnsafeCast=76 -NullaryOp=77 -Identifier=78 -WHITESPACE=79 -COMMENT=80 -LINE_COMMENT=81 -'pragma'=1 -';'=2 -'cashscript'=3 -'^'=4 -'~'=5 -'>='=6 -'>'=7 -'<'=8 -'<='=9 -'='=10 -'contract'=11 -'{'=12 -'}'=13 -'function'=14 -'('=15 -','=16 -')'=17 -'+='=18 -'-='=19 -'++'=20 -'--'=21 -'require'=22 -'console.log'=23 -'if'=24 -'else'=25 -'do'=26 -'while'=27 -'for'=28 -'new'=29 -'['=30 -']'=31 -'tx.outputs'=32 -'.value'=33 -'.lockingBytecode'=34 -'.tokenCategory'=35 -'.nftCommitment'=36 -'.tokenAmount'=37 -'tx.inputs'=38 -'.outpointTransactionHash'=39 -'.outpointIndex'=40 -'.unlockingBytecode'=41 -'.sequenceNumber'=42 -'.reverse()'=43 -'.length'=44 -'.split'=45 -'.slice'=46 -'!'=47 -'-'=48 -'*'=49 -'/'=50 -'%'=51 -'+'=52 -'>>'=53 -'<<'=54 -'=='=55 -'!='=56 -'&'=57 -'|'=58 -'&&'=59 -'||'=60 -'constant'=61 -'bytes'=69 diff --git a/src/CashscriptLinter/grammar/CashScriptLexer.interp b/src/CashscriptLinter/grammar/CashScriptLexer.interp deleted file mode 100644 index e2bb72f..0000000 --- a/src/CashscriptLinter/grammar/CashScriptLexer.interp +++ /dev/null @@ -1,260 +0,0 @@ -token literal names: -null -'pragma' -';' -'cashscript' -'^' -'~' -'>=' -'>' -'<' -'<=' -'=' -'contract' -'{' -'}' -'function' -'(' -',' -')' -'+=' -'-=' -'++' -'--' -'require' -'console.log' -'if' -'else' -'do' -'while' -'for' -'new' -'[' -']' -'tx.outputs' -'.value' -'.lockingBytecode' -'.tokenCategory' -'.nftCommitment' -'.tokenAmount' -'tx.inputs' -'.outpointTransactionHash' -'.outpointIndex' -'.unlockingBytecode' -'.sequenceNumber' -'.reverse()' -'.length' -'.split' -'.slice' -'!' -'-' -'*' -'/' -'%' -'+' -'>>' -'<<' -'==' -'!=' -'&' -'|' -'&&' -'||' -'constant' -null -null -null -null -null -null -null -'bytes' -null -null -null -null -null -null -null -null -null -null -null -null - -token symbolic names: -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -VersionLiteral -BooleanLiteral -NumberUnit -NumberLiteral -NumberPart -ExponentPart -PrimitiveType -UnboundedBytes -BoundedBytes -Bound -StringLiteral -DateLiteral -HexLiteral -TxVar -UnsafeCast -NullaryOp -Identifier -WHITESPACE -COMMENT -LINE_COMMENT - -rule names: -T__0 -T__1 -T__2 -T__3 -T__4 -T__5 -T__6 -T__7 -T__8 -T__9 -T__10 -T__11 -T__12 -T__13 -T__14 -T__15 -T__16 -T__17 -T__18 -T__19 -T__20 -T__21 -T__22 -T__23 -T__24 -T__25 -T__26 -T__27 -T__28 -T__29 -T__30 -T__31 -T__32 -T__33 -T__34 -T__35 -T__36 -T__37 -T__38 -T__39 -T__40 -T__41 -T__42 -T__43 -T__44 -T__45 -T__46 -T__47 -T__48 -T__49 -T__50 -T__51 -T__52 -T__53 -T__54 -T__55 -T__56 -T__57 -T__58 -T__59 -T__60 -VersionLiteral -BooleanLiteral -NumberUnit -NumberLiteral -NumberPart -ExponentPart -PrimitiveType -UnboundedBytes -BoundedBytes -Bound -StringLiteral -DateLiteral -HexLiteral -TxVar -UnsafeCast -NullaryOp -Identifier -WHITESPACE -COMMENT -LINE_COMMENT - -channel names: -DEFAULT_TOKEN_CHANNEL -HIDDEN - -mode names: -DEFAULT_MODE - -atn: -[4, 0, 81, 938, 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, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 15, 1, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 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, 52, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 4, 61, 529, 8, 61, 11, 61, 12, 61, 530, 1, 61, 1, 61, 4, 61, 535, 8, 61, 11, 61, 12, 61, 536, 1, 61, 1, 61, 4, 61, 541, 8, 61, 11, 61, 12, 61, 542, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 3, 62, 554, 8, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 3, 63, 613, 8, 63, 1, 64, 3, 64, 616, 8, 64, 1, 64, 1, 64, 3, 64, 620, 8, 64, 1, 65, 4, 65, 623, 8, 65, 11, 65, 12, 65, 624, 1, 65, 1, 65, 4, 65, 629, 8, 65, 11, 65, 12, 65, 630, 5, 65, 633, 8, 65, 10, 65, 12, 65, 636, 9, 65, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 3, 67, 670, 8, 67, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 3, 69, 689, 8, 69, 1, 70, 1, 70, 5, 70, 693, 8, 70, 10, 70, 12, 70, 696, 9, 70, 1, 71, 1, 71, 1, 71, 1, 71, 5, 71, 702, 8, 71, 10, 71, 12, 71, 705, 9, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 5, 71, 712, 8, 71, 10, 71, 12, 71, 715, 9, 71, 1, 71, 3, 71, 718, 8, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 5, 73, 732, 8, 73, 10, 73, 12, 73, 735, 9, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 3, 74, 752, 8, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 3, 75, 789, 8, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 3, 75, 802, 8, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 3, 76, 898, 8, 76, 1, 77, 1, 77, 5, 77, 902, 8, 77, 10, 77, 12, 77, 905, 9, 77, 1, 78, 4, 78, 908, 8, 78, 11, 78, 12, 78, 909, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 1, 79, 5, 79, 918, 8, 79, 10, 79, 12, 79, 921, 9, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 80, 1, 80, 1, 80, 1, 80, 5, 80, 932, 8, 80, 10, 80, 12, 80, 935, 9, 80, 1, 80, 1, 80, 3, 703, 713, 919, 0, 81, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 29, 59, 30, 61, 31, 63, 32, 65, 33, 67, 34, 69, 35, 71, 36, 73, 37, 75, 38, 77, 39, 79, 40, 81, 41, 83, 42, 85, 43, 87, 44, 89, 45, 91, 46, 93, 47, 95, 48, 97, 49, 99, 50, 101, 51, 103, 52, 105, 53, 107, 54, 109, 55, 111, 56, 113, 57, 115, 58, 117, 59, 119, 60, 121, 61, 123, 62, 125, 63, 127, 64, 129, 65, 131, 66, 133, 67, 135, 68, 137, 69, 139, 70, 141, 71, 143, 72, 145, 73, 147, 74, 149, 75, 151, 76, 153, 77, 155, 78, 157, 79, 159, 80, 161, 81, 1, 0, 11, 1, 0, 48, 57, 2, 0, 69, 69, 101, 101, 1, 0, 49, 57, 3, 0, 10, 10, 13, 13, 34, 34, 3, 0, 10, 10, 13, 13, 39, 39, 2, 0, 88, 88, 120, 120, 3, 0, 48, 57, 65, 70, 97, 102, 2, 0, 65, 90, 97, 122, 4, 0, 48, 57, 65, 90, 95, 95, 97, 122, 3, 0, 9, 10, 12, 13, 32, 32, 2, 0, 10, 10, 13, 13, 982, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 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, 1, 163, 1, 0, 0, 0, 3, 170, 1, 0, 0, 0, 5, 172, 1, 0, 0, 0, 7, 183, 1, 0, 0, 0, 9, 185, 1, 0, 0, 0, 11, 187, 1, 0, 0, 0, 13, 190, 1, 0, 0, 0, 15, 192, 1, 0, 0, 0, 17, 194, 1, 0, 0, 0, 19, 197, 1, 0, 0, 0, 21, 199, 1, 0, 0, 0, 23, 208, 1, 0, 0, 0, 25, 210, 1, 0, 0, 0, 27, 212, 1, 0, 0, 0, 29, 221, 1, 0, 0, 0, 31, 223, 1, 0, 0, 0, 33, 225, 1, 0, 0, 0, 35, 227, 1, 0, 0, 0, 37, 230, 1, 0, 0, 0, 39, 233, 1, 0, 0, 0, 41, 236, 1, 0, 0, 0, 43, 239, 1, 0, 0, 0, 45, 247, 1, 0, 0, 0, 47, 259, 1, 0, 0, 0, 49, 262, 1, 0, 0, 0, 51, 267, 1, 0, 0, 0, 53, 270, 1, 0, 0, 0, 55, 276, 1, 0, 0, 0, 57, 280, 1, 0, 0, 0, 59, 284, 1, 0, 0, 0, 61, 286, 1, 0, 0, 0, 63, 288, 1, 0, 0, 0, 65, 299, 1, 0, 0, 0, 67, 306, 1, 0, 0, 0, 69, 323, 1, 0, 0, 0, 71, 338, 1, 0, 0, 0, 73, 353, 1, 0, 0, 0, 75, 366, 1, 0, 0, 0, 77, 376, 1, 0, 0, 0, 79, 401, 1, 0, 0, 0, 81, 416, 1, 0, 0, 0, 83, 435, 1, 0, 0, 0, 85, 451, 1, 0, 0, 0, 87, 462, 1, 0, 0, 0, 89, 470, 1, 0, 0, 0, 91, 477, 1, 0, 0, 0, 93, 484, 1, 0, 0, 0, 95, 486, 1, 0, 0, 0, 97, 488, 1, 0, 0, 0, 99, 490, 1, 0, 0, 0, 101, 492, 1, 0, 0, 0, 103, 494, 1, 0, 0, 0, 105, 496, 1, 0, 0, 0, 107, 499, 1, 0, 0, 0, 109, 502, 1, 0, 0, 0, 111, 505, 1, 0, 0, 0, 113, 508, 1, 0, 0, 0, 115, 510, 1, 0, 0, 0, 117, 512, 1, 0, 0, 0, 119, 515, 1, 0, 0, 0, 121, 518, 1, 0, 0, 0, 123, 528, 1, 0, 0, 0, 125, 553, 1, 0, 0, 0, 127, 612, 1, 0, 0, 0, 129, 615, 1, 0, 0, 0, 131, 622, 1, 0, 0, 0, 133, 637, 1, 0, 0, 0, 135, 669, 1, 0, 0, 0, 137, 671, 1, 0, 0, 0, 139, 688, 1, 0, 0, 0, 141, 690, 1, 0, 0, 0, 143, 717, 1, 0, 0, 0, 145, 719, 1, 0, 0, 0, 147, 728, 1, 0, 0, 0, 149, 751, 1, 0, 0, 0, 151, 801, 1, 0, 0, 0, 153, 897, 1, 0, 0, 0, 155, 899, 1, 0, 0, 0, 157, 907, 1, 0, 0, 0, 159, 913, 1, 0, 0, 0, 161, 927, 1, 0, 0, 0, 163, 164, 5, 112, 0, 0, 164, 165, 5, 114, 0, 0, 165, 166, 5, 97, 0, 0, 166, 167, 5, 103, 0, 0, 167, 168, 5, 109, 0, 0, 168, 169, 5, 97, 0, 0, 169, 2, 1, 0, 0, 0, 170, 171, 5, 59, 0, 0, 171, 4, 1, 0, 0, 0, 172, 173, 5, 99, 0, 0, 173, 174, 5, 97, 0, 0, 174, 175, 5, 115, 0, 0, 175, 176, 5, 104, 0, 0, 176, 177, 5, 115, 0, 0, 177, 178, 5, 99, 0, 0, 178, 179, 5, 114, 0, 0, 179, 180, 5, 105, 0, 0, 180, 181, 5, 112, 0, 0, 181, 182, 5, 116, 0, 0, 182, 6, 1, 0, 0, 0, 183, 184, 5, 94, 0, 0, 184, 8, 1, 0, 0, 0, 185, 186, 5, 126, 0, 0, 186, 10, 1, 0, 0, 0, 187, 188, 5, 62, 0, 0, 188, 189, 5, 61, 0, 0, 189, 12, 1, 0, 0, 0, 190, 191, 5, 62, 0, 0, 191, 14, 1, 0, 0, 0, 192, 193, 5, 60, 0, 0, 193, 16, 1, 0, 0, 0, 194, 195, 5, 60, 0, 0, 195, 196, 5, 61, 0, 0, 196, 18, 1, 0, 0, 0, 197, 198, 5, 61, 0, 0, 198, 20, 1, 0, 0, 0, 199, 200, 5, 99, 0, 0, 200, 201, 5, 111, 0, 0, 201, 202, 5, 110, 0, 0, 202, 203, 5, 116, 0, 0, 203, 204, 5, 114, 0, 0, 204, 205, 5, 97, 0, 0, 205, 206, 5, 99, 0, 0, 206, 207, 5, 116, 0, 0, 207, 22, 1, 0, 0, 0, 208, 209, 5, 123, 0, 0, 209, 24, 1, 0, 0, 0, 210, 211, 5, 125, 0, 0, 211, 26, 1, 0, 0, 0, 212, 213, 5, 102, 0, 0, 213, 214, 5, 117, 0, 0, 214, 215, 5, 110, 0, 0, 215, 216, 5, 99, 0, 0, 216, 217, 5, 116, 0, 0, 217, 218, 5, 105, 0, 0, 218, 219, 5, 111, 0, 0, 219, 220, 5, 110, 0, 0, 220, 28, 1, 0, 0, 0, 221, 222, 5, 40, 0, 0, 222, 30, 1, 0, 0, 0, 223, 224, 5, 44, 0, 0, 224, 32, 1, 0, 0, 0, 225, 226, 5, 41, 0, 0, 226, 34, 1, 0, 0, 0, 227, 228, 5, 43, 0, 0, 228, 229, 5, 61, 0, 0, 229, 36, 1, 0, 0, 0, 230, 231, 5, 45, 0, 0, 231, 232, 5, 61, 0, 0, 232, 38, 1, 0, 0, 0, 233, 234, 5, 43, 0, 0, 234, 235, 5, 43, 0, 0, 235, 40, 1, 0, 0, 0, 236, 237, 5, 45, 0, 0, 237, 238, 5, 45, 0, 0, 238, 42, 1, 0, 0, 0, 239, 240, 5, 114, 0, 0, 240, 241, 5, 101, 0, 0, 241, 242, 5, 113, 0, 0, 242, 243, 5, 117, 0, 0, 243, 244, 5, 105, 0, 0, 244, 245, 5, 114, 0, 0, 245, 246, 5, 101, 0, 0, 246, 44, 1, 0, 0, 0, 247, 248, 5, 99, 0, 0, 248, 249, 5, 111, 0, 0, 249, 250, 5, 110, 0, 0, 250, 251, 5, 115, 0, 0, 251, 252, 5, 111, 0, 0, 252, 253, 5, 108, 0, 0, 253, 254, 5, 101, 0, 0, 254, 255, 5, 46, 0, 0, 255, 256, 5, 108, 0, 0, 256, 257, 5, 111, 0, 0, 257, 258, 5, 103, 0, 0, 258, 46, 1, 0, 0, 0, 259, 260, 5, 105, 0, 0, 260, 261, 5, 102, 0, 0, 261, 48, 1, 0, 0, 0, 262, 263, 5, 101, 0, 0, 263, 264, 5, 108, 0, 0, 264, 265, 5, 115, 0, 0, 265, 266, 5, 101, 0, 0, 266, 50, 1, 0, 0, 0, 267, 268, 5, 100, 0, 0, 268, 269, 5, 111, 0, 0, 269, 52, 1, 0, 0, 0, 270, 271, 5, 119, 0, 0, 271, 272, 5, 104, 0, 0, 272, 273, 5, 105, 0, 0, 273, 274, 5, 108, 0, 0, 274, 275, 5, 101, 0, 0, 275, 54, 1, 0, 0, 0, 276, 277, 5, 102, 0, 0, 277, 278, 5, 111, 0, 0, 278, 279, 5, 114, 0, 0, 279, 56, 1, 0, 0, 0, 280, 281, 5, 110, 0, 0, 281, 282, 5, 101, 0, 0, 282, 283, 5, 119, 0, 0, 283, 58, 1, 0, 0, 0, 284, 285, 5, 91, 0, 0, 285, 60, 1, 0, 0, 0, 286, 287, 5, 93, 0, 0, 287, 62, 1, 0, 0, 0, 288, 289, 5, 116, 0, 0, 289, 290, 5, 120, 0, 0, 290, 291, 5, 46, 0, 0, 291, 292, 5, 111, 0, 0, 292, 293, 5, 117, 0, 0, 293, 294, 5, 116, 0, 0, 294, 295, 5, 112, 0, 0, 295, 296, 5, 117, 0, 0, 296, 297, 5, 116, 0, 0, 297, 298, 5, 115, 0, 0, 298, 64, 1, 0, 0, 0, 299, 300, 5, 46, 0, 0, 300, 301, 5, 118, 0, 0, 301, 302, 5, 97, 0, 0, 302, 303, 5, 108, 0, 0, 303, 304, 5, 117, 0, 0, 304, 305, 5, 101, 0, 0, 305, 66, 1, 0, 0, 0, 306, 307, 5, 46, 0, 0, 307, 308, 5, 108, 0, 0, 308, 309, 5, 111, 0, 0, 309, 310, 5, 99, 0, 0, 310, 311, 5, 107, 0, 0, 311, 312, 5, 105, 0, 0, 312, 313, 5, 110, 0, 0, 313, 314, 5, 103, 0, 0, 314, 315, 5, 66, 0, 0, 315, 316, 5, 121, 0, 0, 316, 317, 5, 116, 0, 0, 317, 318, 5, 101, 0, 0, 318, 319, 5, 99, 0, 0, 319, 320, 5, 111, 0, 0, 320, 321, 5, 100, 0, 0, 321, 322, 5, 101, 0, 0, 322, 68, 1, 0, 0, 0, 323, 324, 5, 46, 0, 0, 324, 325, 5, 116, 0, 0, 325, 326, 5, 111, 0, 0, 326, 327, 5, 107, 0, 0, 327, 328, 5, 101, 0, 0, 328, 329, 5, 110, 0, 0, 329, 330, 5, 67, 0, 0, 330, 331, 5, 97, 0, 0, 331, 332, 5, 116, 0, 0, 332, 333, 5, 101, 0, 0, 333, 334, 5, 103, 0, 0, 334, 335, 5, 111, 0, 0, 335, 336, 5, 114, 0, 0, 336, 337, 5, 121, 0, 0, 337, 70, 1, 0, 0, 0, 338, 339, 5, 46, 0, 0, 339, 340, 5, 110, 0, 0, 340, 341, 5, 102, 0, 0, 341, 342, 5, 116, 0, 0, 342, 343, 5, 67, 0, 0, 343, 344, 5, 111, 0, 0, 344, 345, 5, 109, 0, 0, 345, 346, 5, 109, 0, 0, 346, 347, 5, 105, 0, 0, 347, 348, 5, 116, 0, 0, 348, 349, 5, 109, 0, 0, 349, 350, 5, 101, 0, 0, 350, 351, 5, 110, 0, 0, 351, 352, 5, 116, 0, 0, 352, 72, 1, 0, 0, 0, 353, 354, 5, 46, 0, 0, 354, 355, 5, 116, 0, 0, 355, 356, 5, 111, 0, 0, 356, 357, 5, 107, 0, 0, 357, 358, 5, 101, 0, 0, 358, 359, 5, 110, 0, 0, 359, 360, 5, 65, 0, 0, 360, 361, 5, 109, 0, 0, 361, 362, 5, 111, 0, 0, 362, 363, 5, 117, 0, 0, 363, 364, 5, 110, 0, 0, 364, 365, 5, 116, 0, 0, 365, 74, 1, 0, 0, 0, 366, 367, 5, 116, 0, 0, 367, 368, 5, 120, 0, 0, 368, 369, 5, 46, 0, 0, 369, 370, 5, 105, 0, 0, 370, 371, 5, 110, 0, 0, 371, 372, 5, 112, 0, 0, 372, 373, 5, 117, 0, 0, 373, 374, 5, 116, 0, 0, 374, 375, 5, 115, 0, 0, 375, 76, 1, 0, 0, 0, 376, 377, 5, 46, 0, 0, 377, 378, 5, 111, 0, 0, 378, 379, 5, 117, 0, 0, 379, 380, 5, 116, 0, 0, 380, 381, 5, 112, 0, 0, 381, 382, 5, 111, 0, 0, 382, 383, 5, 105, 0, 0, 383, 384, 5, 110, 0, 0, 384, 385, 5, 116, 0, 0, 385, 386, 5, 84, 0, 0, 386, 387, 5, 114, 0, 0, 387, 388, 5, 97, 0, 0, 388, 389, 5, 110, 0, 0, 389, 390, 5, 115, 0, 0, 390, 391, 5, 97, 0, 0, 391, 392, 5, 99, 0, 0, 392, 393, 5, 116, 0, 0, 393, 394, 5, 105, 0, 0, 394, 395, 5, 111, 0, 0, 395, 396, 5, 110, 0, 0, 396, 397, 5, 72, 0, 0, 397, 398, 5, 97, 0, 0, 398, 399, 5, 115, 0, 0, 399, 400, 5, 104, 0, 0, 400, 78, 1, 0, 0, 0, 401, 402, 5, 46, 0, 0, 402, 403, 5, 111, 0, 0, 403, 404, 5, 117, 0, 0, 404, 405, 5, 116, 0, 0, 405, 406, 5, 112, 0, 0, 406, 407, 5, 111, 0, 0, 407, 408, 5, 105, 0, 0, 408, 409, 5, 110, 0, 0, 409, 410, 5, 116, 0, 0, 410, 411, 5, 73, 0, 0, 411, 412, 5, 110, 0, 0, 412, 413, 5, 100, 0, 0, 413, 414, 5, 101, 0, 0, 414, 415, 5, 120, 0, 0, 415, 80, 1, 0, 0, 0, 416, 417, 5, 46, 0, 0, 417, 418, 5, 117, 0, 0, 418, 419, 5, 110, 0, 0, 419, 420, 5, 108, 0, 0, 420, 421, 5, 111, 0, 0, 421, 422, 5, 99, 0, 0, 422, 423, 5, 107, 0, 0, 423, 424, 5, 105, 0, 0, 424, 425, 5, 110, 0, 0, 425, 426, 5, 103, 0, 0, 426, 427, 5, 66, 0, 0, 427, 428, 5, 121, 0, 0, 428, 429, 5, 116, 0, 0, 429, 430, 5, 101, 0, 0, 430, 431, 5, 99, 0, 0, 431, 432, 5, 111, 0, 0, 432, 433, 5, 100, 0, 0, 433, 434, 5, 101, 0, 0, 434, 82, 1, 0, 0, 0, 435, 436, 5, 46, 0, 0, 436, 437, 5, 115, 0, 0, 437, 438, 5, 101, 0, 0, 438, 439, 5, 113, 0, 0, 439, 440, 5, 117, 0, 0, 440, 441, 5, 101, 0, 0, 441, 442, 5, 110, 0, 0, 442, 443, 5, 99, 0, 0, 443, 444, 5, 101, 0, 0, 444, 445, 5, 78, 0, 0, 445, 446, 5, 117, 0, 0, 446, 447, 5, 109, 0, 0, 447, 448, 5, 98, 0, 0, 448, 449, 5, 101, 0, 0, 449, 450, 5, 114, 0, 0, 450, 84, 1, 0, 0, 0, 451, 452, 5, 46, 0, 0, 452, 453, 5, 114, 0, 0, 453, 454, 5, 101, 0, 0, 454, 455, 5, 118, 0, 0, 455, 456, 5, 101, 0, 0, 456, 457, 5, 114, 0, 0, 457, 458, 5, 115, 0, 0, 458, 459, 5, 101, 0, 0, 459, 460, 5, 40, 0, 0, 460, 461, 5, 41, 0, 0, 461, 86, 1, 0, 0, 0, 462, 463, 5, 46, 0, 0, 463, 464, 5, 108, 0, 0, 464, 465, 5, 101, 0, 0, 465, 466, 5, 110, 0, 0, 466, 467, 5, 103, 0, 0, 467, 468, 5, 116, 0, 0, 468, 469, 5, 104, 0, 0, 469, 88, 1, 0, 0, 0, 470, 471, 5, 46, 0, 0, 471, 472, 5, 115, 0, 0, 472, 473, 5, 112, 0, 0, 473, 474, 5, 108, 0, 0, 474, 475, 5, 105, 0, 0, 475, 476, 5, 116, 0, 0, 476, 90, 1, 0, 0, 0, 477, 478, 5, 46, 0, 0, 478, 479, 5, 115, 0, 0, 479, 480, 5, 108, 0, 0, 480, 481, 5, 105, 0, 0, 481, 482, 5, 99, 0, 0, 482, 483, 5, 101, 0, 0, 483, 92, 1, 0, 0, 0, 484, 485, 5, 33, 0, 0, 485, 94, 1, 0, 0, 0, 486, 487, 5, 45, 0, 0, 487, 96, 1, 0, 0, 0, 488, 489, 5, 42, 0, 0, 489, 98, 1, 0, 0, 0, 490, 491, 5, 47, 0, 0, 491, 100, 1, 0, 0, 0, 492, 493, 5, 37, 0, 0, 493, 102, 1, 0, 0, 0, 494, 495, 5, 43, 0, 0, 495, 104, 1, 0, 0, 0, 496, 497, 5, 62, 0, 0, 497, 498, 5, 62, 0, 0, 498, 106, 1, 0, 0, 0, 499, 500, 5, 60, 0, 0, 500, 501, 5, 60, 0, 0, 501, 108, 1, 0, 0, 0, 502, 503, 5, 61, 0, 0, 503, 504, 5, 61, 0, 0, 504, 110, 1, 0, 0, 0, 505, 506, 5, 33, 0, 0, 506, 507, 5, 61, 0, 0, 507, 112, 1, 0, 0, 0, 508, 509, 5, 38, 0, 0, 509, 114, 1, 0, 0, 0, 510, 511, 5, 124, 0, 0, 511, 116, 1, 0, 0, 0, 512, 513, 5, 38, 0, 0, 513, 514, 5, 38, 0, 0, 514, 118, 1, 0, 0, 0, 515, 516, 5, 124, 0, 0, 516, 517, 5, 124, 0, 0, 517, 120, 1, 0, 0, 0, 518, 519, 5, 99, 0, 0, 519, 520, 5, 111, 0, 0, 520, 521, 5, 110, 0, 0, 521, 522, 5, 115, 0, 0, 522, 523, 5, 116, 0, 0, 523, 524, 5, 97, 0, 0, 524, 525, 5, 110, 0, 0, 525, 526, 5, 116, 0, 0, 526, 122, 1, 0, 0, 0, 527, 529, 7, 0, 0, 0, 528, 527, 1, 0, 0, 0, 529, 530, 1, 0, 0, 0, 530, 528, 1, 0, 0, 0, 530, 531, 1, 0, 0, 0, 531, 532, 1, 0, 0, 0, 532, 534, 5, 46, 0, 0, 533, 535, 7, 0, 0, 0, 534, 533, 1, 0, 0, 0, 535, 536, 1, 0, 0, 0, 536, 534, 1, 0, 0, 0, 536, 537, 1, 0, 0, 0, 537, 538, 1, 0, 0, 0, 538, 540, 5, 46, 0, 0, 539, 541, 7, 0, 0, 0, 540, 539, 1, 0, 0, 0, 541, 542, 1, 0, 0, 0, 542, 540, 1, 0, 0, 0, 542, 543, 1, 0, 0, 0, 543, 124, 1, 0, 0, 0, 544, 545, 5, 116, 0, 0, 545, 546, 5, 114, 0, 0, 546, 547, 5, 117, 0, 0, 547, 554, 5, 101, 0, 0, 548, 549, 5, 102, 0, 0, 549, 550, 5, 97, 0, 0, 550, 551, 5, 108, 0, 0, 551, 552, 5, 115, 0, 0, 552, 554, 5, 101, 0, 0, 553, 544, 1, 0, 0, 0, 553, 548, 1, 0, 0, 0, 554, 126, 1, 0, 0, 0, 555, 556, 5, 115, 0, 0, 556, 557, 5, 97, 0, 0, 557, 558, 5, 116, 0, 0, 558, 559, 5, 111, 0, 0, 559, 560, 5, 115, 0, 0, 560, 561, 5, 104, 0, 0, 561, 562, 5, 105, 0, 0, 562, 613, 5, 115, 0, 0, 563, 564, 5, 115, 0, 0, 564, 565, 5, 97, 0, 0, 565, 566, 5, 116, 0, 0, 566, 613, 5, 115, 0, 0, 567, 568, 5, 102, 0, 0, 568, 569, 5, 105, 0, 0, 569, 570, 5, 110, 0, 0, 570, 571, 5, 110, 0, 0, 571, 572, 5, 101, 0, 0, 572, 613, 5, 121, 0, 0, 573, 574, 5, 98, 0, 0, 574, 575, 5, 105, 0, 0, 575, 576, 5, 116, 0, 0, 576, 613, 5, 115, 0, 0, 577, 578, 5, 98, 0, 0, 578, 579, 5, 105, 0, 0, 579, 580, 5, 116, 0, 0, 580, 581, 5, 99, 0, 0, 581, 582, 5, 111, 0, 0, 582, 583, 5, 105, 0, 0, 583, 613, 5, 110, 0, 0, 584, 585, 5, 115, 0, 0, 585, 586, 5, 101, 0, 0, 586, 587, 5, 99, 0, 0, 587, 588, 5, 111, 0, 0, 588, 589, 5, 110, 0, 0, 589, 590, 5, 100, 0, 0, 590, 613, 5, 115, 0, 0, 591, 592, 5, 109, 0, 0, 592, 593, 5, 105, 0, 0, 593, 594, 5, 110, 0, 0, 594, 595, 5, 117, 0, 0, 595, 596, 5, 116, 0, 0, 596, 597, 5, 101, 0, 0, 597, 613, 5, 115, 0, 0, 598, 599, 5, 104, 0, 0, 599, 600, 5, 111, 0, 0, 600, 601, 5, 117, 0, 0, 601, 602, 5, 114, 0, 0, 602, 613, 5, 115, 0, 0, 603, 604, 5, 100, 0, 0, 604, 605, 5, 97, 0, 0, 605, 606, 5, 121, 0, 0, 606, 613, 5, 115, 0, 0, 607, 608, 5, 119, 0, 0, 608, 609, 5, 101, 0, 0, 609, 610, 5, 101, 0, 0, 610, 611, 5, 107, 0, 0, 611, 613, 5, 115, 0, 0, 612, 555, 1, 0, 0, 0, 612, 563, 1, 0, 0, 0, 612, 567, 1, 0, 0, 0, 612, 573, 1, 0, 0, 0, 612, 577, 1, 0, 0, 0, 612, 584, 1, 0, 0, 0, 612, 591, 1, 0, 0, 0, 612, 598, 1, 0, 0, 0, 612, 603, 1, 0, 0, 0, 612, 607, 1, 0, 0, 0, 613, 128, 1, 0, 0, 0, 614, 616, 5, 45, 0, 0, 615, 614, 1, 0, 0, 0, 615, 616, 1, 0, 0, 0, 616, 617, 1, 0, 0, 0, 617, 619, 3, 131, 65, 0, 618, 620, 3, 133, 66, 0, 619, 618, 1, 0, 0, 0, 619, 620, 1, 0, 0, 0, 620, 130, 1, 0, 0, 0, 621, 623, 7, 0, 0, 0, 622, 621, 1, 0, 0, 0, 623, 624, 1, 0, 0, 0, 624, 622, 1, 0, 0, 0, 624, 625, 1, 0, 0, 0, 625, 634, 1, 0, 0, 0, 626, 628, 5, 95, 0, 0, 627, 629, 7, 0, 0, 0, 628, 627, 1, 0, 0, 0, 629, 630, 1, 0, 0, 0, 630, 628, 1, 0, 0, 0, 630, 631, 1, 0, 0, 0, 631, 633, 1, 0, 0, 0, 632, 626, 1, 0, 0, 0, 633, 636, 1, 0, 0, 0, 634, 632, 1, 0, 0, 0, 634, 635, 1, 0, 0, 0, 635, 132, 1, 0, 0, 0, 636, 634, 1, 0, 0, 0, 637, 638, 7, 1, 0, 0, 638, 639, 3, 131, 65, 0, 639, 134, 1, 0, 0, 0, 640, 641, 5, 105, 0, 0, 641, 642, 5, 110, 0, 0, 642, 670, 5, 116, 0, 0, 643, 644, 5, 98, 0, 0, 644, 645, 5, 111, 0, 0, 645, 646, 5, 111, 0, 0, 646, 670, 5, 108, 0, 0, 647, 648, 5, 115, 0, 0, 648, 649, 5, 116, 0, 0, 649, 650, 5, 114, 0, 0, 650, 651, 5, 105, 0, 0, 651, 652, 5, 110, 0, 0, 652, 670, 5, 103, 0, 0, 653, 654, 5, 112, 0, 0, 654, 655, 5, 117, 0, 0, 655, 656, 5, 98, 0, 0, 656, 657, 5, 107, 0, 0, 657, 658, 5, 101, 0, 0, 658, 670, 5, 121, 0, 0, 659, 660, 5, 115, 0, 0, 660, 661, 5, 105, 0, 0, 661, 670, 5, 103, 0, 0, 662, 663, 5, 100, 0, 0, 663, 664, 5, 97, 0, 0, 664, 665, 5, 116, 0, 0, 665, 666, 5, 97, 0, 0, 666, 667, 5, 115, 0, 0, 667, 668, 5, 105, 0, 0, 668, 670, 5, 103, 0, 0, 669, 640, 1, 0, 0, 0, 669, 643, 1, 0, 0, 0, 669, 647, 1, 0, 0, 0, 669, 653, 1, 0, 0, 0, 669, 659, 1, 0, 0, 0, 669, 662, 1, 0, 0, 0, 670, 136, 1, 0, 0, 0, 671, 672, 5, 98, 0, 0, 672, 673, 5, 121, 0, 0, 673, 674, 5, 116, 0, 0, 674, 675, 5, 101, 0, 0, 675, 676, 5, 115, 0, 0, 676, 138, 1, 0, 0, 0, 677, 678, 5, 98, 0, 0, 678, 679, 5, 121, 0, 0, 679, 680, 5, 116, 0, 0, 680, 681, 5, 101, 0, 0, 681, 682, 5, 115, 0, 0, 682, 683, 1, 0, 0, 0, 683, 689, 3, 141, 70, 0, 684, 685, 5, 98, 0, 0, 685, 686, 5, 121, 0, 0, 686, 687, 5, 116, 0, 0, 687, 689, 5, 101, 0, 0, 688, 677, 1, 0, 0, 0, 688, 684, 1, 0, 0, 0, 689, 140, 1, 0, 0, 0, 690, 694, 7, 2, 0, 0, 691, 693, 7, 0, 0, 0, 692, 691, 1, 0, 0, 0, 693, 696, 1, 0, 0, 0, 694, 692, 1, 0, 0, 0, 694, 695, 1, 0, 0, 0, 695, 142, 1, 0, 0, 0, 696, 694, 1, 0, 0, 0, 697, 703, 5, 34, 0, 0, 698, 699, 5, 92, 0, 0, 699, 702, 5, 34, 0, 0, 700, 702, 8, 3, 0, 0, 701, 698, 1, 0, 0, 0, 701, 700, 1, 0, 0, 0, 702, 705, 1, 0, 0, 0, 703, 704, 1, 0, 0, 0, 703, 701, 1, 0, 0, 0, 704, 706, 1, 0, 0, 0, 705, 703, 1, 0, 0, 0, 706, 718, 5, 34, 0, 0, 707, 713, 5, 39, 0, 0, 708, 709, 5, 92, 0, 0, 709, 712, 5, 39, 0, 0, 710, 712, 8, 4, 0, 0, 711, 708, 1, 0, 0, 0, 711, 710, 1, 0, 0, 0, 712, 715, 1, 0, 0, 0, 713, 714, 1, 0, 0, 0, 713, 711, 1, 0, 0, 0, 714, 716, 1, 0, 0, 0, 715, 713, 1, 0, 0, 0, 716, 718, 5, 39, 0, 0, 717, 697, 1, 0, 0, 0, 717, 707, 1, 0, 0, 0, 718, 144, 1, 0, 0, 0, 719, 720, 5, 100, 0, 0, 720, 721, 5, 97, 0, 0, 721, 722, 5, 116, 0, 0, 722, 723, 5, 101, 0, 0, 723, 724, 5, 40, 0, 0, 724, 725, 1, 0, 0, 0, 725, 726, 3, 143, 71, 0, 726, 727, 5, 41, 0, 0, 727, 146, 1, 0, 0, 0, 728, 729, 5, 48, 0, 0, 729, 733, 7, 5, 0, 0, 730, 732, 7, 6, 0, 0, 731, 730, 1, 0, 0, 0, 732, 735, 1, 0, 0, 0, 733, 731, 1, 0, 0, 0, 733, 734, 1, 0, 0, 0, 734, 148, 1, 0, 0, 0, 735, 733, 1, 0, 0, 0, 736, 737, 5, 116, 0, 0, 737, 738, 5, 104, 0, 0, 738, 739, 5, 105, 0, 0, 739, 740, 5, 115, 0, 0, 740, 741, 5, 46, 0, 0, 741, 742, 5, 97, 0, 0, 742, 743, 5, 103, 0, 0, 743, 752, 5, 101, 0, 0, 744, 745, 5, 116, 0, 0, 745, 746, 5, 120, 0, 0, 746, 747, 5, 46, 0, 0, 747, 748, 5, 116, 0, 0, 748, 749, 5, 105, 0, 0, 749, 750, 5, 109, 0, 0, 750, 752, 5, 101, 0, 0, 751, 736, 1, 0, 0, 0, 751, 744, 1, 0, 0, 0, 752, 150, 1, 0, 0, 0, 753, 754, 5, 117, 0, 0, 754, 755, 5, 110, 0, 0, 755, 756, 5, 115, 0, 0, 756, 757, 5, 97, 0, 0, 757, 758, 5, 102, 0, 0, 758, 759, 5, 101, 0, 0, 759, 760, 5, 95, 0, 0, 760, 761, 5, 105, 0, 0, 761, 762, 5, 110, 0, 0, 762, 802, 5, 116, 0, 0, 763, 764, 5, 117, 0, 0, 764, 765, 5, 110, 0, 0, 765, 766, 5, 115, 0, 0, 766, 767, 5, 97, 0, 0, 767, 768, 5, 102, 0, 0, 768, 769, 5, 101, 0, 0, 769, 770, 5, 95, 0, 0, 770, 771, 5, 98, 0, 0, 771, 772, 5, 111, 0, 0, 772, 773, 5, 111, 0, 0, 773, 802, 5, 108, 0, 0, 774, 775, 5, 117, 0, 0, 775, 776, 5, 110, 0, 0, 776, 777, 5, 115, 0, 0, 777, 778, 5, 97, 0, 0, 778, 779, 5, 102, 0, 0, 779, 780, 5, 101, 0, 0, 780, 781, 5, 95, 0, 0, 781, 782, 5, 98, 0, 0, 782, 783, 5, 121, 0, 0, 783, 784, 5, 116, 0, 0, 784, 785, 5, 101, 0, 0, 785, 786, 5, 115, 0, 0, 786, 788, 1, 0, 0, 0, 787, 789, 3, 141, 70, 0, 788, 787, 1, 0, 0, 0, 788, 789, 1, 0, 0, 0, 789, 802, 1, 0, 0, 0, 790, 791, 5, 117, 0, 0, 791, 792, 5, 110, 0, 0, 792, 793, 5, 115, 0, 0, 793, 794, 5, 97, 0, 0, 794, 795, 5, 102, 0, 0, 795, 796, 5, 101, 0, 0, 796, 797, 5, 95, 0, 0, 797, 798, 5, 98, 0, 0, 798, 799, 5, 121, 0, 0, 799, 800, 5, 116, 0, 0, 800, 802, 5, 101, 0, 0, 801, 753, 1, 0, 0, 0, 801, 763, 1, 0, 0, 0, 801, 774, 1, 0, 0, 0, 801, 790, 1, 0, 0, 0, 802, 152, 1, 0, 0, 0, 803, 804, 5, 116, 0, 0, 804, 805, 5, 104, 0, 0, 805, 806, 5, 105, 0, 0, 806, 807, 5, 115, 0, 0, 807, 808, 5, 46, 0, 0, 808, 809, 5, 97, 0, 0, 809, 810, 5, 99, 0, 0, 810, 811, 5, 116, 0, 0, 811, 812, 5, 105, 0, 0, 812, 813, 5, 118, 0, 0, 813, 814, 5, 101, 0, 0, 814, 815, 5, 73, 0, 0, 815, 816, 5, 110, 0, 0, 816, 817, 5, 112, 0, 0, 817, 818, 5, 117, 0, 0, 818, 819, 5, 116, 0, 0, 819, 820, 5, 73, 0, 0, 820, 821, 5, 110, 0, 0, 821, 822, 5, 100, 0, 0, 822, 823, 5, 101, 0, 0, 823, 898, 5, 120, 0, 0, 824, 825, 5, 116, 0, 0, 825, 826, 5, 104, 0, 0, 826, 827, 5, 105, 0, 0, 827, 828, 5, 115, 0, 0, 828, 829, 5, 46, 0, 0, 829, 830, 5, 97, 0, 0, 830, 831, 5, 99, 0, 0, 831, 832, 5, 116, 0, 0, 832, 833, 5, 105, 0, 0, 833, 834, 5, 118, 0, 0, 834, 835, 5, 101, 0, 0, 835, 836, 5, 66, 0, 0, 836, 837, 5, 121, 0, 0, 837, 838, 5, 116, 0, 0, 838, 839, 5, 101, 0, 0, 839, 840, 5, 99, 0, 0, 840, 841, 5, 111, 0, 0, 841, 842, 5, 100, 0, 0, 842, 898, 5, 101, 0, 0, 843, 844, 5, 116, 0, 0, 844, 845, 5, 120, 0, 0, 845, 846, 5, 46, 0, 0, 846, 847, 5, 105, 0, 0, 847, 848, 5, 110, 0, 0, 848, 849, 5, 112, 0, 0, 849, 850, 5, 117, 0, 0, 850, 851, 5, 116, 0, 0, 851, 852, 5, 115, 0, 0, 852, 853, 5, 46, 0, 0, 853, 854, 5, 108, 0, 0, 854, 855, 5, 101, 0, 0, 855, 856, 5, 110, 0, 0, 856, 857, 5, 103, 0, 0, 857, 858, 5, 116, 0, 0, 858, 898, 5, 104, 0, 0, 859, 860, 5, 116, 0, 0, 860, 861, 5, 120, 0, 0, 861, 862, 5, 46, 0, 0, 862, 863, 5, 111, 0, 0, 863, 864, 5, 117, 0, 0, 864, 865, 5, 116, 0, 0, 865, 866, 5, 112, 0, 0, 866, 867, 5, 117, 0, 0, 867, 868, 5, 116, 0, 0, 868, 869, 5, 115, 0, 0, 869, 870, 5, 46, 0, 0, 870, 871, 5, 108, 0, 0, 871, 872, 5, 101, 0, 0, 872, 873, 5, 110, 0, 0, 873, 874, 5, 103, 0, 0, 874, 875, 5, 116, 0, 0, 875, 898, 5, 104, 0, 0, 876, 877, 5, 116, 0, 0, 877, 878, 5, 120, 0, 0, 878, 879, 5, 46, 0, 0, 879, 880, 5, 118, 0, 0, 880, 881, 5, 101, 0, 0, 881, 882, 5, 114, 0, 0, 882, 883, 5, 115, 0, 0, 883, 884, 5, 105, 0, 0, 884, 885, 5, 111, 0, 0, 885, 898, 5, 110, 0, 0, 886, 887, 5, 116, 0, 0, 887, 888, 5, 120, 0, 0, 888, 889, 5, 46, 0, 0, 889, 890, 5, 108, 0, 0, 890, 891, 5, 111, 0, 0, 891, 892, 5, 99, 0, 0, 892, 893, 5, 107, 0, 0, 893, 894, 5, 116, 0, 0, 894, 895, 5, 105, 0, 0, 895, 896, 5, 109, 0, 0, 896, 898, 5, 101, 0, 0, 897, 803, 1, 0, 0, 0, 897, 824, 1, 0, 0, 0, 897, 843, 1, 0, 0, 0, 897, 859, 1, 0, 0, 0, 897, 876, 1, 0, 0, 0, 897, 886, 1, 0, 0, 0, 898, 154, 1, 0, 0, 0, 899, 903, 7, 7, 0, 0, 900, 902, 7, 8, 0, 0, 901, 900, 1, 0, 0, 0, 902, 905, 1, 0, 0, 0, 903, 901, 1, 0, 0, 0, 903, 904, 1, 0, 0, 0, 904, 156, 1, 0, 0, 0, 905, 903, 1, 0, 0, 0, 906, 908, 7, 9, 0, 0, 907, 906, 1, 0, 0, 0, 908, 909, 1, 0, 0, 0, 909, 907, 1, 0, 0, 0, 909, 910, 1, 0, 0, 0, 910, 911, 1, 0, 0, 0, 911, 912, 6, 78, 0, 0, 912, 158, 1, 0, 0, 0, 913, 914, 5, 47, 0, 0, 914, 915, 5, 42, 0, 0, 915, 919, 1, 0, 0, 0, 916, 918, 9, 0, 0, 0, 917, 916, 1, 0, 0, 0, 918, 921, 1, 0, 0, 0, 919, 920, 1, 0, 0, 0, 919, 917, 1, 0, 0, 0, 920, 922, 1, 0, 0, 0, 921, 919, 1, 0, 0, 0, 922, 923, 5, 42, 0, 0, 923, 924, 5, 47, 0, 0, 924, 925, 1, 0, 0, 0, 925, 926, 6, 79, 1, 0, 926, 160, 1, 0, 0, 0, 927, 928, 5, 47, 0, 0, 928, 929, 5, 47, 0, 0, 929, 933, 1, 0, 0, 0, 930, 932, 8, 10, 0, 0, 931, 930, 1, 0, 0, 0, 932, 935, 1, 0, 0, 0, 933, 931, 1, 0, 0, 0, 933, 934, 1, 0, 0, 0, 934, 936, 1, 0, 0, 0, 935, 933, 1, 0, 0, 0, 936, 937, 6, 80, 1, 0, 937, 162, 1, 0, 0, 0, 28, 0, 530, 536, 542, 553, 612, 615, 619, 624, 630, 634, 669, 688, 694, 701, 703, 711, 713, 717, 733, 751, 788, 801, 897, 903, 909, 919, 933, 2, 6, 0, 0, 0, 1, 0] \ No newline at end of file diff --git a/src/CashscriptLinter/grammar/CashScriptLexer.tokens b/src/CashscriptLinter/grammar/CashScriptLexer.tokens deleted file mode 100644 index b9cfb61..0000000 --- a/src/CashscriptLinter/grammar/CashScriptLexer.tokens +++ /dev/null @@ -1,143 +0,0 @@ -T__0=1 -T__1=2 -T__2=3 -T__3=4 -T__4=5 -T__5=6 -T__6=7 -T__7=8 -T__8=9 -T__9=10 -T__10=11 -T__11=12 -T__12=13 -T__13=14 -T__14=15 -T__15=16 -T__16=17 -T__17=18 -T__18=19 -T__19=20 -T__20=21 -T__21=22 -T__22=23 -T__23=24 -T__24=25 -T__25=26 -T__26=27 -T__27=28 -T__28=29 -T__29=30 -T__30=31 -T__31=32 -T__32=33 -T__33=34 -T__34=35 -T__35=36 -T__36=37 -T__37=38 -T__38=39 -T__39=40 -T__40=41 -T__41=42 -T__42=43 -T__43=44 -T__44=45 -T__45=46 -T__46=47 -T__47=48 -T__48=49 -T__49=50 -T__50=51 -T__51=52 -T__52=53 -T__53=54 -T__54=55 -T__55=56 -T__56=57 -T__57=58 -T__58=59 -T__59=60 -T__60=61 -VersionLiteral=62 -BooleanLiteral=63 -NumberUnit=64 -NumberLiteral=65 -NumberPart=66 -ExponentPart=67 -PrimitiveType=68 -UnboundedBytes=69 -BoundedBytes=70 -Bound=71 -StringLiteral=72 -DateLiteral=73 -HexLiteral=74 -TxVar=75 -UnsafeCast=76 -NullaryOp=77 -Identifier=78 -WHITESPACE=79 -COMMENT=80 -LINE_COMMENT=81 -'pragma'=1 -';'=2 -'cashscript'=3 -'^'=4 -'~'=5 -'>='=6 -'>'=7 -'<'=8 -'<='=9 -'='=10 -'contract'=11 -'{'=12 -'}'=13 -'function'=14 -'('=15 -','=16 -')'=17 -'+='=18 -'-='=19 -'++'=20 -'--'=21 -'require'=22 -'console.log'=23 -'if'=24 -'else'=25 -'do'=26 -'while'=27 -'for'=28 -'new'=29 -'['=30 -']'=31 -'tx.outputs'=32 -'.value'=33 -'.lockingBytecode'=34 -'.tokenCategory'=35 -'.nftCommitment'=36 -'.tokenAmount'=37 -'tx.inputs'=38 -'.outpointTransactionHash'=39 -'.outpointIndex'=40 -'.unlockingBytecode'=41 -'.sequenceNumber'=42 -'.reverse()'=43 -'.length'=44 -'.split'=45 -'.slice'=46 -'!'=47 -'-'=48 -'*'=49 -'/'=50 -'%'=51 -'+'=52 -'>>'=53 -'<<'=54 -'=='=55 -'!='=56 -'&'=57 -'|'=58 -'&&'=59 -'||'=60 -'constant'=61 -'bytes'=69 diff --git a/src/CashscriptLinter/grammar/CashScriptLexer.ts b/src/CashscriptLinter/grammar/CashScriptLexer.ts deleted file mode 100644 index c67a03b..0000000 --- a/src/CashscriptLinter/grammar/CashScriptLexer.ts +++ /dev/null @@ -1,548 +0,0 @@ -// Generated from src/grammar/CashScript.g4 by ANTLR 4.13.1 -// noinspection ES6UnusedImports,JSUnusedGlobalSymbols,JSUnusedLocalSymbols -import { - ATN, - ATNDeserializer, - CharStream, - DecisionState, DFA, - Lexer, - LexerATNSimulator, - RuleContext, - PredictionContextCache, - Token -} from "antlr4"; -export default class CashScriptLexer extends Lexer { - public static readonly T__0 = 1; - public static readonly T__1 = 2; - public static readonly T__2 = 3; - public static readonly T__3 = 4; - public static readonly T__4 = 5; - public static readonly T__5 = 6; - public static readonly T__6 = 7; - public static readonly T__7 = 8; - public static readonly T__8 = 9; - public static readonly T__9 = 10; - public static readonly T__10 = 11; - public static readonly T__11 = 12; - public static readonly T__12 = 13; - public static readonly T__13 = 14; - public static readonly T__14 = 15; - public static readonly T__15 = 16; - public static readonly T__16 = 17; - public static readonly T__17 = 18; - public static readonly T__18 = 19; - public static readonly T__19 = 20; - public static readonly T__20 = 21; - public static readonly T__21 = 22; - public static readonly T__22 = 23; - public static readonly T__23 = 24; - public static readonly T__24 = 25; - public static readonly T__25 = 26; - public static readonly T__26 = 27; - public static readonly T__27 = 28; - public static readonly T__28 = 29; - public static readonly T__29 = 30; - public static readonly T__30 = 31; - public static readonly T__31 = 32; - public static readonly T__32 = 33; - public static readonly T__33 = 34; - public static readonly T__34 = 35; - public static readonly T__35 = 36; - public static readonly T__36 = 37; - public static readonly T__37 = 38; - public static readonly T__38 = 39; - public static readonly T__39 = 40; - public static readonly T__40 = 41; - public static readonly T__41 = 42; - public static readonly T__42 = 43; - public static readonly T__43 = 44; - public static readonly T__44 = 45; - public static readonly T__45 = 46; - public static readonly T__46 = 47; - public static readonly T__47 = 48; - public static readonly T__48 = 49; - public static readonly T__49 = 50; - public static readonly T__50 = 51; - public static readonly T__51 = 52; - public static readonly T__52 = 53; - public static readonly T__53 = 54; - public static readonly T__54 = 55; - public static readonly T__55 = 56; - public static readonly T__56 = 57; - public static readonly T__57 = 58; - public static readonly T__58 = 59; - public static readonly T__59 = 60; - public static readonly T__60 = 61; - public static readonly VersionLiteral = 62; - public static readonly BooleanLiteral = 63; - public static readonly NumberUnit = 64; - public static readonly NumberLiteral = 65; - public static readonly NumberPart = 66; - public static readonly ExponentPart = 67; - public static readonly PrimitiveType = 68; - public static readonly UnboundedBytes = 69; - public static readonly BoundedBytes = 70; - public static readonly Bound = 71; - public static readonly StringLiteral = 72; - public static readonly DateLiteral = 73; - public static readonly HexLiteral = 74; - public static readonly TxVar = 75; - public static readonly UnsafeCast = 76; - public static readonly NullaryOp = 77; - public static readonly Identifier = 78; - public static readonly WHITESPACE = 79; - public static readonly COMMENT = 80; - public static readonly LINE_COMMENT = 81; - public static readonly EOF = Token.EOF; - - public static readonly channelNames: string[] = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN" ]; - public static readonly literalNames: (string | null)[] = [ null, "'pragma'", - "';'", "'cashscript'", - "'^'", "'~'", - "'>='", "'>'", - "'<'", "'<='", - "'='", "'contract'", - "'{'", "'}'", - "'function'", - "'('", "','", - "')'", "'+='", - "'-='", "'++'", - "'--'", "'require'", - "'console.log'", - "'if'", "'else'", - "'do'", "'while'", - "'for'", "'new'", - "'['", "']'", - "'tx.outputs'", - "'.value'", - "'.lockingBytecode'", - "'.tokenCategory'", - "'.nftCommitment'", - "'.tokenAmount'", - "'tx.inputs'", - "'.outpointTransactionHash'", - "'.outpointIndex'", - "'.unlockingBytecode'", - "'.sequenceNumber'", - "'.reverse()'", - "'.length'", - "'.split'", - "'.slice'", - "'!'", "'-'", - "'*'", "'/'", - "'%'", "'+'", - "'>>'", "'<<'", - "'=='", "'!='", - "'&'", "'|'", - "'&&'", "'||'", - "'constant'", - null, null, - null, null, - null, null, - null, "'bytes'" ]; - public static readonly symbolicNames: (string | null)[] = [ null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - "VersionLiteral", - "BooleanLiteral", - "NumberUnit", - "NumberLiteral", - "NumberPart", - "ExponentPart", - "PrimitiveType", - "UnboundedBytes", - "BoundedBytes", - "Bound", "StringLiteral", - "DateLiteral", - "HexLiteral", - "TxVar", "UnsafeCast", - "NullaryOp", - "Identifier", - "WHITESPACE", - "COMMENT", - "LINE_COMMENT" ]; - public static readonly modeNames: string[] = [ "DEFAULT_MODE", ]; - - public static readonly ruleNames: string[] = [ - "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8", - "T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "T__15", "T__16", - "T__17", "T__18", "T__19", "T__20", "T__21", "T__22", "T__23", "T__24", - "T__25", "T__26", "T__27", "T__28", "T__29", "T__30", "T__31", "T__32", - "T__33", "T__34", "T__35", "T__36", "T__37", "T__38", "T__39", "T__40", - "T__41", "T__42", "T__43", "T__44", "T__45", "T__46", "T__47", "T__48", - "T__49", "T__50", "T__51", "T__52", "T__53", "T__54", "T__55", "T__56", - "T__57", "T__58", "T__59", "T__60", "VersionLiteral", "BooleanLiteral", - "NumberUnit", "NumberLiteral", "NumberPart", "ExponentPart", "PrimitiveType", - "UnboundedBytes", "BoundedBytes", "Bound", "StringLiteral", "DateLiteral", - "HexLiteral", "TxVar", "UnsafeCast", "NullaryOp", "Identifier", "WHITESPACE", - "COMMENT", "LINE_COMMENT", - ]; - - - constructor(input: CharStream) { - super(input); - this._interp = new LexerATNSimulator(this, CashScriptLexer._ATN, CashScriptLexer.DecisionsToDFA, new PredictionContextCache()); - } - - public get grammarFileName(): string { return "CashScript.g4"; } - - public get literalNames(): (string | null)[] { return CashScriptLexer.literalNames; } - public get symbolicNames(): (string | null)[] { return CashScriptLexer.symbolicNames; } - public get ruleNames(): string[] { return CashScriptLexer.ruleNames; } - - public get serializedATN(): number[] { return CashScriptLexer._serializedATN; } - - public get channelNames(): string[] { return CashScriptLexer.channelNames; } - - public get modeNames(): string[] { return CashScriptLexer.modeNames; } - - public static readonly _serializedATN: number[] = [4,0,81,938,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,1,0,1,0, - 1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, - 1,3,1,3,1,4,1,4,1,5,1,5,1,5,1,6,1,6,1,7,1,7,1,8,1,8,1,8,1,9,1,9,1,10,1, - 10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,11,1,11,1,12,1,12,1,13,1,13,1,13, - 1,13,1,13,1,13,1,13,1,13,1,13,1,14,1,14,1,15,1,15,1,16,1,16,1,17,1,17,1, - 17,1,18,1,18,1,18,1,19,1,19,1,19,1,20,1,20,1,20,1,21,1,21,1,21,1,21,1,21, - 1,21,1,21,1,21,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1, - 22,1,23,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1,25,1,25,1,25,1,26,1,26,1,26, - 1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,28,1,28,1,28,1,28,1,29,1,29,1,30,1, - 30,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,32,1,32,1,32, - 1,32,1,32,1,32,1,32,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1, - 33,1,33,1,33,1,33,1,33,1,33,1,33,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34, - 1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1, - 35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,36,1,36,1,36,1,36,1,36,1,36,1,36, - 1,36,1,36,1,36,1,36,1,36,1,36,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1, - 37,1,37,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38, - 1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,39,1,39,1, - 39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,40,1,40, - 1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1, - 40,1,40,1,40,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41, - 1,41,1,41,1,41,1,41,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1, - 42,1,43,1,43,1,43,1,43,1,43,1,43,1,43,1,43,1,44,1,44,1,44,1,44,1,44,1,44, - 1,44,1,45,1,45,1,45,1,45,1,45,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,52,1,53,1,53,1,53,1,54,1,54,1,54, - 1,55,1,55,1,55,1,56,1,56,1,57,1,57,1,58,1,58,1,58,1,59,1,59,1,59,1,60,1, - 60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,61,4,61,529,8,61,11,61,12,61,530, - 1,61,1,61,4,61,535,8,61,11,61,12,61,536,1,61,1,61,4,61,541,8,61,11,61,12, - 61,542,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,3,62,554,8,62,1,63, - 1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1, - 63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63, - 1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1, - 63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,3,63,613, - 8,63,1,64,3,64,616,8,64,1,64,1,64,3,64,620,8,64,1,65,4,65,623,8,65,11,65, - 12,65,624,1,65,1,65,4,65,629,8,65,11,65,12,65,630,5,65,633,8,65,10,65,12, - 65,636,9,65,1,66,1,66,1,66,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67, - 1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1, - 67,1,67,1,67,1,67,1,67,1,67,3,67,670,8,67,1,68,1,68,1,68,1,68,1,68,1,68, - 1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,3,69,689,8,69,1, - 70,1,70,5,70,693,8,70,10,70,12,70,696,9,70,1,71,1,71,1,71,1,71,5,71,702, - 8,71,10,71,12,71,705,9,71,1,71,1,71,1,71,1,71,1,71,5,71,712,8,71,10,71, - 12,71,715,9,71,1,71,3,71,718,8,71,1,72,1,72,1,72,1,72,1,72,1,72,1,72,1, - 72,1,72,1,73,1,73,1,73,5,73,732,8,73,10,73,12,73,735,9,73,1,74,1,74,1,74, - 1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,3,74,752,8, - 74,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75, - 1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1, - 75,1,75,1,75,1,75,1,75,1,75,1,75,3,75,789,8,75,1,75,1,75,1,75,1,75,1,75, - 1,75,1,75,1,75,1,75,1,75,1,75,3,75,802,8,75,1,76,1,76,1,76,1,76,1,76,1, - 76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76, - 1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1, - 76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76, - 1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1, - 76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76, - 1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1, - 76,1,76,3,76,898,8,76,1,77,1,77,5,77,902,8,77,10,77,12,77,905,9,77,1,78, - 4,78,908,8,78,11,78,12,78,909,1,78,1,78,1,79,1,79,1,79,1,79,5,79,918,8, - 79,10,79,12,79,921,9,79,1,79,1,79,1,79,1,79,1,79,1,80,1,80,1,80,1,80,5, - 80,932,8,80,10,80,12,80,935,9,80,1,80,1,80,3,703,713,919,0,81,1,1,3,2,5, - 3,7,4,9,5,11,6,13,7,15,8,17,9,19,10,21,11,23,12,25,13,27,14,29,15,31,16, - 33,17,35,18,37,19,39,20,41,21,43,22,45,23,47,24,49,25,51,26,53,27,55,28, - 57,29,59,30,61,31,63,32,65,33,67,34,69,35,71,36,73,37,75,38,77,39,79,40, - 81,41,83,42,85,43,87,44,89,45,91,46,93,47,95,48,97,49,99,50,101,51,103, - 52,105,53,107,54,109,55,111,56,113,57,115,58,117,59,119,60,121,61,123,62, - 125,63,127,64,129,65,131,66,133,67,135,68,137,69,139,70,141,71,143,72,145, - 73,147,74,149,75,151,76,153,77,155,78,157,79,159,80,161,81,1,0,11,1,0,48, - 57,2,0,69,69,101,101,1,0,49,57,3,0,10,10,13,13,34,34,3,0,10,10,13,13,39, - 39,2,0,88,88,120,120,3,0,48,57,65,70,97,102,2,0,65,90,97,122,4,0,48,57, - 65,90,95,95,97,122,3,0,9,10,12,13,32,32,2,0,10,10,13,13,982,0,1,1,0,0,0, - 0,3,1,0,0,0,0,5,1,0,0,0,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,1,163,1,0,0, - 0,3,170,1,0,0,0,5,172,1,0,0,0,7,183,1,0,0,0,9,185,1,0,0,0,11,187,1,0,0, - 0,13,190,1,0,0,0,15,192,1,0,0,0,17,194,1,0,0,0,19,197,1,0,0,0,21,199,1, - 0,0,0,23,208,1,0,0,0,25,210,1,0,0,0,27,212,1,0,0,0,29,221,1,0,0,0,31,223, - 1,0,0,0,33,225,1,0,0,0,35,227,1,0,0,0,37,230,1,0,0,0,39,233,1,0,0,0,41, - 236,1,0,0,0,43,239,1,0,0,0,45,247,1,0,0,0,47,259,1,0,0,0,49,262,1,0,0,0, - 51,267,1,0,0,0,53,270,1,0,0,0,55,276,1,0,0,0,57,280,1,0,0,0,59,284,1,0, - 0,0,61,286,1,0,0,0,63,288,1,0,0,0,65,299,1,0,0,0,67,306,1,0,0,0,69,323, - 1,0,0,0,71,338,1,0,0,0,73,353,1,0,0,0,75,366,1,0,0,0,77,376,1,0,0,0,79, - 401,1,0,0,0,81,416,1,0,0,0,83,435,1,0,0,0,85,451,1,0,0,0,87,462,1,0,0,0, - 89,470,1,0,0,0,91,477,1,0,0,0,93,484,1,0,0,0,95,486,1,0,0,0,97,488,1,0, - 0,0,99,490,1,0,0,0,101,492,1,0,0,0,103,494,1,0,0,0,105,496,1,0,0,0,107, - 499,1,0,0,0,109,502,1,0,0,0,111,505,1,0,0,0,113,508,1,0,0,0,115,510,1,0, - 0,0,117,512,1,0,0,0,119,515,1,0,0,0,121,518,1,0,0,0,123,528,1,0,0,0,125, - 553,1,0,0,0,127,612,1,0,0,0,129,615,1,0,0,0,131,622,1,0,0,0,133,637,1,0, - 0,0,135,669,1,0,0,0,137,671,1,0,0,0,139,688,1,0,0,0,141,690,1,0,0,0,143, - 717,1,0,0,0,145,719,1,0,0,0,147,728,1,0,0,0,149,751,1,0,0,0,151,801,1,0, - 0,0,153,897,1,0,0,0,155,899,1,0,0,0,157,907,1,0,0,0,159,913,1,0,0,0,161, - 927,1,0,0,0,163,164,5,112,0,0,164,165,5,114,0,0,165,166,5,97,0,0,166,167, - 5,103,0,0,167,168,5,109,0,0,168,169,5,97,0,0,169,2,1,0,0,0,170,171,5,59, - 0,0,171,4,1,0,0,0,172,173,5,99,0,0,173,174,5,97,0,0,174,175,5,115,0,0,175, - 176,5,104,0,0,176,177,5,115,0,0,177,178,5,99,0,0,178,179,5,114,0,0,179, - 180,5,105,0,0,180,181,5,112,0,0,181,182,5,116,0,0,182,6,1,0,0,0,183,184, - 5,94,0,0,184,8,1,0,0,0,185,186,5,126,0,0,186,10,1,0,0,0,187,188,5,62,0, - 0,188,189,5,61,0,0,189,12,1,0,0,0,190,191,5,62,0,0,191,14,1,0,0,0,192,193, - 5,60,0,0,193,16,1,0,0,0,194,195,5,60,0,0,195,196,5,61,0,0,196,18,1,0,0, - 0,197,198,5,61,0,0,198,20,1,0,0,0,199,200,5,99,0,0,200,201,5,111,0,0,201, - 202,5,110,0,0,202,203,5,116,0,0,203,204,5,114,0,0,204,205,5,97,0,0,205, - 206,5,99,0,0,206,207,5,116,0,0,207,22,1,0,0,0,208,209,5,123,0,0,209,24, - 1,0,0,0,210,211,5,125,0,0,211,26,1,0,0,0,212,213,5,102,0,0,213,214,5,117, - 0,0,214,215,5,110,0,0,215,216,5,99,0,0,216,217,5,116,0,0,217,218,5,105, - 0,0,218,219,5,111,0,0,219,220,5,110,0,0,220,28,1,0,0,0,221,222,5,40,0,0, - 222,30,1,0,0,0,223,224,5,44,0,0,224,32,1,0,0,0,225,226,5,41,0,0,226,34, - 1,0,0,0,227,228,5,43,0,0,228,229,5,61,0,0,229,36,1,0,0,0,230,231,5,45,0, - 0,231,232,5,61,0,0,232,38,1,0,0,0,233,234,5,43,0,0,234,235,5,43,0,0,235, - 40,1,0,0,0,236,237,5,45,0,0,237,238,5,45,0,0,238,42,1,0,0,0,239,240,5,114, - 0,0,240,241,5,101,0,0,241,242,5,113,0,0,242,243,5,117,0,0,243,244,5,105, - 0,0,244,245,5,114,0,0,245,246,5,101,0,0,246,44,1,0,0,0,247,248,5,99,0,0, - 248,249,5,111,0,0,249,250,5,110,0,0,250,251,5,115,0,0,251,252,5,111,0,0, - 252,253,5,108,0,0,253,254,5,101,0,0,254,255,5,46,0,0,255,256,5,108,0,0, - 256,257,5,111,0,0,257,258,5,103,0,0,258,46,1,0,0,0,259,260,5,105,0,0,260, - 261,5,102,0,0,261,48,1,0,0,0,262,263,5,101,0,0,263,264,5,108,0,0,264,265, - 5,115,0,0,265,266,5,101,0,0,266,50,1,0,0,0,267,268,5,100,0,0,268,269,5, - 111,0,0,269,52,1,0,0,0,270,271,5,119,0,0,271,272,5,104,0,0,272,273,5,105, - 0,0,273,274,5,108,0,0,274,275,5,101,0,0,275,54,1,0,0,0,276,277,5,102,0, - 0,277,278,5,111,0,0,278,279,5,114,0,0,279,56,1,0,0,0,280,281,5,110,0,0, - 281,282,5,101,0,0,282,283,5,119,0,0,283,58,1,0,0,0,284,285,5,91,0,0,285, - 60,1,0,0,0,286,287,5,93,0,0,287,62,1,0,0,0,288,289,5,116,0,0,289,290,5, - 120,0,0,290,291,5,46,0,0,291,292,5,111,0,0,292,293,5,117,0,0,293,294,5, - 116,0,0,294,295,5,112,0,0,295,296,5,117,0,0,296,297,5,116,0,0,297,298,5, - 115,0,0,298,64,1,0,0,0,299,300,5,46,0,0,300,301,5,118,0,0,301,302,5,97, - 0,0,302,303,5,108,0,0,303,304,5,117,0,0,304,305,5,101,0,0,305,66,1,0,0, - 0,306,307,5,46,0,0,307,308,5,108,0,0,308,309,5,111,0,0,309,310,5,99,0,0, - 310,311,5,107,0,0,311,312,5,105,0,0,312,313,5,110,0,0,313,314,5,103,0,0, - 314,315,5,66,0,0,315,316,5,121,0,0,316,317,5,116,0,0,317,318,5,101,0,0, - 318,319,5,99,0,0,319,320,5,111,0,0,320,321,5,100,0,0,321,322,5,101,0,0, - 322,68,1,0,0,0,323,324,5,46,0,0,324,325,5,116,0,0,325,326,5,111,0,0,326, - 327,5,107,0,0,327,328,5,101,0,0,328,329,5,110,0,0,329,330,5,67,0,0,330, - 331,5,97,0,0,331,332,5,116,0,0,332,333,5,101,0,0,333,334,5,103,0,0,334, - 335,5,111,0,0,335,336,5,114,0,0,336,337,5,121,0,0,337,70,1,0,0,0,338,339, - 5,46,0,0,339,340,5,110,0,0,340,341,5,102,0,0,341,342,5,116,0,0,342,343, - 5,67,0,0,343,344,5,111,0,0,344,345,5,109,0,0,345,346,5,109,0,0,346,347, - 5,105,0,0,347,348,5,116,0,0,348,349,5,109,0,0,349,350,5,101,0,0,350,351, - 5,110,0,0,351,352,5,116,0,0,352,72,1,0,0,0,353,354,5,46,0,0,354,355,5,116, - 0,0,355,356,5,111,0,0,356,357,5,107,0,0,357,358,5,101,0,0,358,359,5,110, - 0,0,359,360,5,65,0,0,360,361,5,109,0,0,361,362,5,111,0,0,362,363,5,117, - 0,0,363,364,5,110,0,0,364,365,5,116,0,0,365,74,1,0,0,0,366,367,5,116,0, - 0,367,368,5,120,0,0,368,369,5,46,0,0,369,370,5,105,0,0,370,371,5,110,0, - 0,371,372,5,112,0,0,372,373,5,117,0,0,373,374,5,116,0,0,374,375,5,115,0, - 0,375,76,1,0,0,0,376,377,5,46,0,0,377,378,5,111,0,0,378,379,5,117,0,0,379, - 380,5,116,0,0,380,381,5,112,0,0,381,382,5,111,0,0,382,383,5,105,0,0,383, - 384,5,110,0,0,384,385,5,116,0,0,385,386,5,84,0,0,386,387,5,114,0,0,387, - 388,5,97,0,0,388,389,5,110,0,0,389,390,5,115,0,0,390,391,5,97,0,0,391,392, - 5,99,0,0,392,393,5,116,0,0,393,394,5,105,0,0,394,395,5,111,0,0,395,396, - 5,110,0,0,396,397,5,72,0,0,397,398,5,97,0,0,398,399,5,115,0,0,399,400,5, - 104,0,0,400,78,1,0,0,0,401,402,5,46,0,0,402,403,5,111,0,0,403,404,5,117, - 0,0,404,405,5,116,0,0,405,406,5,112,0,0,406,407,5,111,0,0,407,408,5,105, - 0,0,408,409,5,110,0,0,409,410,5,116,0,0,410,411,5,73,0,0,411,412,5,110, - 0,0,412,413,5,100,0,0,413,414,5,101,0,0,414,415,5,120,0,0,415,80,1,0,0, - 0,416,417,5,46,0,0,417,418,5,117,0,0,418,419,5,110,0,0,419,420,5,108,0, - 0,420,421,5,111,0,0,421,422,5,99,0,0,422,423,5,107,0,0,423,424,5,105,0, - 0,424,425,5,110,0,0,425,426,5,103,0,0,426,427,5,66,0,0,427,428,5,121,0, - 0,428,429,5,116,0,0,429,430,5,101,0,0,430,431,5,99,0,0,431,432,5,111,0, - 0,432,433,5,100,0,0,433,434,5,101,0,0,434,82,1,0,0,0,435,436,5,46,0,0,436, - 437,5,115,0,0,437,438,5,101,0,0,438,439,5,113,0,0,439,440,5,117,0,0,440, - 441,5,101,0,0,441,442,5,110,0,0,442,443,5,99,0,0,443,444,5,101,0,0,444, - 445,5,78,0,0,445,446,5,117,0,0,446,447,5,109,0,0,447,448,5,98,0,0,448,449, - 5,101,0,0,449,450,5,114,0,0,450,84,1,0,0,0,451,452,5,46,0,0,452,453,5,114, - 0,0,453,454,5,101,0,0,454,455,5,118,0,0,455,456,5,101,0,0,456,457,5,114, - 0,0,457,458,5,115,0,0,458,459,5,101,0,0,459,460,5,40,0,0,460,461,5,41,0, - 0,461,86,1,0,0,0,462,463,5,46,0,0,463,464,5,108,0,0,464,465,5,101,0,0,465, - 466,5,110,0,0,466,467,5,103,0,0,467,468,5,116,0,0,468,469,5,104,0,0,469, - 88,1,0,0,0,470,471,5,46,0,0,471,472,5,115,0,0,472,473,5,112,0,0,473,474, - 5,108,0,0,474,475,5,105,0,0,475,476,5,116,0,0,476,90,1,0,0,0,477,478,5, - 46,0,0,478,479,5,115,0,0,479,480,5,108,0,0,480,481,5,105,0,0,481,482,5, - 99,0,0,482,483,5,101,0,0,483,92,1,0,0,0,484,485,5,33,0,0,485,94,1,0,0,0, - 486,487,5,45,0,0,487,96,1,0,0,0,488,489,5,42,0,0,489,98,1,0,0,0,490,491, - 5,47,0,0,491,100,1,0,0,0,492,493,5,37,0,0,493,102,1,0,0,0,494,495,5,43, - 0,0,495,104,1,0,0,0,496,497,5,62,0,0,497,498,5,62,0,0,498,106,1,0,0,0,499, - 500,5,60,0,0,500,501,5,60,0,0,501,108,1,0,0,0,502,503,5,61,0,0,503,504, - 5,61,0,0,504,110,1,0,0,0,505,506,5,33,0,0,506,507,5,61,0,0,507,112,1,0, - 0,0,508,509,5,38,0,0,509,114,1,0,0,0,510,511,5,124,0,0,511,116,1,0,0,0, - 512,513,5,38,0,0,513,514,5,38,0,0,514,118,1,0,0,0,515,516,5,124,0,0,516, - 517,5,124,0,0,517,120,1,0,0,0,518,519,5,99,0,0,519,520,5,111,0,0,520,521, - 5,110,0,0,521,522,5,115,0,0,522,523,5,116,0,0,523,524,5,97,0,0,524,525, - 5,110,0,0,525,526,5,116,0,0,526,122,1,0,0,0,527,529,7,0,0,0,528,527,1,0, - 0,0,529,530,1,0,0,0,530,528,1,0,0,0,530,531,1,0,0,0,531,532,1,0,0,0,532, - 534,5,46,0,0,533,535,7,0,0,0,534,533,1,0,0,0,535,536,1,0,0,0,536,534,1, - 0,0,0,536,537,1,0,0,0,537,538,1,0,0,0,538,540,5,46,0,0,539,541,7,0,0,0, - 540,539,1,0,0,0,541,542,1,0,0,0,542,540,1,0,0,0,542,543,1,0,0,0,543,124, - 1,0,0,0,544,545,5,116,0,0,545,546,5,114,0,0,546,547,5,117,0,0,547,554,5, - 101,0,0,548,549,5,102,0,0,549,550,5,97,0,0,550,551,5,108,0,0,551,552,5, - 115,0,0,552,554,5,101,0,0,553,544,1,0,0,0,553,548,1,0,0,0,554,126,1,0,0, - 0,555,556,5,115,0,0,556,557,5,97,0,0,557,558,5,116,0,0,558,559,5,111,0, - 0,559,560,5,115,0,0,560,561,5,104,0,0,561,562,5,105,0,0,562,613,5,115,0, - 0,563,564,5,115,0,0,564,565,5,97,0,0,565,566,5,116,0,0,566,613,5,115,0, - 0,567,568,5,102,0,0,568,569,5,105,0,0,569,570,5,110,0,0,570,571,5,110,0, - 0,571,572,5,101,0,0,572,613,5,121,0,0,573,574,5,98,0,0,574,575,5,105,0, - 0,575,576,5,116,0,0,576,613,5,115,0,0,577,578,5,98,0,0,578,579,5,105,0, - 0,579,580,5,116,0,0,580,581,5,99,0,0,581,582,5,111,0,0,582,583,5,105,0, - 0,583,613,5,110,0,0,584,585,5,115,0,0,585,586,5,101,0,0,586,587,5,99,0, - 0,587,588,5,111,0,0,588,589,5,110,0,0,589,590,5,100,0,0,590,613,5,115,0, - 0,591,592,5,109,0,0,592,593,5,105,0,0,593,594,5,110,0,0,594,595,5,117,0, - 0,595,596,5,116,0,0,596,597,5,101,0,0,597,613,5,115,0,0,598,599,5,104,0, - 0,599,600,5,111,0,0,600,601,5,117,0,0,601,602,5,114,0,0,602,613,5,115,0, - 0,603,604,5,100,0,0,604,605,5,97,0,0,605,606,5,121,0,0,606,613,5,115,0, - 0,607,608,5,119,0,0,608,609,5,101,0,0,609,610,5,101,0,0,610,611,5,107,0, - 0,611,613,5,115,0,0,612,555,1,0,0,0,612,563,1,0,0,0,612,567,1,0,0,0,612, - 573,1,0,0,0,612,577,1,0,0,0,612,584,1,0,0,0,612,591,1,0,0,0,612,598,1,0, - 0,0,612,603,1,0,0,0,612,607,1,0,0,0,613,128,1,0,0,0,614,616,5,45,0,0,615, - 614,1,0,0,0,615,616,1,0,0,0,616,617,1,0,0,0,617,619,3,131,65,0,618,620, - 3,133,66,0,619,618,1,0,0,0,619,620,1,0,0,0,620,130,1,0,0,0,621,623,7,0, - 0,0,622,621,1,0,0,0,623,624,1,0,0,0,624,622,1,0,0,0,624,625,1,0,0,0,625, - 634,1,0,0,0,626,628,5,95,0,0,627,629,7,0,0,0,628,627,1,0,0,0,629,630,1, - 0,0,0,630,628,1,0,0,0,630,631,1,0,0,0,631,633,1,0,0,0,632,626,1,0,0,0,633, - 636,1,0,0,0,634,632,1,0,0,0,634,635,1,0,0,0,635,132,1,0,0,0,636,634,1,0, - 0,0,637,638,7,1,0,0,638,639,3,131,65,0,639,134,1,0,0,0,640,641,5,105,0, - 0,641,642,5,110,0,0,642,670,5,116,0,0,643,644,5,98,0,0,644,645,5,111,0, - 0,645,646,5,111,0,0,646,670,5,108,0,0,647,648,5,115,0,0,648,649,5,116,0, - 0,649,650,5,114,0,0,650,651,5,105,0,0,651,652,5,110,0,0,652,670,5,103,0, - 0,653,654,5,112,0,0,654,655,5,117,0,0,655,656,5,98,0,0,656,657,5,107,0, - 0,657,658,5,101,0,0,658,670,5,121,0,0,659,660,5,115,0,0,660,661,5,105,0, - 0,661,670,5,103,0,0,662,663,5,100,0,0,663,664,5,97,0,0,664,665,5,116,0, - 0,665,666,5,97,0,0,666,667,5,115,0,0,667,668,5,105,0,0,668,670,5,103,0, - 0,669,640,1,0,0,0,669,643,1,0,0,0,669,647,1,0,0,0,669,653,1,0,0,0,669,659, - 1,0,0,0,669,662,1,0,0,0,670,136,1,0,0,0,671,672,5,98,0,0,672,673,5,121, - 0,0,673,674,5,116,0,0,674,675,5,101,0,0,675,676,5,115,0,0,676,138,1,0,0, - 0,677,678,5,98,0,0,678,679,5,121,0,0,679,680,5,116,0,0,680,681,5,101,0, - 0,681,682,5,115,0,0,682,683,1,0,0,0,683,689,3,141,70,0,684,685,5,98,0,0, - 685,686,5,121,0,0,686,687,5,116,0,0,687,689,5,101,0,0,688,677,1,0,0,0,688, - 684,1,0,0,0,689,140,1,0,0,0,690,694,7,2,0,0,691,693,7,0,0,0,692,691,1,0, - 0,0,693,696,1,0,0,0,694,692,1,0,0,0,694,695,1,0,0,0,695,142,1,0,0,0,696, - 694,1,0,0,0,697,703,5,34,0,0,698,699,5,92,0,0,699,702,5,34,0,0,700,702, - 8,3,0,0,701,698,1,0,0,0,701,700,1,0,0,0,702,705,1,0,0,0,703,704,1,0,0,0, - 703,701,1,0,0,0,704,706,1,0,0,0,705,703,1,0,0,0,706,718,5,34,0,0,707,713, - 5,39,0,0,708,709,5,92,0,0,709,712,5,39,0,0,710,712,8,4,0,0,711,708,1,0, - 0,0,711,710,1,0,0,0,712,715,1,0,0,0,713,714,1,0,0,0,713,711,1,0,0,0,714, - 716,1,0,0,0,715,713,1,0,0,0,716,718,5,39,0,0,717,697,1,0,0,0,717,707,1, - 0,0,0,718,144,1,0,0,0,719,720,5,100,0,0,720,721,5,97,0,0,721,722,5,116, - 0,0,722,723,5,101,0,0,723,724,5,40,0,0,724,725,1,0,0,0,725,726,3,143,71, - 0,726,727,5,41,0,0,727,146,1,0,0,0,728,729,5,48,0,0,729,733,7,5,0,0,730, - 732,7,6,0,0,731,730,1,0,0,0,732,735,1,0,0,0,733,731,1,0,0,0,733,734,1,0, - 0,0,734,148,1,0,0,0,735,733,1,0,0,0,736,737,5,116,0,0,737,738,5,104,0,0, - 738,739,5,105,0,0,739,740,5,115,0,0,740,741,5,46,0,0,741,742,5,97,0,0,742, - 743,5,103,0,0,743,752,5,101,0,0,744,745,5,116,0,0,745,746,5,120,0,0,746, - 747,5,46,0,0,747,748,5,116,0,0,748,749,5,105,0,0,749,750,5,109,0,0,750, - 752,5,101,0,0,751,736,1,0,0,0,751,744,1,0,0,0,752,150,1,0,0,0,753,754,5, - 117,0,0,754,755,5,110,0,0,755,756,5,115,0,0,756,757,5,97,0,0,757,758,5, - 102,0,0,758,759,5,101,0,0,759,760,5,95,0,0,760,761,5,105,0,0,761,762,5, - 110,0,0,762,802,5,116,0,0,763,764,5,117,0,0,764,765,5,110,0,0,765,766,5, - 115,0,0,766,767,5,97,0,0,767,768,5,102,0,0,768,769,5,101,0,0,769,770,5, - 95,0,0,770,771,5,98,0,0,771,772,5,111,0,0,772,773,5,111,0,0,773,802,5,108, - 0,0,774,775,5,117,0,0,775,776,5,110,0,0,776,777,5,115,0,0,777,778,5,97, - 0,0,778,779,5,102,0,0,779,780,5,101,0,0,780,781,5,95,0,0,781,782,5,98,0, - 0,782,783,5,121,0,0,783,784,5,116,0,0,784,785,5,101,0,0,785,786,5,115,0, - 0,786,788,1,0,0,0,787,789,3,141,70,0,788,787,1,0,0,0,788,789,1,0,0,0,789, - 802,1,0,0,0,790,791,5,117,0,0,791,792,5,110,0,0,792,793,5,115,0,0,793,794, - 5,97,0,0,794,795,5,102,0,0,795,796,5,101,0,0,796,797,5,95,0,0,797,798,5, - 98,0,0,798,799,5,121,0,0,799,800,5,116,0,0,800,802,5,101,0,0,801,753,1, - 0,0,0,801,763,1,0,0,0,801,774,1,0,0,0,801,790,1,0,0,0,802,152,1,0,0,0,803, - 804,5,116,0,0,804,805,5,104,0,0,805,806,5,105,0,0,806,807,5,115,0,0,807, - 808,5,46,0,0,808,809,5,97,0,0,809,810,5,99,0,0,810,811,5,116,0,0,811,812, - 5,105,0,0,812,813,5,118,0,0,813,814,5,101,0,0,814,815,5,73,0,0,815,816, - 5,110,0,0,816,817,5,112,0,0,817,818,5,117,0,0,818,819,5,116,0,0,819,820, - 5,73,0,0,820,821,5,110,0,0,821,822,5,100,0,0,822,823,5,101,0,0,823,898, - 5,120,0,0,824,825,5,116,0,0,825,826,5,104,0,0,826,827,5,105,0,0,827,828, - 5,115,0,0,828,829,5,46,0,0,829,830,5,97,0,0,830,831,5,99,0,0,831,832,5, - 116,0,0,832,833,5,105,0,0,833,834,5,118,0,0,834,835,5,101,0,0,835,836,5, - 66,0,0,836,837,5,121,0,0,837,838,5,116,0,0,838,839,5,101,0,0,839,840,5, - 99,0,0,840,841,5,111,0,0,841,842,5,100,0,0,842,898,5,101,0,0,843,844,5, - 116,0,0,844,845,5,120,0,0,845,846,5,46,0,0,846,847,5,105,0,0,847,848,5, - 110,0,0,848,849,5,112,0,0,849,850,5,117,0,0,850,851,5,116,0,0,851,852,5, - 115,0,0,852,853,5,46,0,0,853,854,5,108,0,0,854,855,5,101,0,0,855,856,5, - 110,0,0,856,857,5,103,0,0,857,858,5,116,0,0,858,898,5,104,0,0,859,860,5, - 116,0,0,860,861,5,120,0,0,861,862,5,46,0,0,862,863,5,111,0,0,863,864,5, - 117,0,0,864,865,5,116,0,0,865,866,5,112,0,0,866,867,5,117,0,0,867,868,5, - 116,0,0,868,869,5,115,0,0,869,870,5,46,0,0,870,871,5,108,0,0,871,872,5, - 101,0,0,872,873,5,110,0,0,873,874,5,103,0,0,874,875,5,116,0,0,875,898,5, - 104,0,0,876,877,5,116,0,0,877,878,5,120,0,0,878,879,5,46,0,0,879,880,5, - 118,0,0,880,881,5,101,0,0,881,882,5,114,0,0,882,883,5,115,0,0,883,884,5, - 105,0,0,884,885,5,111,0,0,885,898,5,110,0,0,886,887,5,116,0,0,887,888,5, - 120,0,0,888,889,5,46,0,0,889,890,5,108,0,0,890,891,5,111,0,0,891,892,5, - 99,0,0,892,893,5,107,0,0,893,894,5,116,0,0,894,895,5,105,0,0,895,896,5, - 109,0,0,896,898,5,101,0,0,897,803,1,0,0,0,897,824,1,0,0,0,897,843,1,0,0, - 0,897,859,1,0,0,0,897,876,1,0,0,0,897,886,1,0,0,0,898,154,1,0,0,0,899,903, - 7,7,0,0,900,902,7,8,0,0,901,900,1,0,0,0,902,905,1,0,0,0,903,901,1,0,0,0, - 903,904,1,0,0,0,904,156,1,0,0,0,905,903,1,0,0,0,906,908,7,9,0,0,907,906, - 1,0,0,0,908,909,1,0,0,0,909,907,1,0,0,0,909,910,1,0,0,0,910,911,1,0,0,0, - 911,912,6,78,0,0,912,158,1,0,0,0,913,914,5,47,0,0,914,915,5,42,0,0,915, - 919,1,0,0,0,916,918,9,0,0,0,917,916,1,0,0,0,918,921,1,0,0,0,919,920,1,0, - 0,0,919,917,1,0,0,0,920,922,1,0,0,0,921,919,1,0,0,0,922,923,5,42,0,0,923, - 924,5,47,0,0,924,925,1,0,0,0,925,926,6,79,1,0,926,160,1,0,0,0,927,928,5, - 47,0,0,928,929,5,47,0,0,929,933,1,0,0,0,930,932,8,10,0,0,931,930,1,0,0, - 0,932,935,1,0,0,0,933,931,1,0,0,0,933,934,1,0,0,0,934,936,1,0,0,0,935,933, - 1,0,0,0,936,937,6,80,1,0,937,162,1,0,0,0,28,0,530,536,542,553,612,615,619, - 624,630,634,669,688,694,701,703,711,713,717,733,751,788,801,897,903,909, - 919,933,2,6,0,0,0,1,0]; - - private static __ATN: ATN; - public static get _ATN(): ATN { - if (!CashScriptLexer.__ATN) { - CashScriptLexer.__ATN = new ATNDeserializer().deserialize(CashScriptLexer._serializedATN); - } - - return CashScriptLexer.__ATN; - } - - - static DecisionsToDFA = CashScriptLexer._ATN.decisionToState.map( (ds: DecisionState, index: number) => new DFA(ds, index) ); -} \ No newline at end of file diff --git a/src/CashscriptLinter/grammar/CashScriptParser.ts b/src/CashscriptLinter/grammar/CashScriptParser.ts deleted file mode 100644 index 1734c49..0000000 --- a/src/CashscriptLinter/grammar/CashScriptParser.ts +++ /dev/null @@ -1,3752 +0,0 @@ -// Generated from src/grammar/CashScript.g4 by ANTLR 4.13.1 -// 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 CashScriptVisitor from "./CashScriptVisitor.js"; - -// for running tests with parameters, TODO: discuss strategy for typed parameters in CI -// eslint-disable-next-line no-unused-vars -type int = number; - -export default class CashScriptParser extends Parser { - public static readonly T__0 = 1; - public static readonly T__1 = 2; - public static readonly T__2 = 3; - public static readonly T__3 = 4; - public static readonly T__4 = 5; - public static readonly T__5 = 6; - public static readonly T__6 = 7; - public static readonly T__7 = 8; - public static readonly T__8 = 9; - public static readonly T__9 = 10; - public static readonly T__10 = 11; - public static readonly T__11 = 12; - public static readonly T__12 = 13; - public static readonly T__13 = 14; - public static readonly T__14 = 15; - public static readonly T__15 = 16; - public static readonly T__16 = 17; - public static readonly T__17 = 18; - public static readonly T__18 = 19; - public static readonly T__19 = 20; - public static readonly T__20 = 21; - public static readonly T__21 = 22; - public static readonly T__22 = 23; - public static readonly T__23 = 24; - public static readonly T__24 = 25; - public static readonly T__25 = 26; - public static readonly T__26 = 27; - public static readonly T__27 = 28; - public static readonly T__28 = 29; - public static readonly T__29 = 30; - public static readonly T__30 = 31; - public static readonly T__31 = 32; - public static readonly T__32 = 33; - public static readonly T__33 = 34; - public static readonly T__34 = 35; - public static readonly T__35 = 36; - public static readonly T__36 = 37; - public static readonly T__37 = 38; - public static readonly T__38 = 39; - public static readonly T__39 = 40; - public static readonly T__40 = 41; - public static readonly T__41 = 42; - public static readonly T__42 = 43; - public static readonly T__43 = 44; - public static readonly T__44 = 45; - public static readonly T__45 = 46; - public static readonly T__46 = 47; - public static readonly T__47 = 48; - public static readonly T__48 = 49; - public static readonly T__49 = 50; - public static readonly T__50 = 51; - public static readonly T__51 = 52; - public static readonly T__52 = 53; - public static readonly T__53 = 54; - public static readonly T__54 = 55; - public static readonly T__55 = 56; - public static readonly T__56 = 57; - public static readonly T__57 = 58; - public static readonly T__58 = 59; - public static readonly T__59 = 60; - public static readonly T__60 = 61; - public static readonly VersionLiteral = 62; - public static readonly BooleanLiteral = 63; - public static readonly NumberUnit = 64; - public static readonly NumberLiteral = 65; - public static readonly NumberPart = 66; - public static readonly ExponentPart = 67; - public static readonly PrimitiveType = 68; - public static readonly UnboundedBytes = 69; - public static readonly BoundedBytes = 70; - public static readonly Bound = 71; - public static readonly StringLiteral = 72; - public static readonly DateLiteral = 73; - public static readonly HexLiteral = 74; - public static readonly TxVar = 75; - public static readonly UnsafeCast = 76; - public static readonly NullaryOp = 77; - public static readonly Identifier = 78; - public static readonly WHITESPACE = 79; - public static readonly COMMENT = 80; - public static readonly LINE_COMMENT = 81; - public static readonly EOF = Token.EOF; - public static readonly RULE_sourceFile = 0; - public static readonly RULE_pragmaDirective = 1; - public static readonly RULE_pragmaName = 2; - public static readonly RULE_pragmaValue = 3; - public static readonly RULE_versionConstraint = 4; - public static readonly RULE_versionOperator = 5; - public static readonly RULE_contractDefinition = 6; - public static readonly RULE_functionDefinition = 7; - public static readonly RULE_parameterList = 8; - public static readonly RULE_parameter = 9; - public static readonly RULE_block = 10; - public static readonly RULE_statement = 11; - public static readonly RULE_nonControlStatement = 12; - public static readonly RULE_controlStatement = 13; - public static readonly RULE_variableDefinition = 14; - public static readonly RULE_tupleAssignment = 15; - public static readonly RULE_assignStatement = 16; - public static readonly RULE_timeOpStatement = 17; - public static readonly RULE_requireStatement = 18; - public static readonly RULE_consoleStatement = 19; - public static readonly RULE_ifStatement = 20; - public static readonly RULE_loopStatement = 21; - public static readonly RULE_doWhileStatement = 22; - public static readonly RULE_whileStatement = 23; - public static readonly RULE_forStatement = 24; - public static readonly RULE_forInit = 25; - public static readonly RULE_requireMessage = 26; - public static readonly RULE_consoleParameter = 27; - public static readonly RULE_consoleParameterList = 28; - public static readonly RULE_functionCall = 29; - public static readonly RULE_expressionList = 30; - public static readonly RULE_expression = 31; - public static readonly RULE_modifier = 32; - public static readonly RULE_literal = 33; - public static readonly RULE_numberLiteral = 34; - public static readonly RULE_typeName = 35; - public static readonly RULE_typeCast = 36; - public static readonly literalNames: (string | null)[] = [ null, "'pragma'", - "';'", "'cashscript'", - "'^'", "'~'", - "'>='", "'>'", - "'<'", "'<='", - "'='", "'contract'", - "'{'", "'}'", - "'function'", - "'('", "','", - "')'", "'+='", - "'-='", "'++'", - "'--'", "'require'", - "'console.log'", - "'if'", "'else'", - "'do'", "'while'", - "'for'", "'new'", - "'['", "']'", - "'tx.outputs'", - "'.value'", - "'.lockingBytecode'", - "'.tokenCategory'", - "'.nftCommitment'", - "'.tokenAmount'", - "'tx.inputs'", - "'.outpointTransactionHash'", - "'.outpointIndex'", - "'.unlockingBytecode'", - "'.sequenceNumber'", - "'.reverse()'", - "'.length'", - "'.split'", - "'.slice'", - "'!'", "'-'", - "'*'", "'/'", - "'%'", "'+'", - "'>>'", "'<<'", - "'=='", "'!='", - "'&'", "'|'", - "'&&'", "'||'", - "'constant'", - null, null, - null, null, - null, null, - null, "'bytes'" ]; - public static readonly symbolicNames: (string | null)[] = [ null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - null, null, - "VersionLiteral", - "BooleanLiteral", - "NumberUnit", - "NumberLiteral", - "NumberPart", - "ExponentPart", - "PrimitiveType", - "UnboundedBytes", - "BoundedBytes", - "Bound", "StringLiteral", - "DateLiteral", - "HexLiteral", - "TxVar", "UnsafeCast", - "NullaryOp", - "Identifier", - "WHITESPACE", - "COMMENT", - "LINE_COMMENT" ]; - // tslint:disable:no-trailing-whitespace - public static readonly ruleNames: string[] = [ - "sourceFile", "pragmaDirective", "pragmaName", "pragmaValue", "versionConstraint", - "versionOperator", "contractDefinition", "functionDefinition", "parameterList", - "parameter", "block", "statement", "nonControlStatement", "controlStatement", - "variableDefinition", "tupleAssignment", "assignStatement", "timeOpStatement", - "requireStatement", "consoleStatement", "ifStatement", "loopStatement", - "doWhileStatement", "whileStatement", "forStatement", "forInit", "requireMessage", - "consoleParameter", "consoleParameterList", "functionCall", "expressionList", - "expression", "modifier", "literal", "numberLiteral", "typeName", "typeCast", - ]; - public get grammarFileName(): string { return "CashScript.g4"; } - public get literalNames(): (string | null)[] { return CashScriptParser.literalNames; } - public get symbolicNames(): (string | null)[] { return CashScriptParser.symbolicNames; } - public get ruleNames(): string[] { return CashScriptParser.ruleNames; } - public get serializedATN(): number[] { return CashScriptParser._serializedATN; } - - protected createFailedPredicateException(predicate?: string, message?: string): FailedPredicateException { - return new FailedPredicateException(this, predicate, message); - } - - constructor(input: TokenStream) { - super(input); - this._interp = new ParserATNSimulator(this, CashScriptParser._ATN, CashScriptParser.DecisionsToDFA, new PredictionContextCache()); - } - // @RuleVersion(0) - public sourceFile(): SourceFileContext { - let localctx: SourceFileContext = new SourceFileContext(this, this._ctx, this.state); - this.enterRule(localctx, 0, CashScriptParser.RULE_sourceFile); - let _la: number; - try { - this.enterOuterAlt(localctx, 1); - { - this.state = 77; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la===1) { - { - { - this.state = 74; - this.pragmaDirective(); - } - } - this.state = 79; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 80; - this.contractDefinition(); - this.state = 81; - this.match(CashScriptParser.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 pragmaDirective(): PragmaDirectiveContext { - let localctx: PragmaDirectiveContext = new PragmaDirectiveContext(this, this._ctx, this.state); - this.enterRule(localctx, 2, CashScriptParser.RULE_pragmaDirective); - try { - this.enterOuterAlt(localctx, 1); - { - this.state = 83; - this.match(CashScriptParser.T__0); - this.state = 84; - this.pragmaName(); - this.state = 85; - this.pragmaValue(); - this.state = 86; - this.match(CashScriptParser.T__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 pragmaName(): PragmaNameContext { - let localctx: PragmaNameContext = new PragmaNameContext(this, this._ctx, this.state); - this.enterRule(localctx, 4, CashScriptParser.RULE_pragmaName); - try { - this.enterOuterAlt(localctx, 1); - { - this.state = 88; - this.match(CashScriptParser.T__2); - } - } - 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 pragmaValue(): PragmaValueContext { - let localctx: PragmaValueContext = new PragmaValueContext(this, this._ctx, this.state); - this.enterRule(localctx, 6, CashScriptParser.RULE_pragmaValue); - let _la: number; - try { - this.enterOuterAlt(localctx, 1); - { - this.state = 90; - this.versionConstraint(); - this.state = 92; - this._errHandler.sync(this); - _la = this._input.LA(1); - if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2032) !== 0) || _la===62) { - { - this.state = 91; - this.versionConstraint(); - } - } - - } - } - 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 versionConstraint(): VersionConstraintContext { - let localctx: VersionConstraintContext = new VersionConstraintContext(this, this._ctx, this.state); - this.enterRule(localctx, 8, CashScriptParser.RULE_versionConstraint); - let _la: number; - try { - this.enterOuterAlt(localctx, 1); - { - this.state = 95; - this._errHandler.sync(this); - _la = this._input.LA(1); - if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2032) !== 0)) { - { - this.state = 94; - this.versionOperator(); - } - } - - this.state = 97; - this.match(CashScriptParser.VersionLiteral); - } - } - 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 versionOperator(): VersionOperatorContext { - let localctx: VersionOperatorContext = new VersionOperatorContext(this, this._ctx, this.state); - this.enterRule(localctx, 10, CashScriptParser.RULE_versionOperator); - let _la: number; - try { - this.enterOuterAlt(localctx, 1); - { - this.state = 99; - _la = this._input.LA(1); - if(!((((_la) & ~0x1F) === 0 && ((1 << _la) & 2032) !== 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 contractDefinition(): ContractDefinitionContext { - let localctx: ContractDefinitionContext = new ContractDefinitionContext(this, this._ctx, this.state); - this.enterRule(localctx, 12, CashScriptParser.RULE_contractDefinition); - let _la: number; - try { - this.enterOuterAlt(localctx, 1); - { - this.state = 101; - this.match(CashScriptParser.T__10); - this.state = 102; - this.match(CashScriptParser.Identifier); - this.state = 103; - this.parameterList(); - this.state = 104; - this.match(CashScriptParser.T__11); - this.state = 108; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la===14) { - { - { - this.state = 105; - this.functionDefinition(); - } - } - this.state = 110; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 111; - this.match(CashScriptParser.T__12); - } - } - 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 functionDefinition(): FunctionDefinitionContext { - let localctx: FunctionDefinitionContext = new FunctionDefinitionContext(this, this._ctx, this.state); - this.enterRule(localctx, 14, CashScriptParser.RULE_functionDefinition); - let _la: number; - try { - this.enterOuterAlt(localctx, 1); - { - this.state = 113; - this.match(CashScriptParser.T__13); - this.state = 114; - this.match(CashScriptParser.Identifier); - this.state = 115; - this.parameterList(); - this.state = 116; - this.match(CashScriptParser.T__11); - this.state = 120; - this._errHandler.sync(this); - _la = this._input.LA(1); - while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 499122176) !== 0) || ((((_la - 68)) & ~0x1F) === 0 && ((1 << (_la - 68)) & 1031) !== 0)) { - { - { - this.state = 117; - this.statement(); - } - } - this.state = 122; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 123; - this.match(CashScriptParser.T__12); - } - } - 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 parameterList(): ParameterListContext { - let localctx: ParameterListContext = new ParameterListContext(this, this._ctx, this.state); - this.enterRule(localctx, 16, CashScriptParser.RULE_parameterList); - let _la: number; - try { - let _alt: number; - this.enterOuterAlt(localctx, 1); - { - this.state = 125; - this.match(CashScriptParser.T__14); - this.state = 137; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 68)) & ~0x1F) === 0 && ((1 << (_la - 68)) & 7) !== 0)) { - { - this.state = 126; - this.parameter(); - this.state = 131; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input, 5, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - { - this.state = 127; - this.match(CashScriptParser.T__15); - this.state = 128; - this.parameter(); - } - } - } - this.state = 133; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input, 5, this._ctx); - } - this.state = 135; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la===16) { - { - this.state = 134; - this.match(CashScriptParser.T__15); - } - } - - } - } - - this.state = 139; - this.match(CashScriptParser.T__16); - } - } - 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 parameter(): ParameterContext { - let localctx: ParameterContext = new ParameterContext(this, this._ctx, this.state); - this.enterRule(localctx, 18, CashScriptParser.RULE_parameter); - try { - this.enterOuterAlt(localctx, 1); - { - this.state = 141; - this.typeName(); - this.state = 142; - this.match(CashScriptParser.Identifier); - } - } - 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 block(): BlockContext { - let localctx: BlockContext = new BlockContext(this, this._ctx, this.state); - this.enterRule(localctx, 20, CashScriptParser.RULE_block); - let _la: number; - try { - this.state = 153; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case 12: - this.enterOuterAlt(localctx, 1); - { - this.state = 144; - this.match(CashScriptParser.T__11); - this.state = 148; - this._errHandler.sync(this); - _la = this._input.LA(1); - while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 499122176) !== 0) || ((((_la - 68)) & ~0x1F) === 0 && ((1 << (_la - 68)) & 1031) !== 0)) { - { - { - this.state = 145; - this.statement(); - } - } - this.state = 150; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 151; - this.match(CashScriptParser.T__12); - } - break; - case 22: - case 23: - case 24: - case 26: - case 27: - case 28: - case 68: - case 69: - case 70: - case 78: - this.enterOuterAlt(localctx, 2); - { - this.state = 152; - this.statement(); - } - 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 statement(): StatementContext { - let localctx: StatementContext = new StatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 22, CashScriptParser.RULE_statement); - try { - this.state = 159; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case 24: - case 26: - case 27: - case 28: - this.enterOuterAlt(localctx, 1); - { - this.state = 155; - this.controlStatement(); - } - break; - case 22: - case 23: - case 68: - case 69: - case 70: - case 78: - this.enterOuterAlt(localctx, 2); - { - this.state = 156; - this.nonControlStatement(); - this.state = 157; - this.match(CashScriptParser.T__1); - } - 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 nonControlStatement(): NonControlStatementContext { - let localctx: NonControlStatementContext = new NonControlStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 24, CashScriptParser.RULE_nonControlStatement); - try { - this.state = 167; - this._errHandler.sync(this); - switch ( this._interp.adaptivePredict(this._input, 11, this._ctx) ) { - case 1: - this.enterOuterAlt(localctx, 1); - { - this.state = 161; - this.variableDefinition(); - } - break; - case 2: - this.enterOuterAlt(localctx, 2); - { - this.state = 162; - this.tupleAssignment(); - } - break; - case 3: - this.enterOuterAlt(localctx, 3); - { - this.state = 163; - this.assignStatement(); - } - break; - case 4: - this.enterOuterAlt(localctx, 4); - { - this.state = 164; - this.timeOpStatement(); - } - break; - case 5: - this.enterOuterAlt(localctx, 5); - { - this.state = 165; - this.requireStatement(); - } - break; - case 6: - this.enterOuterAlt(localctx, 6); - { - this.state = 166; - this.consoleStatement(); - } - 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 controlStatement(): ControlStatementContext { - let localctx: ControlStatementContext = new ControlStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 26, CashScriptParser.RULE_controlStatement); - try { - this.state = 171; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case 24: - this.enterOuterAlt(localctx, 1); - { - this.state = 169; - this.ifStatement(); - } - break; - case 26: - case 27: - case 28: - this.enterOuterAlt(localctx, 2); - { - this.state = 170; - this.loopStatement(); - } - 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 variableDefinition(): VariableDefinitionContext { - let localctx: VariableDefinitionContext = new VariableDefinitionContext(this, this._ctx, this.state); - this.enterRule(localctx, 28, CashScriptParser.RULE_variableDefinition); - let _la: number; - try { - this.enterOuterAlt(localctx, 1); - { - this.state = 173; - this.typeName(); - this.state = 177; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la===61) { - { - { - this.state = 174; - this.modifier(); - } - } - this.state = 179; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 180; - this.match(CashScriptParser.Identifier); - this.state = 181; - this.match(CashScriptParser.T__9); - this.state = 182; - this.expression(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 tupleAssignment(): TupleAssignmentContext { - let localctx: TupleAssignmentContext = new TupleAssignmentContext(this, this._ctx, this.state); - this.enterRule(localctx, 30, CashScriptParser.RULE_tupleAssignment); - try { - this.enterOuterAlt(localctx, 1); - { - this.state = 184; - this.typeName(); - this.state = 185; - this.match(CashScriptParser.Identifier); - this.state = 186; - this.match(CashScriptParser.T__15); - this.state = 187; - this.typeName(); - this.state = 188; - this.match(CashScriptParser.Identifier); - this.state = 189; - this.match(CashScriptParser.T__9); - this.state = 190; - this.expression(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 assignStatement(): AssignStatementContext { - let localctx: AssignStatementContext = new AssignStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 32, CashScriptParser.RULE_assignStatement); - let _la: number; - try { - this.state = 197; - this._errHandler.sync(this); - switch ( this._interp.adaptivePredict(this._input, 14, this._ctx) ) { - case 1: - this.enterOuterAlt(localctx, 1); - { - this.state = 192; - this.match(CashScriptParser.Identifier); - this.state = 193; - localctx._op = this._input.LT(1); - _la = this._input.LA(1); - if(!((((_la) & ~0x1F) === 0 && ((1 << _la) & 787456) !== 0))) { - localctx._op = this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 194; - this.expression(0); - } - break; - case 2: - this.enterOuterAlt(localctx, 2); - { - this.state = 195; - this.match(CashScriptParser.Identifier); - this.state = 196; - localctx._op = this._input.LT(1); - _la = this._input.LA(1); - if(!(_la===20 || _la===21)) { - localctx._op = this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - } - 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 timeOpStatement(): TimeOpStatementContext { - let localctx: TimeOpStatementContext = new TimeOpStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 34, CashScriptParser.RULE_timeOpStatement); - let _la: number; - try { - this.enterOuterAlt(localctx, 1); - { - this.state = 199; - this.match(CashScriptParser.T__21); - this.state = 200; - this.match(CashScriptParser.T__14); - this.state = 201; - this.match(CashScriptParser.TxVar); - this.state = 202; - this.match(CashScriptParser.T__5); - this.state = 203; - this.expression(0); - this.state = 206; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la===16) { - { - this.state = 204; - this.match(CashScriptParser.T__15); - this.state = 205; - this.requireMessage(); - } - } - - this.state = 208; - this.match(CashScriptParser.T__16); - } - } - 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 requireStatement(): RequireStatementContext { - let localctx: RequireStatementContext = new RequireStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 36, CashScriptParser.RULE_requireStatement); - let _la: number; - try { - this.enterOuterAlt(localctx, 1); - { - this.state = 210; - this.match(CashScriptParser.T__21); - this.state = 211; - this.match(CashScriptParser.T__14); - this.state = 212; - this.expression(0); - this.state = 215; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la===16) { - { - this.state = 213; - this.match(CashScriptParser.T__15); - this.state = 214; - this.requireMessage(); - } - } - - this.state = 217; - this.match(CashScriptParser.T__16); - } - } - 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 consoleStatement(): ConsoleStatementContext { - let localctx: ConsoleStatementContext = new ConsoleStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 38, CashScriptParser.RULE_consoleStatement); - try { - this.enterOuterAlt(localctx, 1); - { - this.state = 219; - this.match(CashScriptParser.T__22); - this.state = 220; - this.consoleParameterList(); - } - } - 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 ifStatement(): IfStatementContext { - let localctx: IfStatementContext = new IfStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 40, CashScriptParser.RULE_ifStatement); - try { - this.enterOuterAlt(localctx, 1); - { - this.state = 222; - this.match(CashScriptParser.T__23); - this.state = 223; - this.match(CashScriptParser.T__14); - this.state = 224; - this.expression(0); - this.state = 225; - this.match(CashScriptParser.T__16); - this.state = 226; - localctx._ifBlock = this.block(); - this.state = 229; - this._errHandler.sync(this); - switch ( this._interp.adaptivePredict(this._input, 17, this._ctx) ) { - case 1: - { - this.state = 227; - this.match(CashScriptParser.T__24); - this.state = 228; - localctx._elseBlock = this.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 loopStatement(): LoopStatementContext { - let localctx: LoopStatementContext = new LoopStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 42, CashScriptParser.RULE_loopStatement); - try { - this.state = 234; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case 26: - this.enterOuterAlt(localctx, 1); - { - this.state = 231; - this.doWhileStatement(); - } - break; - case 27: - this.enterOuterAlt(localctx, 2); - { - this.state = 232; - this.whileStatement(); - } - break; - case 28: - this.enterOuterAlt(localctx, 3); - { - this.state = 233; - this.forStatement(); - } - 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 doWhileStatement(): DoWhileStatementContext { - let localctx: DoWhileStatementContext = new DoWhileStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 44, CashScriptParser.RULE_doWhileStatement); - try { - this.enterOuterAlt(localctx, 1); - { - this.state = 236; - this.match(CashScriptParser.T__25); - this.state = 237; - this.block(); - this.state = 238; - this.match(CashScriptParser.T__26); - this.state = 239; - this.match(CashScriptParser.T__14); - this.state = 240; - this.expression(0); - this.state = 241; - this.match(CashScriptParser.T__16); - this.state = 242; - this.match(CashScriptParser.T__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 whileStatement(): WhileStatementContext { - let localctx: WhileStatementContext = new WhileStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 46, CashScriptParser.RULE_whileStatement); - try { - this.enterOuterAlt(localctx, 1); - { - this.state = 244; - this.match(CashScriptParser.T__26); - this.state = 245; - this.match(CashScriptParser.T__14); - this.state = 246; - this.expression(0); - this.state = 247; - this.match(CashScriptParser.T__16); - this.state = 248; - 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 forStatement(): ForStatementContext { - let localctx: ForStatementContext = new ForStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 48, CashScriptParser.RULE_forStatement); - try { - this.enterOuterAlt(localctx, 1); - { - this.state = 250; - this.match(CashScriptParser.T__27); - this.state = 251; - this.match(CashScriptParser.T__14); - this.state = 252; - this.forInit(); - this.state = 253; - this.match(CashScriptParser.T__1); - this.state = 254; - this.expression(0); - this.state = 255; - this.match(CashScriptParser.T__1); - this.state = 256; - this.assignStatement(); - this.state = 257; - this.match(CashScriptParser.T__16); - this.state = 258; - 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 forInit(): ForInitContext { - let localctx: ForInitContext = new ForInitContext(this, this._ctx, this.state); - this.enterRule(localctx, 50, CashScriptParser.RULE_forInit); - try { - this.state = 262; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case 68: - case 69: - case 70: - this.enterOuterAlt(localctx, 1); - { - this.state = 260; - this.variableDefinition(); - } - break; - case 78: - this.enterOuterAlt(localctx, 2); - { - this.state = 261; - this.assignStatement(); - } - 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 requireMessage(): RequireMessageContext { - let localctx: RequireMessageContext = new RequireMessageContext(this, this._ctx, this.state); - this.enterRule(localctx, 52, CashScriptParser.RULE_requireMessage); - try { - this.enterOuterAlt(localctx, 1); - { - this.state = 264; - this.match(CashScriptParser.StringLiteral); - } - } - 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 consoleParameter(): ConsoleParameterContext { - let localctx: ConsoleParameterContext = new ConsoleParameterContext(this, this._ctx, this.state); - this.enterRule(localctx, 54, CashScriptParser.RULE_consoleParameter); - try { - this.state = 268; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case 78: - this.enterOuterAlt(localctx, 1); - { - this.state = 266; - this.match(CashScriptParser.Identifier); - } - break; - case 63: - case 65: - case 72: - case 73: - case 74: - this.enterOuterAlt(localctx, 2); - { - this.state = 267; - this.literal(); - } - 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 consoleParameterList(): ConsoleParameterListContext { - let localctx: ConsoleParameterListContext = new ConsoleParameterListContext(this, this._ctx, this.state); - this.enterRule(localctx, 56, CashScriptParser.RULE_consoleParameterList); - let _la: number; - try { - let _alt: number; - this.enterOuterAlt(localctx, 1); - { - this.state = 270; - this.match(CashScriptParser.T__14); - this.state = 282; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 63)) & ~0x1F) === 0 && ((1 << (_la - 63)) & 36357) !== 0)) { - { - this.state = 271; - this.consoleParameter(); - this.state = 276; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input, 21, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - { - this.state = 272; - this.match(CashScriptParser.T__15); - this.state = 273; - this.consoleParameter(); - } - } - } - this.state = 278; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input, 21, this._ctx); - } - this.state = 280; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la===16) { - { - this.state = 279; - this.match(CashScriptParser.T__15); - } - } - - } - } - - this.state = 284; - this.match(CashScriptParser.T__16); - } - } - 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 functionCall(): FunctionCallContext { - let localctx: FunctionCallContext = new FunctionCallContext(this, this._ctx, this.state); - this.enterRule(localctx, 58, CashScriptParser.RULE_functionCall); - try { - this.enterOuterAlt(localctx, 1); - { - this.state = 286; - this.match(CashScriptParser.Identifier); - this.state = 287; - this.expressionList(); - } - } - 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 expressionList(): ExpressionListContext { - let localctx: ExpressionListContext = new ExpressionListContext(this, this._ctx, this.state); - this.enterRule(localctx, 60, CashScriptParser.RULE_expressionList); - let _la: number; - try { - let _alt: number; - this.enterOuterAlt(localctx, 1); - { - this.state = 289; - this.match(CashScriptParser.T__14); - this.state = 301; - this._errHandler.sync(this); - _la = this._input.LA(1); - if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 1610645536) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2147582017) !== 0) || ((((_la - 65)) & ~0x1F) === 0 && ((1 << (_la - 65)) & 15257) !== 0)) { - { - this.state = 290; - this.expression(0); - this.state = 295; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input, 24, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - { - this.state = 291; - this.match(CashScriptParser.T__15); - this.state = 292; - this.expression(0); - } - } - } - this.state = 297; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input, 24, this._ctx); - } - this.state = 299; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la===16) { - { - this.state = 298; - this.match(CashScriptParser.T__15); - } - } - - } - } - - this.state = 303; - this.match(CashScriptParser.T__16); - } - } - 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 expression(): ExpressionContext; - public expression(_p: number): ExpressionContext; - // @RuleVersion(0) - public expression(_p?: number): ExpressionContext { - if (_p === undefined) { - _p = 0; - } - - let _parentctx: ParserRuleContext = this._ctx; - let _parentState: number = this.state; - let localctx: ExpressionContext = new ExpressionContext(this, this._ctx, _parentState); - let _prevctx: ExpressionContext = localctx; - let _startState: number = 62; - this.enterRecursionRule(localctx, 62, CashScriptParser.RULE_expression, _p); - let _la: number; - try { - let _alt: number; - this.enterOuterAlt(localctx, 1); - { - this.state = 354; - this._errHandler.sync(this); - switch ( this._interp.adaptivePredict(this._input, 31, this._ctx) ) { - case 1: - { - localctx = new ParenthesisedContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - - this.state = 306; - this.match(CashScriptParser.T__14); - this.state = 307; - this.expression(0); - this.state = 308; - this.match(CashScriptParser.T__16); - } - break; - case 2: - { - localctx = new CastContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 310; - this.typeCast(); - this.state = 311; - this.match(CashScriptParser.T__14); - this.state = 312; - (localctx as CastContext)._castable = this.expression(0); - this.state = 314; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la===16) { - { - this.state = 313; - this.match(CashScriptParser.T__15); - } - } - - this.state = 316; - this.match(CashScriptParser.T__16); - } - break; - case 3: - { - localctx = new FunctionCallExpressionContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 318; - this.functionCall(); - } - break; - case 4: - { - localctx = new InstantiationContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 319; - this.match(CashScriptParser.T__28); - this.state = 320; - this.match(CashScriptParser.Identifier); - this.state = 321; - this.expressionList(); - } - break; - case 5: - { - localctx = new UnaryIntrospectionOpContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 322; - (localctx as UnaryIntrospectionOpContext)._scope = this.match(CashScriptParser.T__31); - this.state = 323; - this.match(CashScriptParser.T__29); - this.state = 324; - this.expression(0); - this.state = 325; - this.match(CashScriptParser.T__30); - this.state = 326; - (localctx as UnaryIntrospectionOpContext)._op = this._input.LT(1); - _la = this._input.LA(1); - if(!(((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & 31) !== 0))) { - (localctx as UnaryIntrospectionOpContext)._op = this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - case 6: - { - localctx = new UnaryIntrospectionOpContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 328; - (localctx as UnaryIntrospectionOpContext)._scope = this.match(CashScriptParser.T__37); - this.state = 329; - this.match(CashScriptParser.T__29); - this.state = 330; - this.expression(0); - this.state = 331; - this.match(CashScriptParser.T__30); - this.state = 332; - (localctx as UnaryIntrospectionOpContext)._op = this._input.LT(1); - _la = this._input.LA(1); - if(!(((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & 991) !== 0))) { - (localctx as UnaryIntrospectionOpContext)._op = this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - case 7: - { - localctx = new UnaryOpContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 334; - (localctx as UnaryOpContext)._op = this._input.LT(1); - _la = this._input.LA(1); - if(!(_la===5 || _la===47 || _la===48)) { - (localctx as UnaryOpContext)._op = this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 335; - this.expression(15); - } - break; - case 8: - { - localctx = new ArrayContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 336; - this.match(CashScriptParser.T__29); - this.state = 348; - this._errHandler.sync(this); - _la = this._input.LA(1); - if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 1610645536) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2147582017) !== 0) || ((((_la - 65)) & ~0x1F) === 0 && ((1 << (_la - 65)) & 15257) !== 0)) { - { - this.state = 337; - this.expression(0); - this.state = 342; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input, 28, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - { - this.state = 338; - this.match(CashScriptParser.T__15); - this.state = 339; - this.expression(0); - } - } - } - this.state = 344; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input, 28, this._ctx); - } - this.state = 346; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la===16) { - { - this.state = 345; - this.match(CashScriptParser.T__15); - } - } - - } - } - - this.state = 350; - this.match(CashScriptParser.T__30); - } - break; - case 9: - { - localctx = new NullaryOpContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 351; - this.match(CashScriptParser.NullaryOp); - } - break; - case 10: - { - localctx = new IdentifierContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 352; - this.match(CashScriptParser.Identifier); - } - break; - case 11: - { - localctx = new LiteralExpressionContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 353; - this.literal(); - } - break; - } - this._ctx.stop = this._input.LT(-1); - this.state = 408; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input, 33, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - if (this._parseListeners != null) { - this.triggerExitRuleEvent(); - } - _prevctx = localctx; - { - this.state = 406; - this._errHandler.sync(this); - switch ( this._interp.adaptivePredict(this._input, 32, this._ctx) ) { - case 1: - { - localctx = new BinaryOpContext(this, new ExpressionContext(this, _parentctx, _parentState)); - (localctx as BinaryOpContext)._left = _prevctx; - this.pushNewRecursionContext(localctx, _startState, CashScriptParser.RULE_expression); - this.state = 356; - if (!(this.precpred(this._ctx, 14))) { - throw this.createFailedPredicateException("this.precpred(this._ctx, 14)"); - } - this.state = 357; - (localctx as BinaryOpContext)._op = this._input.LT(1); - _la = this._input.LA(1); - if(!(((((_la - 49)) & ~0x1F) === 0 && ((1 << (_la - 49)) & 7) !== 0))) { - (localctx as BinaryOpContext)._op = this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 358; - (localctx as BinaryOpContext)._right = this.expression(15); - } - break; - case 2: - { - localctx = new BinaryOpContext(this, new ExpressionContext(this, _parentctx, _parentState)); - (localctx as BinaryOpContext)._left = _prevctx; - this.pushNewRecursionContext(localctx, _startState, CashScriptParser.RULE_expression); - this.state = 359; - if (!(this.precpred(this._ctx, 13))) { - throw this.createFailedPredicateException("this.precpred(this._ctx, 13)"); - } - this.state = 360; - (localctx as BinaryOpContext)._op = this._input.LT(1); - _la = this._input.LA(1); - if(!(_la===48 || _la===52)) { - (localctx as BinaryOpContext)._op = this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 361; - (localctx as BinaryOpContext)._right = this.expression(14); - } - break; - case 3: - { - localctx = new BinaryOpContext(this, new ExpressionContext(this, _parentctx, _parentState)); - (localctx as BinaryOpContext)._left = _prevctx; - this.pushNewRecursionContext(localctx, _startState, CashScriptParser.RULE_expression); - this.state = 362; - if (!(this.precpred(this._ctx, 12))) { - throw this.createFailedPredicateException("this.precpred(this._ctx, 12)"); - } - this.state = 363; - (localctx as BinaryOpContext)._op = this._input.LT(1); - _la = this._input.LA(1); - if(!(_la===53 || _la===54)) { - (localctx as BinaryOpContext)._op = this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 364; - (localctx as BinaryOpContext)._right = this.expression(13); - } - break; - case 4: - { - localctx = new BinaryOpContext(this, new ExpressionContext(this, _parentctx, _parentState)); - (localctx as BinaryOpContext)._left = _prevctx; - this.pushNewRecursionContext(localctx, _startState, CashScriptParser.RULE_expression); - this.state = 365; - if (!(this.precpred(this._ctx, 11))) { - throw this.createFailedPredicateException("this.precpred(this._ctx, 11)"); - } - this.state = 366; - (localctx as BinaryOpContext)._op = this._input.LT(1); - _la = this._input.LA(1); - if(!((((_la) & ~0x1F) === 0 && ((1 << _la) & 960) !== 0))) { - (localctx as BinaryOpContext)._op = this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 367; - (localctx as BinaryOpContext)._right = this.expression(12); - } - break; - case 5: - { - localctx = new BinaryOpContext(this, new ExpressionContext(this, _parentctx, _parentState)); - (localctx as BinaryOpContext)._left = _prevctx; - this.pushNewRecursionContext(localctx, _startState, CashScriptParser.RULE_expression); - this.state = 368; - if (!(this.precpred(this._ctx, 10))) { - throw this.createFailedPredicateException("this.precpred(this._ctx, 10)"); - } - this.state = 369; - (localctx as BinaryOpContext)._op = this._input.LT(1); - _la = this._input.LA(1); - if(!(_la===55 || _la===56)) { - (localctx as BinaryOpContext)._op = this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 370; - (localctx as BinaryOpContext)._right = this.expression(11); - } - break; - case 6: - { - localctx = new BinaryOpContext(this, new ExpressionContext(this, _parentctx, _parentState)); - (localctx as BinaryOpContext)._left = _prevctx; - this.pushNewRecursionContext(localctx, _startState, CashScriptParser.RULE_expression); - this.state = 371; - if (!(this.precpred(this._ctx, 9))) { - throw this.createFailedPredicateException("this.precpred(this._ctx, 9)"); - } - this.state = 372; - (localctx as BinaryOpContext)._op = this.match(CashScriptParser.T__56); - this.state = 373; - (localctx as BinaryOpContext)._right = this.expression(10); - } - break; - case 7: - { - localctx = new BinaryOpContext(this, new ExpressionContext(this, _parentctx, _parentState)); - (localctx as BinaryOpContext)._left = _prevctx; - this.pushNewRecursionContext(localctx, _startState, CashScriptParser.RULE_expression); - this.state = 374; - if (!(this.precpred(this._ctx, 8))) { - throw this.createFailedPredicateException("this.precpred(this._ctx, 8)"); - } - this.state = 375; - (localctx as BinaryOpContext)._op = this.match(CashScriptParser.T__3); - this.state = 376; - (localctx as BinaryOpContext)._right = this.expression(9); - } - break; - case 8: - { - localctx = new BinaryOpContext(this, new ExpressionContext(this, _parentctx, _parentState)); - (localctx as BinaryOpContext)._left = _prevctx; - this.pushNewRecursionContext(localctx, _startState, CashScriptParser.RULE_expression); - this.state = 377; - if (!(this.precpred(this._ctx, 7))) { - throw this.createFailedPredicateException("this.precpred(this._ctx, 7)"); - } - this.state = 378; - (localctx as BinaryOpContext)._op = this.match(CashScriptParser.T__57); - this.state = 379; - (localctx as BinaryOpContext)._right = this.expression(8); - } - break; - case 9: - { - localctx = new BinaryOpContext(this, new ExpressionContext(this, _parentctx, _parentState)); - (localctx as BinaryOpContext)._left = _prevctx; - this.pushNewRecursionContext(localctx, _startState, CashScriptParser.RULE_expression); - this.state = 380; - if (!(this.precpred(this._ctx, 6))) { - throw this.createFailedPredicateException("this.precpred(this._ctx, 6)"); - } - this.state = 381; - (localctx as BinaryOpContext)._op = this.match(CashScriptParser.T__58); - this.state = 382; - (localctx as BinaryOpContext)._right = this.expression(7); - } - break; - case 10: - { - localctx = new BinaryOpContext(this, new ExpressionContext(this, _parentctx, _parentState)); - (localctx as BinaryOpContext)._left = _prevctx; - this.pushNewRecursionContext(localctx, _startState, CashScriptParser.RULE_expression); - this.state = 383; - if (!(this.precpred(this._ctx, 5))) { - throw this.createFailedPredicateException("this.precpred(this._ctx, 5)"); - } - this.state = 384; - (localctx as BinaryOpContext)._op = this.match(CashScriptParser.T__59); - this.state = 385; - (localctx as BinaryOpContext)._right = this.expression(6); - } - break; - case 11: - { - localctx = new TupleIndexOpContext(this, new ExpressionContext(this, _parentctx, _parentState)); - this.pushNewRecursionContext(localctx, _startState, CashScriptParser.RULE_expression); - this.state = 386; - if (!(this.precpred(this._ctx, 21))) { - throw this.createFailedPredicateException("this.precpred(this._ctx, 21)"); - } - this.state = 387; - this.match(CashScriptParser.T__29); - this.state = 388; - (localctx as TupleIndexOpContext)._index = this.match(CashScriptParser.NumberLiteral); - this.state = 389; - this.match(CashScriptParser.T__30); - } - break; - case 12: - { - localctx = new UnaryOpContext(this, new ExpressionContext(this, _parentctx, _parentState)); - this.pushNewRecursionContext(localctx, _startState, CashScriptParser.RULE_expression); - this.state = 390; - if (!(this.precpred(this._ctx, 18))) { - throw this.createFailedPredicateException("this.precpred(this._ctx, 18)"); - } - this.state = 391; - (localctx as UnaryOpContext)._op = this._input.LT(1); - _la = this._input.LA(1); - if(!(_la===43 || _la===44)) { - (localctx as UnaryOpContext)._op = this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - case 13: - { - localctx = new BinaryOpContext(this, new ExpressionContext(this, _parentctx, _parentState)); - (localctx as BinaryOpContext)._left = _prevctx; - this.pushNewRecursionContext(localctx, _startState, CashScriptParser.RULE_expression); - this.state = 392; - if (!(this.precpred(this._ctx, 17))) { - throw this.createFailedPredicateException("this.precpred(this._ctx, 17)"); - } - this.state = 393; - (localctx as BinaryOpContext)._op = this.match(CashScriptParser.T__44); - this.state = 394; - this.match(CashScriptParser.T__14); - this.state = 395; - (localctx as BinaryOpContext)._right = this.expression(0); - this.state = 396; - this.match(CashScriptParser.T__16); - } - break; - case 14: - { - localctx = new SliceContext(this, new ExpressionContext(this, _parentctx, _parentState)); - (localctx as SliceContext)._element = _prevctx; - this.pushNewRecursionContext(localctx, _startState, CashScriptParser.RULE_expression); - this.state = 398; - if (!(this.precpred(this._ctx, 16))) { - throw this.createFailedPredicateException("this.precpred(this._ctx, 16)"); - } - this.state = 399; - this.match(CashScriptParser.T__45); - this.state = 400; - this.match(CashScriptParser.T__14); - this.state = 401; - (localctx as SliceContext)._start = this.expression(0); - this.state = 402; - this.match(CashScriptParser.T__15); - this.state = 403; - (localctx as SliceContext)._end = this.expression(0); - this.state = 404; - this.match(CashScriptParser.T__16); - } - break; - } - } - } - this.state = 410; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input, 33, 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 modifier(): ModifierContext { - let localctx: ModifierContext = new ModifierContext(this, this._ctx, this.state); - this.enterRule(localctx, 64, CashScriptParser.RULE_modifier); - try { - this.enterOuterAlt(localctx, 1); - { - this.state = 411; - this.match(CashScriptParser.T__60); - } - } - 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(): LiteralContext { - let localctx: LiteralContext = new LiteralContext(this, this._ctx, this.state); - this.enterRule(localctx, 66, CashScriptParser.RULE_literal); - try { - this.state = 418; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case 63: - this.enterOuterAlt(localctx, 1); - { - this.state = 413; - this.match(CashScriptParser.BooleanLiteral); - } - break; - case 65: - this.enterOuterAlt(localctx, 2); - { - this.state = 414; - this.numberLiteral(); - } - break; - case 72: - this.enterOuterAlt(localctx, 3); - { - this.state = 415; - this.match(CashScriptParser.StringLiteral); - } - break; - case 73: - this.enterOuterAlt(localctx, 4); - { - this.state = 416; - this.match(CashScriptParser.DateLiteral); - } - break; - case 74: - this.enterOuterAlt(localctx, 5); - { - this.state = 417; - this.match(CashScriptParser.HexLiteral); - } - 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 numberLiteral(): NumberLiteralContext { - let localctx: NumberLiteralContext = new NumberLiteralContext(this, this._ctx, this.state); - this.enterRule(localctx, 68, CashScriptParser.RULE_numberLiteral); - try { - this.enterOuterAlt(localctx, 1); - { - this.state = 420; - this.match(CashScriptParser.NumberLiteral); - this.state = 422; - this._errHandler.sync(this); - switch ( this._interp.adaptivePredict(this._input, 35, this._ctx) ) { - case 1: - { - this.state = 421; - this.match(CashScriptParser.NumberUnit); - } - 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 typeName(): TypeNameContext { - let localctx: TypeNameContext = new TypeNameContext(this, this._ctx, this.state); - this.enterRule(localctx, 70, CashScriptParser.RULE_typeName); - let _la: number; - try { - this.enterOuterAlt(localctx, 1); - { - this.state = 424; - _la = this._input.LA(1); - if(!(((((_la - 68)) & ~0x1F) === 0 && ((1 << (_la - 68)) & 7) !== 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 typeCast(): TypeCastContext { - let localctx: TypeCastContext = new TypeCastContext(this, this._ctx, this.state); - this.enterRule(localctx, 72, CashScriptParser.RULE_typeCast); - let _la: number; - try { - this.enterOuterAlt(localctx, 1); - { - this.state = 426; - _la = this._input.LA(1); - if(!(((((_la - 68)) & ~0x1F) === 0 && ((1 << (_la - 68)) & 259) !== 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; - } - - public sempred(localctx: RuleContext, ruleIndex: number, predIndex: number): boolean { - switch (ruleIndex) { - case 31: - return this.expression_sempred(localctx as ExpressionContext, predIndex); - } - return true; - } - private expression_sempred(localctx: ExpressionContext, predIndex: number): boolean { - switch (predIndex) { - case 0: - return this.precpred(this._ctx, 14); - case 1: - return this.precpred(this._ctx, 13); - case 2: - return this.precpred(this._ctx, 12); - case 3: - return this.precpred(this._ctx, 11); - case 4: - return this.precpred(this._ctx, 10); - case 5: - return this.precpred(this._ctx, 9); - case 6: - return this.precpred(this._ctx, 8); - case 7: - return this.precpred(this._ctx, 7); - case 8: - return this.precpred(this._ctx, 6); - case 9: - return this.precpred(this._ctx, 5); - case 10: - return this.precpred(this._ctx, 21); - case 11: - return this.precpred(this._ctx, 18); - case 12: - return this.precpred(this._ctx, 17); - case 13: - return this.precpred(this._ctx, 16); - } - return true; - } - - public static readonly _serializedATN: number[] = [4,1,81,429,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,1,0,5,0,76,8,0,10,0,12, - 0,79,9,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,3,1,3,3,3,93,8,3,1,4, - 3,4,96,8,4,1,4,1,4,1,5,1,5,1,6,1,6,1,6,1,6,1,6,5,6,107,8,6,10,6,12,6,110, - 9,6,1,6,1,6,1,7,1,7,1,7,1,7,1,7,5,7,119,8,7,10,7,12,7,122,9,7,1,7,1,7,1, - 8,1,8,1,8,1,8,5,8,130,8,8,10,8,12,8,133,9,8,1,8,3,8,136,8,8,3,8,138,8,8, - 1,8,1,8,1,9,1,9,1,9,1,10,1,10,5,10,147,8,10,10,10,12,10,150,9,10,1,10,1, - 10,3,10,154,8,10,1,11,1,11,1,11,1,11,3,11,160,8,11,1,12,1,12,1,12,1,12, - 1,12,1,12,3,12,168,8,12,1,13,1,13,3,13,172,8,13,1,14,1,14,5,14,176,8,14, - 10,14,12,14,179,9,14,1,14,1,14,1,14,1,14,1,15,1,15,1,15,1,15,1,15,1,15, - 1,15,1,15,1,16,1,16,1,16,1,16,1,16,3,16,198,8,16,1,17,1,17,1,17,1,17,1, - 17,1,17,1,17,3,17,207,8,17,1,17,1,17,1,18,1,18,1,18,1,18,1,18,3,18,216, - 8,18,1,18,1,18,1,19,1,19,1,19,1,20,1,20,1,20,1,20,1,20,1,20,1,20,3,20,230, - 8,20,1,21,1,21,1,21,3,21,235,8,21,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1, - 22,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,24,1,24, - 1,24,1,24,1,25,1,25,3,25,263,8,25,1,26,1,26,1,27,1,27,3,27,269,8,27,1,28, - 1,28,1,28,1,28,5,28,275,8,28,10,28,12,28,278,9,28,1,28,3,28,281,8,28,3, - 28,283,8,28,1,28,1,28,1,29,1,29,1,29,1,30,1,30,1,30,1,30,5,30,294,8,30, - 10,30,12,30,297,9,30,1,30,3,30,300,8,30,3,30,302,8,30,1,30,1,30,1,31,1, - 31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,3,31,315,8,31,1,31,1,31,1,31,1,31, - 1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1, - 31,1,31,1,31,1,31,1,31,1,31,5,31,341,8,31,10,31,12,31,344,9,31,1,31,3,31, - 347,8,31,3,31,349,8,31,1,31,1,31,1,31,1,31,3,31,355,8,31,1,31,1,31,1,31, - 1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1, - 31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31, - 1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1, - 31,1,31,1,31,1,31,5,31,407,8,31,10,31,12,31,410,9,31,1,32,1,32,1,33,1,33, - 1,33,1,33,1,33,3,33,419,8,33,1,34,1,34,3,34,423,8,34,1,35,1,35,1,36,1,36, - 1,36,0,1,62,37,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,0,14,1,0,4,10,2,0,10,10, - 18,19,1,0,20,21,1,0,33,37,2,0,33,37,39,42,2,0,5,5,47,48,1,0,49,51,2,0,48, - 48,52,52,1,0,53,54,1,0,6,9,1,0,55,56,1,0,43,44,1,0,68,70,2,0,68,69,76,76, - 456,0,77,1,0,0,0,2,83,1,0,0,0,4,88,1,0,0,0,6,90,1,0,0,0,8,95,1,0,0,0,10, - 99,1,0,0,0,12,101,1,0,0,0,14,113,1,0,0,0,16,125,1,0,0,0,18,141,1,0,0,0, - 20,153,1,0,0,0,22,159,1,0,0,0,24,167,1,0,0,0,26,171,1,0,0,0,28,173,1,0, - 0,0,30,184,1,0,0,0,32,197,1,0,0,0,34,199,1,0,0,0,36,210,1,0,0,0,38,219, - 1,0,0,0,40,222,1,0,0,0,42,234,1,0,0,0,44,236,1,0,0,0,46,244,1,0,0,0,48, - 250,1,0,0,0,50,262,1,0,0,0,52,264,1,0,0,0,54,268,1,0,0,0,56,270,1,0,0,0, - 58,286,1,0,0,0,60,289,1,0,0,0,62,354,1,0,0,0,64,411,1,0,0,0,66,418,1,0, - 0,0,68,420,1,0,0,0,70,424,1,0,0,0,72,426,1,0,0,0,74,76,3,2,1,0,75,74,1, - 0,0,0,76,79,1,0,0,0,77,75,1,0,0,0,77,78,1,0,0,0,78,80,1,0,0,0,79,77,1,0, - 0,0,80,81,3,12,6,0,81,82,5,0,0,1,82,1,1,0,0,0,83,84,5,1,0,0,84,85,3,4,2, - 0,85,86,3,6,3,0,86,87,5,2,0,0,87,3,1,0,0,0,88,89,5,3,0,0,89,5,1,0,0,0,90, - 92,3,8,4,0,91,93,3,8,4,0,92,91,1,0,0,0,92,93,1,0,0,0,93,7,1,0,0,0,94,96, - 3,10,5,0,95,94,1,0,0,0,95,96,1,0,0,0,96,97,1,0,0,0,97,98,5,62,0,0,98,9, - 1,0,0,0,99,100,7,0,0,0,100,11,1,0,0,0,101,102,5,11,0,0,102,103,5,78,0,0, - 103,104,3,16,8,0,104,108,5,12,0,0,105,107,3,14,7,0,106,105,1,0,0,0,107, - 110,1,0,0,0,108,106,1,0,0,0,108,109,1,0,0,0,109,111,1,0,0,0,110,108,1,0, - 0,0,111,112,5,13,0,0,112,13,1,0,0,0,113,114,5,14,0,0,114,115,5,78,0,0,115, - 116,3,16,8,0,116,120,5,12,0,0,117,119,3,22,11,0,118,117,1,0,0,0,119,122, - 1,0,0,0,120,118,1,0,0,0,120,121,1,0,0,0,121,123,1,0,0,0,122,120,1,0,0,0, - 123,124,5,13,0,0,124,15,1,0,0,0,125,137,5,15,0,0,126,131,3,18,9,0,127,128, - 5,16,0,0,128,130,3,18,9,0,129,127,1,0,0,0,130,133,1,0,0,0,131,129,1,0,0, - 0,131,132,1,0,0,0,132,135,1,0,0,0,133,131,1,0,0,0,134,136,5,16,0,0,135, - 134,1,0,0,0,135,136,1,0,0,0,136,138,1,0,0,0,137,126,1,0,0,0,137,138,1,0, - 0,0,138,139,1,0,0,0,139,140,5,17,0,0,140,17,1,0,0,0,141,142,3,70,35,0,142, - 143,5,78,0,0,143,19,1,0,0,0,144,148,5,12,0,0,145,147,3,22,11,0,146,145, - 1,0,0,0,147,150,1,0,0,0,148,146,1,0,0,0,148,149,1,0,0,0,149,151,1,0,0,0, - 150,148,1,0,0,0,151,154,5,13,0,0,152,154,3,22,11,0,153,144,1,0,0,0,153, - 152,1,0,0,0,154,21,1,0,0,0,155,160,3,26,13,0,156,157,3,24,12,0,157,158, - 5,2,0,0,158,160,1,0,0,0,159,155,1,0,0,0,159,156,1,0,0,0,160,23,1,0,0,0, - 161,168,3,28,14,0,162,168,3,30,15,0,163,168,3,32,16,0,164,168,3,34,17,0, - 165,168,3,36,18,0,166,168,3,38,19,0,167,161,1,0,0,0,167,162,1,0,0,0,167, - 163,1,0,0,0,167,164,1,0,0,0,167,165,1,0,0,0,167,166,1,0,0,0,168,25,1,0, - 0,0,169,172,3,40,20,0,170,172,3,42,21,0,171,169,1,0,0,0,171,170,1,0,0,0, - 172,27,1,0,0,0,173,177,3,70,35,0,174,176,3,64,32,0,175,174,1,0,0,0,176, - 179,1,0,0,0,177,175,1,0,0,0,177,178,1,0,0,0,178,180,1,0,0,0,179,177,1,0, - 0,0,180,181,5,78,0,0,181,182,5,10,0,0,182,183,3,62,31,0,183,29,1,0,0,0, - 184,185,3,70,35,0,185,186,5,78,0,0,186,187,5,16,0,0,187,188,3,70,35,0,188, - 189,5,78,0,0,189,190,5,10,0,0,190,191,3,62,31,0,191,31,1,0,0,0,192,193, - 5,78,0,0,193,194,7,1,0,0,194,198,3,62,31,0,195,196,5,78,0,0,196,198,7,2, - 0,0,197,192,1,0,0,0,197,195,1,0,0,0,198,33,1,0,0,0,199,200,5,22,0,0,200, - 201,5,15,0,0,201,202,5,75,0,0,202,203,5,6,0,0,203,206,3,62,31,0,204,205, - 5,16,0,0,205,207,3,52,26,0,206,204,1,0,0,0,206,207,1,0,0,0,207,208,1,0, - 0,0,208,209,5,17,0,0,209,35,1,0,0,0,210,211,5,22,0,0,211,212,5,15,0,0,212, - 215,3,62,31,0,213,214,5,16,0,0,214,216,3,52,26,0,215,213,1,0,0,0,215,216, - 1,0,0,0,216,217,1,0,0,0,217,218,5,17,0,0,218,37,1,0,0,0,219,220,5,23,0, - 0,220,221,3,56,28,0,221,39,1,0,0,0,222,223,5,24,0,0,223,224,5,15,0,0,224, - 225,3,62,31,0,225,226,5,17,0,0,226,229,3,20,10,0,227,228,5,25,0,0,228,230, - 3,20,10,0,229,227,1,0,0,0,229,230,1,0,0,0,230,41,1,0,0,0,231,235,3,44,22, - 0,232,235,3,46,23,0,233,235,3,48,24,0,234,231,1,0,0,0,234,232,1,0,0,0,234, - 233,1,0,0,0,235,43,1,0,0,0,236,237,5,26,0,0,237,238,3,20,10,0,238,239,5, - 27,0,0,239,240,5,15,0,0,240,241,3,62,31,0,241,242,5,17,0,0,242,243,5,2, - 0,0,243,45,1,0,0,0,244,245,5,27,0,0,245,246,5,15,0,0,246,247,3,62,31,0, - 247,248,5,17,0,0,248,249,3,20,10,0,249,47,1,0,0,0,250,251,5,28,0,0,251, - 252,5,15,0,0,252,253,3,50,25,0,253,254,5,2,0,0,254,255,3,62,31,0,255,256, - 5,2,0,0,256,257,3,32,16,0,257,258,5,17,0,0,258,259,3,20,10,0,259,49,1,0, - 0,0,260,263,3,28,14,0,261,263,3,32,16,0,262,260,1,0,0,0,262,261,1,0,0,0, - 263,51,1,0,0,0,264,265,5,72,0,0,265,53,1,0,0,0,266,269,5,78,0,0,267,269, - 3,66,33,0,268,266,1,0,0,0,268,267,1,0,0,0,269,55,1,0,0,0,270,282,5,15,0, - 0,271,276,3,54,27,0,272,273,5,16,0,0,273,275,3,54,27,0,274,272,1,0,0,0, - 275,278,1,0,0,0,276,274,1,0,0,0,276,277,1,0,0,0,277,280,1,0,0,0,278,276, - 1,0,0,0,279,281,5,16,0,0,280,279,1,0,0,0,280,281,1,0,0,0,281,283,1,0,0, - 0,282,271,1,0,0,0,282,283,1,0,0,0,283,284,1,0,0,0,284,285,5,17,0,0,285, - 57,1,0,0,0,286,287,5,78,0,0,287,288,3,60,30,0,288,59,1,0,0,0,289,301,5, - 15,0,0,290,295,3,62,31,0,291,292,5,16,0,0,292,294,3,62,31,0,293,291,1,0, - 0,0,294,297,1,0,0,0,295,293,1,0,0,0,295,296,1,0,0,0,296,299,1,0,0,0,297, - 295,1,0,0,0,298,300,5,16,0,0,299,298,1,0,0,0,299,300,1,0,0,0,300,302,1, - 0,0,0,301,290,1,0,0,0,301,302,1,0,0,0,302,303,1,0,0,0,303,304,5,17,0,0, - 304,61,1,0,0,0,305,306,6,31,-1,0,306,307,5,15,0,0,307,308,3,62,31,0,308, - 309,5,17,0,0,309,355,1,0,0,0,310,311,3,72,36,0,311,312,5,15,0,0,312,314, - 3,62,31,0,313,315,5,16,0,0,314,313,1,0,0,0,314,315,1,0,0,0,315,316,1,0, - 0,0,316,317,5,17,0,0,317,355,1,0,0,0,318,355,3,58,29,0,319,320,5,29,0,0, - 320,321,5,78,0,0,321,355,3,60,30,0,322,323,5,32,0,0,323,324,5,30,0,0,324, - 325,3,62,31,0,325,326,5,31,0,0,326,327,7,3,0,0,327,355,1,0,0,0,328,329, - 5,38,0,0,329,330,5,30,0,0,330,331,3,62,31,0,331,332,5,31,0,0,332,333,7, - 4,0,0,333,355,1,0,0,0,334,335,7,5,0,0,335,355,3,62,31,15,336,348,5,30,0, - 0,337,342,3,62,31,0,338,339,5,16,0,0,339,341,3,62,31,0,340,338,1,0,0,0, - 341,344,1,0,0,0,342,340,1,0,0,0,342,343,1,0,0,0,343,346,1,0,0,0,344,342, - 1,0,0,0,345,347,5,16,0,0,346,345,1,0,0,0,346,347,1,0,0,0,347,349,1,0,0, - 0,348,337,1,0,0,0,348,349,1,0,0,0,349,350,1,0,0,0,350,355,5,31,0,0,351, - 355,5,77,0,0,352,355,5,78,0,0,353,355,3,66,33,0,354,305,1,0,0,0,354,310, - 1,0,0,0,354,318,1,0,0,0,354,319,1,0,0,0,354,322,1,0,0,0,354,328,1,0,0,0, - 354,334,1,0,0,0,354,336,1,0,0,0,354,351,1,0,0,0,354,352,1,0,0,0,354,353, - 1,0,0,0,355,408,1,0,0,0,356,357,10,14,0,0,357,358,7,6,0,0,358,407,3,62, - 31,15,359,360,10,13,0,0,360,361,7,7,0,0,361,407,3,62,31,14,362,363,10,12, - 0,0,363,364,7,8,0,0,364,407,3,62,31,13,365,366,10,11,0,0,366,367,7,9,0, - 0,367,407,3,62,31,12,368,369,10,10,0,0,369,370,7,10,0,0,370,407,3,62,31, - 11,371,372,10,9,0,0,372,373,5,57,0,0,373,407,3,62,31,10,374,375,10,8,0, - 0,375,376,5,4,0,0,376,407,3,62,31,9,377,378,10,7,0,0,378,379,5,58,0,0,379, - 407,3,62,31,8,380,381,10,6,0,0,381,382,5,59,0,0,382,407,3,62,31,7,383,384, - 10,5,0,0,384,385,5,60,0,0,385,407,3,62,31,6,386,387,10,21,0,0,387,388,5, - 30,0,0,388,389,5,65,0,0,389,407,5,31,0,0,390,391,10,18,0,0,391,407,7,11, - 0,0,392,393,10,17,0,0,393,394,5,45,0,0,394,395,5,15,0,0,395,396,3,62,31, - 0,396,397,5,17,0,0,397,407,1,0,0,0,398,399,10,16,0,0,399,400,5,46,0,0,400, - 401,5,15,0,0,401,402,3,62,31,0,402,403,5,16,0,0,403,404,3,62,31,0,404,405, - 5,17,0,0,405,407,1,0,0,0,406,356,1,0,0,0,406,359,1,0,0,0,406,362,1,0,0, - 0,406,365,1,0,0,0,406,368,1,0,0,0,406,371,1,0,0,0,406,374,1,0,0,0,406,377, - 1,0,0,0,406,380,1,0,0,0,406,383,1,0,0,0,406,386,1,0,0,0,406,390,1,0,0,0, - 406,392,1,0,0,0,406,398,1,0,0,0,407,410,1,0,0,0,408,406,1,0,0,0,408,409, - 1,0,0,0,409,63,1,0,0,0,410,408,1,0,0,0,411,412,5,61,0,0,412,65,1,0,0,0, - 413,419,5,63,0,0,414,419,3,68,34,0,415,419,5,72,0,0,416,419,5,73,0,0,417, - 419,5,74,0,0,418,413,1,0,0,0,418,414,1,0,0,0,418,415,1,0,0,0,418,416,1, - 0,0,0,418,417,1,0,0,0,419,67,1,0,0,0,420,422,5,65,0,0,421,423,5,64,0,0, - 422,421,1,0,0,0,422,423,1,0,0,0,423,69,1,0,0,0,424,425,7,12,0,0,425,71, - 1,0,0,0,426,427,7,13,0,0,427,73,1,0,0,0,36,77,92,95,108,120,131,135,137, - 148,153,159,167,171,177,197,206,215,229,234,262,268,276,280,282,295,299, - 301,314,342,346,348,354,406,408,418,422]; - - private static __ATN: ATN; - public static get _ATN(): ATN { - if (!CashScriptParser.__ATN) { - CashScriptParser.__ATN = new ATNDeserializer().deserialize(CashScriptParser._serializedATN); - } - - return CashScriptParser.__ATN; - } - - - static DecisionsToDFA = CashScriptParser._ATN.decisionToState.map( (ds: DecisionState, index: number) => new DFA(ds, index) ); - -} - -export class SourceFileContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public contractDefinition(): ContractDefinitionContext { - return this.getTypedRuleContext(ContractDefinitionContext, 0) as ContractDefinitionContext; - } - public EOF(): TerminalNode { - return this.getToken(CashScriptParser.EOF, 0); - } - public pragmaDirective_list(): PragmaDirectiveContext[] { - return this.getTypedRuleContexts(PragmaDirectiveContext) as PragmaDirectiveContext[]; - } - public pragmaDirective(i: number): PragmaDirectiveContext { - return this.getTypedRuleContext(PragmaDirectiveContext, i) as PragmaDirectiveContext; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_sourceFile; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitSourceFile) { - return visitor.visitSourceFile(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class PragmaDirectiveContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public pragmaName(): PragmaNameContext { - return this.getTypedRuleContext(PragmaNameContext, 0) as PragmaNameContext; - } - public pragmaValue(): PragmaValueContext { - return this.getTypedRuleContext(PragmaValueContext, 0) as PragmaValueContext; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_pragmaDirective; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitPragmaDirective) { - return visitor.visitPragmaDirective(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class PragmaNameContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_pragmaName; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitPragmaName) { - return visitor.visitPragmaName(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class PragmaValueContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public versionConstraint_list(): VersionConstraintContext[] { - return this.getTypedRuleContexts(VersionConstraintContext) as VersionConstraintContext[]; - } - public versionConstraint(i: number): VersionConstraintContext { - return this.getTypedRuleContext(VersionConstraintContext, i) as VersionConstraintContext; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_pragmaValue; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitPragmaValue) { - return visitor.visitPragmaValue(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class VersionConstraintContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public VersionLiteral(): TerminalNode { - return this.getToken(CashScriptParser.VersionLiteral, 0); - } - public versionOperator(): VersionOperatorContext { - return this.getTypedRuleContext(VersionOperatorContext, 0) as VersionOperatorContext; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_versionConstraint; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitVersionConstraint) { - return visitor.visitVersionConstraint(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class VersionOperatorContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_versionOperator; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitVersionOperator) { - return visitor.visitVersionOperator(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ContractDefinitionContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public Identifier(): TerminalNode { - return this.getToken(CashScriptParser.Identifier, 0); - } - public parameterList(): ParameterListContext { - return this.getTypedRuleContext(ParameterListContext, 0) as ParameterListContext; - } - public functionDefinition_list(): FunctionDefinitionContext[] { - return this.getTypedRuleContexts(FunctionDefinitionContext) as FunctionDefinitionContext[]; - } - public functionDefinition(i: number): FunctionDefinitionContext { - return this.getTypedRuleContext(FunctionDefinitionContext, i) as FunctionDefinitionContext; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_contractDefinition; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitContractDefinition) { - return visitor.visitContractDefinition(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class FunctionDefinitionContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public Identifier(): TerminalNode { - return this.getToken(CashScriptParser.Identifier, 0); - } - public parameterList(): ParameterListContext { - return this.getTypedRuleContext(ParameterListContext, 0) as ParameterListContext; - } - 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 CashScriptParser.RULE_functionDefinition; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitFunctionDefinition) { - return visitor.visitFunctionDefinition(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ParameterListContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public parameter_list(): ParameterContext[] { - return this.getTypedRuleContexts(ParameterContext) as ParameterContext[]; - } - public parameter(i: number): ParameterContext { - return this.getTypedRuleContext(ParameterContext, i) as ParameterContext; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_parameterList; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitParameterList) { - return visitor.visitParameterList(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ParameterContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public typeName(): TypeNameContext { - return this.getTypedRuleContext(TypeNameContext, 0) as TypeNameContext; - } - public Identifier(): TerminalNode { - return this.getToken(CashScriptParser.Identifier, 0); - } - public get ruleIndex(): number { - return CashScriptParser.RULE_parameter; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitParameter) { - return visitor.visitParameter(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class BlockContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, 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 CashScriptParser.RULE_block; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitBlock) { - return visitor.visitBlock(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class StatementContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public controlStatement(): ControlStatementContext { - return this.getTypedRuleContext(ControlStatementContext, 0) as ControlStatementContext; - } - public nonControlStatement(): NonControlStatementContext { - return this.getTypedRuleContext(NonControlStatementContext, 0) as NonControlStatementContext; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_statement; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitStatement) { - return visitor.visitStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class NonControlStatementContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public variableDefinition(): VariableDefinitionContext { - return this.getTypedRuleContext(VariableDefinitionContext, 0) as VariableDefinitionContext; - } - public tupleAssignment(): TupleAssignmentContext { - return this.getTypedRuleContext(TupleAssignmentContext, 0) as TupleAssignmentContext; - } - public assignStatement(): AssignStatementContext { - return this.getTypedRuleContext(AssignStatementContext, 0) as AssignStatementContext; - } - public timeOpStatement(): TimeOpStatementContext { - return this.getTypedRuleContext(TimeOpStatementContext, 0) as TimeOpStatementContext; - } - public requireStatement(): RequireStatementContext { - return this.getTypedRuleContext(RequireStatementContext, 0) as RequireStatementContext; - } - public consoleStatement(): ConsoleStatementContext { - return this.getTypedRuleContext(ConsoleStatementContext, 0) as ConsoleStatementContext; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_nonControlStatement; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitNonControlStatement) { - return visitor.visitNonControlStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ControlStatementContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public ifStatement(): IfStatementContext { - return this.getTypedRuleContext(IfStatementContext, 0) as IfStatementContext; - } - public loopStatement(): LoopStatementContext { - return this.getTypedRuleContext(LoopStatementContext, 0) as LoopStatementContext; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_controlStatement; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitControlStatement) { - return visitor.visitControlStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class VariableDefinitionContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public typeName(): TypeNameContext { - return this.getTypedRuleContext(TypeNameContext, 0) as TypeNameContext; - } - public Identifier(): TerminalNode { - return this.getToken(CashScriptParser.Identifier, 0); - } - public expression(): ExpressionContext { - return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; - } - public modifier_list(): ModifierContext[] { - return this.getTypedRuleContexts(ModifierContext) as ModifierContext[]; - } - public modifier(i: number): ModifierContext { - return this.getTypedRuleContext(ModifierContext, i) as ModifierContext; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_variableDefinition; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitVariableDefinition) { - return visitor.visitVariableDefinition(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class TupleAssignmentContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public typeName_list(): TypeNameContext[] { - return this.getTypedRuleContexts(TypeNameContext) as TypeNameContext[]; - } - public typeName(i: number): TypeNameContext { - return this.getTypedRuleContext(TypeNameContext, i) as TypeNameContext; - } - public Identifier_list(): TerminalNode[] { - return this.getTokens(CashScriptParser.Identifier); - } - public Identifier(i: number): TerminalNode { - return this.getToken(CashScriptParser.Identifier, i); - } - public expression(): ExpressionContext { - return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_tupleAssignment; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitTupleAssignment) { - return visitor.visitTupleAssignment(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class AssignStatementContext extends ParserRuleContext { - public _op!: Token; - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public Identifier(): TerminalNode { - return this.getToken(CashScriptParser.Identifier, 0); - } - public expression(): ExpressionContext { - return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_assignStatement; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitAssignStatement) { - return visitor.visitAssignStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class TimeOpStatementContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public TxVar(): TerminalNode { - return this.getToken(CashScriptParser.TxVar, 0); - } - public expression(): ExpressionContext { - return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; - } - public requireMessage(): RequireMessageContext { - return this.getTypedRuleContext(RequireMessageContext, 0) as RequireMessageContext; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_timeOpStatement; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitTimeOpStatement) { - return visitor.visitTimeOpStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class RequireStatementContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public expression(): ExpressionContext { - return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; - } - public requireMessage(): RequireMessageContext { - return this.getTypedRuleContext(RequireMessageContext, 0) as RequireMessageContext; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_requireStatement; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitRequireStatement) { - return visitor.visitRequireStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ConsoleStatementContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public consoleParameterList(): ConsoleParameterListContext { - return this.getTypedRuleContext(ConsoleParameterListContext, 0) as ConsoleParameterListContext; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_consoleStatement; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitConsoleStatement) { - return visitor.visitConsoleStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class IfStatementContext extends ParserRuleContext { - public _ifBlock!: BlockContext; - public _elseBlock!: BlockContext; - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public expression(): ExpressionContext { - return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; - } - public block_list(): BlockContext[] { - return this.getTypedRuleContexts(BlockContext) as BlockContext[]; - } - public block(i: number): BlockContext { - return this.getTypedRuleContext(BlockContext, i) as BlockContext; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_ifStatement; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitIfStatement) { - return visitor.visitIfStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class LoopStatementContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public doWhileStatement(): DoWhileStatementContext { - return this.getTypedRuleContext(DoWhileStatementContext, 0) as DoWhileStatementContext; - } - public whileStatement(): WhileStatementContext { - return this.getTypedRuleContext(WhileStatementContext, 0) as WhileStatementContext; - } - public forStatement(): ForStatementContext { - return this.getTypedRuleContext(ForStatementContext, 0) as ForStatementContext; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_loopStatement; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitLoopStatement) { - return visitor.visitLoopStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DoWhileStatementContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public block(): BlockContext { - return this.getTypedRuleContext(BlockContext, 0) as BlockContext; - } - public expression(): ExpressionContext { - return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_doWhileStatement; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitDoWhileStatement) { - return visitor.visitDoWhileStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class WhileStatementContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public expression(): ExpressionContext { - return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; - } - public block(): BlockContext { - return this.getTypedRuleContext(BlockContext, 0) as BlockContext; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_whileStatement; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitWhileStatement) { - return visitor.visitWhileStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ForStatementContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public forInit(): ForInitContext { - return this.getTypedRuleContext(ForInitContext, 0) as ForInitContext; - } - public expression(): ExpressionContext { - return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; - } - public assignStatement(): AssignStatementContext { - return this.getTypedRuleContext(AssignStatementContext, 0) as AssignStatementContext; - } - public block(): BlockContext { - return this.getTypedRuleContext(BlockContext, 0) as BlockContext; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_forStatement; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitForStatement) { - return visitor.visitForStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ForInitContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public variableDefinition(): VariableDefinitionContext { - return this.getTypedRuleContext(VariableDefinitionContext, 0) as VariableDefinitionContext; - } - public assignStatement(): AssignStatementContext { - return this.getTypedRuleContext(AssignStatementContext, 0) as AssignStatementContext; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_forInit; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitForInit) { - return visitor.visitForInit(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class RequireMessageContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public StringLiteral(): TerminalNode { - return this.getToken(CashScriptParser.StringLiteral, 0); - } - public get ruleIndex(): number { - return CashScriptParser.RULE_requireMessage; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitRequireMessage) { - return visitor.visitRequireMessage(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ConsoleParameterContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public Identifier(): TerminalNode { - return this.getToken(CashScriptParser.Identifier, 0); - } - public literal(): LiteralContext { - return this.getTypedRuleContext(LiteralContext, 0) as LiteralContext; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_consoleParameter; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitConsoleParameter) { - return visitor.visitConsoleParameter(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ConsoleParameterListContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public consoleParameter_list(): ConsoleParameterContext[] { - return this.getTypedRuleContexts(ConsoleParameterContext) as ConsoleParameterContext[]; - } - public consoleParameter(i: number): ConsoleParameterContext { - return this.getTypedRuleContext(ConsoleParameterContext, i) as ConsoleParameterContext; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_consoleParameterList; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitConsoleParameterList) { - return visitor.visitConsoleParameterList(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class FunctionCallContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public Identifier(): TerminalNode { - return this.getToken(CashScriptParser.Identifier, 0); - } - public expressionList(): ExpressionListContext { - return this.getTypedRuleContext(ExpressionListContext, 0) as ExpressionListContext; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_functionCall; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitFunctionCall) { - return visitor.visitFunctionCall(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ExpressionListContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, 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 get ruleIndex(): number { - return CashScriptParser.RULE_expressionList; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitExpressionList) { - return visitor.visitExpressionList(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ExpressionContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_expression; - } - public copyFrom(ctx: ExpressionContext): void { - super.copyFrom(ctx); - } -} -export class CastContext extends ExpressionContext { - public _castable!: ExpressionContext; - constructor(parser: CashScriptParser, ctx: ExpressionContext) { - super(parser, ctx.parentCtx, ctx.invokingState); - super.copyFrom(ctx); - } - public typeCast(): TypeCastContext { - return this.getTypedRuleContext(TypeCastContext, 0) as TypeCastContext; - } - public expression(): ExpressionContext { - return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitCast) { - return visitor.visitCast(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class UnaryIntrospectionOpContext extends ExpressionContext { - public _scope!: Token; - public _op!: Token; - constructor(parser: CashScriptParser, ctx: ExpressionContext) { - super(parser, ctx.parentCtx, ctx.invokingState); - super.copyFrom(ctx); - } - public expression(): ExpressionContext { - return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitUnaryIntrospectionOp) { - return visitor.visitUnaryIntrospectionOp(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class UnaryOpContext extends ExpressionContext { - public _op!: Token; - constructor(parser: CashScriptParser, ctx: ExpressionContext) { - super(parser, ctx.parentCtx, ctx.invokingState); - super.copyFrom(ctx); - } - public expression(): ExpressionContext { - return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitUnaryOp) { - return visitor.visitUnaryOp(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class LiteralExpressionContext extends ExpressionContext { - constructor(parser: CashScriptParser, ctx: ExpressionContext) { - super(parser, ctx.parentCtx, ctx.invokingState); - super.copyFrom(ctx); - } - public literal(): LiteralContext { - return this.getTypedRuleContext(LiteralContext, 0) as LiteralContext; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitLiteralExpression) { - return visitor.visitLiteralExpression(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class FunctionCallExpressionContext extends ExpressionContext { - constructor(parser: CashScriptParser, ctx: ExpressionContext) { - super(parser, ctx.parentCtx, ctx.invokingState); - super.copyFrom(ctx); - } - public functionCall(): FunctionCallContext { - return this.getTypedRuleContext(FunctionCallContext, 0) as FunctionCallContext; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitFunctionCallExpression) { - return visitor.visitFunctionCallExpression(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ArrayContext extends ExpressionContext { - constructor(parser: CashScriptParser, ctx: ExpressionContext) { - super(parser, ctx.parentCtx, ctx.invokingState); - super.copyFrom(ctx); - } - public expression_list(): ExpressionContext[] { - return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[]; - } - public expression(i: number): ExpressionContext { - return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitArray) { - return visitor.visitArray(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class IdentifierContext extends ExpressionContext { - constructor(parser: CashScriptParser, ctx: ExpressionContext) { - super(parser, ctx.parentCtx, ctx.invokingState); - super.copyFrom(ctx); - } - public Identifier(): TerminalNode { - return this.getToken(CashScriptParser.Identifier, 0); - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitIdentifier) { - return visitor.visitIdentifier(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class SliceContext extends ExpressionContext { - public _element!: ExpressionContext; - public _start!: ExpressionContext; - public _end!: ExpressionContext; - constructor(parser: CashScriptParser, ctx: ExpressionContext) { - super(parser, ctx.parentCtx, ctx.invokingState); - super.copyFrom(ctx); - } - public expression_list(): ExpressionContext[] { - return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[]; - } - public expression(i: number): ExpressionContext { - return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitSlice) { - return visitor.visitSlice(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TupleIndexOpContext extends ExpressionContext { - public _index!: Token; - constructor(parser: CashScriptParser, ctx: ExpressionContext) { - super(parser, ctx.parentCtx, ctx.invokingState); - super.copyFrom(ctx); - } - public expression(): ExpressionContext { - return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; - } - public NumberLiteral(): TerminalNode { - return this.getToken(CashScriptParser.NumberLiteral, 0); - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitTupleIndexOp) { - return visitor.visitTupleIndexOp(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class InstantiationContext extends ExpressionContext { - constructor(parser: CashScriptParser, ctx: ExpressionContext) { - super(parser, ctx.parentCtx, ctx.invokingState); - super.copyFrom(ctx); - } - public Identifier(): TerminalNode { - return this.getToken(CashScriptParser.Identifier, 0); - } - public expressionList(): ExpressionListContext { - return this.getTypedRuleContext(ExpressionListContext, 0) as ExpressionListContext; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitInstantiation) { - return visitor.visitInstantiation(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class NullaryOpContext extends ExpressionContext { - constructor(parser: CashScriptParser, ctx: ExpressionContext) { - super(parser, ctx.parentCtx, ctx.invokingState); - super.copyFrom(ctx); - } - public NullaryOp(): TerminalNode { - return this.getToken(CashScriptParser.NullaryOp, 0); - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitNullaryOp) { - return visitor.visitNullaryOp(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ParenthesisedContext extends ExpressionContext { - constructor(parser: CashScriptParser, ctx: ExpressionContext) { - super(parser, ctx.parentCtx, ctx.invokingState); - super.copyFrom(ctx); - } - public expression(): ExpressionContext { - return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitParenthesised) { - return visitor.visitParenthesised(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class BinaryOpContext extends ExpressionContext { - public _left!: ExpressionContext; - public _op!: Token; - public _right!: ExpressionContext; - constructor(parser: CashScriptParser, ctx: ExpressionContext) { - super(parser, ctx.parentCtx, ctx.invokingState); - super.copyFrom(ctx); - } - public expression_list(): ExpressionContext[] { - return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[]; - } - public expression(i: number): ExpressionContext { - return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitBinaryOp) { - return visitor.visitBinaryOp(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ModifierContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public get ruleIndex(): number { - return CashScriptParser.RULE_modifier; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitModifier) { - return visitor.visitModifier(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class LiteralContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public BooleanLiteral(): TerminalNode { - return this.getToken(CashScriptParser.BooleanLiteral, 0); - } - public numberLiteral(): NumberLiteralContext { - return this.getTypedRuleContext(NumberLiteralContext, 0) as NumberLiteralContext; - } - public StringLiteral(): TerminalNode { - return this.getToken(CashScriptParser.StringLiteral, 0); - } - public DateLiteral(): TerminalNode { - return this.getToken(CashScriptParser.DateLiteral, 0); - } - public HexLiteral(): TerminalNode { - return this.getToken(CashScriptParser.HexLiteral, 0); - } - public get ruleIndex(): number { - return CashScriptParser.RULE_literal; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitLiteral) { - return visitor.visitLiteral(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class NumberLiteralContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public NumberLiteral(): TerminalNode { - return this.getToken(CashScriptParser.NumberLiteral, 0); - } - public NumberUnit(): TerminalNode { - return this.getToken(CashScriptParser.NumberUnit, 0); - } - public get ruleIndex(): number { - return CashScriptParser.RULE_numberLiteral; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitNumberLiteral) { - return visitor.visitNumberLiteral(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class TypeNameContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public PrimitiveType(): TerminalNode { - return this.getToken(CashScriptParser.PrimitiveType, 0); - } - public BoundedBytes(): TerminalNode { - return this.getToken(CashScriptParser.BoundedBytes, 0); - } - public UnboundedBytes(): TerminalNode { - return this.getToken(CashScriptParser.UnboundedBytes, 0); - } - public get ruleIndex(): number { - return CashScriptParser.RULE_typeName; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitTypeName) { - return visitor.visitTypeName(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class TypeCastContext extends ParserRuleContext { - constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number) { - super(parent, invokingState); - this.parser = parser; - } - public PrimitiveType(): TerminalNode { - return this.getToken(CashScriptParser.PrimitiveType, 0); - } - public UnboundedBytes(): TerminalNode { - return this.getToken(CashScriptParser.UnboundedBytes, 0); - } - public UnsafeCast(): TerminalNode { - return this.getToken(CashScriptParser.UnsafeCast, 0); - } - public get ruleIndex(): number { - return CashScriptParser.RULE_typeCast; - } - // @Override - public accept(visitor: CashScriptVisitor): Result { - if (visitor.visitTypeCast) { - return visitor.visitTypeCast(this); - } else { - return visitor.visitChildren(this); - } - } -} diff --git a/src/CashscriptLinter/grammar/CashScriptVisitor.ts b/src/CashscriptLinter/grammar/CashScriptVisitor.ts deleted file mode 100644 index c1d8ebf..0000000 --- a/src/CashscriptLinter/grammar/CashScriptVisitor.ts +++ /dev/null @@ -1,373 +0,0 @@ -// Generated from src/grammar/CashScript.g4 by ANTLR 4.13.1 - -import {ParseTreeVisitor} from 'antlr4'; - - -import { SourceFileContext } from "./CashScriptParser.js"; -import { PragmaDirectiveContext } from "./CashScriptParser.js"; -import { PragmaNameContext } from "./CashScriptParser.js"; -import { PragmaValueContext } from "./CashScriptParser.js"; -import { VersionConstraintContext } from "./CashScriptParser.js"; -import { VersionOperatorContext } from "./CashScriptParser.js"; -import { ContractDefinitionContext } from "./CashScriptParser.js"; -import { FunctionDefinitionContext } from "./CashScriptParser.js"; -import { ParameterListContext } from "./CashScriptParser.js"; -import { ParameterContext } from "./CashScriptParser.js"; -import { BlockContext } from "./CashScriptParser.js"; -import { StatementContext } from "./CashScriptParser.js"; -import { NonControlStatementContext } from "./CashScriptParser.js"; -import { ControlStatementContext } from "./CashScriptParser.js"; -import { VariableDefinitionContext } from "./CashScriptParser.js"; -import { TupleAssignmentContext } from "./CashScriptParser.js"; -import { AssignStatementContext } from "./CashScriptParser.js"; -import { TimeOpStatementContext } from "./CashScriptParser.js"; -import { RequireStatementContext } from "./CashScriptParser.js"; -import { ConsoleStatementContext } from "./CashScriptParser.js"; -import { IfStatementContext } from "./CashScriptParser.js"; -import { LoopStatementContext } from "./CashScriptParser.js"; -import { DoWhileStatementContext } from "./CashScriptParser.js"; -import { WhileStatementContext } from "./CashScriptParser.js"; -import { ForStatementContext } from "./CashScriptParser.js"; -import { ForInitContext } from "./CashScriptParser.js"; -import { RequireMessageContext } from "./CashScriptParser.js"; -import { ConsoleParameterContext } from "./CashScriptParser.js"; -import { ConsoleParameterListContext } from "./CashScriptParser.js"; -import { FunctionCallContext } from "./CashScriptParser.js"; -import { ExpressionListContext } from "./CashScriptParser.js"; -import { CastContext } from "./CashScriptParser.js"; -import { UnaryIntrospectionOpContext } from "./CashScriptParser.js"; -import { UnaryOpContext } from "./CashScriptParser.js"; -import { LiteralExpressionContext } from "./CashScriptParser.js"; -import { FunctionCallExpressionContext } from "./CashScriptParser.js"; -import { ArrayContext } from "./CashScriptParser.js"; -import { IdentifierContext } from "./CashScriptParser.js"; -import { SliceContext } from "./CashScriptParser.js"; -import { TupleIndexOpContext } from "./CashScriptParser.js"; -import { InstantiationContext } from "./CashScriptParser.js"; -import { NullaryOpContext } from "./CashScriptParser.js"; -import { ParenthesisedContext } from "./CashScriptParser.js"; -import { BinaryOpContext } from "./CashScriptParser.js"; -import { ModifierContext } from "./CashScriptParser.js"; -import { LiteralContext } from "./CashScriptParser.js"; -import { NumberLiteralContext } from "./CashScriptParser.js"; -import { TypeNameContext } from "./CashScriptParser.js"; -import { TypeCastContext } from "./CashScriptParser.js"; - - -/** - * This interface defines a complete generic visitor for a parse tree produced - * by `CashScriptParser`. - * - * @param The return type of the visit operation. Use `void` for - * operations with no return type. - */ -export default class CashScriptVisitor extends ParseTreeVisitor { - /** - * Visit a parse tree produced by `CashScriptParser.sourceFile`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSourceFile?: (ctx: SourceFileContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.pragmaDirective`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPragmaDirective?: (ctx: PragmaDirectiveContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.pragmaName`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPragmaName?: (ctx: PragmaNameContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.pragmaValue`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPragmaValue?: (ctx: PragmaValueContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.versionConstraint`. - * @param ctx the parse tree - * @return the visitor result - */ - visitVersionConstraint?: (ctx: VersionConstraintContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.versionOperator`. - * @param ctx the parse tree - * @return the visitor result - */ - visitVersionOperator?: (ctx: VersionOperatorContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.contractDefinition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitContractDefinition?: (ctx: ContractDefinitionContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.functionDefinition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitFunctionDefinition?: (ctx: FunctionDefinitionContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.parameterList`. - * @param ctx the parse tree - * @return the visitor result - */ - visitParameterList?: (ctx: ParameterListContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.parameter`. - * @param ctx the parse tree - * @return the visitor result - */ - visitParameter?: (ctx: ParameterContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.block`. - * @param ctx the parse tree - * @return the visitor result - */ - visitBlock?: (ctx: BlockContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.statement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitStatement?: (ctx: StatementContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.nonControlStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitNonControlStatement?: (ctx: NonControlStatementContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.controlStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitControlStatement?: (ctx: ControlStatementContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.variableDefinition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitVariableDefinition?: (ctx: VariableDefinitionContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.tupleAssignment`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTupleAssignment?: (ctx: TupleAssignmentContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.assignStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAssignStatement?: (ctx: AssignStatementContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.timeOpStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTimeOpStatement?: (ctx: TimeOpStatementContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.requireStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitRequireStatement?: (ctx: RequireStatementContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.consoleStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitConsoleStatement?: (ctx: ConsoleStatementContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.ifStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitIfStatement?: (ctx: IfStatementContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.loopStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLoopStatement?: (ctx: LoopStatementContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.doWhileStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDoWhileStatement?: (ctx: DoWhileStatementContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.whileStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitWhileStatement?: (ctx: WhileStatementContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.forStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitForStatement?: (ctx: ForStatementContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.forInit`. - * @param ctx the parse tree - * @return the visitor result - */ - visitForInit?: (ctx: ForInitContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.requireMessage`. - * @param ctx the parse tree - * @return the visitor result - */ - visitRequireMessage?: (ctx: RequireMessageContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.consoleParameter`. - * @param ctx the parse tree - * @return the visitor result - */ - visitConsoleParameter?: (ctx: ConsoleParameterContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.consoleParameterList`. - * @param ctx the parse tree - * @return the visitor result - */ - visitConsoleParameterList?: (ctx: ConsoleParameterListContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.functionCall`. - * @param ctx the parse tree - * @return the visitor result - */ - visitFunctionCall?: (ctx: FunctionCallContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.expressionList`. - * @param ctx the parse tree - * @return the visitor result - */ - visitExpressionList?: (ctx: ExpressionListContext) => Result; - /** - * Visit a parse tree produced by the `Cast` - * labeled alternative in `CashScriptParser.expression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCast?: (ctx: CastContext) => Result; - /** - * Visit a parse tree produced by the `UnaryIntrospectionOp` - * labeled alternative in `CashScriptParser.expression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUnaryIntrospectionOp?: (ctx: UnaryIntrospectionOpContext) => Result; - /** - * Visit a parse tree produced by the `UnaryOp` - * labeled alternative in `CashScriptParser.expression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUnaryOp?: (ctx: UnaryOpContext) => Result; - /** - * Visit a parse tree produced by the `LiteralExpression` - * labeled alternative in `CashScriptParser.expression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLiteralExpression?: (ctx: LiteralExpressionContext) => Result; - /** - * Visit a parse tree produced by the `FunctionCallExpression` - * labeled alternative in `CashScriptParser.expression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitFunctionCallExpression?: (ctx: FunctionCallExpressionContext) => Result; - /** - * Visit a parse tree produced by the `Array` - * labeled alternative in `CashScriptParser.expression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitArray?: (ctx: ArrayContext) => Result; - /** - * Visit a parse tree produced by the `Identifier` - * labeled alternative in `CashScriptParser.expression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitIdentifier?: (ctx: IdentifierContext) => Result; - /** - * Visit a parse tree produced by the `Slice` - * labeled alternative in `CashScriptParser.expression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSlice?: (ctx: SliceContext) => Result; - /** - * Visit a parse tree produced by the `TupleIndexOp` - * labeled alternative in `CashScriptParser.expression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTupleIndexOp?: (ctx: TupleIndexOpContext) => Result; - /** - * Visit a parse tree produced by the `Instantiation` - * labeled alternative in `CashScriptParser.expression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitInstantiation?: (ctx: InstantiationContext) => Result; - /** - * Visit a parse tree produced by the `NullaryOp` - * labeled alternative in `CashScriptParser.expression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitNullaryOp?: (ctx: NullaryOpContext) => Result; - /** - * Visit a parse tree produced by the `Parenthesised` - * labeled alternative in `CashScriptParser.expression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitParenthesised?: (ctx: ParenthesisedContext) => Result; - /** - * Visit a parse tree produced by the `BinaryOp` - * labeled alternative in `CashScriptParser.expression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitBinaryOp?: (ctx: BinaryOpContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.modifier`. - * @param ctx the parse tree - * @return the visitor result - */ - visitModifier?: (ctx: ModifierContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.literal`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLiteral?: (ctx: LiteralContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.numberLiteral`. - * @param ctx the parse tree - * @return the visitor result - */ - visitNumberLiteral?: (ctx: NumberLiteralContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.typeName`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTypeName?: (ctx: TypeNameContext) => Result; - /** - * Visit a parse tree produced by `CashScriptParser.typeCast`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTypeCast?: (ctx: TypeCastContext) => Result; -} - diff --git a/src/server.ts b/src/server.ts index 8b48925..e80a01e 100644 --- a/src/server.ts +++ b/src/server.ts @@ -43,7 +43,7 @@ documents.onDidChangeContent((change) => { */ async function validateDocument(textDocument: TextDocument): Promise { const code = textDocument.getText(); - const diagnostics = CashscriptLinter.getDiagnostics(code); + const diagnostics = await CashscriptLinter.getDiagnostics(code); connection.sendDiagnostics({ uri: textDocument.uri, diagnostics, diff --git a/yarn.lock b/yarn.lock index ff2db90..6743a89 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,6 +5,22 @@ __metadata: version: 8 cacheKey: 10c0 +"@bitauth/libauth@npm:^3.1.0-next.8": + version: 3.1.0-next.8 + resolution: "@bitauth/libauth@npm:3.1.0-next.8" + checksum: 10c0/2f984ff30350502418dc08727963ff28505ead5b72a9ebe330bddf8b7b12a5983708b82f37713949a07e5ec26937f1405683b5402e327ea867e85288af43385c + languageName: node + linkType: hard + +"@cashscript/utils@npm:^0.13.0": + version: 0.13.0 + resolution: "@cashscript/utils@npm:0.13.0" + dependencies: + "@bitauth/libauth": "npm:^3.1.0-next.8" + checksum: 10c0/1ce23b29d5ede012023130029b389a00d81a1e4d8531520e880482c55727c141e1415c2f92fafb3c7b5604f6994d04faf6a06cd3201d5ab4813af68eed29b930 + languageName: node + linkType: hard + "@isaacs/cliui@npm:^8.0.2": version: 8.0.2 resolution: "@isaacs/cliui@npm:8.0.2" @@ -312,13 +328,28 @@ __metadata: languageName: node linkType: hard +"cashc@file:../cashscript/packages/cashc::locator=cashscript-vscode%40workspace%3A.": + version: 0.13.0 + resolution: "cashc@file:../cashscript/packages/cashc#../cashscript/packages/cashc::hash=acb227&locator=cashscript-vscode%40workspace%3A." + dependencies: + "@bitauth/libauth": "npm:^3.1.0-next.8" + "@cashscript/utils": "npm:^0.13.0" + antlr4: "npm:^4.13.2" + commander: "npm:^14.0.0" + semver: "npm:^7.7.2" + bin: + cashc: dist/cashc-cli.js + checksum: 10c0/a5a564f3f0f483b8e25741d3d940e4e8d398d27c6056f755a41712e7df05784d425959c9a546178b232ef454657e08a176ab7759ac3bb98bb0bf4a94e31b726f + languageName: node + linkType: hard + "cashscript-vscode@workspace:.": version: 0.0.0-use.local resolution: "cashscript-vscode@workspace:." dependencies: "@types/node": "npm:^18.7.23" "@types/vscode": "npm:^1.83.0" - antlr4: "npm:^4.13.2" + cashc: "file:../cashscript/packages/cashc" esbuild: "npm:^0.12.29" prettier: "npm:^3.4.2" typescript: "npm:^5.7.3" @@ -429,6 +460,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^14.0.0": + version: 14.0.3 + resolution: "commander@npm:14.0.3" + checksum: 10c0/755652564bbf56ff2ff083313912b326450d3f8d8c85f4b71416539c9a05c3c67dbd206821ca72635bf6b160e2afdefcb458e86b317827d5cb333b69ce7f1a24 + languageName: node + linkType: hard + "commander@npm:^6.1.0": version: 6.2.1 resolution: "commander@npm:6.2.1" @@ -1677,6 +1715,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:^7.7.2": + version: 7.8.1 + resolution: "semver@npm:7.8.1" + bin: + semver: bin/semver.js + checksum: 10c0/92d6871d6347e1f99d0ba396a70f2545ccf2a032cda3d378fa0699edf7506b5c6d266aed55c8b88e72bd91a30d2351e4f39db479375374430fcdc4b58f4e3c1a + languageName: node + linkType: hard + "setimmediate@npm:~1.0.4": version: 1.0.5 resolution: "setimmediate@npm:1.0.5"