Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

cashc

Package Overview
Dependencies
Maintainers
1
Versions
61
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cashc - npm Package Compare versions

Comparing version 0.9.2 to 0.9.3

13

dist/ast/AstBuilder.d.ts

@@ -1,7 +0,6 @@

import { AbstractParseTreeVisitor } from 'antlr4ts/tree/AbstractParseTreeVisitor.js';
import { ParseTree } from 'antlr4ts/tree/ParseTree.js';
import { Node, SourceFileNode, ContractNode, ParameterNode, VariableDefinitionNode, FunctionDefinitionNode, AssignNode, IdentifierNode, BranchNode, CastNode, FunctionCallNode, UnaryOpNode, BinaryOpNode, BoolLiteralNode, IntLiteralNode, HexLiteralNode, StringLiteralNode, ExpressionNode, LiteralNode, BlockNode, TimeOpNode, ArrayNode, TupleIndexOpNode, RequireNode, InstantiationNode, TupleAssignmentNode, NullaryOpNode } from './AST.js';
import type { ContractDefinitionContext, FunctionDefinitionContext, VariableDefinitionContext, TupleAssignmentContext, ParameterContext, AssignStatementContext, IfStatementContext, FunctionCallContext, CastContext, LiteralContext, SourceFileContext, BlockContext, TimeOpStatementContext, ArrayContext, ParenthesisedContext, FunctionCallExpressionContext, UnaryOpContext, BinaryOpContext, IdentifierContext, LiteralExpressionContext, TupleIndexOpContext, RequireStatementContext, PragmaDirectiveContext, InstantiationContext, NullaryOpContext, UnaryIntrospectionOpContext } from '../grammar/CashScriptParser.js';
import type { CashScriptVisitor } from '../grammar/CashScriptVisitor.js';
export default class AstBuilder extends AbstractParseTreeVisitor<Node> implements CashScriptVisitor<Node> {
import { ParseTree, ParseTreeVisitor } from 'antlr4';
import { Node, SourceFileNode, ContractNode, ParameterNode, VariableDefinitionNode, FunctionDefinitionNode, AssignNode, IdentifierNode, BranchNode, CastNode, FunctionCallNode, UnaryOpNode, BinaryOpNode, BoolLiteralNode, IntLiteralNode, HexLiteralNode, StringLiteralNode, ExpressionNode, StatementNode, LiteralNode, BlockNode, TimeOpNode, ArrayNode, TupleIndexOpNode, RequireNode, InstantiationNode, TupleAssignmentNode, NullaryOpNode } from './AST.js';
import type { ContractDefinitionContext, FunctionDefinitionContext, VariableDefinitionContext, TupleAssignmentContext, ParameterContext, AssignStatementContext, IfStatementContext, FunctionCallContext, CastContext, LiteralContext, SourceFileContext, BlockContext, TimeOpStatementContext, ArrayContext, ParenthesisedContext, FunctionCallExpressionContext, UnaryOpContext, BinaryOpContext, IdentifierContext, LiteralExpressionContext, TupleIndexOpContext, RequireStatementContext, PragmaDirectiveContext, InstantiationContext, NullaryOpContext, UnaryIntrospectionOpContext, StatementContext } from '../grammar/CashScriptParser.js';
import CashScriptVisitor from '../grammar/CashScriptVisitor.js';
export default class AstBuilder extends ParseTreeVisitor<Node> implements CashScriptVisitor<Node> {
private tree;

@@ -16,2 +15,3 @@ constructor(tree: ParseTree);

visitParameter(ctx: ParameterContext): ParameterNode;
visitStatement(ctx: StatementContext): StatementNode;
visitVariableDefinition(ctx: VariableDefinitionContext): VariableDefinitionNode;

@@ -43,2 +43,3 @@ visitTupleAssignment(ctx: TupleAssignmentContext): TupleAssignmentNode;

createHexLiteral(ctx: LiteralContext): HexLiteralNode;
visitChildren(): Node;
}

@@ -0,4 +1,4 @@

import { ParseTreeVisitor } from 'antlr4';
import { hexToBin } from '@bitauth/libauth';
import { parseType } from '@cashscript/utils';
import { AbstractParseTreeVisitor } from 'antlr4ts/tree/AbstractParseTreeVisitor.js';
import semver from 'semver';

@@ -11,3 +11,3 @@ import { SourceFileNode, ContractNode, ParameterNode, VariableDefinitionNode, FunctionDefinitionNode, AssignNode, IdentifierNode, BranchNode, CastNode, FunctionCallNode, UnaryOpNode, BinaryOpNode, BoolLiteralNode, IntLiteralNode, HexLiteralNode, StringLiteralNode, BlockNode, TimeOpNode, ArrayNode, TupleIndexOpNode, RequireNode, InstantiationNode, TupleAssignmentNode, NullaryOpNode, } from './AST.js';

import { ParseError, VersionError } from '../Errors.js';
export default class AstBuilder extends AbstractParseTreeVisitor {
export default class AstBuilder extends ParseTreeVisitor {
constructor(tree) {

@@ -24,3 +24,3 @@ super();

visitSourceFile(ctx) {
ctx.pragmaDirective().forEach((pragma) => {
ctx.pragmaDirective_list().forEach((pragma) => {
this.processPragma(pragma);

@@ -34,3 +34,3 @@ });

processPragma(ctx) {
const pragmaName = getPragmaName(ctx.pragmaName().text);
const pragmaName = getPragmaName(ctx.pragmaName().getText());
if (pragmaName !== PragmaName.CASHSCRIPT)

@@ -40,5 +40,5 @@ throw new Error(); // Shouldn't happen

const actualVersion = version.replace(/-.*/g, '');
ctx.pragmaValue().versionConstraint().forEach((constraint) => {
ctx.pragmaValue().versionConstraint_list().forEach((constraint) => {
const op = getVersionOpFromCtx(constraint.versionOperator());
const versionConstraint = `${op}${constraint.VersionLiteral().text}`;
const versionConstraint = `${op}${constraint.VersionLiteral().getText()}`;
if (!semver.satisfies(actualVersion, versionConstraint)) {

@@ -50,5 +50,5 @@ throw new VersionError(actualVersion, versionConstraint);

visitContractDefinition(ctx) {
const name = ctx.Identifier().text;
const parameters = ctx.parameterList().parameter().map((p) => this.visit(p));
const functions = ctx.functionDefinition().map((f) => this.visit(f));
const name = ctx.Identifier().getText();
const parameters = ctx.parameterList().parameter_list().map((p) => this.visit(p));
const functions = ctx.functionDefinition_list().map((f) => this.visit(f));
const contract = new ContractNode(name, parameters, functions);

@@ -59,5 +59,5 @@ contract.location = Location.fromCtx(ctx);

visitFunctionDefinition(ctx) {
const name = ctx.Identifier().text;
const parameters = ctx.parameterList().parameter().map((p) => this.visit(p));
const statements = ctx.statement().map((s) => this.visit(s));
const name = ctx.Identifier().getText();
const parameters = ctx.parameterList().parameter_list().map((p) => this.visit(p));
const statements = ctx.statement_list().map((s) => this.visit(s));
const block = new BlockNode(statements);

@@ -70,4 +70,4 @@ block.location = Location.fromCtx(ctx);

visitParameter(ctx) {
const type = parseType(ctx.typeName().text);
const name = ctx.Identifier().text;
const type = parseType(ctx.typeName().getText());
const name = ctx.Identifier().getText();
const parameter = new ParameterNode(type, name);

@@ -77,6 +77,10 @@ parameter.location = Location.fromCtx(ctx);

}
visitStatement(ctx) {
// Statement nodes only have a single child, so we can just visit that child
return this.visit(ctx.getChild(0));
}
visitVariableDefinition(ctx) {
const type = parseType(ctx.typeName().text);
const modifiers = ctx.modifier().map((modifier) => modifier.text);
const name = ctx.Identifier().text;
const type = parseType(ctx.typeName().getText());
const modifiers = ctx.modifier_list().map((modifier) => modifier.getText());
const name = ctx.Identifier().getText();
const expression = this.visit(ctx.expression());

@@ -89,5 +93,8 @@ const variableDefinition = new VariableDefinitionNode(type, modifiers, name, expression);

const expression = this.visit(ctx.expression());
const names = ctx.Identifier();
const types = ctx.typeName();
const [var1, var2] = names.map((name, i) => ({ name: name.text, type: parseType(types[i].text) }));
const names = ctx.Identifier_list();
const types = ctx.typeName_list();
const [var1, var2] = names.map((name, i) => ({
name: name.getText(),
type: parseType(types[i].getText()),
}));
const tupleAssignment = new TupleAssignmentNode(var1, var2, expression);

@@ -98,3 +105,3 @@ tupleAssignment.location = Location.fromCtx(ctx);

visitAssignStatement(ctx) {
const identifier = new IdentifierNode(ctx.Identifier().text);
const identifier = new IdentifierNode(ctx.Identifier().getText());
identifier.location = Location.fromToken(ctx.Identifier().symbol);

@@ -108,3 +115,3 @@ const expression = this.visit(ctx.expression());

const expression = this.visit(ctx.expression());
const timeOp = new TimeOpNode(ctx.TxVar().text, expression);
const timeOp = new TimeOpNode(ctx.TxVar().getText(), expression);
timeOp.location = Location.fromCtx(ctx);

@@ -128,3 +135,3 @@ return timeOp;

visitBlock(ctx) {
const statements = ctx.statement().map((s) => this.visit(s));
const statements = ctx.statement_list().map((s) => this.visit(s));
const block = new BlockNode(statements);

@@ -138,3 +145,3 @@ block.location = Location.fromCtx(ctx);

visitCast(ctx) {
const type = parseType(ctx.typeName().text);
const type = parseType(ctx.typeName().getText());
const expression = this.visit(ctx._castable);

@@ -150,5 +157,5 @@ const size = ctx._size && this.visit(ctx._size);

visitFunctionCall(ctx) {
const identifier = new IdentifierNode(ctx.Identifier().text);
const identifier = new IdentifierNode(ctx.Identifier().getText());
identifier.location = Location.fromToken(ctx.Identifier().symbol);
const parameters = ctx.expressionList().expression().map((e) => this.visit(e));
const parameters = ctx.expressionList().expression_list().map((e) => this.visit(e));
const functionCall = new FunctionCallNode(identifier, parameters);

@@ -159,5 +166,5 @@ functionCall.location = Location.fromCtx(ctx);

visitInstantiation(ctx) {
const identifier = new IdentifierNode(ctx.Identifier().text);
const identifier = new IdentifierNode(ctx.Identifier().getText());
identifier.location = Location.fromToken(ctx.Identifier().symbol);
const parameters = ctx.expressionList().expression().map((e) => this.visit(e));
const parameters = ctx.expressionList().expression_list().map((e) => this.visit(e));
const instantiation = new InstantiationNode(identifier, parameters);

@@ -175,3 +182,3 @@ instantiation.location = Location.fromCtx(ctx);

visitNullaryOp(ctx) {
const operator = ctx.text;
const operator = ctx.getText();
const nullaryOp = new NullaryOpNode(operator);

@@ -204,3 +211,3 @@ nullaryOp.location = Location.fromCtx(ctx);

visitArray(ctx) {
const elements = ctx.expression().map((e) => this.visit(e));
const elements = ctx.expression_list().map((e) => this.visit(e));
const array = new ArrayNode(elements);

@@ -211,3 +218,3 @@ array.location = Location.fromCtx(ctx);

visitIdentifier(ctx) {
const identifier = new IdentifierNode(ctx.Identifier().text);
const identifier = new IdentifierNode(ctx.Identifier().getText());
identifier.location = Location.fromCtx(ctx);

@@ -238,3 +245,3 @@ return identifier;

createBooleanLiteral(ctx) {
const boolString = ctx.BooleanLiteral().text;
const boolString = ctx.BooleanLiteral().getText();
const boolValue = boolString === 'true';

@@ -247,4 +254,4 @@ const booleanLiteral = new BoolLiteralNode(boolValue);

const numberCtx = ctx.numberLiteral();
const numberString = numberCtx.NumberLiteral().text;
const numberUnit = numberCtx.NumberUnit()?.text;
const numberString = numberCtx.NumberLiteral().getText();
const numberUnit = numberCtx.NumberUnit()?.getText();
const numberValue = BigInt(numberString) * BigInt(numberUnit ? NumberUnit[numberUnit.toUpperCase()] : 1);

@@ -256,3 +263,3 @@ const intLiteral = new IntLiteralNode(numberValue);

createStringLiteral(ctx) {
const rawString = ctx.StringLiteral().text;
const rawString = ctx.StringLiteral().getText();
const stringValue = rawString.substring(1, rawString.length - 1);

@@ -265,3 +272,3 @@ const quote = rawString.substring(0, 1);

createDateLiteral(ctx) {
const rawString = ctx.DateLiteral().text;
const rawString = ctx.DateLiteral().getText();
const stringValue = rawString.substring(6, rawString.length - 2).trim();

@@ -280,3 +287,3 @@ if (!/^\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d$/.test(stringValue)) {

createHexLiteral(ctx) {
const hexString = ctx.HexLiteral().text;
const hexString = ctx.HexLiteral().getText();
const hexValue = hexToBin(hexString.substring(2));

@@ -287,3 +294,8 @@ const hexLiteral = new HexLiteralNode(hexValue);

}
// For safety reasons, we throw an error when the "default" visitChildren is called. *All* nodes
// must have a custom visit method, so that we can be sure that we've covered all cases.
visitChildren() {
throw new Error('Safety Warning: Unhandled node in AST builder');
}
}
//# sourceMappingURL=AstBuilder.js.map

@@ -1,3 +0,2 @@

import type { ParserRuleContext } from 'antlr4ts/ParserRuleContext.js';
import type { Token } from 'antlr4ts';
import type { ParserRuleContext, Token } from 'antlr4';
export declare class Location {

@@ -4,0 +3,0 @@ start: Point;

@@ -9,4 +9,4 @@ export class Location {

const textLength = (stop.text ?? '').length;
const start = new Point(ctx.start.line, ctx.start.charPositionInLine);
const end = new Point(stop.line, stop.charPositionInLine + textLength);
const start = new Point(ctx.start.line, ctx.start.column);
const end = new Point(stop.line, stop.column + textLength);
return new Location(start, end);

@@ -16,4 +16,4 @@ }

const textLength = (token.text ?? '').length;
const start = new Point(token.line, token.charPositionInLine);
const end = new Point(token.line, token.charPositionInLine + textLength);
const start = new Point(token.line, token.column);
const end = new Point(token.line, token.column + textLength);
return new Location(start, end);

@@ -20,0 +20,0 @@ }

@@ -1,2 +0,2 @@

import { VersionOperatorContext } from '../grammar/CashScriptParser.js';
import type { VersionOperatorContext } from '../grammar/CashScriptParser.js';
export declare enum PragmaName {

@@ -3,0 +3,0 @@ CASHSCRIPT = "cashscript"

@@ -19,4 +19,4 @@ export var PragmaName;

export function getVersionOpFromCtx(ctx) {
return (ctx ? ctx.text : '=');
return (ctx ? ctx.getText() : '=');
}
//# sourceMappingURL=Pragma.js.map

@@ -1,2 +0,2 @@

import { ANTLRErrorListener, RecognitionException, Recognizer } from 'antlr4ts';
import { ErrorListener, RecognitionException, Recognizer } from 'antlr4';
/**

@@ -6,5 +6,5 @@ * ANTLR Error Listener that immediately throws on error. This is used so that

*/
export default class ThrowingErrorListener implements ANTLRErrorListener<any> {
static readonly INSTANCE: ThrowingErrorListener;
syntaxError<T>(recognizer: Recognizer<T, any>, offendingSymbol: T, line: number, charPositionInLine: number, message: string, e?: RecognitionException): void;
export default class ThrowingErrorListener<TSymbol> extends ErrorListener<TSymbol> {
static readonly INSTANCE: ThrowingErrorListener<unknown>;
syntaxError(recognizer: Recognizer<TSymbol>, offendingSymbol: TSymbol, line: number, charPositionInLine: number, message: string, e?: RecognitionException): void;
}

@@ -0,1 +1,3 @@

/* eslint-disable @typescript-eslint/no-unused-vars */
import { ErrorListener } from 'antlr4';
import { ParseError } from '../Errors.js';

@@ -7,3 +9,3 @@ import { Point } from './Location.js';

*/
export default class ThrowingErrorListener {
export default class ThrowingErrorListener extends ErrorListener {
syntaxError(recognizer, offendingSymbol, line, charPositionInLine, message, e) {

@@ -10,0 +12,0 @@ const capitalisedMessage = message.charAt(0).toUpperCase() + message.slice(1);

@@ -0,3 +1,3 @@

import { CharStream, CommonTokenStream } from 'antlr4';
import { optimiseBytecode } from '@cashscript/utils';
import { ANTLRInputStream, CommonTokenStream } from 'antlr4ts';
import fs from 'fs';

@@ -8,4 +8,4 @@ import { generateArtifact } from './artifact/Artifact.js';

import GenerateTargetTraversal from './generation/GenerateTargetTraversal.js';
import { CashScriptLexer } from './grammar/CashScriptLexer.js';
import { CashScriptParser } from './grammar/CashScriptParser.js';
import CashScriptLexer from './grammar/CashScriptLexer.js';
import CashScriptParser from './grammar/CashScriptParser.js';
import SymbolTableTraversal from './semantic/SymbolTableTraversal.js';

@@ -35,3 +35,3 @@ import TypeCheckTraversal from './semantic/TypeCheckTraversal.js';

// Lexing (throwing on errors)
const inputStream = new ANTLRInputStream(code);
const inputStream = new CharStream(code);
const lexer = new CashScriptLexer(inputStream);

@@ -38,0 +38,0 @@ lexer.removeErrorListeners();

@@ -1,6 +0,3 @@

import { ATN } from "antlr4ts/atn/ATN.js";
import { CharStream } from "antlr4ts/CharStream.js";
import { Lexer } from "antlr4ts/Lexer.js";
import { Vocabulary } from "antlr4ts/Vocabulary.js";
export declare class CashScriptLexer extends Lexer {
import { ATN, CharStream, DFA, Lexer } from "antlr4";
export default class CashScriptLexer extends Lexer {
static readonly T__0 = 1;

@@ -77,21 +74,20 @@ static readonly T__1 = 2;

static readonly LINE_COMMENT = 71;
static readonly EOF: number;
static readonly channelNames: string[];
static readonly literalNames: (string | null)[];
static readonly symbolicNames: (string | null)[];
static readonly modeNames: string[];
static readonly ruleNames: string[];
private static readonly _LITERAL_NAMES;
private static readonly _SYMBOLIC_NAMES;
static readonly VOCABULARY: Vocabulary;
get vocabulary(): Vocabulary;
constructor(input: CharStream);
get grammarFileName(): string;
get literalNames(): (string | null)[];
get symbolicNames(): (string | null)[];
get ruleNames(): string[];
get serializedATN(): string;
get serializedATN(): number[];
get channelNames(): string[];
get modeNames(): string[];
private static readonly _serializedATNSegments;
private static readonly _serializedATNSegment0;
private static readonly _serializedATNSegment1;
static readonly _serializedATN: string;
static __ATN: ATN;
static readonly _serializedATN: number[];
private static __ATN;
static get _ATN(): ATN;
static DecisionsToDFA: DFA[];
}

@@ -1,31 +0,19 @@

// Generated from src/grammar/CashScript.g4 by ANTLR 4.9.0-SNAPSHOT
import { ATNDeserializer } from "antlr4ts/atn/ATNDeserializer.js";
import { Lexer } from "antlr4ts/Lexer.js";
import { LexerATNSimulator } from "antlr4ts/atn/LexerATNSimulator.js";
import { VocabularyImpl } from "antlr4ts/VocabularyImpl.js";
import * as Utils from "antlr4ts/misc/Utils.js";
export class CashScriptLexer extends Lexer {
// tslint:enable:no-trailing-whitespace
// Generated from src/grammar/CashScript.g4 by ANTLR 4.13.1
// noinspection ES6UnusedImports,JSUnusedGlobalSymbols,JSUnusedLocalSymbols
import { ATNDeserializer, DFA, Lexer, LexerATNSimulator, PredictionContextCache, Token } from "antlr4";
export default class CashScriptLexer extends Lexer {
constructor(input) {
super(input);
this._interp = new LexerATNSimulator(CashScriptLexer._ATN, this);
this._interp = new LexerATNSimulator(this, CashScriptLexer._ATN, CashScriptLexer.DecisionsToDFA, new PredictionContextCache());
}
// @Override
// @NotNull
get vocabulary() {
return CashScriptLexer.VOCABULARY;
}
// @Override
get grammarFileName() { return "CashScript.g4"; }
// @Override
get literalNames() { return CashScriptLexer.literalNames; }
get symbolicNames() { return CashScriptLexer.symbolicNames; }
get ruleNames() { return CashScriptLexer.ruleNames; }
// @Override
get serializedATN() { return CashScriptLexer._serializedATN; }
// @Override
get channelNames() { return CashScriptLexer.channelNames; }
// @Override
get modeNames() { return CashScriptLexer.modeNames; }
static get _ATN() {
if (!CashScriptLexer.__ATN) {
CashScriptLexer.__ATN = new ATNDeserializer().deserialize(Utils.toCharArray(CashScriptLexer._serializedATN));
CashScriptLexer.__ATN = new ATNDeserializer().deserialize(CashScriptLexer._serializedATN);
}

@@ -106,10 +94,83 @@ return CashScriptLexer.__ATN;

CashScriptLexer.LINE_COMMENT = 71;
// tslint:disable:no-trailing-whitespace
CashScriptLexer.channelNames = [
"DEFAULT_TOKEN_CHANNEL", "HIDDEN",
];
// tslint:disable:no-trailing-whitespace
CashScriptLexer.modeNames = [
"DEFAULT_MODE",
];
CashScriptLexer.EOF = Token.EOF;
CashScriptLexer.channelNames = ["DEFAULT_TOKEN_CHANNEL", "HIDDEN"];
CashScriptLexer.literalNames = [null, "'pragma'",
"';'", "'cashscript'",
"'^'", "'~'",
"'>='", "'>'",
"'<'", "'<='",
"'='", "'contract'",
"'{'", "'}'",
"'function'",
"'('", "','",
"')'", "'require'",
"'if'", "'else'",
"'new'", "'['",
"']'", "'tx.outputs'",
"'.value'",
"'.lockingBytecode'",
"'.tokenCategory'",
"'.nftCommitment'",
"'.tokenAmount'",
"'tx.inputs'",
"'.outpointTransactionHash'",
"'.outpointIndex'",
"'.unlockingBytecode'",
"'.sequenceNumber'",
"'.reverse()'",
"'.length'",
"'.split'",
"'!'", "'-'",
"'*'", "'/'",
"'%'", "'+'",
"'=='", "'!='",
"'&'", "'|'",
"'&&'", "'||'",
"'constant'",
"'int'", "'bool'",
"'string'",
"'pubkey'",
"'sig'", "'datasig'"];
CashScriptLexer.symbolicNames = [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",
"Bytes", "Bound",
"StringLiteral",
"DateLiteral",
"HexLiteral",
"TxVar", "NullaryOp",
"Identifier",
"WHITESPACE",
"COMMENT",
"LINE_COMMENT"];
CashScriptLexer.modeNames = ["DEFAULT_MODE",];
CashScriptLexer.ruleNames = [

@@ -127,406 +188,268 @@ "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8",

];
CashScriptLexer._LITERAL_NAMES = [
undefined, "'pragma'", "';'", "'cashscript'", "'^'", "'~'", "'>='", "'>'",
"'<'", "'<='", "'='", "'contract'", "'{'", "'}'", "'function'", "'('",
"','", "')'", "'require'", "'if'", "'else'", "'new'", "'['", "']'", "'tx.outputs'",
"'.value'", "'.lockingBytecode'", "'.tokenCategory'", "'.nftCommitment'",
"'.tokenAmount'", "'tx.inputs'", "'.outpointTransactionHash'", "'.outpointIndex'",
"'.unlockingBytecode'", "'.sequenceNumber'", "'.reverse()'", "'.length'",
"'.split'", "'!'", "'-'", "'*'", "'/'", "'%'", "'+'", "'=='", "'!='",
"'&'", "'|'", "'&&'", "'||'", "'constant'", "'int'", "'bool'", "'string'",
"'pubkey'", "'sig'", "'datasig'",
];
CashScriptLexer._SYMBOLIC_NAMES = [
undefined, undefined, undefined, undefined, undefined, undefined, undefined,
undefined, undefined, undefined, undefined, undefined, undefined, undefined,
undefined, undefined, undefined, undefined, undefined, undefined, undefined,
undefined, undefined, undefined, undefined, undefined, undefined, undefined,
undefined, undefined, undefined, undefined, undefined, undefined, undefined,
undefined, undefined, undefined, undefined, undefined, undefined, undefined,
undefined, undefined, undefined, undefined, undefined, undefined, undefined,
undefined, undefined, undefined, undefined, undefined, undefined, undefined,
undefined, "VersionLiteral", "BooleanLiteral", "NumberUnit", "NumberLiteral",
"Bytes", "Bound", "StringLiteral", "DateLiteral", "HexLiteral", "TxVar",
"NullaryOp", "Identifier", "WHITESPACE", "COMMENT", "LINE_COMMENT",
];
CashScriptLexer.VOCABULARY = new VocabularyImpl(CashScriptLexer._LITERAL_NAMES, CashScriptLexer._SYMBOLIC_NAMES, []);
CashScriptLexer._serializedATNSegments = 2;
CashScriptLexer._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02I\u0328\b\x01" +
"\x04\x02\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06" +
"\x04\x07\t\x07\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04\r" +
"\t\r\x04\x0E\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t" +
"\x12\x04\x13\t\x13\x04\x14\t\x14\x04\x15\t\x15\x04\x16\t\x16\x04\x17\t" +
"\x17\x04\x18\t\x18\x04\x19\t\x19\x04\x1A\t\x1A\x04\x1B\t\x1B\x04\x1C\t" +
"\x1C\x04\x1D\t\x1D\x04\x1E\t\x1E\x04\x1F\t\x1F\x04 \t \x04!\t!\x04\"\t" +
"\"\x04#\t#\x04$\t$\x04%\t%\x04&\t&\x04\'\t\'\x04(\t(\x04)\t)\x04*\t*\x04" +
"+\t+\x04,\t,\x04-\t-\x04.\t.\x04/\t/\x040\t0\x041\t1\x042\t2\x043\t3\x04" +
"4\t4\x045\t5\x046\t6\x047\t7\x048\t8\x049\t9\x04:\t:\x04;\t;\x04<\t<\x04" +
"=\t=\x04>\t>\x04?\t?\x04@\t@\x04A\tA\x04B\tB\x04C\tC\x04D\tD\x04E\tE\x04" +
"F\tF\x04G\tG\x04H\tH\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02\x03" +
"\x02\x03\x03\x03\x03\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03" +
"\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x05\x03\x05\x03\x06\x03\x06\x03" +
"\x07\x03\x07\x03\x07\x03\b\x03\b\x03\t\x03\t\x03\n\x03\n\x03\n\x03\v\x03" +
"\v\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\r\x03\r\x03" +
"\x0E\x03\x0E\x03\x0F\x03\x0F\x03\x0F\x03\x0F\x03\x0F\x03\x0F\x03\x0F\x03" +
"\x0F\x03\x0F\x03\x10\x03\x10\x03\x11\x03\x11\x03\x12\x03\x12\x03\x13\x03" +
"\x13\x03\x13\x03\x13\x03\x13\x03\x13\x03\x13\x03\x13\x03\x14\x03\x14\x03" +
"\x14\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15\x03\x16\x03\x16\x03\x16\x03" +
"\x16\x03\x17\x03\x17\x03\x18\x03\x18\x03\x19\x03\x19\x03\x19\x03\x19\x03" +
"\x19\x03\x19\x03\x19\x03\x19\x03\x19\x03\x19\x03\x19\x03\x1A\x03\x1A\x03" +
"\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03" +
"\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03" +
"\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03" +
"\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03" +
"\x1C\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03" +
"\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1E\x03\x1E\x03" +
"\x1E\x03\x1E\x03\x1E\x03\x1E\x03\x1E\x03\x1E\x03\x1E\x03\x1E\x03\x1E\x03" +
"\x1E\x03\x1E\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03" +
"\x1F\x03\x1F\x03\x1F\x03 \x03 \x03 \x03 \x03 \x03 \x03 \x03 \x03 \x03" +
" \x03 \x03 \x03 \x03 \x03 \x03 \x03 \x03 \x03 \x03 \x03 \x03 \x03 \x03" +
" \x03 \x03!\x03!\x03!\x03!\x03!\x03!\x03!\x03!\x03!\x03!\x03!\x03!\x03" +
"!\x03!\x03!\x03\"\x03\"\x03\"\x03\"\x03\"\x03\"\x03\"\x03\"\x03\"\x03" +
"\"\x03\"\x03\"\x03\"\x03\"\x03\"\x03\"\x03\"\x03\"\x03\"\x03#\x03#\x03" +
"#\x03#\x03#\x03#\x03#\x03#\x03#\x03#\x03#\x03#\x03#\x03#\x03#\x03#\x03" +
"$\x03$\x03$\x03$\x03$\x03$\x03$\x03$\x03$\x03$\x03$\x03%\x03%\x03%\x03" +
"%\x03%\x03%\x03%\x03%\x03&\x03&\x03&\x03&\x03&\x03&\x03&\x03\'\x03\'\x03" +
"(\x03(\x03)\x03)\x03*\x03*\x03+\x03+\x03,\x03,\x03-\x03-\x03-\x03.\x03" +
".\x03.\x03/\x03/\x030\x030\x031\x031\x031\x032\x032\x032\x033\x033\x03" +
"3\x033\x033\x033\x033\x033\x033\x034\x034\x034\x034\x035\x035\x035\x03" +
"5\x035\x036\x036\x036\x036\x036\x036\x036\x037\x037\x037\x037\x037\x03" +
"7\x037\x038\x038\x038\x038\x039\x039\x039\x039\x039\x039\x039\x039\x03" +
":\x06:\u01F0\n:\r:\x0E:\u01F1\x03:\x03:\x06:\u01F6\n:\r:\x0E:\u01F7\x03" +
":\x03:\x06:\u01FC\n:\r:\x0E:\u01FD\x03;\x03;\x03;\x03;\x03;\x03;\x03;" +
"\x03;\x03;\x05;\u0209\n;\x03<\x03<\x03<\x03<\x03<\x03<\x03<\x03<\x03<" +
"\x03<\x03<\x03<\x03<\x03<\x03<\x03<\x03<\x03<\x03<\x03<\x03<\x03<\x03" +
"<\x03<\x03<\x03<\x03<\x03<\x03<\x03<\x03<\x03<\x03<\x03<\x03<\x03<\x03" +
"<\x03<\x03<\x03<\x03<\x03<\x03<\x03<\x03<\x03<\x03<\x03<\x03<\x03<\x03" +
"<\x03<\x03<\x03<\x03<\x03<\x03<\x05<\u0244\n<\x03=\x05=\u0247\n=\x03=" +
"\x06=\u024A\n=\r=\x0E=\u024B\x03=\x03=\x06=\u0250\n=\r=\x0E=\u0251\x05" +
"=\u0254\n=\x03>\x03>\x03>\x03>\x03>\x03>\x03>\x05>\u025D\n>\x03>\x03>" +
"\x03>\x03>\x05>\u0263\n>\x03?\x03?\x07?\u0267\n?\f?\x0E?\u026A\v?\x03" +
"@\x03@\x03@\x03@\x07@\u0270\n@\f@\x0E@\u0273\v@\x03@\x03@\x03@\x03@\x03" +
"@\x07@\u027A\n@\f@\x0E@\u027D\v@\x03@\x05@\u0280\n@\x03A\x03A\x03A\x03" +
"A\x03A\x03A\x03A\x03A\x03A\x03B\x03B\x03B\x07B\u028E\nB\fB\x0EB\u0291" +
"\vB\x03C\x03C\x03C\x03C\x03C\x03C\x03C\x03C\x03C\x03C\x03C\x03C\x03C\x05" +
"C\u02A0\nC\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03" +
"D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03" +
"D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03" +
"D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03" +
"D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03" +
"D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03" +
"D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x05D\u0300" +
"\nD\x03E\x03E\x07E\u0304\nE\fE\x0EE\u0307\vE\x03F\x06F\u030A\nF\rF\x0E" +
"F\u030B\x03F\x03F\x03G\x03G\x03G\x03G\x07G\u0314\nG\fG\x0EG\u0317\vG\x03" +
"G\x03G\x03G\x03G\x03G\x03H\x03H\x03H\x03H\x07H\u0322\nH\fH\x0EH\u0325" +
"\vH\x03H\x03H\x05\u0271\u027B\u0315\x02\x02I\x03\x02\x03\x05\x02\x04\x07" +
"\x02\x05\t\x02\x06\v\x02\x07\r\x02\b\x0F\x02\t\x11\x02\n\x13\x02\v\x15" +
"\x02\f\x17\x02\r\x19\x02\x0E\x1B\x02\x0F\x1D\x02\x10\x1F\x02\x11!\x02" +
"\x12#\x02\x13%\x02\x14\'\x02\x15)\x02\x16+\x02\x17-\x02\x18/\x02\x191" +
"\x02\x1A3\x02\x1B5\x02\x1C7\x02\x1D9\x02\x1E;\x02\x1F=\x02 ?\x02!A\x02" +
"\"C\x02#E\x02$G\x02%I\x02&K\x02\'M\x02(O\x02)Q\x02*S\x02+U\x02,W\x02-" +
"Y\x02.[\x02/]\x020_\x021a\x022c\x023e\x024g\x025i\x026k\x027m\x028o\x02" +
"9q\x02:s\x02;u\x02<w\x02=y\x02>{\x02?}\x02@\x7F\x02A\x81\x02B\x83\x02" +
"C\x85\x02D\x87\x02E\x89\x02F\x8B\x02G\x8D\x02H\x8F\x02I\x03\x02\x0E\x03" +
"\x022;\x03\x02//\x04\x02GGgg\x03\x023;\x05\x02\f\f\x0F\x0F$$\x05\x02\f" +
"\f\x0F\x0F))\x04\x02ZZzz\x05\x022;CHch\x04\x02C\\c|\x06\x022;C\\aac|\x05" +
"\x02\v\f\x0E\x0F\"\"\x04\x02\f\f\x0F\x0F\x02\u034B\x02\x03\x03\x02\x02" +
"\x02\x02\x05\x03\x02\x02\x02\x02\x07\x03\x02\x02\x02\x02\t\x03\x02\x02" +
"\x02\x02\v\x03\x02\x02\x02\x02\r\x03\x02\x02\x02\x02\x0F\x03\x02\x02\x02" +
"\x02\x11\x03\x02\x02\x02\x02\x13\x03\x02\x02\x02\x02\x15\x03\x02\x02\x02" +
"\x02\x17\x03\x02\x02\x02\x02\x19\x03\x02\x02\x02\x02\x1B\x03\x02\x02\x02" +
"\x02\x1D\x03\x02\x02\x02\x02\x1F\x03\x02\x02\x02\x02!\x03\x02\x02\x02" +
"\x02#\x03\x02\x02\x02\x02%\x03\x02\x02\x02\x02\'\x03\x02\x02\x02\x02)" +
"\x03\x02\x02\x02\x02+\x03\x02\x02\x02\x02-\x03\x02\x02\x02\x02/\x03\x02" +
"\x02\x02\x021\x03\x02\x02\x02\x023\x03\x02\x02\x02\x025\x03\x02\x02\x02" +
"\x027\x03\x02\x02\x02\x029\x03\x02\x02\x02\x02;\x03\x02\x02\x02\x02=\x03" +
"\x02\x02\x02\x02?\x03\x02\x02\x02\x02A\x03\x02\x02\x02\x02C\x03\x02\x02" +
"\x02\x02E\x03\x02\x02\x02\x02G\x03\x02\x02\x02\x02I\x03\x02\x02\x02\x02" +
"K\x03\x02\x02\x02\x02M\x03\x02\x02\x02\x02O\x03\x02\x02\x02\x02Q\x03\x02" +
"\x02\x02\x02S\x03\x02\x02\x02\x02U\x03\x02\x02\x02\x02W\x03\x02\x02\x02" +
"\x02Y\x03\x02\x02\x02\x02[\x03\x02\x02\x02\x02]\x03\x02\x02\x02\x02_\x03" +
"\x02\x02\x02\x02a\x03\x02\x02\x02\x02c\x03\x02\x02\x02\x02e\x03\x02\x02" +
"\x02\x02g\x03\x02\x02\x02\x02i\x03\x02\x02\x02\x02k\x03\x02\x02\x02\x02" +
"m\x03\x02\x02\x02\x02o\x03\x02\x02\x02\x02q\x03\x02\x02\x02\x02s\x03\x02" +
"\x02\x02\x02u\x03\x02\x02\x02\x02w\x03\x02\x02\x02\x02y\x03\x02\x02\x02" +
"\x02{\x03\x02\x02\x02\x02}\x03\x02\x02\x02\x02\x7F\x03\x02\x02\x02\x02" +
"\x81\x03\x02\x02\x02\x02\x83\x03\x02\x02\x02\x02\x85\x03\x02\x02\x02\x02" +
"\x87\x03\x02\x02\x02\x02\x89\x03\x02\x02\x02\x02\x8B\x03\x02\x02\x02\x02" +
"\x8D\x03\x02\x02\x02\x02\x8F\x03\x02\x02\x02\x03\x91\x03\x02\x02\x02\x05" +
"\x98\x03\x02\x02\x02\x07\x9A\x03\x02\x02\x02\t\xA5\x03\x02\x02\x02\v\xA7" +
"\x03\x02\x02\x02\r\xA9\x03\x02\x02\x02\x0F\xAC\x03\x02\x02\x02\x11\xAE" +
"\x03\x02\x02\x02\x13\xB0\x03\x02\x02\x02\x15\xB3\x03\x02\x02\x02\x17\xB5" +
"\x03\x02\x02\x02\x19\xBE\x03\x02\x02\x02\x1B\xC0\x03\x02\x02\x02\x1D\xC2" +
"\x03\x02\x02\x02\x1F\xCB\x03\x02\x02\x02!\xCD\x03\x02\x02\x02#\xCF\x03" +
"\x02\x02\x02%\xD1\x03\x02\x02\x02\'\xD9\x03\x02\x02\x02)\xDC\x03\x02\x02" +
"\x02+\xE1\x03\x02\x02\x02-\xE5\x03\x02\x02\x02/\xE7\x03\x02\x02\x021\xE9" +
"\x03\x02\x02\x023\xF4\x03\x02\x02\x025\xFB\x03\x02\x02\x027\u010C\x03" +
"\x02\x02\x029\u011B\x03\x02\x02\x02;\u012A\x03\x02\x02\x02=\u0137\x03" +
"\x02\x02\x02?\u0141\x03\x02\x02\x02A\u015A\x03\x02\x02\x02C\u0169\x03" +
"\x02\x02\x02E\u017C\x03\x02\x02\x02G\u018C\x03\x02\x02\x02I\u0197\x03" +
"\x02\x02\x02K\u019F\x03\x02\x02\x02M\u01A6\x03\x02\x02\x02O\u01A8\x03" +
"\x02\x02\x02Q\u01AA\x03\x02\x02\x02S\u01AC\x03\x02\x02\x02U\u01AE\x03" +
"\x02\x02\x02W\u01B0\x03\x02\x02\x02Y\u01B2\x03\x02\x02\x02[\u01B5\x03" +
"\x02\x02\x02]\u01B8\x03\x02\x02\x02_\u01BA\x03\x02\x02\x02a\u01BC\x03" +
"\x02\x02\x02c\u01BF\x03\x02\x02\x02e\u01C2\x03\x02\x02\x02g\u01CB\x03" +
"\x02\x02\x02i\u01CF\x03\x02\x02\x02k\u01D4\x03\x02\x02\x02m\u01DB\x03" +
"\x02\x02\x02o\u01E2\x03\x02\x02\x02q\u01E6\x03\x02\x02\x02s\u01EF\x03" +
"\x02\x02\x02u\u0208\x03\x02\x02\x02w\u0243\x03\x02\x02\x02y\u0246\x03" +
"\x02\x02\x02{\u0262\x03\x02\x02\x02}\u0264\x03\x02\x02\x02\x7F\u027F\x03" +
"\x02\x02\x02\x81\u0281\x03\x02\x02\x02\x83\u028A\x03\x02\x02\x02\x85\u029F" +
"\x03\x02\x02\x02\x87\u02FF\x03\x02\x02\x02\x89\u0301\x03\x02\x02\x02\x8B" +
"\u0309\x03\x02\x02\x02\x8D\u030F\x03\x02\x02\x02\x8F\u031D\x03\x02\x02" +
"\x02\x91\x92\x07r\x02\x02\x92\x93\x07t\x02\x02\x93\x94\x07c\x02\x02\x94" +
"\x95\x07i\x02\x02\x95\x96\x07o\x02\x02\x96\x97\x07c\x02\x02\x97\x04\x03" +
"\x02\x02\x02\x98\x99\x07=\x02\x02\x99\x06\x03\x02\x02\x02\x9A\x9B\x07" +
"e\x02\x02\x9B\x9C\x07c\x02\x02\x9C\x9D\x07u\x02\x02\x9D\x9E\x07j\x02\x02" +
"\x9E\x9F\x07u\x02\x02\x9F\xA0\x07e\x02\x02\xA0\xA1\x07t\x02\x02\xA1\xA2" +
"\x07k\x02\x02\xA2\xA3\x07r\x02\x02\xA3\xA4\x07v\x02\x02\xA4\b\x03\x02" +
"\x02\x02\xA5\xA6\x07`\x02\x02\xA6\n\x03\x02\x02\x02\xA7\xA8\x07\x80\x02" +
"\x02\xA8\f\x03\x02\x02\x02\xA9\xAA\x07@\x02\x02\xAA\xAB\x07?\x02\x02\xAB" +
"\x0E\x03\x02\x02\x02\xAC\xAD\x07@\x02\x02\xAD\x10\x03\x02\x02\x02\xAE" +
"\xAF\x07>\x02\x02\xAF\x12\x03\x02\x02\x02\xB0\xB1\x07>\x02\x02\xB1\xB2" +
"\x07?\x02\x02\xB2\x14\x03\x02\x02\x02\xB3\xB4\x07?\x02\x02\xB4\x16\x03" +
"\x02\x02\x02\xB5\xB6\x07e\x02\x02\xB6\xB7\x07q\x02\x02\xB7\xB8\x07p\x02" +
"\x02\xB8\xB9\x07v\x02\x02\xB9\xBA\x07t\x02\x02\xBA\xBB\x07c\x02\x02\xBB" +
"\xBC\x07e\x02\x02\xBC\xBD\x07v\x02\x02\xBD\x18\x03\x02\x02\x02\xBE\xBF" +
"\x07}\x02\x02\xBF\x1A\x03\x02\x02\x02\xC0\xC1\x07\x7F\x02\x02\xC1\x1C" +
"\x03\x02\x02\x02\xC2\xC3\x07h\x02\x02\xC3\xC4\x07w\x02\x02\xC4\xC5\x07" +
"p\x02\x02\xC5\xC6\x07e\x02\x02\xC6\xC7\x07v\x02\x02\xC7\xC8\x07k\x02\x02" +
"\xC8\xC9\x07q\x02\x02\xC9\xCA\x07p\x02\x02\xCA\x1E\x03\x02\x02\x02\xCB" +
"\xCC\x07*\x02\x02\xCC \x03\x02\x02\x02\xCD\xCE\x07.\x02\x02\xCE\"\x03" +
"\x02\x02\x02\xCF\xD0\x07+\x02\x02\xD0$\x03\x02\x02\x02\xD1\xD2\x07t\x02" +
"\x02\xD2\xD3\x07g\x02\x02\xD3\xD4\x07s\x02\x02\xD4\xD5\x07w\x02\x02\xD5" +
"\xD6\x07k\x02\x02\xD6\xD7\x07t\x02\x02\xD7\xD8\x07g\x02\x02\xD8&\x03\x02" +
"\x02\x02\xD9\xDA\x07k\x02\x02\xDA\xDB\x07h\x02\x02\xDB(\x03\x02\x02\x02" +
"\xDC\xDD\x07g\x02\x02\xDD\xDE\x07n\x02\x02\xDE\xDF\x07u\x02\x02\xDF\xE0" +
"\x07g\x02\x02\xE0*\x03\x02\x02\x02\xE1\xE2\x07p\x02\x02\xE2\xE3\x07g\x02" +
"\x02\xE3\xE4\x07y\x02\x02\xE4,\x03\x02\x02\x02\xE5\xE6\x07]\x02\x02\xE6" +
".\x03\x02\x02\x02\xE7\xE8\x07_\x02\x02\xE80\x03\x02\x02\x02\xE9\xEA\x07" +
"v\x02\x02\xEA\xEB\x07z\x02\x02\xEB\xEC\x070\x02\x02\xEC\xED\x07q\x02\x02" +
"\xED\xEE\x07w\x02\x02\xEE\xEF\x07v\x02\x02\xEF\xF0\x07r\x02\x02\xF0\xF1" +
"\x07w\x02\x02\xF1\xF2\x07v\x02\x02\xF2\xF3\x07u\x02\x02\xF32\x03\x02\x02" +
"\x02\xF4\xF5\x070\x02\x02\xF5\xF6\x07x\x02\x02\xF6\xF7\x07c\x02\x02\xF7" +
"\xF8\x07n\x02\x02\xF8\xF9\x07w\x02\x02\xF9\xFA\x07g\x02\x02\xFA4\x03\x02" +
"\x02\x02\xFB\xFC\x070\x02\x02\xFC\xFD\x07n\x02\x02\xFD\xFE\x07q\x02\x02" +
"\xFE\xFF\x07e\x02\x02\xFF\u0100\x07m\x02\x02\u0100\u0101\x07k\x02\x02" +
"\u0101\u0102\x07p\x02\x02\u0102\u0103\x07i\x02\x02\u0103\u0104\x07D\x02" +
"\x02\u0104\u0105\x07{\x02\x02\u0105\u0106\x07v\x02\x02\u0106\u0107\x07" +
"g\x02\x02\u0107\u0108\x07e\x02\x02\u0108\u0109\x07q\x02\x02\u0109\u010A" +
"\x07f\x02\x02\u010A\u010B\x07g\x02\x02\u010B6\x03\x02\x02\x02\u010C\u010D" +
"\x070\x02\x02\u010D\u010E\x07v\x02\x02\u010E\u010F\x07q\x02\x02\u010F" +
"\u0110\x07m\x02\x02\u0110\u0111\x07g\x02\x02\u0111\u0112\x07p\x02\x02" +
"\u0112\u0113\x07E\x02\x02\u0113\u0114\x07c\x02\x02\u0114\u0115\x07v\x02" +
"\x02\u0115\u0116\x07g\x02\x02\u0116\u0117\x07i\x02\x02\u0117\u0118\x07" +
"q\x02\x02\u0118\u0119\x07t\x02\x02\u0119\u011A\x07{\x02\x02\u011A8\x03" +
"\x02\x02\x02\u011B\u011C\x070\x02\x02\u011C\u011D\x07p\x02\x02\u011D\u011E" +
"\x07h\x02\x02\u011E\u011F\x07v\x02\x02\u011F\u0120\x07E\x02\x02\u0120" +
"\u0121\x07q\x02\x02\u0121\u0122\x07o\x02\x02\u0122\u0123\x07o\x02\x02" +
"\u0123\u0124\x07k\x02\x02\u0124\u0125\x07v\x02\x02\u0125\u0126\x07o\x02" +
"\x02\u0126\u0127\x07g\x02\x02\u0127\u0128\x07p\x02\x02\u0128\u0129\x07" +
"v\x02\x02\u0129:\x03\x02\x02\x02\u012A\u012B\x070\x02\x02\u012B\u012C" +
"\x07v\x02\x02\u012C\u012D\x07q\x02\x02\u012D\u012E\x07m\x02\x02\u012E" +
"\u012F\x07g\x02\x02\u012F\u0130\x07p\x02\x02\u0130\u0131\x07C\x02\x02" +
"\u0131\u0132\x07o\x02\x02\u0132\u0133\x07q\x02\x02\u0133\u0134\x07w\x02" +
"\x02\u0134\u0135\x07p\x02\x02\u0135\u0136\x07v\x02\x02\u0136<\x03\x02" +
"\x02\x02\u0137\u0138\x07v\x02\x02\u0138\u0139\x07z\x02\x02\u0139\u013A" +
"\x070\x02\x02\u013A\u013B\x07k\x02\x02\u013B\u013C\x07p\x02\x02\u013C" +
"\u013D\x07r\x02\x02\u013D\u013E\x07w\x02\x02\u013E\u013F\x07v\x02\x02" +
"\u013F\u0140\x07u\x02\x02\u0140>\x03\x02\x02\x02\u0141\u0142\x070\x02" +
"\x02\u0142\u0143\x07q\x02\x02\u0143\u0144\x07w\x02\x02\u0144\u0145\x07" +
"v\x02\x02\u0145\u0146\x07r\x02\x02\u0146\u0147\x07q\x02\x02\u0147\u0148" +
"\x07k\x02\x02\u0148\u0149\x07p\x02\x02\u0149\u014A\x07v\x02\x02\u014A" +
"\u014B\x07V\x02\x02\u014B\u014C\x07t\x02\x02\u014C\u014D\x07c\x02\x02" +
"\u014D\u014E\x07p\x02\x02\u014E\u014F\x07u\x02\x02\u014F\u0150\x07c\x02" +
"\x02\u0150\u0151\x07e\x02\x02\u0151\u0152\x07v\x02\x02\u0152\u0153\x07" +
"k\x02\x02\u0153\u0154\x07q\x02\x02\u0154\u0155\x07p\x02\x02\u0155\u0156" +
"\x07J\x02\x02\u0156\u0157\x07c\x02\x02\u0157\u0158\x07u\x02\x02\u0158" +
"\u0159\x07j\x02\x02\u0159@\x03\x02\x02\x02\u015A\u015B\x070\x02\x02\u015B" +
"\u015C\x07q\x02\x02\u015C\u015D\x07w\x02\x02\u015D\u015E\x07v\x02\x02" +
"\u015E\u015F\x07r\x02\x02\u015F\u0160\x07q\x02\x02\u0160\u0161\x07k\x02" +
"\x02\u0161\u0162\x07p\x02\x02\u0162\u0163\x07v\x02\x02\u0163\u0164\x07" +
"K\x02\x02\u0164\u0165\x07p\x02\x02\u0165\u0166\x07f\x02\x02\u0166\u0167" +
"\x07g\x02\x02\u0167\u0168\x07z\x02\x02\u0168B\x03\x02\x02\x02\u0169\u016A" +
"\x070\x02\x02\u016A\u016B\x07w\x02\x02\u016B\u016C\x07p\x02\x02\u016C" +
"\u016D\x07n\x02\x02\u016D\u016E\x07q\x02\x02\u016E\u016F\x07e\x02\x02" +
"\u016F\u0170\x07m\x02\x02\u0170\u0171\x07k\x02\x02\u0171\u0172\x07p\x02" +
"\x02\u0172\u0173\x07i\x02\x02\u0173\u0174\x07D\x02\x02\u0174\u0175\x07" +
"{\x02\x02\u0175\u0176\x07v\x02\x02\u0176\u0177\x07g\x02\x02\u0177\u0178" +
"\x07e\x02\x02\u0178\u0179\x07q\x02\x02\u0179\u017A\x07f\x02\x02\u017A" +
"\u017B\x07g\x02\x02\u017BD\x03\x02\x02\x02\u017C\u017D\x070\x02\x02\u017D" +
"\u017E\x07u\x02\x02\u017E\u017F\x07g\x02\x02\u017F\u0180\x07s\x02\x02" +
"\u0180\u0181\x07w\x02\x02\u0181\u0182\x07g\x02\x02\u0182\u0183\x07p\x02" +
"\x02\u0183\u0184\x07e\x02\x02\u0184\u0185\x07g\x02\x02\u0185\u0186\x07" +
"P\x02\x02\u0186\u0187\x07w\x02\x02\u0187\u0188\x07o\x02\x02\u0188\u0189" +
"\x07d\x02\x02\u0189\u018A\x07g\x02\x02\u018A\u018B\x07t\x02\x02\u018B" +
"F\x03\x02\x02\x02\u018C\u018D\x070\x02\x02\u018D\u018E\x07t\x02\x02\u018E" +
"\u018F\x07g\x02\x02\u018F\u0190\x07x\x02\x02\u0190\u0191\x07g\x02\x02" +
"\u0191\u0192\x07t\x02\x02\u0192\u0193\x07u\x02\x02\u0193\u0194\x07g\x02" +
"\x02\u0194\u0195\x07*\x02\x02\u0195\u0196\x07+\x02\x02\u0196H\x03\x02" +
"\x02\x02\u0197\u0198\x070\x02\x02\u0198\u0199\x07n\x02\x02\u0199\u019A" +
"\x07g\x02\x02\u019A\u019B\x07p\x02\x02\u019B\u019C\x07i\x02\x02\u019C" +
"\u019D\x07v\x02\x02\u019D\u019E\x07j\x02\x02\u019EJ\x03\x02\x02\x02\u019F" +
"\u01A0\x070\x02\x02\u01A0\u01A1\x07u\x02\x02\u01A1\u01A2\x07r\x02\x02" +
"\u01A2\u01A3\x07n\x02\x02\u01A3\u01A4\x07k\x02\x02\u01A4\u01A5\x07v\x02" +
"\x02\u01A5L\x03\x02\x02\x02\u01A6\u01A7\x07#\x02\x02\u01A7N\x03\x02\x02" +
"\x02\u01A8\u01A9\x07/\x02\x02\u01A9P\x03\x02\x02\x02\u01AA\u01AB\x07," +
"\x02\x02\u01ABR\x03\x02\x02\x02\u01AC\u01AD\x071\x02\x02\u01ADT\x03\x02" +
"\x02\x02\u01AE\u01AF\x07\'\x02\x02\u01AFV\x03\x02\x02\x02\u01B0\u01B1" +
"\x07-\x02\x02\u01B1X\x03\x02\x02\x02\u01B2\u01B3\x07?\x02\x02\u01B3\u01B4" +
"\x07?\x02\x02\u01B4Z\x03\x02\x02\x02\u01B5\u01B6\x07#\x02\x02\u01B6\u01B7" +
"\x07?\x02\x02\u01B7\\\x03\x02\x02\x02\u01B8\u01B9\x07(\x02\x02\u01B9^" +
"\x03\x02\x02\x02\u01BA\u01BB\x07~\x02\x02\u01BB`\x03\x02\x02\x02\u01BC" +
"\u01BD\x07(\x02\x02\u01BD\u01BE\x07(\x02\x02\u01BEb\x03\x02\x02\x02\u01BF" +
"\u01C0\x07~\x02\x02\u01C0\u01C1\x07~\x02\x02\u01C1d\x03\x02\x02\x02\u01C2" +
"\u01C3\x07e\x02\x02\u01C3\u01C4\x07q\x02\x02\u01C4\u01C5\x07p\x02\x02" +
"\u01C5\u01C6\x07u\x02\x02\u01C6\u01C7\x07v\x02\x02\u01C7\u01C8\x07c\x02" +
"\x02\u01C8\u01C9\x07p\x02\x02\u01C9\u01CA\x07v\x02\x02\u01CAf\x03\x02" +
"\x02\x02\u01CB\u01CC\x07k\x02\x02\u01CC\u01CD\x07p\x02\x02\u01CD\u01CE" +
"\x07v\x02\x02\u01CEh\x03\x02\x02\x02\u01CF\u01D0\x07d\x02\x02\u01D0\u01D1" +
"\x07q\x02\x02\u01D1\u01D2\x07q\x02\x02\u01D2\u01D3\x07n\x02\x02\u01D3" +
"j\x03\x02\x02\x02\u01D4\u01D5\x07u\x02\x02\u01D5\u01D6\x07v\x02\x02\u01D6" +
"\u01D7\x07t\x02\x02\u01D7\u01D8\x07k\x02\x02\u01D8\u01D9\x07p\x02\x02" +
"\u01D9\u01DA\x07i\x02\x02\u01DAl\x03\x02\x02\x02\u01DB\u01DC\x07r\x02" +
"\x02\u01DC\u01DD\x07w\x02\x02\u01DD\u01DE\x07d\x02\x02\u01DE\u01DF\x07" +
"m\x02\x02\u01DF\u01E0\x07g\x02\x02\u01E0\u01E1\x07{\x02\x02\u01E1n\x03" +
"\x02\x02\x02\u01E2\u01E3\x07u\x02\x02\u01E3\u01E4\x07k\x02\x02\u01E4\u01E5" +
"\x07i\x02\x02\u01E5p\x03\x02\x02\x02\u01E6\u01E7\x07f\x02\x02\u01E7\u01E8" +
"\x07c\x02\x02\u01E8\u01E9\x07v\x02\x02\u01E9\u01EA\x07c\x02\x02\u01EA" +
"\u01EB\x07u\x02\x02\u01EB\u01EC\x07k\x02\x02\u01EC\u01ED\x07i\x02\x02" +
"\u01EDr\x03\x02\x02\x02\u01EE\u01F0\t\x02\x02\x02\u01EF\u01EE\x03\x02" +
"\x02\x02\u01F0\u01F1\x03\x02\x02\x02\u01F1\u01EF\x03\x02\x02\x02\u01F1" +
"\u01F2\x03\x02\x02\x02\u01F2\u01F3\x03\x02\x02\x02\u01F3\u01F5\x070\x02" +
"\x02\u01F4\u01F6\t\x02\x02\x02\u01F5\u01F4\x03\x02\x02\x02\u01F6\u01F7" +
"\x03\x02\x02\x02\u01F7\u01F5\x03\x02\x02\x02\u01F7\u01F8\x03\x02\x02\x02" +
"\u01F8\u01F9\x03\x02\x02\x02\u01F9\u01FB\x070\x02\x02\u01FA\u01FC\t\x02" +
"\x02\x02\u01FB\u01FA";
CashScriptLexer._serializedATNSegment1 = "\x03\x02\x02\x02\u01FC\u01FD\x03\x02\x02\x02\u01FD\u01FB\x03\x02\x02\x02" +
"\u01FD\u01FE\x03\x02\x02\x02\u01FEt\x03\x02\x02\x02\u01FF\u0200\x07v\x02" +
"\x02\u0200\u0201\x07t\x02\x02\u0201\u0202\x07w\x02\x02\u0202\u0209\x07" +
"g\x02\x02\u0203\u0204\x07h\x02\x02\u0204\u0205\x07c\x02\x02\u0205\u0206" +
"\x07n\x02\x02\u0206\u0207\x07u\x02\x02\u0207\u0209\x07g\x02\x02\u0208" +
"\u01FF\x03\x02\x02\x02\u0208\u0203\x03\x02\x02\x02\u0209v\x03\x02\x02" +
"\x02\u020A\u020B\x07u\x02\x02\u020B\u020C\x07c\x02\x02\u020C\u020D\x07" +
"v\x02\x02\u020D\u020E\x07q\x02\x02\u020E\u020F\x07u\x02\x02\u020F\u0210" +
"\x07j\x02\x02\u0210\u0211\x07k\x02\x02\u0211\u0244\x07u\x02\x02\u0212" +
"\u0213\x07u\x02\x02\u0213\u0214\x07c\x02\x02\u0214\u0215\x07v\x02\x02" +
"\u0215\u0244\x07u\x02\x02\u0216\u0217\x07h\x02\x02\u0217\u0218\x07k\x02" +
"\x02\u0218\u0219\x07p\x02\x02\u0219\u021A\x07p\x02\x02\u021A\u021B\x07" +
"g\x02\x02\u021B\u0244\x07{\x02\x02\u021C\u021D\x07d\x02\x02\u021D\u021E" +
"\x07k\x02\x02\u021E\u021F\x07v\x02\x02\u021F\u0244\x07u\x02\x02\u0220" +
"\u0221\x07d\x02\x02\u0221\u0222\x07k\x02\x02\u0222\u0223\x07v\x02\x02" +
"\u0223\u0224\x07e\x02\x02\u0224\u0225\x07q\x02\x02\u0225\u0226\x07k\x02" +
"\x02\u0226\u0244\x07p\x02\x02\u0227\u0228\x07u\x02\x02\u0228\u0229\x07" +
"g\x02\x02\u0229\u022A\x07e\x02\x02\u022A\u022B\x07q\x02\x02\u022B\u022C" +
"\x07p\x02\x02\u022C\u022D\x07f\x02\x02\u022D\u0244\x07u\x02\x02\u022E" +
"\u022F\x07o\x02\x02\u022F\u0230\x07k\x02\x02\u0230\u0231\x07p\x02\x02" +
"\u0231\u0232\x07w\x02\x02\u0232\u0233\x07v\x02\x02\u0233\u0234\x07g\x02" +
"\x02\u0234\u0244\x07u\x02\x02\u0235\u0236\x07j\x02\x02\u0236\u0237\x07" +
"q\x02\x02\u0237\u0238\x07w\x02\x02\u0238\u0239\x07t\x02\x02\u0239\u0244" +
"\x07u\x02\x02\u023A\u023B\x07f\x02\x02\u023B\u023C\x07c\x02\x02\u023C" +
"\u023D\x07{\x02\x02\u023D\u0244\x07u\x02\x02\u023E\u023F\x07y\x02\x02" +
"\u023F\u0240\x07g\x02\x02\u0240\u0241\x07g\x02\x02\u0241\u0242\x07m\x02" +
"\x02\u0242\u0244\x07u\x02\x02\u0243\u020A\x03\x02\x02\x02\u0243\u0212" +
"\x03\x02\x02\x02\u0243\u0216\x03\x02\x02\x02\u0243\u021C\x03\x02\x02\x02" +
"\u0243\u0220\x03\x02\x02\x02\u0243\u0227\x03\x02\x02\x02\u0243\u022E\x03" +
"\x02\x02\x02\u0243\u0235\x03\x02\x02\x02\u0243\u023A\x03\x02\x02\x02\u0243" +
"\u023E\x03\x02\x02\x02\u0244x\x03\x02\x02\x02\u0245\u0247\t\x03\x02\x02" +
"\u0246\u0245\x03\x02\x02\x02\u0246\u0247\x03\x02\x02\x02\u0247\u0249\x03" +
"\x02\x02\x02\u0248\u024A\t\x02\x02\x02\u0249\u0248\x03\x02\x02\x02\u024A" +
"\u024B\x03\x02\x02\x02\u024B\u0249\x03\x02\x02\x02\u024B\u024C\x03\x02" +
"\x02\x02\u024C\u0253\x03\x02\x02\x02\u024D\u024F\t\x04\x02\x02\u024E\u0250" +
"\t\x02\x02\x02\u024F\u024E\x03\x02\x02\x02\u0250\u0251\x03\x02\x02\x02" +
"\u0251\u024F\x03\x02\x02\x02\u0251\u0252\x03\x02\x02\x02\u0252\u0254\x03" +
"\x02\x02\x02\u0253\u024D\x03\x02\x02\x02\u0253\u0254\x03\x02\x02\x02\u0254" +
"z\x03\x02\x02\x02\u0255\u0256\x07d\x02\x02\u0256\u0257\x07{\x02\x02\u0257" +
"\u0258\x07v\x02\x02\u0258\u0259\x07g\x02\x02\u0259\u025A\x07u\x02\x02" +
"\u025A\u025C\x03\x02\x02\x02\u025B\u025D\x05}?\x02\u025C\u025B\x03\x02" +
"\x02\x02\u025C\u025D\x03\x02\x02\x02\u025D\u0263\x03\x02\x02\x02\u025E" +
"\u025F\x07d\x02\x02\u025F\u0260\x07{\x02\x02\u0260\u0261\x07v\x02\x02" +
"\u0261\u0263\x07g\x02\x02\u0262\u0255\x03\x02\x02\x02\u0262\u025E\x03" +
"\x02\x02\x02\u0263|\x03\x02\x02\x02\u0264\u0268\t\x05\x02\x02\u0265\u0267" +
"\t\x02\x02\x02\u0266\u0265\x03\x02\x02\x02\u0267\u026A\x03\x02\x02\x02" +
"\u0268\u0266\x03\x02\x02\x02\u0268\u0269\x03\x02\x02\x02\u0269~\x03\x02" +
"\x02\x02\u026A\u0268\x03\x02\x02\x02\u026B\u0271\x07$\x02\x02\u026C\u026D" +
"\x07^\x02\x02\u026D\u0270\x07$\x02\x02\u026E\u0270\n\x06\x02\x02\u026F" +
"\u026C\x03\x02\x02\x02\u026F\u026E\x03\x02\x02\x02\u0270\u0273\x03\x02" +
"\x02\x02\u0271\u0272\x03\x02\x02\x02\u0271\u026F\x03\x02\x02\x02\u0272" +
"\u0274\x03\x02\x02\x02\u0273\u0271\x03\x02\x02\x02\u0274\u0280\x07$\x02" +
"\x02\u0275\u027B\x07)\x02\x02\u0276\u0277\x07^\x02\x02\u0277\u027A\x07" +
")\x02\x02\u0278\u027A\n\x07\x02\x02\u0279\u0276\x03\x02\x02\x02\u0279" +
"\u0278\x03\x02\x02\x02\u027A\u027D\x03\x02\x02\x02\u027B\u027C\x03\x02" +
"\x02\x02\u027B\u0279\x03\x02\x02\x02\u027C\u027E\x03\x02\x02\x02\u027D" +
"\u027B\x03\x02\x02\x02\u027E\u0280\x07)\x02\x02\u027F\u026B\x03\x02\x02" +
"\x02\u027F\u0275\x03\x02\x02\x02\u0280\x80\x03\x02\x02\x02\u0281\u0282" +
"\x07f\x02\x02\u0282\u0283\x07c\x02\x02\u0283\u0284\x07v\x02\x02\u0284" +
"\u0285\x07g\x02\x02\u0285\u0286\x07*\x02\x02\u0286\u0287\x03\x02\x02\x02" +
"\u0287\u0288\x05\x7F@\x02\u0288\u0289\x07+\x02\x02\u0289\x82\x03\x02\x02" +
"\x02\u028A\u028B\x072\x02\x02\u028B\u028F\t\b\x02\x02\u028C\u028E\t\t" +
"\x02\x02\u028D\u028C\x03\x02\x02\x02\u028E\u0291\x03\x02\x02\x02\u028F" +
"\u028D\x03\x02\x02\x02\u028F\u0290\x03\x02\x02\x02\u0290\x84\x03\x02\x02" +
"\x02\u0291\u028F\x03\x02\x02\x02\u0292\u0293\x07v\x02\x02\u0293\u0294" +
"\x07z\x02\x02\u0294\u0295\x070\x02\x02\u0295\u0296\x07c\x02\x02\u0296" +
"\u0297\x07i\x02\x02\u0297\u02A0\x07g\x02\x02\u0298\u0299\x07v\x02\x02" +
"\u0299\u029A\x07z\x02\x02\u029A\u029B\x070\x02\x02\u029B\u029C\x07v\x02" +
"\x02\u029C\u029D\x07k\x02\x02\u029D\u029E\x07o\x02\x02\u029E\u02A0\x07" +
"g\x02\x02\u029F\u0292\x03\x02\x02\x02\u029F\u0298\x03\x02\x02\x02\u02A0" +
"\x86\x03\x02\x02\x02\u02A1\u02A2\x07v\x02\x02\u02A2\u02A3\x07j\x02\x02" +
"\u02A3\u02A4\x07k\x02\x02\u02A4\u02A5\x07u\x02\x02\u02A5\u02A6\x070\x02" +
"\x02\u02A6\u02A7\x07c\x02\x02\u02A7\u02A8\x07e\x02\x02\u02A8\u02A9\x07" +
"v\x02\x02\u02A9\u02AA\x07k\x02\x02\u02AA\u02AB\x07x\x02\x02\u02AB\u02AC" +
"\x07g\x02\x02\u02AC\u02AD\x07K\x02\x02\u02AD\u02AE\x07p\x02\x02\u02AE" +
"\u02AF\x07r\x02\x02\u02AF\u02B0\x07w\x02\x02\u02B0\u02B1\x07v\x02\x02" +
"\u02B1\u02B2\x07K\x02\x02\u02B2\u02B3\x07p\x02\x02\u02B3\u02B4\x07f\x02" +
"\x02\u02B4\u02B5\x07g\x02\x02\u02B5\u0300\x07z\x02\x02\u02B6\u02B7\x07" +
"v\x02\x02\u02B7\u02B8\x07j\x02\x02\u02B8\u02B9\x07k\x02\x02\u02B9\u02BA" +
"\x07u\x02\x02\u02BA\u02BB\x070\x02\x02\u02BB\u02BC\x07c\x02\x02\u02BC" +
"\u02BD\x07e\x02\x02\u02BD\u02BE\x07v\x02\x02\u02BE\u02BF\x07k\x02\x02" +
"\u02BF\u02C0\x07x\x02\x02\u02C0\u02C1\x07g\x02\x02\u02C1\u02C2\x07D\x02" +
"\x02\u02C2\u02C3\x07{\x02\x02\u02C3\u02C4\x07v\x02\x02\u02C4\u02C5\x07" +
"g\x02\x02\u02C5\u02C6\x07e\x02\x02\u02C6\u02C7\x07q\x02\x02\u02C7\u02C8" +
"\x07f\x02\x02\u02C8\u0300\x07g\x02\x02\u02C9\u02CA\x07v\x02\x02\u02CA" +
"\u02CB\x07z\x02\x02\u02CB\u02CC\x070\x02\x02\u02CC\u02CD\x07k\x02\x02" +
"\u02CD\u02CE\x07p\x02\x02\u02CE\u02CF\x07r\x02\x02\u02CF\u02D0\x07w\x02" +
"\x02\u02D0\u02D1\x07v\x02\x02\u02D1\u02D2\x07u\x02\x02\u02D2\u02D3\x07" +
"0\x02\x02\u02D3\u02D4\x07n\x02\x02\u02D4\u02D5\x07g\x02\x02\u02D5\u02D6" +
"\x07p\x02\x02\u02D6\u02D7\x07i\x02\x02\u02D7\u02D8\x07v\x02\x02\u02D8" +
"\u0300\x07j\x02\x02\u02D9\u02DA\x07v\x02\x02\u02DA\u02DB\x07z\x02\x02" +
"\u02DB\u02DC\x070\x02\x02\u02DC\u02DD\x07q\x02\x02\u02DD\u02DE\x07w\x02" +
"\x02\u02DE\u02DF\x07v\x02\x02\u02DF\u02E0\x07r\x02\x02\u02E0\u02E1\x07" +
"w\x02\x02\u02E1\u02E2\x07v\x02\x02\u02E2\u02E3\x07u\x02\x02\u02E3\u02E4" +
"\x070\x02\x02\u02E4\u02E5\x07n\x02\x02\u02E5\u02E6\x07g\x02\x02\u02E6" +
"\u02E7\x07p\x02\x02\u02E7\u02E8\x07i\x02\x02\u02E8\u02E9\x07v\x02\x02" +
"\u02E9\u0300\x07j\x02\x02\u02EA\u02EB\x07v\x02\x02\u02EB\u02EC\x07z\x02" +
"\x02\u02EC\u02ED\x070\x02\x02\u02ED\u02EE\x07x\x02\x02\u02EE\u02EF\x07" +
"g\x02\x02\u02EF\u02F0\x07t\x02\x02\u02F0\u02F1\x07u\x02\x02\u02F1\u02F2" +
"\x07k\x02\x02\u02F2\u02F3\x07q\x02\x02\u02F3\u0300\x07p\x02\x02\u02F4" +
"\u02F5\x07v\x02\x02\u02F5\u02F6\x07z\x02\x02\u02F6\u02F7\x070\x02\x02" +
"\u02F7\u02F8\x07n\x02\x02\u02F8\u02F9\x07q\x02\x02\u02F9\u02FA\x07e\x02" +
"\x02\u02FA\u02FB\x07m\x02\x02\u02FB\u02FC\x07v\x02\x02\u02FC\u02FD\x07" +
"k\x02\x02\u02FD\u02FE\x07o\x02\x02\u02FE\u0300\x07g\x02\x02\u02FF\u02A1" +
"\x03\x02\x02\x02\u02FF\u02B6\x03\x02\x02\x02\u02FF\u02C9\x03\x02\x02\x02" +
"\u02FF\u02D9\x03\x02\x02\x02\u02FF\u02EA\x03\x02\x02\x02\u02FF\u02F4\x03" +
"\x02\x02\x02\u0300\x88\x03\x02\x02\x02\u0301\u0305\t\n\x02\x02\u0302\u0304" +
"\t\v\x02\x02\u0303\u0302\x03\x02\x02\x02\u0304\u0307\x03\x02\x02\x02\u0305" +
"\u0303\x03\x02\x02\x02\u0305\u0306\x03\x02\x02\x02\u0306\x8A\x03\x02\x02" +
"\x02\u0307\u0305\x03\x02\x02\x02\u0308\u030A\t\f\x02\x02\u0309\u0308\x03" +
"\x02\x02\x02\u030A\u030B\x03\x02\x02\x02\u030B\u0309\x03\x02\x02\x02\u030B" +
"\u030C\x03\x02\x02\x02\u030C\u030D\x03\x02\x02\x02\u030D\u030E\bF\x02" +
"\x02\u030E\x8C\x03\x02\x02\x02\u030F\u0310\x071\x02\x02\u0310\u0311\x07" +
",\x02\x02\u0311\u0315\x03\x02\x02\x02\u0312\u0314\v\x02\x02\x02\u0313" +
"\u0312\x03\x02\x02\x02\u0314\u0317\x03\x02\x02\x02\u0315\u0316\x03\x02" +
"\x02\x02\u0315\u0313\x03\x02\x02\x02\u0316\u0318\x03\x02\x02\x02\u0317" +
"\u0315\x03\x02\x02\x02\u0318\u0319\x07,\x02\x02\u0319\u031A\x071\x02\x02" +
"\u031A\u031B\x03\x02\x02\x02\u031B\u031C\bG\x03\x02\u031C\x8E\x03\x02" +
"\x02\x02\u031D\u031E\x071\x02\x02\u031E\u031F\x071\x02\x02\u031F\u0323" +
"\x03\x02\x02\x02\u0320\u0322\n\r\x02\x02\u0321\u0320\x03\x02\x02\x02\u0322" +
"\u0325\x03\x02\x02\x02\u0323\u0321\x03\x02\x02\x02\u0323\u0324\x03\x02" +
"\x02\x02\u0324\u0326\x03\x02\x02\x02\u0325\u0323\x03\x02\x02\x02\u0326" +
"\u0327\bH\x03\x02\u0327\x90\x03\x02\x02\x02\x1B\x02\u01F1\u01F7\u01FD" +
"\u0208\u0243\u0246\u024B\u0251\u0253\u025C\u0262\u0268\u026F\u0271\u0279" +
"\u027B\u027F\u028F\u029F\u02FF\u0305\u030B\u0315\u0323\x04\b\x02\x02\x02" +
"\x03\x02";
CashScriptLexer._serializedATN = Utils.join([
CashScriptLexer._serializedATNSegment0,
CashScriptLexer._serializedATNSegment1,
], "");
CashScriptLexer._serializedATN = [4, 0, 71, 806, 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, 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, 17, 1, 17, 1, 17, 1, 17, 1, 17,
1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1,
22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24,
1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1,
25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26,
1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1,
27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28,
1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1,
29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30,
1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 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, 31, 1, 31, 1, 31, 1, 31, 1, 32,
1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 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, 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, 36, 1, 36, 1, 36, 1, 36, 1, 36,
1, 36, 1, 36, 1, 37, 1, 37, 1, 38, 1, 38, 1, 39, 1, 39, 1, 40, 1, 40, 1, 41, 1, 41, 1, 42, 1, 42, 1,
43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48,
1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1,
51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53,
1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1,
55, 1, 55, 1, 56, 4, 56, 494, 8, 56, 11, 56, 12, 56, 495, 1, 56, 1, 56, 4, 56, 500, 8, 56, 11, 56,
12, 56, 501, 1, 56, 1, 56, 4, 56, 506, 8, 56, 11, 56, 12, 56, 507, 1, 57, 1, 57, 1, 57, 1, 57, 1,
57, 1, 57, 1, 57, 1, 57, 1, 57, 3, 57, 519, 8, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58,
1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1,
58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58,
1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1,
58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 3, 58, 578, 8, 58, 1, 59, 3, 59, 581, 8, 59, 1, 59,
4, 59, 584, 8, 59, 11, 59, 12, 59, 585, 1, 59, 1, 59, 4, 59, 590, 8, 59, 11, 59, 12, 59, 591, 3,
59, 594, 8, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 3, 60, 603, 8, 60, 1, 60, 1, 60,
1, 60, 1, 60, 3, 60, 609, 8, 60, 1, 61, 1, 61, 5, 61, 613, 8, 61, 10, 61, 12, 61, 616, 9, 61, 1,
62, 1, 62, 1, 62, 1, 62, 5, 62, 622, 8, 62, 10, 62, 12, 62, 625, 9, 62, 1, 62, 1, 62, 1, 62, 1, 62,
1, 62, 5, 62, 632, 8, 62, 10, 62, 12, 62, 635, 9, 62, 1, 62, 3, 62, 638, 8, 62, 1, 63, 1, 63, 1,
63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 5, 64, 652, 8, 64, 10, 64, 12,
64, 655, 9, 64, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65,
1, 65, 3, 65, 670, 8, 65, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1,
66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66,
1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1,
66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66,
1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1,
66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66,
1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 3, 66, 766, 8, 66, 1,
67, 1, 67, 5, 67, 770, 8, 67, 10, 67, 12, 67, 773, 9, 67, 1, 68, 4, 68, 776, 8, 68, 11, 68, 12,
68, 777, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, 1, 69, 5, 69, 786, 8, 69, 10, 69, 12, 69, 789, 9, 69,
1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 70, 5, 70, 800, 8, 70, 10, 70, 12, 70,
803, 9, 70, 1, 70, 1, 70, 3, 623, 633, 787, 0, 71, 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, 1, 0, 12, 1, 0, 48, 57, 1, 0, 45, 45, 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, 841, 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, 1, 143, 1, 0, 0, 0, 3,
150, 1, 0, 0, 0, 5, 152, 1, 0, 0, 0, 7, 163, 1, 0, 0, 0, 9, 165, 1, 0, 0, 0, 11, 167, 1, 0, 0, 0, 13,
170, 1, 0, 0, 0, 15, 172, 1, 0, 0, 0, 17, 174, 1, 0, 0, 0, 19, 177, 1, 0, 0, 0, 21, 179, 1, 0, 0, 0,
23, 188, 1, 0, 0, 0, 25, 190, 1, 0, 0, 0, 27, 192, 1, 0, 0, 0, 29, 201, 1, 0, 0, 0, 31, 203, 1, 0,
0, 0, 33, 205, 1, 0, 0, 0, 35, 207, 1, 0, 0, 0, 37, 215, 1, 0, 0, 0, 39, 218, 1, 0, 0, 0, 41, 223,
1, 0, 0, 0, 43, 227, 1, 0, 0, 0, 45, 229, 1, 0, 0, 0, 47, 231, 1, 0, 0, 0, 49, 242, 1, 0, 0, 0, 51,
249, 1, 0, 0, 0, 53, 266, 1, 0, 0, 0, 55, 281, 1, 0, 0, 0, 57, 296, 1, 0, 0, 0, 59, 309, 1, 0, 0, 0,
61, 319, 1, 0, 0, 0, 63, 344, 1, 0, 0, 0, 65, 359, 1, 0, 0, 0, 67, 378, 1, 0, 0, 0, 69, 394, 1, 0,
0, 0, 71, 405, 1, 0, 0, 0, 73, 413, 1, 0, 0, 0, 75, 420, 1, 0, 0, 0, 77, 422, 1, 0, 0, 0, 79, 424,
1, 0, 0, 0, 81, 426, 1, 0, 0, 0, 83, 428, 1, 0, 0, 0, 85, 430, 1, 0, 0, 0, 87, 432, 1, 0, 0, 0, 89,
435, 1, 0, 0, 0, 91, 438, 1, 0, 0, 0, 93, 440, 1, 0, 0, 0, 95, 442, 1, 0, 0, 0, 97, 445, 1, 0, 0, 0,
99, 448, 1, 0, 0, 0, 101, 457, 1, 0, 0, 0, 103, 461, 1, 0, 0, 0, 105, 466, 1, 0, 0, 0, 107, 473,
1, 0, 0, 0, 109, 480, 1, 0, 0, 0, 111, 484, 1, 0, 0, 0, 113, 493, 1, 0, 0, 0, 115, 518, 1, 0, 0, 0,
117, 577, 1, 0, 0, 0, 119, 580, 1, 0, 0, 0, 121, 608, 1, 0, 0, 0, 123, 610, 1, 0, 0, 0, 125, 637,
1, 0, 0, 0, 127, 639, 1, 0, 0, 0, 129, 648, 1, 0, 0, 0, 131, 669, 1, 0, 0, 0, 133, 765, 1, 0, 0, 0,
135, 767, 1, 0, 0, 0, 137, 775, 1, 0, 0, 0, 139, 781, 1, 0, 0, 0, 141, 795, 1, 0, 0, 0, 143, 144,
5, 112, 0, 0, 144, 145, 5, 114, 0, 0, 145, 146, 5, 97, 0, 0, 146, 147, 5, 103, 0, 0, 147, 148,
5, 109, 0, 0, 148, 149, 5, 97, 0, 0, 149, 2, 1, 0, 0, 0, 150, 151, 5, 59, 0, 0, 151, 4, 1, 0, 0, 0,
152, 153, 5, 99, 0, 0, 153, 154, 5, 97, 0, 0, 154, 155, 5, 115, 0, 0, 155, 156, 5, 104, 0, 0, 156,
157, 5, 115, 0, 0, 157, 158, 5, 99, 0, 0, 158, 159, 5, 114, 0, 0, 159, 160, 5, 105, 0, 0, 160,
161, 5, 112, 0, 0, 161, 162, 5, 116, 0, 0, 162, 6, 1, 0, 0, 0, 163, 164, 5, 94, 0, 0, 164, 8, 1,
0, 0, 0, 165, 166, 5, 126, 0, 0, 166, 10, 1, 0, 0, 0, 167, 168, 5, 62, 0, 0, 168, 169, 5, 61, 0,
0, 169, 12, 1, 0, 0, 0, 170, 171, 5, 62, 0, 0, 171, 14, 1, 0, 0, 0, 172, 173, 5, 60, 0, 0, 173, 16,
1, 0, 0, 0, 174, 175, 5, 60, 0, 0, 175, 176, 5, 61, 0, 0, 176, 18, 1, 0, 0, 0, 177, 178, 5, 61, 0,
0, 178, 20, 1, 0, 0, 0, 179, 180, 5, 99, 0, 0, 180, 181, 5, 111, 0, 0, 181, 182, 5, 110, 0, 0, 182,
183, 5, 116, 0, 0, 183, 184, 5, 114, 0, 0, 184, 185, 5, 97, 0, 0, 185, 186, 5, 99, 0, 0, 186, 187,
5, 116, 0, 0, 187, 22, 1, 0, 0, 0, 188, 189, 5, 123, 0, 0, 189, 24, 1, 0, 0, 0, 190, 191, 5, 125,
0, 0, 191, 26, 1, 0, 0, 0, 192, 193, 5, 102, 0, 0, 193, 194, 5, 117, 0, 0, 194, 195, 5, 110, 0,
0, 195, 196, 5, 99, 0, 0, 196, 197, 5, 116, 0, 0, 197, 198, 5, 105, 0, 0, 198, 199, 5, 111, 0,
0, 199, 200, 5, 110, 0, 0, 200, 28, 1, 0, 0, 0, 201, 202, 5, 40, 0, 0, 202, 30, 1, 0, 0, 0, 203,
204, 5, 44, 0, 0, 204, 32, 1, 0, 0, 0, 205, 206, 5, 41, 0, 0, 206, 34, 1, 0, 0, 0, 207, 208, 5, 114,
0, 0, 208, 209, 5, 101, 0, 0, 209, 210, 5, 113, 0, 0, 210, 211, 5, 117, 0, 0, 211, 212, 5, 105,
0, 0, 212, 213, 5, 114, 0, 0, 213, 214, 5, 101, 0, 0, 214, 36, 1, 0, 0, 0, 215, 216, 5, 105, 0,
0, 216, 217, 5, 102, 0, 0, 217, 38, 1, 0, 0, 0, 218, 219, 5, 101, 0, 0, 219, 220, 5, 108, 0, 0,
220, 221, 5, 115, 0, 0, 221, 222, 5, 101, 0, 0, 222, 40, 1, 0, 0, 0, 223, 224, 5, 110, 0, 0, 224,
225, 5, 101, 0, 0, 225, 226, 5, 119, 0, 0, 226, 42, 1, 0, 0, 0, 227, 228, 5, 91, 0, 0, 228, 44,
1, 0, 0, 0, 229, 230, 5, 93, 0, 0, 230, 46, 1, 0, 0, 0, 231, 232, 5, 116, 0, 0, 232, 233, 5, 120,
0, 0, 233, 234, 5, 46, 0, 0, 234, 235, 5, 111, 0, 0, 235, 236, 5, 117, 0, 0, 236, 237, 5, 116,
0, 0, 237, 238, 5, 112, 0, 0, 238, 239, 5, 117, 0, 0, 239, 240, 5, 116, 0, 0, 240, 241, 5, 115,
0, 0, 241, 48, 1, 0, 0, 0, 242, 243, 5, 46, 0, 0, 243, 244, 5, 118, 0, 0, 244, 245, 5, 97, 0, 0,
245, 246, 5, 108, 0, 0, 246, 247, 5, 117, 0, 0, 247, 248, 5, 101, 0, 0, 248, 50, 1, 0, 0, 0, 249,
250, 5, 46, 0, 0, 250, 251, 5, 108, 0, 0, 251, 252, 5, 111, 0, 0, 252, 253, 5, 99, 0, 0, 253, 254,
5, 107, 0, 0, 254, 255, 5, 105, 0, 0, 255, 256, 5, 110, 0, 0, 256, 257, 5, 103, 0, 0, 257, 258,
5, 66, 0, 0, 258, 259, 5, 121, 0, 0, 259, 260, 5, 116, 0, 0, 260, 261, 5, 101, 0, 0, 261, 262,
5, 99, 0, 0, 262, 263, 5, 111, 0, 0, 263, 264, 5, 100, 0, 0, 264, 265, 5, 101, 0, 0, 265, 52, 1,
0, 0, 0, 266, 267, 5, 46, 0, 0, 267, 268, 5, 116, 0, 0, 268, 269, 5, 111, 0, 0, 269, 270, 5, 107,
0, 0, 270, 271, 5, 101, 0, 0, 271, 272, 5, 110, 0, 0, 272, 273, 5, 67, 0, 0, 273, 274, 5, 97, 0,
0, 274, 275, 5, 116, 0, 0, 275, 276, 5, 101, 0, 0, 276, 277, 5, 103, 0, 0, 277, 278, 5, 111, 0,
0, 278, 279, 5, 114, 0, 0, 279, 280, 5, 121, 0, 0, 280, 54, 1, 0, 0, 0, 281, 282, 5, 46, 0, 0, 282,
283, 5, 110, 0, 0, 283, 284, 5, 102, 0, 0, 284, 285, 5, 116, 0, 0, 285, 286, 5, 67, 0, 0, 286,
287, 5, 111, 0, 0, 287, 288, 5, 109, 0, 0, 288, 289, 5, 109, 0, 0, 289, 290, 5, 105, 0, 0, 290,
291, 5, 116, 0, 0, 291, 292, 5, 109, 0, 0, 292, 293, 5, 101, 0, 0, 293, 294, 5, 110, 0, 0, 294,
295, 5, 116, 0, 0, 295, 56, 1, 0, 0, 0, 296, 297, 5, 46, 0, 0, 297, 298, 5, 116, 0, 0, 298, 299,
5, 111, 0, 0, 299, 300, 5, 107, 0, 0, 300, 301, 5, 101, 0, 0, 301, 302, 5, 110, 0, 0, 302, 303,
5, 65, 0, 0, 303, 304, 5, 109, 0, 0, 304, 305, 5, 111, 0, 0, 305, 306, 5, 117, 0, 0, 306, 307,
5, 110, 0, 0, 307, 308, 5, 116, 0, 0, 308, 58, 1, 0, 0, 0, 309, 310, 5, 116, 0, 0, 310, 311, 5,
120, 0, 0, 311, 312, 5, 46, 0, 0, 312, 313, 5, 105, 0, 0, 313, 314, 5, 110, 0, 0, 314, 315, 5,
112, 0, 0, 315, 316, 5, 117, 0, 0, 316, 317, 5, 116, 0, 0, 317, 318, 5, 115, 0, 0, 318, 60, 1,
0, 0, 0, 319, 320, 5, 46, 0, 0, 320, 321, 5, 111, 0, 0, 321, 322, 5, 117, 0, 0, 322, 323, 5, 116,
0, 0, 323, 324, 5, 112, 0, 0, 324, 325, 5, 111, 0, 0, 325, 326, 5, 105, 0, 0, 326, 327, 5, 110,
0, 0, 327, 328, 5, 116, 0, 0, 328, 329, 5, 84, 0, 0, 329, 330, 5, 114, 0, 0, 330, 331, 5, 97, 0,
0, 331, 332, 5, 110, 0, 0, 332, 333, 5, 115, 0, 0, 333, 334, 5, 97, 0, 0, 334, 335, 5, 99, 0, 0,
335, 336, 5, 116, 0, 0, 336, 337, 5, 105, 0, 0, 337, 338, 5, 111, 0, 0, 338, 339, 5, 110, 0, 0,
339, 340, 5, 72, 0, 0, 340, 341, 5, 97, 0, 0, 341, 342, 5, 115, 0, 0, 342, 343, 5, 104, 0, 0, 343,
62, 1, 0, 0, 0, 344, 345, 5, 46, 0, 0, 345, 346, 5, 111, 0, 0, 346, 347, 5, 117, 0, 0, 347, 348,
5, 116, 0, 0, 348, 349, 5, 112, 0, 0, 349, 350, 5, 111, 0, 0, 350, 351, 5, 105, 0, 0, 351, 352,
5, 110, 0, 0, 352, 353, 5, 116, 0, 0, 353, 354, 5, 73, 0, 0, 354, 355, 5, 110, 0, 0, 355, 356,
5, 100, 0, 0, 356, 357, 5, 101, 0, 0, 357, 358, 5, 120, 0, 0, 358, 64, 1, 0, 0, 0, 359, 360, 5,
46, 0, 0, 360, 361, 5, 117, 0, 0, 361, 362, 5, 110, 0, 0, 362, 363, 5, 108, 0, 0, 363, 364, 5,
111, 0, 0, 364, 365, 5, 99, 0, 0, 365, 366, 5, 107, 0, 0, 366, 367, 5, 105, 0, 0, 367, 368, 5,
110, 0, 0, 368, 369, 5, 103, 0, 0, 369, 370, 5, 66, 0, 0, 370, 371, 5, 121, 0, 0, 371, 372, 5,
116, 0, 0, 372, 373, 5, 101, 0, 0, 373, 374, 5, 99, 0, 0, 374, 375, 5, 111, 0, 0, 375, 376, 5,
100, 0, 0, 376, 377, 5, 101, 0, 0, 377, 66, 1, 0, 0, 0, 378, 379, 5, 46, 0, 0, 379, 380, 5, 115,
0, 0, 380, 381, 5, 101, 0, 0, 381, 382, 5, 113, 0, 0, 382, 383, 5, 117, 0, 0, 383, 384, 5, 101,
0, 0, 384, 385, 5, 110, 0, 0, 385, 386, 5, 99, 0, 0, 386, 387, 5, 101, 0, 0, 387, 388, 5, 78, 0,
0, 388, 389, 5, 117, 0, 0, 389, 390, 5, 109, 0, 0, 390, 391, 5, 98, 0, 0, 391, 392, 5, 101, 0,
0, 392, 393, 5, 114, 0, 0, 393, 68, 1, 0, 0, 0, 394, 395, 5, 46, 0, 0, 395, 396, 5, 114, 0, 0, 396,
397, 5, 101, 0, 0, 397, 398, 5, 118, 0, 0, 398, 399, 5, 101, 0, 0, 399, 400, 5, 114, 0, 0, 400,
401, 5, 115, 0, 0, 401, 402, 5, 101, 0, 0, 402, 403, 5, 40, 0, 0, 403, 404, 5, 41, 0, 0, 404, 70,
1, 0, 0, 0, 405, 406, 5, 46, 0, 0, 406, 407, 5, 108, 0, 0, 407, 408, 5, 101, 0, 0, 408, 409, 5,
110, 0, 0, 409, 410, 5, 103, 0, 0, 410, 411, 5, 116, 0, 0, 411, 412, 5, 104, 0, 0, 412, 72, 1,
0, 0, 0, 413, 414, 5, 46, 0, 0, 414, 415, 5, 115, 0, 0, 415, 416, 5, 112, 0, 0, 416, 417, 5, 108,
0, 0, 417, 418, 5, 105, 0, 0, 418, 419, 5, 116, 0, 0, 419, 74, 1, 0, 0, 0, 420, 421, 5, 33, 0, 0,
421, 76, 1, 0, 0, 0, 422, 423, 5, 45, 0, 0, 423, 78, 1, 0, 0, 0, 424, 425, 5, 42, 0, 0, 425, 80,
1, 0, 0, 0, 426, 427, 5, 47, 0, 0, 427, 82, 1, 0, 0, 0, 428, 429, 5, 37, 0, 0, 429, 84, 1, 0, 0, 0,
430, 431, 5, 43, 0, 0, 431, 86, 1, 0, 0, 0, 432, 433, 5, 61, 0, 0, 433, 434, 5, 61, 0, 0, 434, 88,
1, 0, 0, 0, 435, 436, 5, 33, 0, 0, 436, 437, 5, 61, 0, 0, 437, 90, 1, 0, 0, 0, 438, 439, 5, 38, 0,
0, 439, 92, 1, 0, 0, 0, 440, 441, 5, 124, 0, 0, 441, 94, 1, 0, 0, 0, 442, 443, 5, 38, 0, 0, 443,
444, 5, 38, 0, 0, 444, 96, 1, 0, 0, 0, 445, 446, 5, 124, 0, 0, 446, 447, 5, 124, 0, 0, 447, 98,
1, 0, 0, 0, 448, 449, 5, 99, 0, 0, 449, 450, 5, 111, 0, 0, 450, 451, 5, 110, 0, 0, 451, 452, 5,
115, 0, 0, 452, 453, 5, 116, 0, 0, 453, 454, 5, 97, 0, 0, 454, 455, 5, 110, 0, 0, 455, 456, 5,
116, 0, 0, 456, 100, 1, 0, 0, 0, 457, 458, 5, 105, 0, 0, 458, 459, 5, 110, 0, 0, 459, 460, 5, 116,
0, 0, 460, 102, 1, 0, 0, 0, 461, 462, 5, 98, 0, 0, 462, 463, 5, 111, 0, 0, 463, 464, 5, 111, 0,
0, 464, 465, 5, 108, 0, 0, 465, 104, 1, 0, 0, 0, 466, 467, 5, 115, 0, 0, 467, 468, 5, 116, 0, 0,
468, 469, 5, 114, 0, 0, 469, 470, 5, 105, 0, 0, 470, 471, 5, 110, 0, 0, 471, 472, 5, 103, 0, 0,
472, 106, 1, 0, 0, 0, 473, 474, 5, 112, 0, 0, 474, 475, 5, 117, 0, 0, 475, 476, 5, 98, 0, 0, 476,
477, 5, 107, 0, 0, 477, 478, 5, 101, 0, 0, 478, 479, 5, 121, 0, 0, 479, 108, 1, 0, 0, 0, 480, 481,
5, 115, 0, 0, 481, 482, 5, 105, 0, 0, 482, 483, 5, 103, 0, 0, 483, 110, 1, 0, 0, 0, 484, 485, 5,
100, 0, 0, 485, 486, 5, 97, 0, 0, 486, 487, 5, 116, 0, 0, 487, 488, 5, 97, 0, 0, 488, 489, 5, 115,
0, 0, 489, 490, 5, 105, 0, 0, 490, 491, 5, 103, 0, 0, 491, 112, 1, 0, 0, 0, 492, 494, 7, 0, 0, 0,
493, 492, 1, 0, 0, 0, 494, 495, 1, 0, 0, 0, 495, 493, 1, 0, 0, 0, 495, 496, 1, 0, 0, 0, 496, 497,
1, 0, 0, 0, 497, 499, 5, 46, 0, 0, 498, 500, 7, 0, 0, 0, 499, 498, 1, 0, 0, 0, 500, 501, 1, 0, 0,
0, 501, 499, 1, 0, 0, 0, 501, 502, 1, 0, 0, 0, 502, 503, 1, 0, 0, 0, 503, 505, 5, 46, 0, 0, 504,
506, 7, 0, 0, 0, 505, 504, 1, 0, 0, 0, 506, 507, 1, 0, 0, 0, 507, 505, 1, 0, 0, 0, 507, 508, 1, 0,
0, 0, 508, 114, 1, 0, 0, 0, 509, 510, 5, 116, 0, 0, 510, 511, 5, 114, 0, 0, 511, 512, 5, 117, 0,
0, 512, 519, 5, 101, 0, 0, 513, 514, 5, 102, 0, 0, 514, 515, 5, 97, 0, 0, 515, 516, 5, 108, 0,
0, 516, 517, 5, 115, 0, 0, 517, 519, 5, 101, 0, 0, 518, 509, 1, 0, 0, 0, 518, 513, 1, 0, 0, 0, 519,
116, 1, 0, 0, 0, 520, 521, 5, 115, 0, 0, 521, 522, 5, 97, 0, 0, 522, 523, 5, 116, 0, 0, 523, 524,
5, 111, 0, 0, 524, 525, 5, 115, 0, 0, 525, 526, 5, 104, 0, 0, 526, 527, 5, 105, 0, 0, 527, 578,
5, 115, 0, 0, 528, 529, 5, 115, 0, 0, 529, 530, 5, 97, 0, 0, 530, 531, 5, 116, 0, 0, 531, 578,
5, 115, 0, 0, 532, 533, 5, 102, 0, 0, 533, 534, 5, 105, 0, 0, 534, 535, 5, 110, 0, 0, 535, 536,
5, 110, 0, 0, 536, 537, 5, 101, 0, 0, 537, 578, 5, 121, 0, 0, 538, 539, 5, 98, 0, 0, 539, 540,
5, 105, 0, 0, 540, 541, 5, 116, 0, 0, 541, 578, 5, 115, 0, 0, 542, 543, 5, 98, 0, 0, 543, 544,
5, 105, 0, 0, 544, 545, 5, 116, 0, 0, 545, 546, 5, 99, 0, 0, 546, 547, 5, 111, 0, 0, 547, 548,
5, 105, 0, 0, 548, 578, 5, 110, 0, 0, 549, 550, 5, 115, 0, 0, 550, 551, 5, 101, 0, 0, 551, 552,
5, 99, 0, 0, 552, 553, 5, 111, 0, 0, 553, 554, 5, 110, 0, 0, 554, 555, 5, 100, 0, 0, 555, 578,
5, 115, 0, 0, 556, 557, 5, 109, 0, 0, 557, 558, 5, 105, 0, 0, 558, 559, 5, 110, 0, 0, 559, 560,
5, 117, 0, 0, 560, 561, 5, 116, 0, 0, 561, 562, 5, 101, 0, 0, 562, 578, 5, 115, 0, 0, 563, 564,
5, 104, 0, 0, 564, 565, 5, 111, 0, 0, 565, 566, 5, 117, 0, 0, 566, 567, 5, 114, 0, 0, 567, 578,
5, 115, 0, 0, 568, 569, 5, 100, 0, 0, 569, 570, 5, 97, 0, 0, 570, 571, 5, 121, 0, 0, 571, 578,
5, 115, 0, 0, 572, 573, 5, 119, 0, 0, 573, 574, 5, 101, 0, 0, 574, 575, 5, 101, 0, 0, 575, 576,
5, 107, 0, 0, 576, 578, 5, 115, 0, 0, 577, 520, 1, 0, 0, 0, 577, 528, 1, 0, 0, 0, 577, 532, 1, 0,
0, 0, 577, 538, 1, 0, 0, 0, 577, 542, 1, 0, 0, 0, 577, 549, 1, 0, 0, 0, 577, 556, 1, 0, 0, 0, 577,
563, 1, 0, 0, 0, 577, 568, 1, 0, 0, 0, 577, 572, 1, 0, 0, 0, 578, 118, 1, 0, 0, 0, 579, 581, 7, 1,
0, 0, 580, 579, 1, 0, 0, 0, 580, 581, 1, 0, 0, 0, 581, 583, 1, 0, 0, 0, 582, 584, 7, 0, 0, 0, 583,
582, 1, 0, 0, 0, 584, 585, 1, 0, 0, 0, 585, 583, 1, 0, 0, 0, 585, 586, 1, 0, 0, 0, 586, 593, 1, 0,
0, 0, 587, 589, 7, 2, 0, 0, 588, 590, 7, 0, 0, 0, 589, 588, 1, 0, 0, 0, 590, 591, 1, 0, 0, 0, 591,
589, 1, 0, 0, 0, 591, 592, 1, 0, 0, 0, 592, 594, 1, 0, 0, 0, 593, 587, 1, 0, 0, 0, 593, 594, 1, 0,
0, 0, 594, 120, 1, 0, 0, 0, 595, 596, 5, 98, 0, 0, 596, 597, 5, 121, 0, 0, 597, 598, 5, 116, 0,
0, 598, 599, 5, 101, 0, 0, 599, 600, 5, 115, 0, 0, 600, 602, 1, 0, 0, 0, 601, 603, 3, 123, 61,
0, 602, 601, 1, 0, 0, 0, 602, 603, 1, 0, 0, 0, 603, 609, 1, 0, 0, 0, 604, 605, 5, 98, 0, 0, 605,
606, 5, 121, 0, 0, 606, 607, 5, 116, 0, 0, 607, 609, 5, 101, 0, 0, 608, 595, 1, 0, 0, 0, 608, 604,
1, 0, 0, 0, 609, 122, 1, 0, 0, 0, 610, 614, 7, 3, 0, 0, 611, 613, 7, 0, 0, 0, 612, 611, 1, 0, 0, 0,
613, 616, 1, 0, 0, 0, 614, 612, 1, 0, 0, 0, 614, 615, 1, 0, 0, 0, 615, 124, 1, 0, 0, 0, 616, 614,
1, 0, 0, 0, 617, 623, 5, 34, 0, 0, 618, 619, 5, 92, 0, 0, 619, 622, 5, 34, 0, 0, 620, 622, 8, 4,
0, 0, 621, 618, 1, 0, 0, 0, 621, 620, 1, 0, 0, 0, 622, 625, 1, 0, 0, 0, 623, 624, 1, 0, 0, 0, 623,
621, 1, 0, 0, 0, 624, 626, 1, 0, 0, 0, 625, 623, 1, 0, 0, 0, 626, 638, 5, 34, 0, 0, 627, 633, 5,
39, 0, 0, 628, 629, 5, 92, 0, 0, 629, 632, 5, 39, 0, 0, 630, 632, 8, 5, 0, 0, 631, 628, 1, 0, 0,
0, 631, 630, 1, 0, 0, 0, 632, 635, 1, 0, 0, 0, 633, 634, 1, 0, 0, 0, 633, 631, 1, 0, 0, 0, 634, 636,
1, 0, 0, 0, 635, 633, 1, 0, 0, 0, 636, 638, 5, 39, 0, 0, 637, 617, 1, 0, 0, 0, 637, 627, 1, 0, 0,
0, 638, 126, 1, 0, 0, 0, 639, 640, 5, 100, 0, 0, 640, 641, 5, 97, 0, 0, 641, 642, 5, 116, 0, 0,
642, 643, 5, 101, 0, 0, 643, 644, 5, 40, 0, 0, 644, 645, 1, 0, 0, 0, 645, 646, 3, 125, 62, 0, 646,
647, 5, 41, 0, 0, 647, 128, 1, 0, 0, 0, 648, 649, 5, 48, 0, 0, 649, 653, 7, 6, 0, 0, 650, 652, 7,
7, 0, 0, 651, 650, 1, 0, 0, 0, 652, 655, 1, 0, 0, 0, 653, 651, 1, 0, 0, 0, 653, 654, 1, 0, 0, 0, 654,
130, 1, 0, 0, 0, 655, 653, 1, 0, 0, 0, 656, 657, 5, 116, 0, 0, 657, 658, 5, 120, 0, 0, 658, 659,
5, 46, 0, 0, 659, 660, 5, 97, 0, 0, 660, 661, 5, 103, 0, 0, 661, 670, 5, 101, 0, 0, 662, 663, 5,
116, 0, 0, 663, 664, 5, 120, 0, 0, 664, 665, 5, 46, 0, 0, 665, 666, 5, 116, 0, 0, 666, 667, 5,
105, 0, 0, 667, 668, 5, 109, 0, 0, 668, 670, 5, 101, 0, 0, 669, 656, 1, 0, 0, 0, 669, 662, 1, 0,
0, 0, 670, 132, 1, 0, 0, 0, 671, 672, 5, 116, 0, 0, 672, 673, 5, 104, 0, 0, 673, 674, 5, 105, 0,
0, 674, 675, 5, 115, 0, 0, 675, 676, 5, 46, 0, 0, 676, 677, 5, 97, 0, 0, 677, 678, 5, 99, 0, 0,
678, 679, 5, 116, 0, 0, 679, 680, 5, 105, 0, 0, 680, 681, 5, 118, 0, 0, 681, 682, 5, 101, 0, 0,
682, 683, 5, 73, 0, 0, 683, 684, 5, 110, 0, 0, 684, 685, 5, 112, 0, 0, 685, 686, 5, 117, 0, 0,
686, 687, 5, 116, 0, 0, 687, 688, 5, 73, 0, 0, 688, 689, 5, 110, 0, 0, 689, 690, 5, 100, 0, 0,
690, 691, 5, 101, 0, 0, 691, 766, 5, 120, 0, 0, 692, 693, 5, 116, 0, 0, 693, 694, 5, 104, 0, 0,
694, 695, 5, 105, 0, 0, 695, 696, 5, 115, 0, 0, 696, 697, 5, 46, 0, 0, 697, 698, 5, 97, 0, 0, 698,
699, 5, 99, 0, 0, 699, 700, 5, 116, 0, 0, 700, 701, 5, 105, 0, 0, 701, 702, 5, 118, 0, 0, 702,
703, 5, 101, 0, 0, 703, 704, 5, 66, 0, 0, 704, 705, 5, 121, 0, 0, 705, 706, 5, 116, 0, 0, 706,
707, 5, 101, 0, 0, 707, 708, 5, 99, 0, 0, 708, 709, 5, 111, 0, 0, 709, 710, 5, 100, 0, 0, 710,
766, 5, 101, 0, 0, 711, 712, 5, 116, 0, 0, 712, 713, 5, 120, 0, 0, 713, 714, 5, 46, 0, 0, 714,
715, 5, 105, 0, 0, 715, 716, 5, 110, 0, 0, 716, 717, 5, 112, 0, 0, 717, 718, 5, 117, 0, 0, 718,
719, 5, 116, 0, 0, 719, 720, 5, 115, 0, 0, 720, 721, 5, 46, 0, 0, 721, 722, 5, 108, 0, 0, 722,
723, 5, 101, 0, 0, 723, 724, 5, 110, 0, 0, 724, 725, 5, 103, 0, 0, 725, 726, 5, 116, 0, 0, 726,
766, 5, 104, 0, 0, 727, 728, 5, 116, 0, 0, 728, 729, 5, 120, 0, 0, 729, 730, 5, 46, 0, 0, 730,
731, 5, 111, 0, 0, 731, 732, 5, 117, 0, 0, 732, 733, 5, 116, 0, 0, 733, 734, 5, 112, 0, 0, 734,
735, 5, 117, 0, 0, 735, 736, 5, 116, 0, 0, 736, 737, 5, 115, 0, 0, 737, 738, 5, 46, 0, 0, 738,
739, 5, 108, 0, 0, 739, 740, 5, 101, 0, 0, 740, 741, 5, 110, 0, 0, 741, 742, 5, 103, 0, 0, 742,
743, 5, 116, 0, 0, 743, 766, 5, 104, 0, 0, 744, 745, 5, 116, 0, 0, 745, 746, 5, 120, 0, 0, 746,
747, 5, 46, 0, 0, 747, 748, 5, 118, 0, 0, 748, 749, 5, 101, 0, 0, 749, 750, 5, 114, 0, 0, 750,
751, 5, 115, 0, 0, 751, 752, 5, 105, 0, 0, 752, 753, 5, 111, 0, 0, 753, 766, 5, 110, 0, 0, 754,
755, 5, 116, 0, 0, 755, 756, 5, 120, 0, 0, 756, 757, 5, 46, 0, 0, 757, 758, 5, 108, 0, 0, 758,
759, 5, 111, 0, 0, 759, 760, 5, 99, 0, 0, 760, 761, 5, 107, 0, 0, 761, 762, 5, 116, 0, 0, 762,
763, 5, 105, 0, 0, 763, 764, 5, 109, 0, 0, 764, 766, 5, 101, 0, 0, 765, 671, 1, 0, 0, 0, 765, 692,
1, 0, 0, 0, 765, 711, 1, 0, 0, 0, 765, 727, 1, 0, 0, 0, 765, 744, 1, 0, 0, 0, 765, 754, 1, 0, 0, 0,
766, 134, 1, 0, 0, 0, 767, 771, 7, 8, 0, 0, 768, 770, 7, 9, 0, 0, 769, 768, 1, 0, 0, 0, 770, 773,
1, 0, 0, 0, 771, 769, 1, 0, 0, 0, 771, 772, 1, 0, 0, 0, 772, 136, 1, 0, 0, 0, 773, 771, 1, 0, 0, 0,
774, 776, 7, 10, 0, 0, 775, 774, 1, 0, 0, 0, 776, 777, 1, 0, 0, 0, 777, 775, 1, 0, 0, 0, 777, 778,
1, 0, 0, 0, 778, 779, 1, 0, 0, 0, 779, 780, 6, 68, 0, 0, 780, 138, 1, 0, 0, 0, 781, 782, 5, 47, 0,
0, 782, 783, 5, 42, 0, 0, 783, 787, 1, 0, 0, 0, 784, 786, 9, 0, 0, 0, 785, 784, 1, 0, 0, 0, 786,
789, 1, 0, 0, 0, 787, 788, 1, 0, 0, 0, 787, 785, 1, 0, 0, 0, 788, 790, 1, 0, 0, 0, 789, 787, 1, 0,
0, 0, 790, 791, 5, 42, 0, 0, 791, 792, 5, 47, 0, 0, 792, 793, 1, 0, 0, 0, 793, 794, 6, 69, 1, 0,
794, 140, 1, 0, 0, 0, 795, 796, 5, 47, 0, 0, 796, 797, 5, 47, 0, 0, 797, 801, 1, 0, 0, 0, 798, 800,
8, 11, 0, 0, 799, 798, 1, 0, 0, 0, 800, 803, 1, 0, 0, 0, 801, 799, 1, 0, 0, 0, 801, 802, 1, 0, 0,
0, 802, 804, 1, 0, 0, 0, 803, 801, 1, 0, 0, 0, 804, 805, 6, 70, 1, 0, 805, 142, 1, 0, 0, 0, 25, 0,
495, 501, 507, 518, 577, 580, 585, 591, 593, 602, 608, 614, 621, 623, 631, 633, 637, 653,
669, 765, 771, 777, 787, 801, 2, 6, 0, 0, 0, 1, 0];
CashScriptLexer.DecisionsToDFA = CashScriptLexer._ATN.decisionToState.map((ds, index) => new DFA(ds, index));
//# sourceMappingURL=CashScriptLexer.js.map

@@ -1,12 +0,4 @@

import { ATN } from "antlr4ts/atn/ATN.js";
import { FailedPredicateException } from "antlr4ts/FailedPredicateException.js";
import { Parser } from "antlr4ts/Parser.js";
import { ParserRuleContext } from "antlr4ts/ParserRuleContext.js";
import { RuleContext } from "antlr4ts/RuleContext.js";
import { TerminalNode } from "antlr4ts/tree/TerminalNode.js";
import { Token } from "antlr4ts/Token.js";
import { TokenStream } from "antlr4ts/TokenStream.js";
import { Vocabulary } from "antlr4ts/Vocabulary.js";
import { CashScriptVisitor } from "./CashScriptVisitor.js";
export declare class CashScriptParser extends Parser {
import { ATN, DFA, FailedPredicateException, Parser, RuleContext, ParserRuleContext, TerminalNode, Token, TokenStream } from 'antlr4';
import CashScriptVisitor from "./CashScriptVisitor.js";
export default class CashScriptParser extends Parser {
static readonly T__0 = 1;

@@ -83,2 +75,3 @@ static readonly T__1 = 2;

static readonly LINE_COMMENT = 71;
static readonly EOF: number;
static readonly RULE_sourceFile = 0;

@@ -109,10 +102,10 @@ static readonly RULE_pragmaDirective = 1;

static readonly RULE_typeName = 24;
static readonly literalNames: (string | null)[];
static readonly symbolicNames: (string | null)[];
static readonly ruleNames: string[];
private static readonly _LITERAL_NAMES;
private static readonly _SYMBOLIC_NAMES;
static readonly VOCABULARY: Vocabulary;
get vocabulary(): Vocabulary;
get grammarFileName(): string;
get literalNames(): (string | null)[];
get symbolicNames(): (string | null)[];
get ruleNames(): string[];
get serializedATN(): string;
get serializedATN(): number[];
protected createFailedPredicateException(predicate?: string, message?: string): FailedPredicateException;

@@ -146,14 +139,15 @@ constructor(input: TokenStream);

typeName(): TypeNameContext;
sempred(_localctx: RuleContext, ruleIndex: number, predIndex: number): boolean;
sempred(localctx: RuleContext, ruleIndex: number, predIndex: number): boolean;
private expression_sempred;
static readonly _serializedATN: string;
static __ATN: ATN;
static readonly _serializedATN: number[];
private static __ATN;
static get _ATN(): ATN;
static DecisionsToDFA: DFA[];
}
export declare class SourceFileContext extends ParserRuleContext {
constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number);
contractDefinition(): ContractDefinitionContext;
EOF(): TerminalNode;
pragmaDirective(): PragmaDirectiveContext[];
pragmaDirective_list(): PragmaDirectiveContext[];
pragmaDirective(i: number): PragmaDirectiveContext;
constructor(parent: ParserRuleContext | undefined, invokingState: number);
get ruleIndex(): number;

@@ -163,5 +157,5 @@ accept<Result>(visitor: CashScriptVisitor<Result>): Result;

export declare class PragmaDirectiveContext extends ParserRuleContext {
constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number);
pragmaName(): PragmaNameContext;
pragmaValue(): PragmaValueContext;
constructor(parent: ParserRuleContext | undefined, invokingState: number);
get ruleIndex(): number;

@@ -171,3 +165,3 @@ accept<Result>(visitor: CashScriptVisitor<Result>): Result;

export declare class PragmaNameContext extends ParserRuleContext {
constructor(parent: ParserRuleContext | undefined, invokingState: number);
constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number);
get ruleIndex(): number;

@@ -177,5 +171,5 @@ accept<Result>(visitor: CashScriptVisitor<Result>): Result;

export declare class PragmaValueContext extends ParserRuleContext {
versionConstraint(): VersionConstraintContext[];
constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number);
versionConstraint_list(): VersionConstraintContext[];
versionConstraint(i: number): VersionConstraintContext;
constructor(parent: ParserRuleContext | undefined, invokingState: number);
get ruleIndex(): number;

@@ -185,5 +179,5 @@ accept<Result>(visitor: CashScriptVisitor<Result>): Result;

export declare class VersionConstraintContext extends ParserRuleContext {
constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number);
VersionLiteral(): TerminalNode;
versionOperator(): VersionOperatorContext | undefined;
constructor(parent: ParserRuleContext | undefined, invokingState: number);
versionOperator(): VersionOperatorContext;
get ruleIndex(): number;

@@ -193,3 +187,3 @@ accept<Result>(visitor: CashScriptVisitor<Result>): Result;

export declare class VersionOperatorContext extends ParserRuleContext {
constructor(parent: ParserRuleContext | undefined, invokingState: number);
constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number);
get ruleIndex(): number;

@@ -199,7 +193,7 @@ accept<Result>(visitor: CashScriptVisitor<Result>): Result;

export declare class ContractDefinitionContext extends ParserRuleContext {
constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number);
Identifier(): TerminalNode;
parameterList(): ParameterListContext;
functionDefinition(): FunctionDefinitionContext[];
functionDefinition_list(): FunctionDefinitionContext[];
functionDefinition(i: number): FunctionDefinitionContext;
constructor(parent: ParserRuleContext | undefined, invokingState: number);
get ruleIndex(): number;

@@ -209,7 +203,7 @@ accept<Result>(visitor: CashScriptVisitor<Result>): Result;

export declare class FunctionDefinitionContext extends ParserRuleContext {
constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number);
Identifier(): TerminalNode;
parameterList(): ParameterListContext;
statement(): StatementContext[];
statement_list(): StatementContext[];
statement(i: number): StatementContext;
constructor(parent: ParserRuleContext | undefined, invokingState: number);
get ruleIndex(): number;

@@ -219,5 +213,5 @@ accept<Result>(visitor: CashScriptVisitor<Result>): Result;

export declare class ParameterListContext extends ParserRuleContext {
parameter(): ParameterContext[];
constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number);
parameter_list(): ParameterContext[];
parameter(i: number): ParameterContext;
constructor(parent: ParserRuleContext | undefined, invokingState: number);
get ruleIndex(): number;

@@ -227,5 +221,5 @@ accept<Result>(visitor: CashScriptVisitor<Result>): Result;

export declare class ParameterContext extends ParserRuleContext {
constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number);
typeName(): TypeNameContext;
Identifier(): TerminalNode;
constructor(parent: ParserRuleContext | undefined, invokingState: number);
get ruleIndex(): number;

@@ -235,5 +229,5 @@ accept<Result>(visitor: CashScriptVisitor<Result>): Result;

export declare class BlockContext extends ParserRuleContext {
statement(): StatementContext[];
constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number);
statement_list(): StatementContext[];
statement(i: number): StatementContext;
constructor(parent: ParserRuleContext | undefined, invokingState: number);
get ruleIndex(): number;

@@ -243,9 +237,9 @@ accept<Result>(visitor: CashScriptVisitor<Result>): Result;

export declare class StatementContext extends ParserRuleContext {
variableDefinition(): VariableDefinitionContext | undefined;
tupleAssignment(): TupleAssignmentContext | undefined;
assignStatement(): AssignStatementContext | undefined;
timeOpStatement(): TimeOpStatementContext | undefined;
requireStatement(): RequireStatementContext | undefined;
ifStatement(): IfStatementContext | undefined;
constructor(parent: ParserRuleContext | undefined, invokingState: number);
constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number);
variableDefinition(): VariableDefinitionContext;
tupleAssignment(): TupleAssignmentContext;
assignStatement(): AssignStatementContext;
timeOpStatement(): TimeOpStatementContext;
requireStatement(): RequireStatementContext;
ifStatement(): IfStatementContext;
get ruleIndex(): number;

@@ -255,8 +249,8 @@ accept<Result>(visitor: CashScriptVisitor<Result>): Result;

export declare class VariableDefinitionContext extends ParserRuleContext {
constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number);
typeName(): TypeNameContext;
Identifier(): TerminalNode;
expression(): ExpressionContext;
modifier(): ModifierContext[];
modifier_list(): ModifierContext[];
modifier(i: number): ModifierContext;
constructor(parent: ParserRuleContext | undefined, invokingState: number);
get ruleIndex(): number;

@@ -266,8 +260,8 @@ accept<Result>(visitor: CashScriptVisitor<Result>): Result;

export declare class TupleAssignmentContext extends ParserRuleContext {
typeName(): TypeNameContext[];
constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number);
typeName_list(): TypeNameContext[];
typeName(i: number): TypeNameContext;
Identifier(): TerminalNode[];
Identifier_list(): TerminalNode[];
Identifier(i: number): TerminalNode;
expression(): ExpressionContext;
constructor(parent: ParserRuleContext | undefined, invokingState: number);
get ruleIndex(): number;

@@ -277,5 +271,5 @@ accept<Result>(visitor: CashScriptVisitor<Result>): Result;

export declare class AssignStatementContext extends ParserRuleContext {
constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number);
Identifier(): TerminalNode;
expression(): ExpressionContext;
constructor(parent: ParserRuleContext | undefined, invokingState: number);
get ruleIndex(): number;

@@ -285,5 +279,5 @@ accept<Result>(visitor: CashScriptVisitor<Result>): Result;

export declare class TimeOpStatementContext extends ParserRuleContext {
constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number);
TxVar(): TerminalNode;
expression(): ExpressionContext;
constructor(parent: ParserRuleContext | undefined, invokingState: number);
get ruleIndex(): number;

@@ -293,4 +287,4 @@ accept<Result>(visitor: CashScriptVisitor<Result>): Result;

export declare class RequireStatementContext extends ParserRuleContext {
constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number);
expression(): ExpressionContext;
constructor(parent: ParserRuleContext | undefined, invokingState: number);
get ruleIndex(): number;

@@ -302,6 +296,6 @@ accept<Result>(visitor: CashScriptVisitor<Result>): Result;

_elseBlock: BlockContext;
constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number);
expression(): ExpressionContext;
block(): BlockContext[];
block_list(): BlockContext[];
block(i: number): BlockContext;
constructor(parent: ParserRuleContext | undefined, invokingState: number);
get ruleIndex(): number;

@@ -311,5 +305,5 @@ accept<Result>(visitor: CashScriptVisitor<Result>): Result;

export declare class FunctionCallContext extends ParserRuleContext {
constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number);
Identifier(): TerminalNode;
expressionList(): ExpressionListContext;
constructor(parent: ParserRuleContext | undefined, invokingState: number);
get ruleIndex(): number;

@@ -319,5 +313,5 @@ accept<Result>(visitor: CashScriptVisitor<Result>): Result;

export declare class ExpressionListContext extends ParserRuleContext {
expression(): ExpressionContext[];
constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number);
expression_list(): ExpressionContext[];
expression(i: number): ExpressionContext;
constructor(parent: ParserRuleContext | undefined, invokingState: number);
get ruleIndex(): number;

@@ -327,83 +321,83 @@ accept<Result>(visitor: CashScriptVisitor<Result>): Result;

export declare class ExpressionContext extends ParserRuleContext {
constructor(parent: ParserRuleContext | undefined, invokingState: number);
constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number);
get ruleIndex(): number;
copyFrom(ctx: ExpressionContext): void;
}
export declare class ParenthesisedContext extends ExpressionContext {
expression(): ExpressionContext;
constructor(ctx: ExpressionContext);
accept<Result>(visitor: CashScriptVisitor<Result>): Result;
}
export declare class CastContext extends ExpressionContext {
_castable: ExpressionContext;
_size: ExpressionContext;
constructor(parser: CashScriptParser, ctx: ExpressionContext);
typeName(): TypeNameContext;
expression(): ExpressionContext[];
expression_list(): ExpressionContext[];
expression(i: number): ExpressionContext;
constructor(ctx: ExpressionContext);
accept<Result>(visitor: CashScriptVisitor<Result>): Result;
}
export declare class FunctionCallExpressionContext extends ExpressionContext {
functionCall(): FunctionCallContext;
constructor(ctx: ExpressionContext);
export declare class UnaryIntrospectionOpContext extends ExpressionContext {
_scope: Token;
_op: Token;
constructor(parser: CashScriptParser, ctx: ExpressionContext);
expression(): ExpressionContext;
accept<Result>(visitor: CashScriptVisitor<Result>): Result;
}
export declare class InstantiationContext extends ExpressionContext {
Identifier(): TerminalNode;
expressionList(): ExpressionListContext;
constructor(ctx: ExpressionContext);
export declare class ArrayContext extends ExpressionContext {
constructor(parser: CashScriptParser, ctx: ExpressionContext);
expression_list(): ExpressionContext[];
expression(i: number): ExpressionContext;
accept<Result>(visitor: CashScriptVisitor<Result>): Result;
}
export declare class TupleIndexOpContext extends ExpressionContext {
_index: Token;
export declare class UnaryOpContext extends ExpressionContext {
_op: Token;
constructor(parser: CashScriptParser, ctx: ExpressionContext);
expression(): ExpressionContext;
NumberLiteral(): TerminalNode;
constructor(ctx: ExpressionContext);
accept<Result>(visitor: CashScriptVisitor<Result>): Result;
}
export declare class UnaryIntrospectionOpContext extends ExpressionContext {
_scope: Token;
_op: Token;
expression(): ExpressionContext;
constructor(ctx: ExpressionContext);
export declare class IdentifierContext extends ExpressionContext {
constructor(parser: CashScriptParser, ctx: ExpressionContext);
Identifier(): TerminalNode;
accept<Result>(visitor: CashScriptVisitor<Result>): Result;
}
export declare class UnaryOpContext extends ExpressionContext {
_op: Token;
export declare class LiteralExpressionContext extends ExpressionContext {
constructor(parser: CashScriptParser, ctx: ExpressionContext);
literal(): LiteralContext;
accept<Result>(visitor: CashScriptVisitor<Result>): Result;
}
export declare class TupleIndexOpContext extends ExpressionContext {
_index: Token;
constructor(parser: CashScriptParser, ctx: ExpressionContext);
expression(): ExpressionContext;
constructor(ctx: ExpressionContext);
NumberLiteral(): TerminalNode;
accept<Result>(visitor: CashScriptVisitor<Result>): Result;
}
export declare class BinaryOpContext extends ExpressionContext {
_left: ExpressionContext;
_op: Token;
_right: ExpressionContext;
expression(): ExpressionContext[];
expression(i: number): ExpressionContext;
constructor(ctx: ExpressionContext);
export declare class InstantiationContext extends ExpressionContext {
constructor(parser: CashScriptParser, ctx: ExpressionContext);
Identifier(): TerminalNode;
expressionList(): ExpressionListContext;
accept<Result>(visitor: CashScriptVisitor<Result>): Result;
}
export declare class ArrayContext extends ExpressionContext {
expression(): ExpressionContext[];
expression(i: number): ExpressionContext;
constructor(ctx: ExpressionContext);
export declare class FunctionCallExpressionContext extends ExpressionContext {
constructor(parser: CashScriptParser, ctx: ExpressionContext);
functionCall(): FunctionCallContext;
accept<Result>(visitor: CashScriptVisitor<Result>): Result;
}
export declare class NullaryOpContext extends ExpressionContext {
constructor(parser: CashScriptParser, ctx: ExpressionContext);
NullaryOp(): TerminalNode;
constructor(ctx: ExpressionContext);
accept<Result>(visitor: CashScriptVisitor<Result>): Result;
}
export declare class IdentifierContext extends ExpressionContext {
Identifier(): TerminalNode;
constructor(ctx: ExpressionContext);
export declare class ParenthesisedContext extends ExpressionContext {
constructor(parser: CashScriptParser, ctx: ExpressionContext);
expression(): ExpressionContext;
accept<Result>(visitor: CashScriptVisitor<Result>): Result;
}
export declare class LiteralExpressionContext extends ExpressionContext {
literal(): LiteralContext;
constructor(ctx: ExpressionContext);
export declare class BinaryOpContext extends ExpressionContext {
_left: ExpressionContext;
_op: Token;
_right: ExpressionContext;
constructor(parser: CashScriptParser, ctx: ExpressionContext);
expression_list(): ExpressionContext[];
expression(i: number): ExpressionContext;
accept<Result>(visitor: CashScriptVisitor<Result>): Result;
}
export declare class ModifierContext extends ParserRuleContext {
constructor(parent: ParserRuleContext | undefined, invokingState: number);
constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number);
get ruleIndex(): number;

@@ -413,8 +407,8 @@ accept<Result>(visitor: CashScriptVisitor<Result>): Result;

export declare class LiteralContext extends ParserRuleContext {
BooleanLiteral(): TerminalNode | undefined;
numberLiteral(): NumberLiteralContext | undefined;
StringLiteral(): TerminalNode | undefined;
DateLiteral(): TerminalNode | undefined;
HexLiteral(): TerminalNode | undefined;
constructor(parent: ParserRuleContext | undefined, invokingState: number);
constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number);
BooleanLiteral(): TerminalNode;
numberLiteral(): NumberLiteralContext;
StringLiteral(): TerminalNode;
DateLiteral(): TerminalNode;
HexLiteral(): TerminalNode;
get ruleIndex(): number;

@@ -424,5 +418,5 @@ accept<Result>(visitor: CashScriptVisitor<Result>): Result;

export declare class NumberLiteralContext extends ParserRuleContext {
constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number);
NumberLiteral(): TerminalNode;
NumberUnit(): TerminalNode | undefined;
constructor(parent: ParserRuleContext | undefined, invokingState: number);
NumberUnit(): TerminalNode;
get ruleIndex(): number;

@@ -432,6 +426,6 @@ accept<Result>(visitor: CashScriptVisitor<Result>): Result;

export declare class TypeNameContext extends ParserRuleContext {
constructor(parser?: CashScriptParser, parent?: ParserRuleContext, invokingState?: number);
Bytes(): TerminalNode;
constructor(parent: ParserRuleContext | undefined, invokingState: number);
get ruleIndex(): number;
accept<Result>(visitor: CashScriptVisitor<Result>): Result;
}

@@ -1,39 +0,38 @@

import { ParseTreeVisitor } from "antlr4ts/tree/ParseTreeVisitor.js";
import { ParenthesisedContext } from "./CashScriptParser.js";
import { CastContext } from "./CashScriptParser.js";
import { FunctionCallExpressionContext } from "./CashScriptParser.js";
import { InstantiationContext } from "./CashScriptParser.js";
import { TupleIndexOpContext } from "./CashScriptParser.js";
import { UnaryIntrospectionOpContext } from "./CashScriptParser.js";
import { UnaryOpContext } from "./CashScriptParser.js";
import { BinaryOpContext } from "./CashScriptParser.js";
import { ArrayContext } from "./CashScriptParser.js";
import { NullaryOpContext } from "./CashScriptParser.js";
import { IdentifierContext } from "./CashScriptParser.js";
import { LiteralExpressionContext } from "./CashScriptParser.js";
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 { 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 { IfStatementContext } from "./CashScriptParser.js";
import { FunctionCallContext } from "./CashScriptParser.js";
import { ExpressionListContext } from "./CashScriptParser.js";
import { ExpressionContext } from "./CashScriptParser.js";
import { ModifierContext } from "./CashScriptParser.js";
import { LiteralContext } from "./CashScriptParser.js";
import { NumberLiteralContext } from "./CashScriptParser.js";
import { TypeNameContext } from "./CashScriptParser.js";
import { ParseTreeVisitor } from 'antlr4';
import { SourceFileContext } from "./CashScriptParser";
import { PragmaDirectiveContext } from "./CashScriptParser";
import { PragmaNameContext } from "./CashScriptParser";
import { PragmaValueContext } from "./CashScriptParser";
import { VersionConstraintContext } from "./CashScriptParser";
import { VersionOperatorContext } from "./CashScriptParser";
import { ContractDefinitionContext } from "./CashScriptParser";
import { FunctionDefinitionContext } from "./CashScriptParser";
import { ParameterListContext } from "./CashScriptParser";
import { ParameterContext } from "./CashScriptParser";
import { BlockContext } from "./CashScriptParser";
import { StatementContext } from "./CashScriptParser";
import { VariableDefinitionContext } from "./CashScriptParser";
import { TupleAssignmentContext } from "./CashScriptParser";
import { AssignStatementContext } from "./CashScriptParser";
import { TimeOpStatementContext } from "./CashScriptParser";
import { RequireStatementContext } from "./CashScriptParser";
import { IfStatementContext } from "./CashScriptParser";
import { FunctionCallContext } from "./CashScriptParser";
import { ExpressionListContext } from "./CashScriptParser";
import { CastContext } from "./CashScriptParser";
import { UnaryIntrospectionOpContext } from "./CashScriptParser";
import { ArrayContext } from "./CashScriptParser";
import { UnaryOpContext } from "./CashScriptParser";
import { IdentifierContext } from "./CashScriptParser";
import { LiteralExpressionContext } from "./CashScriptParser";
import { TupleIndexOpContext } from "./CashScriptParser";
import { InstantiationContext } from "./CashScriptParser";
import { FunctionCallExpressionContext } from "./CashScriptParser";
import { NullaryOpContext } from "./CashScriptParser";
import { ParenthesisedContext } from "./CashScriptParser";
import { BinaryOpContext } from "./CashScriptParser";
import { ModifierContext } from "./CashScriptParser";
import { LiteralContext } from "./CashScriptParser";
import { NumberLiteralContext } from "./CashScriptParser";
import { TypeNameContext } from "./CashScriptParser";
/**

@@ -46,214 +45,208 @@ * This interface defines a complete generic visitor for a parse tree produced

*/
export interface CashScriptVisitor<Result> extends ParseTreeVisitor<Result> {
export default class CashScriptVisitor<Result> extends ParseTreeVisitor<Result> {
/**
* Visit a parse tree produced by the `Parenthesised`
* labeled alternative in `CashScriptParser.expression`.
* Visit a parse tree produced by `CashScriptParser.sourceFile`.
* @param ctx the parse tree
* @return the visitor result
*/
visitParenthesised?: (ctx: ParenthesisedContext) => Result;
visitSourceFile?: (ctx: SourceFileContext) => Result;
/**
* Visit a parse tree produced by the `Cast`
* labeled alternative in `CashScriptParser.expression`.
* Visit a parse tree produced by `CashScriptParser.pragmaDirective`.
* @param ctx the parse tree
* @return the visitor result
*/
visitCast?: (ctx: CastContext) => Result;
visitPragmaDirective?: (ctx: PragmaDirectiveContext) => Result;
/**
* Visit a parse tree produced by the `FunctionCallExpression`
* labeled alternative in `CashScriptParser.expression`.
* Visit a parse tree produced by `CashScriptParser.pragmaName`.
* @param ctx the parse tree
* @return the visitor result
*/
visitFunctionCallExpression?: (ctx: FunctionCallExpressionContext) => Result;
visitPragmaName?: (ctx: PragmaNameContext) => Result;
/**
* Visit a parse tree produced by the `Instantiation`
* labeled alternative in `CashScriptParser.expression`.
* Visit a parse tree produced by `CashScriptParser.pragmaValue`.
* @param ctx the parse tree
* @return the visitor result
*/
visitInstantiation?: (ctx: InstantiationContext) => Result;
visitPragmaValue?: (ctx: PragmaValueContext) => Result;
/**
* Visit a parse tree produced by the `TupleIndexOp`
* labeled alternative in `CashScriptParser.expression`.
* Visit a parse tree produced by `CashScriptParser.versionConstraint`.
* @param ctx the parse tree
* @return the visitor result
*/
visitTupleIndexOp?: (ctx: TupleIndexOpContext) => Result;
visitVersionConstraint?: (ctx: VersionConstraintContext) => Result;
/**
* Visit a parse tree produced by the `UnaryIntrospectionOp`
* labeled alternative in `CashScriptParser.expression`.
* Visit a parse tree produced by `CashScriptParser.versionOperator`.
* @param ctx the parse tree
* @return the visitor result
*/
visitUnaryIntrospectionOp?: (ctx: UnaryIntrospectionOpContext) => Result;
visitVersionOperator?: (ctx: VersionOperatorContext) => Result;
/**
* Visit a parse tree produced by the `UnaryOp`
* labeled alternative in `CashScriptParser.expression`.
* Visit a parse tree produced by `CashScriptParser.contractDefinition`.
* @param ctx the parse tree
* @return the visitor result
*/
visitUnaryOp?: (ctx: UnaryOpContext) => Result;
visitContractDefinition?: (ctx: ContractDefinitionContext) => Result;
/**
* Visit a parse tree produced by the `BinaryOp`
* labeled alternative in `CashScriptParser.expression`.
* Visit a parse tree produced by `CashScriptParser.functionDefinition`.
* @param ctx the parse tree
* @return the visitor result
*/
visitBinaryOp?: (ctx: BinaryOpContext) => Result;
visitFunctionDefinition?: (ctx: FunctionDefinitionContext) => Result;
/**
* Visit a parse tree produced by the `Array`
* labeled alternative in `CashScriptParser.expression`.
* Visit a parse tree produced by `CashScriptParser.parameterList`.
* @param ctx the parse tree
* @return the visitor result
*/
visitArray?: (ctx: ArrayContext) => Result;
visitParameterList?: (ctx: ParameterListContext) => Result;
/**
* Visit a parse tree produced by the `NullaryOp`
* labeled alternative in `CashScriptParser.expression`.
* Visit a parse tree produced by `CashScriptParser.parameter`.
* @param ctx the parse tree
* @return the visitor result
*/
visitNullaryOp?: (ctx: NullaryOpContext) => Result;
visitParameter?: (ctx: ParameterContext) => Result;
/**
* Visit a parse tree produced by the `Identifier`
* labeled alternative in `CashScriptParser.expression`.
* Visit a parse tree produced by `CashScriptParser.block`.
* @param ctx the parse tree
* @return the visitor result
*/
visitIdentifier?: (ctx: IdentifierContext) => Result;
visitBlock?: (ctx: BlockContext) => Result;
/**
* Visit a parse tree produced by the `LiteralExpression`
* labeled alternative in `CashScriptParser.expression`.
* Visit a parse tree produced by `CashScriptParser.statement`.
* @param ctx the parse tree
* @return the visitor result
*/
visitLiteralExpression?: (ctx: LiteralExpressionContext) => Result;
visitStatement?: (ctx: StatementContext) => Result;
/**
* Visit a parse tree produced by `CashScriptParser.sourceFile`.
* Visit a parse tree produced by `CashScriptParser.variableDefinition`.
* @param ctx the parse tree
* @return the visitor result
*/
visitSourceFile?: (ctx: SourceFileContext) => Result;
visitVariableDefinition?: (ctx: VariableDefinitionContext) => Result;
/**
* Visit a parse tree produced by `CashScriptParser.pragmaDirective`.
* Visit a parse tree produced by `CashScriptParser.tupleAssignment`.
* @param ctx the parse tree
* @return the visitor result
*/
visitPragmaDirective?: (ctx: PragmaDirectiveContext) => Result;
visitTupleAssignment?: (ctx: TupleAssignmentContext) => Result;
/**
* Visit a parse tree produced by `CashScriptParser.pragmaName`.
* Visit a parse tree produced by `CashScriptParser.assignStatement`.
* @param ctx the parse tree
* @return the visitor result
*/
visitPragmaName?: (ctx: PragmaNameContext) => Result;
visitAssignStatement?: (ctx: AssignStatementContext) => Result;
/**
* Visit a parse tree produced by `CashScriptParser.pragmaValue`.
* Visit a parse tree produced by `CashScriptParser.timeOpStatement`.
* @param ctx the parse tree
* @return the visitor result
*/
visitPragmaValue?: (ctx: PragmaValueContext) => Result;
visitTimeOpStatement?: (ctx: TimeOpStatementContext) => Result;
/**
* Visit a parse tree produced by `CashScriptParser.versionConstraint`.
* Visit a parse tree produced by `CashScriptParser.requireStatement`.
* @param ctx the parse tree
* @return the visitor result
*/
visitVersionConstraint?: (ctx: VersionConstraintContext) => Result;
visitRequireStatement?: (ctx: RequireStatementContext) => Result;
/**
* Visit a parse tree produced by `CashScriptParser.versionOperator`.
* Visit a parse tree produced by `CashScriptParser.ifStatement`.
* @param ctx the parse tree
* @return the visitor result
*/
visitVersionOperator?: (ctx: VersionOperatorContext) => Result;
visitIfStatement?: (ctx: IfStatementContext) => Result;
/**
* Visit a parse tree produced by `CashScriptParser.contractDefinition`.
* Visit a parse tree produced by `CashScriptParser.functionCall`.
* @param ctx the parse tree
* @return the visitor result
*/
visitContractDefinition?: (ctx: ContractDefinitionContext) => Result;
visitFunctionCall?: (ctx: FunctionCallContext) => Result;
/**
* Visit a parse tree produced by `CashScriptParser.functionDefinition`.
* Visit a parse tree produced by `CashScriptParser.expressionList`.
* @param ctx the parse tree
* @return the visitor result
*/
visitFunctionDefinition?: (ctx: FunctionDefinitionContext) => Result;
visitExpressionList?: (ctx: ExpressionListContext) => Result;
/**
* Visit a parse tree produced by `CashScriptParser.parameterList`.
* Visit a parse tree produced by the `Cast`
* labeled alternative in `CashScriptParser.expression`.
* @param ctx the parse tree
* @return the visitor result
*/
visitParameterList?: (ctx: ParameterListContext) => Result;
visitCast?: (ctx: CastContext) => Result;
/**
* Visit a parse tree produced by `CashScriptParser.parameter`.
* Visit a parse tree produced by the `UnaryIntrospectionOp`
* labeled alternative in `CashScriptParser.expression`.
* @param ctx the parse tree
* @return the visitor result
*/
visitParameter?: (ctx: ParameterContext) => Result;
visitUnaryIntrospectionOp?: (ctx: UnaryIntrospectionOpContext) => Result;
/**
* Visit a parse tree produced by `CashScriptParser.block`.
* Visit a parse tree produced by the `Array`
* labeled alternative in `CashScriptParser.expression`.
* @param ctx the parse tree
* @return the visitor result
*/
visitBlock?: (ctx: BlockContext) => Result;
visitArray?: (ctx: ArrayContext) => Result;
/**
* Visit a parse tree produced by `CashScriptParser.statement`.
* Visit a parse tree produced by the `UnaryOp`
* labeled alternative in `CashScriptParser.expression`.
* @param ctx the parse tree
* @return the visitor result
*/
visitStatement?: (ctx: StatementContext) => Result;
visitUnaryOp?: (ctx: UnaryOpContext) => Result;
/**
* Visit a parse tree produced by `CashScriptParser.variableDefinition`.
* Visit a parse tree produced by the `Identifier`
* labeled alternative in `CashScriptParser.expression`.
* @param ctx the parse tree
* @return the visitor result
*/
visitVariableDefinition?: (ctx: VariableDefinitionContext) => Result;
visitIdentifier?: (ctx: IdentifierContext) => Result;
/**
* Visit a parse tree produced by `CashScriptParser.tupleAssignment`.
* Visit a parse tree produced by the `LiteralExpression`
* labeled alternative in `CashScriptParser.expression`.
* @param ctx the parse tree
* @return the visitor result
*/
visitTupleAssignment?: (ctx: TupleAssignmentContext) => Result;
visitLiteralExpression?: (ctx: LiteralExpressionContext) => Result;
/**
* Visit a parse tree produced by `CashScriptParser.assignStatement`.
* Visit a parse tree produced by the `TupleIndexOp`
* labeled alternative in `CashScriptParser.expression`.
* @param ctx the parse tree
* @return the visitor result
*/
visitAssignStatement?: (ctx: AssignStatementContext) => Result;
visitTupleIndexOp?: (ctx: TupleIndexOpContext) => Result;
/**
* Visit a parse tree produced by `CashScriptParser.timeOpStatement`.
* Visit a parse tree produced by the `Instantiation`
* labeled alternative in `CashScriptParser.expression`.
* @param ctx the parse tree
* @return the visitor result
*/
visitTimeOpStatement?: (ctx: TimeOpStatementContext) => Result;
visitInstantiation?: (ctx: InstantiationContext) => Result;
/**
* Visit a parse tree produced by `CashScriptParser.requireStatement`.
* Visit a parse tree produced by the `FunctionCallExpression`
* labeled alternative in `CashScriptParser.expression`.
* @param ctx the parse tree
* @return the visitor result
*/
visitRequireStatement?: (ctx: RequireStatementContext) => Result;
visitFunctionCallExpression?: (ctx: FunctionCallExpressionContext) => Result;
/**
* Visit a parse tree produced by `CashScriptParser.ifStatement`.
* Visit a parse tree produced by the `NullaryOp`
* labeled alternative in `CashScriptParser.expression`.
* @param ctx the parse tree
* @return the visitor result
*/
visitIfStatement?: (ctx: IfStatementContext) => Result;
visitNullaryOp?: (ctx: NullaryOpContext) => Result;
/**
* Visit a parse tree produced by `CashScriptParser.functionCall`.
* Visit a parse tree produced by the `Parenthesised`
* labeled alternative in `CashScriptParser.expression`.
* @param ctx the parse tree
* @return the visitor result
*/
visitFunctionCall?: (ctx: FunctionCallContext) => Result;
visitParenthesised?: (ctx: ParenthesisedContext) => Result;
/**
* Visit a parse tree produced by `CashScriptParser.expressionList`.
* Visit a parse tree produced by the `BinaryOp`
* labeled alternative in `CashScriptParser.expression`.
* @param ctx the parse tree
* @return the visitor result
*/
visitExpressionList?: (ctx: ExpressionListContext) => Result;
visitBinaryOp?: (ctx: BinaryOpContext) => Result;
/**
* Visit a parse tree produced by `CashScriptParser.expression`.
* @param ctx the parse tree
* @return the visitor result
*/
visitExpression?: (ctx: ExpressionContext) => Result;
/**
* Visit a parse tree produced by `CashScriptParser.modifier`.

@@ -260,0 +253,0 @@ * @param ctx the parse tree

@@ -1,3 +0,12 @@

// Generated from src/grammar/CashScript.g4 by ANTLR 4.9.0-SNAPSHOT
export {};
// Generated from src/grammar/CashScript.g4 by ANTLR 4.13.1
import { ParseTreeVisitor } from 'antlr4';
/**
* This interface defines a complete generic visitor for a parse tree produced
* by `CashScriptParser`.
*
* @param <Result> The return type of the visit operation. Use `void` for
* operations with no return type.
*/
export default class CashScriptVisitor extends ParseTreeVisitor {
}
//# sourceMappingURL=CashScriptVisitor.js.map
export * from './Errors.js';
export * as utils from '@cashscript/utils';
export { compileFile, compileString } from './compiler.js';
export declare const version = "0.9.2";
export declare const version = "0.9.3";
export * from './Errors.js';
export * as utils from '@cashscript/utils';
export { compileFile, compileString } from './compiler.js';
export const version = '0.9.2';
export const version = '0.9.3';
//# sourceMappingURL=index.js.map
{
"name": "cashc",
"version": "0.9.2",
"version": "0.9.3",
"description": "Compile Bitcoin Cash contracts to Bitcoin Cash Script or artifacts",

@@ -37,3 +37,3 @@ "keywords": [

"scripts": {
"antlr": "antlr4ts -visitor -no-listener src/grammar/CashScript.g4",
"antlr": "antlr -Dlanguage=TypeScript -visitor -no-listener src/grammar/CashScript.g4",
"postantlr": "find src/grammar -type f -name '*.ts' | xargs sed -i '' 's|\\(import .* \".*/.*\\)\";|\\1\\.js\";|g'",

@@ -54,4 +54,4 @@ "build": "yarn clean && yarn compile",

"@bitauth/libauth": "^2.0.0-alpha.8",
"@cashscript/utils": "^0.9.2",
"antlr4ts": "^0.5.0-alpha.4",
"@cashscript/utils": "^0.9.3",
"antlr4": "^4.13.1-patch-1",
"commander": "^7.1.0",

@@ -64,3 +64,2 @@ "semver": "^7.3.4"

"@types/semver": "^7.3.4",
"antlr4ts-cli": "^0.5.0-alpha.4",
"cpy-cli": "^4.2.0",

@@ -72,3 +71,3 @@ "eslint": "^7.20.0",

},
"gitHead": "3cd562a31cc61058f368a8527505ca746cde60d8"
"gitHead": "01f9b9bb552c3c4d63b0c7c8f065a0e23b536ca6"
}

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc