Skip to content

Instantly share code, notes, and snippets.

@Librechain
Created February 26, 2023 10:16
Show Gist options
  • Save Librechain/b5a2c796736fcd0798a2f7919a695d09 to your computer and use it in GitHub Desktop.
Save Librechain/b5a2c796736fcd0798a2f7919a695d09 to your computer and use it in GitHub Desktop.
Parser for Solidity (Python) [CC: André Storhaug the genius!]
# Generated from Solidity.g4 by ANTLR 4.9.3
# encoding: utf-8
# CC: André Storhaug; https://github.com/andstor/solidity-universal-parser mwah!
from antlr4 import *
from io import StringIO
import sys
if sys.version_info[1] > 5:
from typing import TextIO
else:
from typing.io import TextIO
def serializedATN():
with StringIO() as buf:
buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3\u008a")
buf.write("\u04b6\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7")
buf.write("\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r\4\16")
buf.write("\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22\4\23\t\23")
buf.write("\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31")
buf.write("\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36")
buf.write("\4\37\t\37\4 \t \4!\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t")
buf.write("&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4,\t,\4-\t-\4.\t.\4")
buf.write("/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t\64")
buf.write("\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t")
buf.write(";\4<\t<\4=\t=\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\t")
buf.write("D\4E\tE\4F\tF\4G\tG\4H\tH\4I\tI\4J\tJ\4K\tK\4L\tL\4M\t")
buf.write("M\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT\4U\tU\4V\t")
buf.write("V\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4")
buf.write("_\t_\4`\t`\4a\ta\4b\tb\3\2\5\2\u00c6\n\2\3\2\3\2\3\2\3")
buf.write("\2\3\2\3\2\3\2\3\2\7\2\u00d0\n\2\f\2\16\2\u00d3\13\2\3")
buf.write("\2\3\2\3\3\3\3\3\4\3\4\3\4\3\4\3\4\3\5\3\5\3\6\3\6\5\6")
buf.write("\u00e2\n\6\3\7\3\7\5\7\u00e6\n\7\3\b\3\b\3\t\5\t\u00eb")
buf.write("\n\t\3\t\3\t\3\n\3\n\3\n\5\n\u00f2\n\n\3\13\3\13\3\13")
buf.write("\3\13\5\13\u00f8\n\13\3\13\3\13\3\13\3\13\5\13\u00fe\n")
buf.write("\13\3\13\3\13\5\13\u0102\n\13\3\13\3\13\3\13\3\13\3\13")
buf.write("\3\13\3\13\3\13\7\13\u010c\n\13\f\13\16\13\u010f\13\13")
buf.write("\3\13\3\13\3\13\3\13\3\13\5\13\u0116\n\13\3\f\6\f\u0119")
buf.write("\n\f\r\f\16\f\u011a\3\f\5\f\u011e\n\f\3\r\5\r\u0121\n")
buf.write("\r\3\r\5\r\u0124\n\r\3\r\3\r\3\r\3\r\3\r\3\r\7\r\u012c")
buf.write("\n\r\f\r\16\r\u012f\13\r\5\r\u0131\n\r\3\r\3\r\7\r\u0135")
buf.write("\n\r\f\r\16\r\u0138\13\r\3\r\3\r\3\16\3\16\5\16\u013e")
buf.write("\n\16\3\17\3\17\5\17\u0142\n\17\3\17\3\17\7\17\u0146\n")
buf.write("\17\f\17\16\17\u0149\13\17\3\17\3\17\3\17\3\17\3\17\3")
buf.write("\17\3\17\3\17\3\17\3\17\7\17\u0155\n\17\f\17\16\17\u0158")
buf.write("\13\17\7\17\u015a\n\17\f\17\16\17\u015d\13\17\3\17\5\17")
buf.write("\u0160\n\17\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\5")
buf.write("\20\u016a\n\20\3\21\3\21\7\21\u016e\n\21\f\21\16\21\u0171")
buf.write("\13\21\3\21\3\21\3\21\5\21\u0176\n\21\3\21\3\21\3\22\3")
buf.write("\22\3\22\3\22\3\22\5\22\u017f\n\22\3\22\3\22\3\23\3\23")
buf.write("\3\23\3\23\3\23\3\23\3\23\3\23\7\23\u018b\n\23\f\23\16")
buf.write("\23\u018e\13\23\5\23\u0190\n\23\3\23\3\23\3\24\3\24\3")
buf.write("\24\3\24\3\24\3\25\3\25\3\25\5\25\u019c\n\25\3\25\3\25")
buf.write("\3\26\3\26\3\26\5\26\u01a3\n\26\3\26\5\26\u01a6\n\26\3")
buf.write("\27\5\27\u01a9\n\27\3\27\3\27\5\27\u01ad\n\27\3\27\3\27")
buf.write("\3\27\5\27\u01b2\n\27\3\27\3\27\5\27\u01b6\n\27\3\30\3")
buf.write("\30\3\30\3\31\3\31\3\31\3\32\3\32\3\32\3\32\3\32\3\32")
buf.write("\3\32\3\32\3\32\7\32\u01c7\n\32\f\32\16\32\u01ca\13\32")
buf.write("\3\33\5\33\u01cd\n\33\3\33\3\33\3\33\3\33\5\33\u01d3\n")
buf.write("\33\3\33\3\33\3\34\3\34\3\35\3\35\3\35\3\35\5\35\u01dd")
buf.write("\n\35\3\35\3\35\7\35\u01e1\n\35\f\35\16\35\u01e4\13\35")
buf.write("\3\35\3\35\3\36\3\36\3\36\3\36\7\36\u01ec\n\36\f\36\16")
buf.write("\36\u01ef\13\36\5\36\u01f1\n\36\3\36\3\36\3\37\3\37\3")
buf.write("\37\3\37\7\37\u01f9\n\37\f\37\16\37\u01fc\13\37\5\37\u01fe")
buf.write("\n\37\3\37\3\37\3 \3 \5 \u0204\n \3 \5 \u0207\n \3!\3")
buf.write("!\3!\3!\7!\u020d\n!\f!\16!\u0210\13!\5!\u0212\n!\3!\3")
buf.write("!\3\"\3\"\5\"\u0218\n\"\3\"\5\"\u021b\n\"\3#\3#\3#\3#")
buf.write("\7#\u0221\n#\f#\16#\u0224\13#\5#\u0226\n#\3#\3#\3$\3$")
buf.write("\5$\u022c\n$\3%\3%\5%\u0230\n%\3%\3%\3&\3&\3&\3&\3&\3")
buf.write("&\3&\5&\u023b\n&\3&\3&\3&\5&\u0240\n&\3&\7&\u0243\n&\f")
buf.write("&\16&\u0246\13&\3\'\3\'\3\'\7\'\u024b\n\'\f\'\16\'\u024e")
buf.write("\13\'\3(\3(\3(\3(\5(\u0254\n(\3(\3(\3(\3(\3)\3)\3)\3)")
buf.write("\3)\7)\u025f\n)\f)\16)\u0262\13)\3)\3)\5)\u0266\n)\3)")
buf.write("\3)\3)\5)\u026b\n)\3)\3)\3)\7)\u0270\n)\f)\16)\u0273\13")
buf.write(")\3)\3)\3)\3)\3)\5)\u027a\n)\3*\3*\3+\3+\3,\3,\3-\3-\3")
buf.write("-\7-\u0285\n-\f-\16-\u0288\13-\3-\3-\3.\3.\3.\3/\3/\3")
buf.write("/\3/\3/\3/\3/\3/\3/\3/\3/\3/\3/\3/\3/\3/\5/\u029f\n/\3")
buf.write("\60\3\60\3\60\3\60\3\60\3\60\3\60\5\60\u02a8\n\60\3\60")
buf.write("\3\60\7\60\u02ac\n\60\f\60\16\60\u02af\13\60\3\61\3\61")
buf.write("\5\61\u02b3\n\61\3\61\3\61\3\61\5\61\u02b8\n\61\3\61\3")
buf.write("\61\5\61\u02bc\n\61\3\61\3\61\3\61\5\61\u02c1\n\61\3\62")
buf.write("\3\62\3\62\3\63\3\63\3\63\3\63\3\63\3\63\3\63\5\63\u02cd")
buf.write("\n\63\3\64\3\64\3\65\3\65\3\66\3\66\3\67\3\67\3\67\3\67")
buf.write("\3\67\3\67\38\38\58\u02dd\n8\39\39\39\39\59\u02e3\n9\3")
buf.write("9\39\59\u02e7\n9\39\59\u02ea\n9\39\39\39\3:\3:\5:\u02f1")
buf.write("\n:\3:\3:\3;\3;\3;\3;\3;\3;\3;\3;\3<\3<\3<\3=\3=\3=\3")
buf.write(">\3>\5>\u0305\n>\3>\3>\3?\3?\3?\3@\3@\3@\3@\3A\3A\3A\3")
buf.write("A\3A\3A\3A\5A\u0317\nA\3A\3A\5A\u031b\nA\3A\3A\3B\3B\3")
buf.write("B\3B\3B\3B\3B\3C\5C\u0327\nC\3C\3C\5C\u032b\nC\7C\u032d")
buf.write("\nC\fC\16C\u0330\13C\3D\3D\5D\u0334\nD\3D\7D\u0337\nD")
buf.write("\fD\16D\u033a\13D\3D\5D\u033d\nD\3D\3D\3E\3E\3F\3F\3F")
buf.write("\3F\3F\7F\u0348\nF\fF\16F\u034b\13F\3F\3F\3F\3F\3F\3F")
buf.write("\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3")
buf.write("F\3F\3F\5F\u0367\nF\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3")
buf.write("F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3")
buf.write("F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\5F\u0396")
buf.write("\nF\3F\3F\3F\3F\5F\u039c\nF\3F\3F\5F\u03a0\nF\3F\3F\3")
buf.write("F\3F\3F\5F\u03a7\nF\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\7F\u03b3")
buf.write("\nF\fF\16F\u03b6\13F\5F\u03b8\nF\3F\3F\3F\3F\3F\3F\3F")
buf.write("\3F\7F\u03c2\nF\fF\16F\u03c5\13F\3G\3G\3G\3G\3G\3G\3G")
buf.write("\5G\u03ce\nG\3G\3G\3G\3G\3G\5G\u03d5\nG\5G\u03d7\nG\3")
buf.write("H\3H\3H\7H\u03dc\nH\fH\16H\u03df\13H\3I\3I\3I\7I\u03e4")
buf.write("\nI\fI\16I\u03e7\13I\3I\5I\u03ea\nI\3J\3J\3J\3J\3K\3K")
buf.write("\5K\u03f2\nK\3K\3K\5K\u03f6\nK\5K\u03f8\nK\3L\3L\3L\3")
buf.write("L\3L\3M\3M\7M\u0401\nM\fM\16M\u0404\13M\3M\3M\3N\3N\3")
buf.write("N\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\5N\u0419\n")
buf.write("N\3O\3O\5O\u041d\nO\3P\3P\3P\3P\5P\u0423\nP\3P\3P\5P\u0427")
buf.write("\nP\3P\3P\7P\u042b\nP\fP\16P\u042e\13P\3P\5P\u0431\nP")
buf.write("\3Q\3Q\3Q\3Q\5Q\u0437\nQ\3R\3R\3R\3R\3S\3S\3S\3S\3S\5")
buf.write("S\u0442\nS\3T\3T\3T\7T\u0447\nT\fT\16T\u044a\13T\3U\3")
buf.write("U\3U\3V\3V\3V\3W\3W\3W\7W\u0455\nW\fW\16W\u0458\13W\3")
buf.write("X\3X\3X\3X\3X\3X\5X\u0460\nX\3Y\3Y\3Y\3Y\5Y\u0466\nY\3")
buf.write("Y\3Y\5Y\u046a\nY\3Y\3Y\3Z\3Z\3Z\3[\3[\3[\5[\u0474\n[\3")
buf.write("[\3[\3[\5[\u0479\n[\3[\3[\3\\\3\\\3\\\3\\\3]\3]\3^\3^")
buf.write("\3^\3^\3_\3_\5_\u0489\n_\3_\3_\5_\u048d\n_\7_\u048f\n")
buf.write("_\f_\16_\u0492\13_\3_\3_\3_\3_\3_\7_\u0499\n_\f_\16_\u049c")
buf.write("\13_\5_\u049e\n_\3_\5_\u04a1\n_\3`\3`\5`\u04a5\n`\3a\3")
buf.write("a\5a\u04a9\na\3b\3b\3b\3b\7b\u04af\nb\fb\16b\u04b2\13")
buf.write("b\5b\u04b4\nb\3b\2\4J\u008ac\2\4\6\b\n\f\16\20\22\24\26")
buf.write("\30\32\34\36 \"$&(*,.\60\62\64\668:<>@BDFHJLNPRTVXZ\\")
buf.write("^`bdfhjlnprtvxz|~\u0080\u0082\u0084\u0086\u0088\u008a")
buf.write("\u008c\u008e\u0090\u0092\u0094\u0096\u0098\u009a\u009c")
buf.write("\u009e\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac\u00ae")
buf.write("\u00b0\u00b2\u00b4\u00b6\u00b8\u00ba\u00bc\u00be\u00c0")
buf.write("\u00c2\2\26\3\2\5\13\3\2\24\26\5\2vx}}\177\u0080\3\2\"")
buf.write("$\5\2{{}}\177\u0080\3\2.\60\6\2vv~~\u0081\u0081\u0083")
buf.write("\u0083\5\2**<?hl\4\2\6\6@D\4\2DDFF\4\2CCGG\4\2\16\16I")
buf.write("J\3\2KM\3\2\7\n\3\2PQ\4\2\13\13U_\3\2@A\5\2oprr\u0085")
buf.write("\u0085\3\2op\5\2\17\17\60\60\u0084\u0084\2\u0537\2\u00c5")
buf.write("\3\2\2\2\4\u00d6\3\2\2\2\6\u00d8\3\2\2\2\b\u00dd\3\2\2")
buf.write("\2\n\u00e1\3\2\2\2\f\u00e3\3\2\2\2\16\u00e7\3\2\2\2\20")
buf.write("\u00ea\3\2\2\2\22\u00ee\3\2\2\2\24\u0115\3\2\2\2\26\u011d")
buf.write("\3\2\2\2\30\u0120\3\2\2\2\32\u013b\3\2\2\2\34\u015f\3")
buf.write("\2\2\2\36\u0169\3\2\2\2 \u016b\3\2\2\2\"\u0179\3\2\2\2")
buf.write("$\u0182\3\2\2\2&\u0193\3\2\2\2(\u0198\3\2\2\2*\u019f\3")
buf.write("\2\2\2,\u01a8\3\2\2\2.\u01b7\3\2\2\2\60\u01ba\3\2\2\2")
buf.write("\62\u01c8\3\2\2\2\64\u01cc\3\2\2\2\66\u01d6\3\2\2\28\u01d8")
buf.write("\3\2\2\2:\u01e7\3\2\2\2<\u01f4\3\2\2\2>\u0201\3\2\2\2")
buf.write("@\u0208\3\2\2\2B\u0215\3\2\2\2D\u021c\3\2\2\2F\u0229\3")
buf.write("\2\2\2H\u022d\3\2\2\2J\u023a\3\2\2\2L\u0247\3\2\2\2N\u024f")
buf.write("\3\2\2\2P\u0279\3\2\2\2R\u027b\3\2\2\2T\u027d\3\2\2\2")
buf.write("V\u027f\3\2\2\2X\u0281\3\2\2\2Z\u028b\3\2\2\2\\\u029e")
buf.write("\3\2\2\2^\u02a0\3\2\2\2`\u02c0\3\2\2\2b\u02c2\3\2\2\2")
buf.write("d\u02c5\3\2\2\2f\u02ce\3\2\2\2h\u02d0\3\2\2\2j\u02d2\3")
buf.write("\2\2\2l\u02d4\3\2\2\2n\u02dc\3\2\2\2p\u02de\3\2\2\2r\u02ee")
buf.write("\3\2\2\2t\u02f4\3\2\2\2v\u02fc\3\2\2\2x\u02ff\3\2\2\2")
buf.write("z\u0302\3\2\2\2|\u0308\3\2\2\2~\u030b\3\2\2\2\u0080\u0316")
buf.write("\3\2\2\2\u0082\u031e\3\2\2\2\u0084\u0326\3\2\2\2\u0086")
buf.write("\u0331\3\2\2\2\u0088\u0340\3\2\2\2\u008a\u0366\3\2\2\2")
buf.write("\u008c\u03d6\3\2\2\2\u008e\u03d8\3\2\2\2\u0090\u03e0\3")
buf.write("\2\2\2\u0092\u03eb\3\2\2\2\u0094\u03f7\3\2\2\2\u0096\u03f9")
buf.write("\3\2\2\2\u0098\u03fe\3\2\2\2\u009a\u0418\3\2\2\2\u009c")
buf.write("\u041c\3\2\2\2\u009e\u0422\3\2\2\2\u00a0\u0432\3\2\2\2")
buf.write("\u00a2\u0438\3\2\2\2\u00a4\u0441\3\2\2\2\u00a6\u0443\3")
buf.write("\2\2\2\u00a8\u044b\3\2\2\2\u00aa\u044e\3\2\2\2\u00ac\u0451")
buf.write("\3\2\2\2\u00ae\u045f\3\2\2\2\u00b0\u0461\3\2\2\2\u00b2")
buf.write("\u046d\3\2\2\2\u00b4\u0470\3\2\2\2\u00b6\u047c\3\2\2\2")
buf.write("\u00b8\u0480\3\2\2\2\u00ba\u0482\3\2\2\2\u00bc\u04a0\3")
buf.write("\2\2\2\u00be\u04a4\3\2\2\2\u00c0\u04a6\3\2\2\2\u00c2\u04b3")
buf.write("\3\2\2\2\u00c4\u00c6\5\4\3\2\u00c5\u00c4\3\2\2\2\u00c5")
buf.write("\u00c6\3\2\2\2\u00c6\u00d1\3\2\2\2\u00c7\u00d0\5\26\f")
buf.write("\2\u00c8\u00d0\5\6\4\2\u00c9\u00d0\5\24\13\2\u00ca\u00d0")
buf.write("\5\30\r\2\u00cb\u00d0\5,\27\2\u00cc\u00d0\5\u0082B\2\u00cd")
buf.write("\u00d0\5$\23\2\u00ce\u00d0\58\35\2\u00cf\u00c7\3\2\2\2")
buf.write("\u00cf\u00c8\3\2\2\2\u00cf\u00c9\3\2\2\2\u00cf\u00ca\3")
buf.write("\2\2\2\u00cf\u00cb\3\2\2\2\u00cf\u00cc\3\2\2\2\u00cf\u00cd")
buf.write("\3\2\2\2\u00cf\u00ce\3\2\2\2\u00d0\u00d3\3\2\2\2\u00d1")
buf.write("\u00cf\3\2\2\2\u00d1\u00d2\3\2\2\2\u00d2\u00d4\3\2\2\2")
buf.write("\u00d3\u00d1\3\2\2\2\u00d4\u00d5\7\2\2\3\u00d5\3\3\2\2")
buf.write("\2\u00d6\u00d7\7g\2\2\u00d7\5\3\2\2\2\u00d8\u00d9\7\3")
buf.write("\2\2\u00d9\u00da\5\b\5\2\u00da\u00db\5\n\6\2\u00db\u00dc")
buf.write("\7\4\2\2\u00dc\7\3\2\2\2\u00dd\u00de\5\u00c2b\2\u00de")
buf.write("\t\3\2\2\2\u00df\u00e2\5\f\7\2\u00e0\u00e2\5\u008aF\2")
buf.write("\u00e1\u00df\3\2\2\2\u00e1\u00e0\3\2\2\2\u00e2\13\3\2")
buf.write("\2\2\u00e3\u00e5\5\20\t\2\u00e4\u00e6\5\20\t\2\u00e5\u00e4")
buf.write("\3\2\2\2\u00e5\u00e6\3\2\2\2\u00e6\r\3\2\2\2\u00e7\u00e8")
buf.write("\t\2\2\2\u00e8\17\3\2\2\2\u00e9\u00eb\5\16\b\2\u00ea\u00e9")
buf.write("\3\2\2\2\u00ea\u00eb\3\2\2\2\u00eb\u00ec\3\2\2\2\u00ec")
buf.write("\u00ed\7m\2\2\u00ed\21\3\2\2\2\u00ee\u00f1\5\u00c2b\2")
buf.write("\u00ef\u00f0\7\f\2\2\u00f0\u00f2\5\u00c2b\2\u00f1\u00ef")
buf.write("\3\2\2\2\u00f1\u00f2\3\2\2\2\u00f2\23\3\2\2\2\u00f3\u00f4")
buf.write("\7\r\2\2\u00f4\u00f7\7\u0085\2\2\u00f5\u00f6\7\f\2\2\u00f6")
buf.write("\u00f8\5\u00c2b\2\u00f7\u00f5\3\2\2\2\u00f7\u00f8\3\2")
buf.write("\2\2\u00f8\u00f9\3\2\2\2\u00f9\u0116\7\4\2\2\u00fa\u00fd")
buf.write("\7\r\2\2\u00fb\u00fe\7\16\2\2\u00fc\u00fe\5\u00c2b\2\u00fd")
buf.write("\u00fb\3\2\2\2\u00fd\u00fc\3\2\2\2\u00fe\u0101\3\2\2\2")
buf.write("\u00ff\u0100\7\f\2\2\u0100\u0102\5\u00c2b\2\u0101\u00ff")
buf.write("\3\2\2\2\u0101\u0102\3\2\2\2\u0102\u0103\3\2\2\2\u0103")
buf.write("\u0104\7\17\2\2\u0104\u0105\7\u0085\2\2\u0105\u0116\7")
buf.write("\4\2\2\u0106\u0107\7\r\2\2\u0107\u0108\7\20\2\2\u0108")
buf.write("\u010d\5\22\n\2\u0109\u010a\7\21\2\2\u010a\u010c\5\22")
buf.write("\n\2\u010b\u0109\3\2\2\2\u010c\u010f\3\2\2\2\u010d\u010b")
buf.write("\3\2\2\2\u010d\u010e\3\2\2\2\u010e\u0110\3\2\2\2\u010f")
buf.write("\u010d\3\2\2\2\u0110\u0111\7\22\2\2\u0111\u0112\7\17\2")
buf.write("\2\u0112\u0113\7\u0085\2\2\u0113\u0114\7\4\2\2\u0114\u0116")
buf.write("\3\2\2\2\u0115\u00f3\3\2\2\2\u0115\u00fa\3\2\2\2\u0115")
buf.write("\u0106\3\2\2\2\u0116\25\3\2\2\2\u0117\u0119\7\u0087\2")
buf.write("\2\u0118\u0117\3\2\2\2\u0119\u011a\3\2\2\2\u011a\u0118")
buf.write("\3\2\2\2\u011a\u011b\3\2\2\2\u011b\u011e\3\2\2\2\u011c")
buf.write("\u011e\7\u0088\2\2\u011d\u0118\3\2\2\2\u011d\u011c\3\2")
buf.write("\2\2\u011e\27\3\2\2\2\u011f\u0121\5\26\f\2\u0120\u011f")
buf.write("\3\2\2\2\u0120\u0121\3\2\2\2\u0121\u0123\3\2\2\2\u0122")
buf.write("\u0124\7\23\2\2\u0123\u0122\3\2\2\2\u0123\u0124\3\2\2")
buf.write("\2\u0124\u0125\3\2\2\2\u0125\u0126\t\3\2\2\u0126\u0130")
buf.write("\5\u00c2b\2\u0127\u0128\7\27\2\2\u0128\u012d\5\32\16\2")
buf.write("\u0129\u012a\7\21\2\2\u012a\u012c\5\32\16\2\u012b\u0129")
buf.write("\3\2\2\2\u012c\u012f\3\2\2\2\u012d\u012b\3\2\2\2\u012d")
buf.write("\u012e\3\2\2\2\u012e\u0131\3\2\2\2\u012f\u012d\3\2\2\2")
buf.write("\u0130\u0127\3\2\2\2\u0130\u0131\3\2\2\2\u0131\u0132\3")
buf.write("\2\2\2\u0132\u0136\7\20\2\2\u0133\u0135\5\36\20\2\u0134")
buf.write("\u0133\3\2\2\2\u0135\u0138\3\2\2\2\u0136\u0134\3\2\2\2")
buf.write("\u0136\u0137\3\2\2\2\u0137\u0139\3\2\2\2\u0138\u0136\3")
buf.write("\2\2\2\u0139\u013a\7\22\2\2\u013a\31\3\2\2\2\u013b\u013d")
buf.write("\5L\'\2\u013c\u013e\5\34\17\2\u013d\u013c\3\2\2\2\u013d")
buf.write("\u013e\3\2\2\2\u013e\33\3\2\2\2\u013f\u0141\7\30\2\2\u0140")
buf.write("\u0142\5\u008aF\2\u0141\u0140\3\2\2\2\u0141\u0142\3\2")
buf.write("\2\2\u0142\u0147\3\2\2\2\u0143\u0144\7\21\2\2\u0144\u0146")
buf.write("\5\u008aF\2\u0145\u0143\3\2\2\2\u0146\u0149\3\2\2\2\u0147")
buf.write("\u0145\3\2\2\2\u0147\u0148\3\2\2\2\u0148\u014a\3\2\2\2")
buf.write("\u0149\u0147\3\2\2\2\u014a\u0160\7\31\2\2\u014b\u015b")
buf.write("\7\32\2\2\u014c\u014d\5\u00c2b\2\u014d\u014e\7\33\2\2")
buf.write("\u014e\u0156\5\u008aF\2\u014f\u0150\7\21\2\2\u0150\u0151")
buf.write("\5\u00c2b\2\u0151\u0152\7\33\2\2\u0152\u0153\5\u008aF")
buf.write("\2\u0153\u0155\3\2\2\2\u0154\u014f\3\2\2\2\u0155\u0158")
buf.write("\3\2\2\2\u0156\u0154\3\2\2\2\u0156\u0157\3\2\2\2\u0157")
buf.write("\u015a\3\2\2\2\u0158\u0156\3\2\2\2\u0159\u014c\3\2\2\2")
buf.write("\u015a\u015d\3\2\2\2\u015b\u0159\3\2\2\2\u015b\u015c\3")
buf.write("\2\2\2\u015c\u015e\3\2\2\2\u015d\u015b\3\2\2\2\u015e\u0160")
buf.write("\7\34\2\2\u015f\u013f\3\2\2\2\u015f\u014b\3\2\2\2\u0160")
buf.write("\35\3\2\2\2\u0161\u016a\5 \21\2\u0162\u016a\5\"\22\2\u0163")
buf.write("\u016a\5$\23\2\u0164\u016a\5&\24\2\u0165\u016a\5(\25\2")
buf.write("\u0166\u016a\5,\27\2\u0167\u016a\5\64\33\2\u0168\u016a")
buf.write("\58\35\2\u0169\u0161\3\2\2\2\u0169\u0162\3\2\2\2\u0169")
buf.write("\u0163\3\2\2\2\u0169\u0164\3\2\2\2\u0169\u0165\3\2\2\2")
buf.write("\u0169\u0166\3\2\2\2\u0169\u0167\3\2\2\2\u0169\u0168\3")
buf.write("\2\2\2\u016a\37\3\2\2\2\u016b\u016f\5J&\2\u016c\u016e")
buf.write("\t\4\2\2\u016d\u016c\3\2\2\2\u016e\u0171\3\2\2\2\u016f")
buf.write("\u016d\3\2\2\2\u016f\u0170\3\2\2\2\u0170\u0172\3\2\2\2")
buf.write("\u0171\u016f\3\2\2\2\u0172\u0175\5\u00c2b\2\u0173\u0174")
buf.write("\7\13\2\2\u0174\u0176\5\u008aF\2\u0175\u0173\3\2\2\2\u0175")
buf.write("\u0176\3\2\2\2\u0176\u0177\3\2\2\2\u0177\u0178\7\4\2\2")
buf.write("\u0178!\3\2\2\2\u0179\u017a\7\35\2\2\u017a\u017b\5\u00c2")
buf.write("b\2\u017b\u017e\7\36\2\2\u017c\u017f\7\16\2\2\u017d\u017f")
buf.write("\5J&\2\u017e\u017c\3\2\2\2\u017e\u017d\3\2\2\2\u017f\u0180")
buf.write("\3\2\2\2\u0180\u0181\7\4\2\2\u0181#\3\2\2\2\u0182\u0183")
buf.write("\7\37\2\2\u0183\u0184\5\u00c2b\2\u0184\u018f\7\20\2\2")
buf.write("\u0185\u0186\5H%\2\u0186\u018c\7\4\2\2\u0187\u0188\5H")
buf.write("%\2\u0188\u0189\7\4\2\2\u0189\u018b\3\2\2\2\u018a\u0187")
buf.write("\3\2\2\2\u018b\u018e\3\2\2\2\u018c\u018a\3\2\2\2\u018c")
buf.write("\u018d\3\2\2\2\u018d\u0190\3\2\2\2\u018e\u018c\3\2\2\2")
buf.write("\u018f\u0185\3\2\2\2\u018f\u0190\3\2\2\2\u0190\u0191\3")
buf.write("\2\2\2\u0191\u0192\7\22\2\2\u0192%\3\2\2\2\u0193\u0194")
buf.write("\7 \2\2\u0194\u0195\5:\36\2\u0195\u0196\5\62\32\2\u0196")
buf.write("\u0197\5X-\2\u0197\'\3\2\2\2\u0198\u0199\7!\2\2\u0199")
buf.write("\u019b\5\u00c2b\2\u019a\u019c\5:\36\2\u019b\u019a\3\2")
buf.write("\2\2\u019b\u019c\3\2\2\2\u019c\u019d\3\2\2\2\u019d\u019e")
buf.write("\5X-\2\u019e)\3\2\2\2\u019f\u01a5\5\u00c2b\2\u01a0\u01a2")
buf.write("\7\30\2\2\u01a1\u01a3\5\u008eH\2\u01a2\u01a1\3\2\2\2\u01a2")
buf.write("\u01a3\3\2\2\2\u01a3\u01a4\3\2\2\2\u01a4\u01a6\7\31\2")
buf.write("\2\u01a5\u01a0\3\2\2\2\u01a5\u01a6\3\2\2\2\u01a6+\3\2")
buf.write("\2\2\u01a7\u01a9\5\26\f\2\u01a8\u01a7\3\2\2\2\u01a8\u01a9")
buf.write("\3\2\2\2\u01a9\u01aa\3\2\2\2\u01aa\u01ac\t\5\2\2\u01ab")
buf.write("\u01ad\5\u00c2b\2\u01ac\u01ab\3\2\2\2\u01ac\u01ad\3\2")
buf.write("\2\2\u01ad\u01ae\3\2\2\2\u01ae\u01af\5:\36\2\u01af\u01b1")
buf.write("\5\62\32\2\u01b0\u01b2\5.\30\2\u01b1\u01b0\3\2\2\2\u01b1")
buf.write("\u01b2\3\2\2\2\u01b2\u01b5\3\2\2\2\u01b3\u01b6\7\4\2\2")
buf.write("\u01b4\u01b6\5X-\2\u01b5\u01b3\3\2\2\2\u01b5\u01b4\3\2")
buf.write("\2\2\u01b6-\3\2\2\2\u01b7\u01b8\7%\2\2\u01b8\u01b9\5:")
buf.write("\36\2\u01b9/\3\2\2\2\u01ba\u01bb\7w\2\2\u01bb\u01bc\5")
buf.write(":\36\2\u01bc\61\3\2\2\2\u01bd\u01c7\5*\26\2\u01be\u01c7")
buf.write("\5V,\2\u01bf\u01c7\7{\2\2\u01c0\u01c7\7\u0080\2\2\u01c1")
buf.write("\u01c7\7}\2\2\u01c2\u01c7\7\177\2\2\u01c3\u01c7\7w\2\2")
buf.write("\u01c4\u01c7\5\60\31\2\u01c5\u01c7\7y\2\2\u01c6\u01bd")
buf.write("\3\2\2\2\u01c6\u01be\3\2\2\2\u01c6\u01bf\3\2\2\2\u01c6")
buf.write("\u01c0\3\2\2\2\u01c6\u01c1\3\2\2\2\u01c6\u01c2\3\2\2\2")
buf.write("\u01c6\u01c3\3\2\2\2\u01c6\u01c4\3\2\2\2\u01c6\u01c5\3")
buf.write("\2\2\2\u01c7\u01ca\3\2\2\2\u01c8\u01c6\3\2\2\2\u01c8\u01c9")
buf.write("\3\2\2\2\u01c9\63\3\2\2\2\u01ca\u01c8\3\2\2\2\u01cb\u01cd")
buf.write("\5\26\f\2\u01cc\u01cb\3\2\2\2\u01cc\u01cd\3\2\2\2\u01cd")
buf.write("\u01ce\3\2\2\2\u01ce\u01cf\7&\2\2\u01cf\u01d0\5\u00c2")
buf.write("b\2\u01d0\u01d2\5@!\2\u01d1\u01d3\7t\2\2\u01d2\u01d1\3")
buf.write("\2\2\2\u01d2\u01d3\3\2\2\2\u01d3\u01d4\3\2\2\2\u01d4\u01d5")
buf.write("\7\4\2\2\u01d5\65\3\2\2\2\u01d6\u01d7\5\u00c2b\2\u01d7")
buf.write("\67\3\2\2\2\u01d8\u01d9\7\'\2\2\u01d9\u01da\5\u00c2b\2")
buf.write("\u01da\u01dc\7\20\2\2\u01db\u01dd\5\66\34\2\u01dc\u01db")
buf.write("\3\2\2\2\u01dc\u01dd\3\2\2\2\u01dd\u01e2\3\2\2\2\u01de")
buf.write("\u01df\7\21\2\2\u01df\u01e1\5\66\34\2\u01e0\u01de\3\2")
buf.write("\2\2\u01e1\u01e4\3\2\2\2\u01e2\u01e0\3\2\2\2\u01e2\u01e3")
buf.write("\3\2\2\2\u01e3\u01e5\3\2\2\2\u01e4\u01e2\3\2\2\2\u01e5")
buf.write("\u01e6\7\22\2\2\u01e69\3\2\2\2\u01e7\u01f0\7\30\2\2\u01e8")
buf.write("\u01ed\5> \2\u01e9\u01ea\7\21\2\2\u01ea\u01ec\5> \2\u01eb")
buf.write("\u01e9\3\2\2\2\u01ec\u01ef\3\2\2\2\u01ed\u01eb\3\2\2\2")
buf.write("\u01ed\u01ee\3\2\2\2\u01ee\u01f1\3\2\2\2\u01ef\u01ed\3")
buf.write("\2\2\2\u01f0\u01e8\3\2\2\2\u01f0\u01f1\3\2\2\2\u01f1\u01f2")
buf.write("\3\2\2\2\u01f2\u01f3\7\31\2\2\u01f3;\3\2\2\2\u01f4\u01fd")
buf.write("\7\30\2\2\u01f5\u01fa\5> \2\u01f6\u01f7\7\21\2\2\u01f7")
buf.write("\u01f9\5> \2\u01f8\u01f6\3\2\2\2\u01f9\u01fc\3\2\2\2\u01fa")
buf.write("\u01f8\3\2\2\2\u01fa\u01fb\3\2\2\2\u01fb\u01fe\3\2\2\2")
buf.write("\u01fc\u01fa\3\2\2\2\u01fd\u01f5\3\2\2\2\u01fd\u01fe\3")
buf.write("\2\2\2\u01fe\u01ff\3\2\2\2\u01ff\u0200\7\31\2\2\u0200")
buf.write("=\3\2\2\2\u0201\u0203\5J&\2\u0202\u0204\5T+\2\u0203\u0202")
buf.write("\3\2\2\2\u0203\u0204\3\2\2\2\u0204\u0206\3\2\2\2\u0205")
buf.write("\u0207\5\u00c2b\2\u0206\u0205\3\2\2\2\u0206\u0207\3\2")
buf.write("\2\2\u0207?\3\2\2\2\u0208\u0211\7\30\2\2\u0209\u020e\5")
buf.write("B\"\2\u020a\u020b\7\21\2\2\u020b\u020d\5B\"\2\u020c\u020a")
buf.write("\3\2\2\2\u020d\u0210\3\2\2\2\u020e\u020c\3\2\2\2\u020e")
buf.write("\u020f\3\2\2\2\u020f\u0212\3\2\2\2\u0210\u020e\3\2\2\2")
buf.write("\u0211\u0209\3\2\2\2\u0211\u0212\3\2\2\2\u0212\u0213\3")
buf.write("\2\2\2\u0213\u0214\7\31\2\2\u0214A\3\2\2\2\u0215\u0217")
buf.write("\5J&\2\u0216\u0218\7|\2\2\u0217\u0216\3\2\2\2\u0217\u0218")
buf.write("\3\2\2\2\u0218\u021a\3\2\2\2\u0219\u021b\5\u00c2b\2\u021a")
buf.write("\u0219\3\2\2\2\u021a\u021b\3\2\2\2\u021bC\3\2\2\2\u021c")
buf.write("\u0225\7\30\2\2\u021d\u0222\5F$\2\u021e\u021f\7\21\2\2")
buf.write("\u021f\u0221\5F$\2\u0220\u021e\3\2\2\2\u0221\u0224\3\2")
buf.write("\2\2\u0222\u0220\3\2\2\2\u0222\u0223\3\2\2\2\u0223\u0226")
buf.write("\3\2\2\2\u0224\u0222\3\2\2\2\u0225\u021d\3\2\2\2\u0225")
buf.write("\u0226\3\2\2\2\u0226\u0227\3\2\2\2\u0227\u0228\7\31\2")
buf.write("\2\u0228E\3\2\2\2\u0229\u022b\5J&\2\u022a\u022c\5T+\2")
buf.write("\u022b\u022a\3\2\2\2\u022b\u022c\3\2\2\2\u022cG\3\2\2")
buf.write("\2\u022d\u022f\5J&\2\u022e\u0230\5T+\2\u022f\u022e\3\2")
buf.write("\2\2\u022f\u0230\3\2\2\2\u0230\u0231\3\2\2\2\u0231\u0232")
buf.write("\5\u00c2b\2\u0232I\3\2\2\2\u0233\u0234\b&\1\2\u0234\u023b")
buf.write("\5\u0088E\2\u0235\u023b\5L\'\2\u0236\u023b\5N(\2\u0237")
buf.write("\u023b\5P)\2\u0238\u0239\7*\2\2\u0239\u023b\7~\2\2\u023a")
buf.write("\u0233\3\2\2\2\u023a\u0235\3\2\2\2\u023a\u0236\3\2\2\2")
buf.write("\u023a\u0237\3\2\2\2\u023a\u0238\3\2\2\2\u023b\u0244\3")
buf.write("\2\2\2\u023c\u023d\f\5\2\2\u023d\u023f\7(\2\2\u023e\u0240")
buf.write("\5\u008aF\2\u023f\u023e\3\2\2\2\u023f\u0240\3\2\2\2\u0240")
buf.write("\u0241\3\2\2\2\u0241\u0243\7)\2\2\u0242\u023c\3\2\2\2")
buf.write("\u0243\u0246\3\2\2\2\u0244\u0242\3\2\2\2\u0244\u0245\3")
buf.write("\2\2\2\u0245K\3\2\2\2\u0246\u0244\3\2\2\2\u0247\u024c")
buf.write("\5\u00c2b\2\u0248\u0249\7+\2\2\u0249\u024b\5\u00c2b\2")
buf.write("\u024a\u0248\3\2\2\2\u024b\u024e\3\2\2\2\u024c\u024a\3")
buf.write("\2\2\2\u024c\u024d\3\2\2\2\u024dM\3\2\2\2\u024e\u024c")
buf.write("\3\2\2\2\u024f\u0250\7,\2\2\u0250\u0253\7\30\2\2\u0251")
buf.write("\u0254\5\u0088E\2\u0252\u0254\5L\'\2\u0253\u0251\3\2\2")
buf.write("\2\u0253\u0252\3\2\2\2\u0254\u0255\3\2\2\2\u0255\u0256")
buf.write("\7-\2\2\u0256\u0257\5J&\2\u0257\u0258\7\31\2\2\u0258O")
buf.write("\3\2\2\2\u0259\u025a\7\"\2\2\u025a\u0260\5D#\2\u025b\u025f")
buf.write("\7}\2\2\u025c\u025f\7{\2\2\u025d\u025f\5V,\2\u025e\u025b")
buf.write("\3\2\2\2\u025e\u025c\3\2\2\2\u025e\u025d\3\2\2\2\u025f")
buf.write("\u0262\3\2\2\2\u0260\u025e\3\2\2\2\u0260\u0261\3\2\2\2")
buf.write("\u0261\u0265\3\2\2\2\u0262\u0260\3\2\2\2\u0263\u0264\7")
buf.write("%\2\2\u0264\u0266\5D#\2\u0265\u0263\3\2\2\2\u0265\u0266")
buf.write("\3\2\2\2\u0266\u027a\3\2\2\2\u0267\u0268\7\"\2\2\u0268")
buf.write("\u026a\7\30\2\2\u0269\u026b\5:\36\2\u026a\u0269\3\2\2")
buf.write("\2\u026a\u026b\3\2\2\2\u026b\u026c\3\2\2\2\u026c\u0271")
buf.write("\7\31\2\2\u026d\u0270\5R*\2\u026e\u0270\5V,\2\u026f\u026d")
buf.write("\3\2\2\2\u026f\u026e\3\2\2\2\u0270\u0273\3\2\2\2\u0271")
buf.write("\u026f\3\2\2\2\u0271\u0272\3\2\2\2\u0272\u0274\3\2\2\2")
buf.write("\u0273\u0271\3\2\2\2\u0274\u0275\7%\2\2\u0275\u0276\7")
buf.write("\30\2\2\u0276\u0277\5:\36\2\u0277\u0278\7\31\2\2\u0278")
buf.write("\u027a\3\2\2\2\u0279\u0259\3\2\2\2\u0279\u0267\3\2\2\2")
buf.write("\u027aQ\3\2\2\2\u027b\u027c\t\6\2\2\u027cS\3\2\2\2\u027d")
buf.write("\u027e\t\7\2\2\u027eU\3\2\2\2\u027f\u0280\t\b\2\2\u0280")
buf.write("W\3\2\2\2\u0281\u0286\7\20\2\2\u0282\u0285\5\\/\2\u0283")
buf.write("\u0285\5Z.\2\u0284\u0282\3\2\2\2\u0284\u0283\3\2\2\2\u0285")
buf.write("\u0288\3\2\2\2\u0286\u0284\3\2\2\2\u0286\u0287\3\2\2\2")
buf.write("\u0287\u0289\3\2\2\2\u0288\u0286\3\2\2\2\u0289\u028a\7")
buf.write("\22\2\2\u028aY\3\2\2\2\u028b\u028c\7\61\2\2\u028c\u028d")
buf.write("\5X-\2\u028d[\3\2\2\2\u028e\u029f\5d\63\2\u028f\u029f")
buf.write("\5l\67\2\u0290\u029f\5p9\2\u0291\u029f\5X-\2\u0292\u029f")
buf.write("\5r:\2\u0293\u029f\5t;\2\u0294\u029f\5v<\2\u0295\u029f")
buf.write("\5x=\2\u0296\u029f\5z>\2\u0297\u029f\5|?\2\u0298\u029f")
buf.write("\5~@\2\u0299\u029f\5n8\2\u029a\u029f\5^\60\2\u029b\u029f")
buf.write("\5`\61\2\u029c\u029f\7\u0089\2\2\u029d\u029f\7\u008a\2")
buf.write("\2\u029e\u028e\3\2\2\2\u029e\u028f\3\2\2\2\u029e\u0290")
buf.write("\3\2\2\2\u029e\u0291\3\2\2\2\u029e\u0292\3\2\2\2\u029e")
buf.write("\u0293\3\2\2\2\u029e\u0294\3\2\2\2\u029e\u0295\3\2\2\2")
buf.write("\u029e\u0296\3\2\2\2\u029e\u0297\3\2\2\2\u029e\u0298\3")
buf.write("\2\2\2\u029e\u0299\3\2\2\2\u029e\u029a\3\2\2\2\u029e\u029b")
buf.write("\3\2\2\2\u029e\u029c\3\2\2\2\u029e\u029d\3\2\2\2\u029f")
buf.write("]\3\2\2\2\u02a0\u02a1\7\62\2\2\u02a1\u02a7\5\u008aF\2")
buf.write("\u02a2\u02a3\7%\2\2\u02a3\u02a4\7\30\2\2\u02a4\u02a5\5")
buf.write(":\36\2\u02a5\u02a6\7\31\2\2\u02a6\u02a8\3\2\2\2\u02a7")
buf.write("\u02a2\3\2\2\2\u02a7\u02a8\3\2\2\2\u02a8\u02a9\3\2\2\2")
buf.write("\u02a9\u02ad\5X-\2\u02aa\u02ac\5`\61\2\u02ab\u02aa\3\2")
buf.write("\2\2\u02ac\u02af\3\2\2\2\u02ad\u02ab\3\2\2\2\u02ad\u02ae")
buf.write("\3\2\2\2\u02ae_\3\2\2\2\u02af\u02ad\3\2\2\2\u02b0\u02bb")
buf.write("\7\63\2\2\u02b1\u02b3\5\u00c2b\2\u02b2\u02b1\3\2\2\2\u02b2")
buf.write("\u02b3\3\2\2\2\u02b3\u02b4\3\2\2\2\u02b4\u02b5\7\30\2")
buf.write("\2\u02b5\u02b7\5:\36\2\u02b6\u02b8\5\26\f\2\u02b7\u02b6")
buf.write("\3\2\2\2\u02b7\u02b8\3\2\2\2\u02b8\u02b9\3\2\2\2\u02b9")
buf.write("\u02ba\7\31\2\2\u02ba\u02bc\3\2\2\2\u02bb\u02b2\3\2\2")
buf.write("\2\u02bb\u02bc\3\2\2\2\u02bc\u02bd\3\2\2\2\u02bd\u02c1")
buf.write("\5X-\2\u02be\u02bf\7\63\2\2\u02bf\u02c1\5X-\2\u02c0\u02b0")
buf.write("\3\2\2\2\u02c0\u02be\3\2\2\2\u02c1a\3\2\2\2\u02c2\u02c3")
buf.write("\5\u008aF\2\u02c3\u02c4\7\4\2\2\u02c4c\3\2\2\2\u02c5\u02c6")
buf.write("\7\64\2\2\u02c6\u02c7\7\30\2\2\u02c7\u02c8\5f\64\2\u02c8")
buf.write("\u02c9\7\31\2\2\u02c9\u02cc\5h\65\2\u02ca\u02cb\7\65\2")
buf.write("\2\u02cb\u02cd\5j\66\2\u02cc\u02ca\3\2\2\2\u02cc\u02cd")
buf.write("\3\2\2\2\u02cde\3\2\2\2\u02ce\u02cf\5\u008aF\2\u02cfg")
buf.write("\3\2\2\2\u02d0\u02d1\5\\/\2\u02d1i\3\2\2\2\u02d2\u02d3")
buf.write("\5\\/\2\u02d3k\3\2\2\2\u02d4\u02d5\7\66\2\2\u02d5\u02d6")
buf.write("\7\30\2\2\u02d6\u02d7\5\u008aF\2\u02d7\u02d8\7\31\2\2")
buf.write("\u02d8\u02d9\5\\/\2\u02d9m\3\2\2\2\u02da\u02dd\5\u0080")
buf.write("A\2\u02db\u02dd\5b\62\2\u02dc\u02da\3\2\2\2\u02dc\u02db")
buf.write("\3\2\2\2\u02ddo\3\2\2\2\u02de\u02df\7\36\2\2\u02df\u02e2")
buf.write("\7\30\2\2\u02e0\u02e3\5n8\2\u02e1\u02e3\7\4\2\2\u02e2")
buf.write("\u02e0\3\2\2\2\u02e2\u02e1\3\2\2\2\u02e3\u02e6\3\2\2\2")
buf.write("\u02e4\u02e7\5b\62\2\u02e5\u02e7\7\4\2\2\u02e6\u02e4\3")
buf.write("\2\2\2\u02e6\u02e5\3\2\2\2\u02e7\u02e9\3\2\2\2\u02e8\u02ea")
buf.write("\5\u008aF\2\u02e9\u02e8\3\2\2\2\u02e9\u02ea\3\2\2\2\u02ea")
buf.write("\u02eb\3\2\2\2\u02eb\u02ec\7\31\2\2\u02ec\u02ed\5\\/\2")
buf.write("\u02edq\3\2\2\2\u02ee\u02f0\7\67\2\2\u02ef\u02f1\7\u0085")
buf.write("\2\2\u02f0\u02ef\3\2\2\2\u02f0\u02f1\3\2\2\2\u02f1\u02f2")
buf.write("\3\2\2\2\u02f2\u02f3\5\u0098M\2\u02f3s\3\2\2\2\u02f4\u02f5")
buf.write("\78\2\2\u02f5\u02f6\5\\/\2\u02f6\u02f7\7\66\2\2\u02f7")
buf.write("\u02f8\7\30\2\2\u02f8\u02f9\5\u008aF\2\u02f9\u02fa\7\31")
buf.write("\2\2\u02fa\u02fb\7\4\2\2\u02fbu\3\2\2\2\u02fc\u02fd\7")
buf.write("z\2\2\u02fd\u02fe\7\4\2\2\u02few\3\2\2\2\u02ff\u0300\7")
buf.write("u\2\2\u0300\u0301\7\4\2\2\u0301y\3\2\2\2\u0302\u0304\7")
buf.write("9\2\2\u0303\u0305\5\u008aF\2\u0304\u0303\3\2\2\2\u0304")
buf.write("\u0305\3\2\2\2\u0305\u0306\3\2\2\2\u0306\u0307\7\4\2\2")
buf.write("\u0307{\3\2\2\2\u0308\u0309\7:\2\2\u0309\u030a\7\4\2\2")
buf.write("\u030a}\3\2\2\2\u030b\u030c\7;\2\2\u030c\u030d\5\u0096")
buf.write("L\2\u030d\u030e\7\4\2\2\u030e\177\3\2\2\2\u030f\u0310")
buf.write("\7<\2\2\u0310\u0317\5\u0086D\2\u0311\u0317\5H%\2\u0312")
buf.write("\u0313\7\30\2\2\u0313\u0314\5\u0084C\2\u0314\u0315\7\31")
buf.write("\2\2\u0315\u0317\3\2\2\2\u0316\u030f\3\2\2\2\u0316\u0311")
buf.write("\3\2\2\2\u0316\u0312\3\2\2\2\u0317\u031a\3\2\2\2\u0318")
buf.write("\u0319\7\13\2\2\u0319\u031b\5\u008aF\2\u031a\u0318\3\2")
buf.write("\2\2\u031a\u031b\3\2\2\2\u031b\u031c\3\2\2\2\u031c\u031d")
buf.write("\7\4\2\2\u031d\u0081\3\2\2\2\u031e\u031f\5J&\2\u031f\u0320")
buf.write("\7v\2\2\u0320\u0321\5\u00c2b\2\u0321\u0322\7\13\2\2\u0322")
buf.write("\u0323\5\u008aF\2\u0323\u0324\7\4\2\2\u0324\u0083\3\2")
buf.write("\2\2\u0325\u0327\5H%\2\u0326\u0325\3\2\2\2\u0326\u0327")
buf.write("\3\2\2\2\u0327\u032e\3\2\2\2\u0328\u032a\7\21\2\2\u0329")
buf.write("\u032b\5H%\2\u032a\u0329\3\2\2\2\u032a\u032b\3\2\2\2\u032b")
buf.write("\u032d\3\2\2\2\u032c\u0328\3\2\2\2\u032d\u0330\3\2\2\2")
buf.write("\u032e\u032c\3\2\2\2\u032e\u032f\3\2\2\2\u032f\u0085\3")
buf.write("\2\2\2\u0330\u032e\3\2\2\2\u0331\u0338\7\30\2\2\u0332")
buf.write("\u0334\5\u00c2b\2\u0333\u0332\3\2\2\2\u0333\u0334\3\2")
buf.write("\2\2\u0334\u0335\3\2\2\2\u0335\u0337\7\21\2\2\u0336\u0333")
buf.write("\3\2\2\2\u0337\u033a\3\2\2\2\u0338\u0336\3\2\2\2\u0338")
buf.write("\u0339\3\2\2\2\u0339\u033c\3\2\2\2\u033a\u0338\3\2\2\2")
buf.write("\u033b\u033d\5\u00c2b\2\u033c\u033b\3\2\2\2\u033c\u033d")
buf.write("\3\2\2\2\u033d\u033e\3\2\2\2\u033e\u033f\7\31\2\2\u033f")
buf.write("\u0087\3\2\2\2\u0340\u0341\t\t\2\2\u0341\u0089\3\2\2\2")
buf.write("\u0342\u0343\bF\1\2\u0343\u0344\7(\2\2\u0344\u0349\5\u008a")
buf.write("F\2\u0345\u0346\7\21\2\2\u0346\u0348\5\u008aF\2\u0347")
buf.write("\u0345\3\2\2\2\u0348\u034b\3\2\2\2\u0349\u0347\3\2\2\2")
buf.write("\u0349\u034a\3\2\2\2\u034a\u034c\3\2\2\2\u034b\u0349\3")
buf.write("\2\2\2\u034c\u034d\7)\2\2\u034d\u0367\3\2\2\2\u034e\u034f")
buf.write("\7~\2\2\u034f\u0367\5\34\17\2\u0350\u0351\7\u0082\2\2")
buf.write("\u0351\u0352\7\30\2\2\u0352\u0353\5J&\2\u0353\u0354\7")
buf.write("\31\2\2\u0354\u0367\3\2\2\2\u0355\u0356\t\n\2\2\u0356")
buf.write("\u0367\5\u008aF\31\u0357\u0358\7E\2\2\u0358\u0367\5J&")
buf.write("\2\u0359\u035a\7\30\2\2\u035a\u035b\5\u008aF\2\u035b\u035c")
buf.write("\7\31\2\2\u035c\u0367\3\2\2\2\u035d\u035e\t\13\2\2\u035e")
buf.write("\u0367\5\u008aF\24\u035f\u0360\t\f\2\2\u0360\u0367\5\u008a")
buf.write("F\23\u0361\u0362\7B\2\2\u0362\u0367\5\u008aF\22\u0363")
buf.write("\u0364\7\6\2\2\u0364\u0367\5\u008aF\21\u0365\u0367\5\u008c")
buf.write("G\2\u0366\u0342\3\2\2\2\u0366\u034e\3\2\2\2\u0366\u0350")
buf.write("\3\2\2\2\u0366\u0355\3\2\2\2\u0366\u0357\3\2\2\2\u0366")
buf.write("\u0359\3\2\2\2\u0366\u035d\3\2\2\2\u0366\u035f\3\2\2\2")
buf.write("\u0366\u0361\3\2\2\2\u0366\u0363\3\2\2\2\u0366\u0365\3")
buf.write("\2\2\2\u0367\u03c3\3\2\2\2\u0368\u0369\f\20\2\2\u0369")
buf.write("\u036a\7H\2\2\u036a\u03c2\5\u008aF\21\u036b\u036c\f\17")
buf.write("\2\2\u036c\u036d\t\r\2\2\u036d\u03c2\5\u008aF\20\u036e")
buf.write("\u036f\f\16\2\2\u036f\u0370\t\13\2\2\u0370\u03c2\5\u008a")
buf.write("F\17\u0371\u0372\f\r\2\2\u0372\u0373\t\16\2\2\u0373\u03c2")
buf.write("\5\u008aF\16\u0374\u0375\f\f\2\2\u0375\u0376\7N\2\2\u0376")
buf.write("\u03c2\5\u008aF\r\u0377\u0378\f\13\2\2\u0378\u0379\7\5")
buf.write("\2\2\u0379\u03c2\5\u008aF\f\u037a\u037b\f\n\2\2\u037b")
buf.write("\u037c\7O\2\2\u037c\u03c2\5\u008aF\13\u037d\u037e\f\t")
buf.write("\2\2\u037e\u037f\t\17\2\2\u037f\u03c2\5\u008aF\n\u0380")
buf.write("\u0381\f\b\2\2\u0381\u0382\t\20\2\2\u0382\u03c2\5\u008a")
buf.write("F\t\u0383\u0384\f\7\2\2\u0384\u0385\7R\2\2\u0385\u03c2")
buf.write("\5\u008aF\b\u0386\u0387\f\6\2\2\u0387\u0388\7S\2\2\u0388")
buf.write("\u03c2\5\u008aF\7\u0389\u038a\f\5\2\2\u038a\u038b\7T\2")
buf.write("\2\u038b\u038c\5\u008aF\2\u038c\u038d\7\33\2\2\u038d\u038e")
buf.write("\5\u008aF\6\u038e\u03c2\3\2\2\2\u038f\u0390\f\4\2\2\u0390")
buf.write("\u0391\t\21\2\2\u0391\u03c2\5\u008aF\5\u0392\u0393\f ")
buf.write("\2\2\u0393\u0395\7(\2\2\u0394\u0396\5\u008aF\2\u0395\u0394")
buf.write("\3\2\2\2\u0395\u0396\3\2\2\2\u0396\u0397\3\2\2\2\u0397")
buf.write("\u03c2\7)\2\2\u0398\u0399\f\36\2\2\u0399\u039b\7(\2\2")
buf.write("\u039a\u039c\5\u008aF\2\u039b\u039a\3\2\2\2\u039b\u039c")
buf.write("\3\2\2\2\u039c\u039d\3\2\2\2\u039d\u039f\7\33\2\2\u039e")
buf.write("\u03a0\5\u008aF\2\u039f\u039e\3\2\2\2\u039f\u03a0\3\2")
buf.write("\2\2\u03a0\u03a1\3\2\2\2\u03a1\u03c2\7)\2\2\u03a2\u03a3")
buf.write("\f\35\2\2\u03a3\u03a6\7+\2\2\u03a4\u03a7\5\u00c2b\2\u03a5")
buf.write("\u03a7\7*\2\2\u03a6\u03a4\3\2\2\2\u03a6\u03a5\3\2\2\2")
buf.write("\u03a7\u03c2\3\2\2\2\u03a8\u03a9\f\34\2\2\u03a9\u03b7")
buf.write("\7\20\2\2\u03aa\u03ab\5\u00c2b\2\u03ab\u03ac\7\33\2\2")
buf.write("\u03ac\u03b4\5\u008aF\2\u03ad\u03ae\7\21\2\2\u03ae\u03af")
buf.write("\5\u00c2b\2\u03af\u03b0\7\33\2\2\u03b0\u03b1\5\u008aF")
buf.write("\2\u03b1\u03b3\3\2\2\2\u03b2\u03ad\3\2\2\2\u03b3\u03b6")
buf.write("\3\2\2\2\u03b4\u03b2\3\2\2\2\u03b4\u03b5\3\2\2\2\u03b5")
buf.write("\u03b8\3\2\2\2\u03b6\u03b4\3\2\2\2\u03b7\u03aa\3\2\2\2")
buf.write("\u03b7\u03b8\3\2\2\2\u03b8\u03b9\3\2\2\2\u03b9\u03c2\7")
buf.write("\22\2\2\u03ba\u03bb\f\30\2\2\u03bb\u03c2\t\22\2\2\u03bc")
buf.write("\u03bd\f\26\2\2\u03bd\u03be\7\30\2\2\u03be\u03bf\5\u0094")
buf.write("K\2\u03bf\u03c0\7\31\2\2\u03c0\u03c2\3\2\2\2\u03c1\u0368")
buf.write("\3\2\2\2\u03c1\u036b\3\2\2\2\u03c1\u036e\3\2\2\2\u03c1")
buf.write("\u0371\3\2\2\2\u03c1\u0374\3\2\2\2\u03c1\u0377\3\2\2\2")
buf.write("\u03c1\u037a\3\2\2\2\u03c1\u037d\3\2\2\2\u03c1\u0380\3")
buf.write("\2\2\2\u03c1\u0383\3\2\2\2\u03c1\u0386\3\2\2\2\u03c1\u0389")
buf.write("\3\2\2\2\u03c1\u038f\3\2\2\2\u03c1\u0392\3\2\2\2\u03c1")
buf.write("\u0398\3\2\2\2\u03c1\u03a2\3\2\2\2\u03c1\u03a8\3\2\2\2")
buf.write("\u03c1\u03ba\3\2\2\2\u03c1\u03bc\3\2\2\2\u03c2\u03c5\3")
buf.write("\2\2\2\u03c3\u03c1\3\2\2\2\u03c3\u03c4\3\2\2\2\u03c4\u008b")
buf.write("\3\2\2\2\u03c5\u03c3\3\2\2\2\u03c6\u03d7\7n\2\2\u03c7")
buf.write("\u03d7\5\u00c0a\2\u03c8\u03d7\7r\2\2\u03c9\u03d7\7\u0085")
buf.write("\2\2\u03ca\u03cd\5\u00c2b\2\u03cb\u03cc\7(\2\2\u03cc\u03ce")
buf.write("\7)\2\2\u03cd\u03cb\3\2\2\2\u03cd\u03ce\3\2\2\2\u03ce")
buf.write("\u03d7\3\2\2\2\u03cf\u03d7\7\u0082\2\2\u03d0\u03d7\5\u00bc")
buf.write("_\2\u03d1\u03d4\5\u00be`\2\u03d2\u03d3\7(\2\2\u03d3\u03d5")
buf.write("\7)\2\2\u03d4\u03d2\3\2\2\2\u03d4\u03d5\3\2\2\2\u03d5")
buf.write("\u03d7\3\2\2\2\u03d6\u03c6\3\2\2\2\u03d6\u03c7\3\2\2\2")
buf.write("\u03d6\u03c8\3\2\2\2\u03d6\u03c9\3\2\2\2\u03d6\u03ca\3")
buf.write("\2\2\2\u03d6\u03cf\3\2\2\2\u03d6\u03d0\3\2\2\2\u03d6\u03d1")
buf.write("\3\2\2\2\u03d7\u008d\3\2\2\2\u03d8\u03dd\5\u008aF\2\u03d9")
buf.write("\u03da\7\21\2\2\u03da\u03dc\5\u008aF\2\u03db\u03d9\3\2")
buf.write("\2\2\u03dc\u03df\3\2\2\2\u03dd\u03db\3\2\2\2\u03dd\u03de")
buf.write("\3\2\2\2\u03de\u008f\3\2\2\2\u03df\u03dd\3\2\2\2\u03e0")
buf.write("\u03e5\5\u0092J\2\u03e1\u03e2\7\21\2\2\u03e2\u03e4\5\u0092")
buf.write("J\2\u03e3\u03e1\3\2\2\2\u03e4\u03e7\3\2\2\2\u03e5\u03e3")
buf.write("\3\2\2\2\u03e5\u03e6\3\2\2\2\u03e6\u03e9\3\2\2\2\u03e7")
buf.write("\u03e5\3\2\2\2\u03e8\u03ea\7\21\2\2\u03e9\u03e8\3\2\2")
buf.write("\2\u03e9\u03ea\3\2\2\2\u03ea\u0091\3\2\2\2\u03eb\u03ec")
buf.write("\5\u00c2b\2\u03ec\u03ed\7\33\2\2\u03ed\u03ee\5\u008aF")
buf.write("\2\u03ee\u0093\3\2\2\2\u03ef\u03f1\7\20\2\2\u03f0\u03f2")
buf.write("\5\u0090I\2\u03f1\u03f0\3\2\2\2\u03f1\u03f2\3\2\2\2\u03f2")
buf.write("\u03f3\3\2\2\2\u03f3\u03f8\7\22\2\2\u03f4\u03f6\5\u008e")
buf.write("H\2\u03f5\u03f4\3\2\2\2\u03f5\u03f6\3\2\2\2\u03f6\u03f8")
buf.write("\3\2\2\2\u03f7\u03ef\3\2\2\2\u03f7\u03f5\3\2\2\2\u03f8")
buf.write("\u0095\3\2\2\2\u03f9\u03fa\5\u008aF\2\u03fa\u03fb\7\30")
buf.write("\2\2\u03fb\u03fc\5\u0094K\2\u03fc\u03fd\7\31\2\2\u03fd")
buf.write("\u0097\3\2\2\2\u03fe\u0402\7\20\2\2\u03ff\u0401\5\u009a")
buf.write("N\2\u0400\u03ff\3\2\2\2\u0401\u0404\3\2\2\2\u0402\u0400")
buf.write("\3\2\2\2\u0402\u0403\3\2\2\2\u0403\u0405\3\2\2\2\u0404")
buf.write("\u0402\3\2\2\2\u0405\u0406\7\22\2\2\u0406\u0099\3\2\2")
buf.write("\2\u0407\u0419\5\u00c2b\2\u0408\u0419\5\u0098M\2\u0409")
buf.write("\u0419\5\u009cO\2\u040a\u0419\5\u00a0Q\2\u040b\u0419\5")
buf.write("\u00a2R\2\u040c\u0419\5\u00a8U\2\u040d\u0419\5\u00aaV")
buf.write("\2\u040e\u0419\5\u00acW\2\u040f\u0419\5\u00b0Y\2\u0410")
buf.write("\u0419\5\u00b4[\2\u0411\u0419\5\u00b6\\\2\u0412\u0419")
buf.write("\7u\2\2\u0413\u0419\7z\2\2\u0414\u0419\5\u00ba^\2\u0415")
buf.write("\u0419\5\u00c0a\2\u0416\u0419\7\u0085\2\2\u0417\u0419")
buf.write("\7r\2\2\u0418\u0407\3\2\2\2\u0418\u0408\3\2\2\2\u0418")
buf.write("\u0409\3\2\2\2\u0418\u040a\3\2\2\2\u0418\u040b\3\2\2\2")
buf.write("\u0418\u040c\3\2\2\2\u0418\u040d\3\2\2\2\u0418\u040e\3")
buf.write("\2\2\2\u0418\u040f\3\2\2\2\u0418\u0410\3\2\2\2\u0418\u0411")
buf.write("\3\2\2\2\u0418\u0412\3\2\2\2\u0418\u0413\3\2\2\2\u0418")
buf.write("\u0414\3\2\2\2\u0418\u0415\3\2\2\2\u0418\u0416\3\2\2\2")
buf.write("\u0418\u0417\3\2\2\2\u0419\u009b\3\2\2\2\u041a\u041d\5")
buf.write("\u009eP\2\u041b\u041d\5\u00b8]\2\u041c\u041a\3\2\2\2\u041c")
buf.write("\u041b\3\2\2\2\u041d\u009d\3\2\2\2\u041e\u0423\79\2\2")
buf.write("\u041f\u0423\7*\2\2\u0420\u0423\7?\2\2\u0421\u0423\5\u00c2")
buf.write("b\2\u0422\u041e\3\2\2\2\u0422\u041f\3\2\2\2\u0422\u0420")
buf.write("\3\2\2\2\u0422\u0421\3\2\2\2\u0423\u0430\3\2\2\2\u0424")
buf.write("\u0426\7\30\2\2\u0425\u0427\5\u009cO\2\u0426\u0425\3\2")
buf.write("\2\2\u0426\u0427\3\2\2\2\u0427\u042c\3\2\2\2\u0428\u0429")
buf.write("\7\21\2\2\u0429\u042b\5\u009cO\2\u042a\u0428\3\2\2\2\u042b")
buf.write("\u042e\3\2\2\2\u042c\u042a\3\2\2\2\u042c\u042d\3\2\2\2")
buf.write("\u042d\u042f\3\2\2\2\u042e\u042c\3\2\2\2\u042f\u0431\7")
buf.write("\31\2\2\u0430\u0424\3\2\2\2\u0430\u0431\3\2\2\2\u0431")
buf.write("\u009f\3\2\2\2\u0432\u0433\7`\2\2\u0433\u0436\5\u00a4")
buf.write("S\2\u0434\u0435\7a\2\2\u0435\u0437\5\u009cO\2\u0436\u0434")
buf.write("\3\2\2\2\u0436\u0437\3\2\2\2\u0437\u00a1\3\2\2\2\u0438")
buf.write("\u0439\5\u00a4S\2\u0439\u043a\7a\2\2\u043a\u043b\5\u009c")
buf.write("O\2\u043b\u00a3\3\2\2\2\u043c\u0442\5\u00c2b\2\u043d\u043e")
buf.write("\7\30\2\2\u043e\u043f\5\u00a6T\2\u043f\u0440\7\31\2\2")
buf.write("\u0440\u0442\3\2\2\2\u0441\u043c\3\2\2\2\u0441\u043d\3")
buf.write("\2\2\2\u0442\u00a5\3\2\2\2\u0443\u0448\5\u00c2b\2\u0444")
buf.write("\u0445\7\21\2\2\u0445\u0447\5\u00c2b\2\u0446\u0444\3\2")
buf.write("\2\2\u0447\u044a\3\2\2\2\u0448\u0446\3\2\2\2\u0448\u0449")
buf.write("\3\2\2\2\u0449\u00a7\3\2\2\2\u044a\u0448\3\2\2\2\u044b")
buf.write("\u044c\7b\2\2\u044c\u044d\5\u00c2b\2\u044d\u00a9\3\2\2")
buf.write("\2\u044e\u044f\5\u00c2b\2\u044f\u0450\7\33\2\2\u0450\u00ab")
buf.write("\3\2\2\2\u0451\u0452\7c\2\2\u0452\u0456\5\u009cO\2\u0453")
buf.write("\u0455\5\u00aeX\2\u0454\u0453\3\2\2\2\u0455\u0458\3\2")
buf.write("\2\2\u0456\u0454\3\2\2\2\u0456\u0457\3\2\2\2\u0457\u00ad")
buf.write("\3\2\2\2\u0458\u0456\3\2\2\2\u0459\u045a\7d\2\2\u045a")
buf.write("\u045b\5\u00b8]\2\u045b\u045c\5\u0098M\2\u045c\u0460\3")
buf.write("\2\2\2\u045d\u045e\7e\2\2\u045e\u0460\5\u0098M\2\u045f")
buf.write("\u0459\3\2\2\2\u045f\u045d\3\2\2\2\u0460\u00af\3\2\2\2")
buf.write("\u0461\u0462\7\"\2\2\u0462\u0463\5\u00c2b\2\u0463\u0465")
buf.write("\7\30\2\2\u0464\u0466\5\u00a6T\2\u0465\u0464\3\2\2\2\u0465")
buf.write("\u0466\3\2\2\2\u0466\u0467\3\2\2\2\u0467\u0469\7\31\2")
buf.write("\2\u0468\u046a\5\u00b2Z\2\u0469\u0468\3\2\2\2\u0469\u046a")
buf.write("\3\2\2\2\u046a\u046b\3\2\2\2\u046b\u046c\5\u0098M\2\u046c")
buf.write("\u00b1\3\2\2\2\u046d\u046e\7f\2\2\u046e\u046f\5\u00a6")
buf.write("T\2\u046f\u00b3\3\2\2\2\u0470\u0473\7\36\2\2\u0471\u0474")
buf.write("\5\u0098M\2\u0472\u0474\5\u009cO\2\u0473\u0471\3\2\2\2")
buf.write("\u0473\u0472\3\2\2\2\u0474\u0475\3\2\2\2\u0475\u0478\5")
buf.write("\u009cO\2\u0476\u0479\5\u0098M\2\u0477\u0479\5\u009cO")
buf.write("\2\u0478\u0476\3\2\2\2\u0478\u0477\3\2\2\2\u0479\u047a")
buf.write("\3\2\2\2\u047a\u047b\5\u0098M\2\u047b\u00b5\3\2\2\2\u047c")
buf.write("\u047d\7\64\2\2\u047d\u047e\5\u009cO\2\u047e\u047f\5\u0098")
buf.write("M\2\u047f\u00b7\3\2\2\2\u0480\u0481\t\23\2\2\u0481\u00b9")
buf.write("\3\2\2\2\u0482\u0483\7\67\2\2\u0483\u0484\5\u00c2b\2\u0484")
buf.write("\u0485\5\u0098M\2\u0485\u00bb\3\2\2\2\u0486\u0488\7\30")
buf.write("\2\2\u0487\u0489\5\u008aF\2\u0488\u0487\3\2\2\2\u0488")
buf.write("\u0489\3\2\2\2\u0489\u0490\3\2\2\2\u048a\u048c\7\21\2")
buf.write("\2\u048b\u048d\5\u008aF\2\u048c\u048b\3\2\2\2\u048c\u048d")
buf.write("\3\2\2\2\u048d\u048f\3\2\2\2\u048e\u048a\3\2\2\2\u048f")
buf.write("\u0492\3\2\2\2\u0490\u048e\3\2\2\2\u0490\u0491\3\2\2\2")
buf.write("\u0491\u0493\3\2\2\2\u0492\u0490\3\2\2\2\u0493\u04a1\7")
buf.write("\31\2\2\u0494\u049d\7(\2\2\u0495\u049a\5\u008aF\2\u0496")
buf.write("\u0497\7\21\2\2\u0497\u0499\5\u008aF\2\u0498\u0496\3\2")
buf.write("\2\2\u0499\u049c\3\2\2\2\u049a\u0498\3\2\2\2\u049a\u049b")
buf.write("\3\2\2\2\u049b\u049e\3\2\2\2\u049c\u049a\3\2\2\2\u049d")
buf.write("\u0495\3\2\2\2\u049d\u049e\3\2\2\2\u049e\u049f\3\2\2\2")
buf.write("\u049f\u04a1\7)\2\2\u04a0\u0486\3\2\2\2\u04a0\u0494\3")
buf.write("\2\2\2\u04a1\u00bd\3\2\2\2\u04a2\u04a5\5\u0088E\2\u04a3")
buf.write("\u04a5\5L\'\2\u04a4\u04a2\3\2\2\2\u04a4\u04a3\3\2\2\2")
buf.write("\u04a5\u00bf\3\2\2\2\u04a6\u04a8\t\24\2\2\u04a7\u04a9")
buf.write("\7q\2\2\u04a8\u04a7\3\2\2\2\u04a8\u04a9\3\2\2\2\u04a9")
buf.write("\u00c1\3\2\2\2\u04aa\u04b4\t\25\2\2\u04ab\u04b0\7\u0084")
buf.write("\2\2\u04ac\u04ad\7\17\2\2\u04ad\u04af\7\u0084\2\2\u04ae")
buf.write("\u04ac\3\2\2\2\u04af\u04b2\3\2\2\2\u04b0\u04ae\3\2\2\2")
buf.write("\u04b0\u04b1\3\2\2\2\u04b1\u04b4\3\2\2\2\u04b2\u04b0\3")
buf.write("\2\2\2\u04b3\u04aa\3\2\2\2\u04b3\u04ab\3\2\2\2\u04b4\u00c3")
buf.write("\3\2\2\2\u008d\u00c5\u00cf\u00d1\u00e1\u00e5\u00ea\u00f1")
buf.write("\u00f7\u00fd\u0101\u010d\u0115\u011a\u011d\u0120\u0123")
buf.write("\u012d\u0130\u0136\u013d\u0141\u0147\u0156\u015b\u015f")
buf.write("\u0169\u016f\u0175\u017e\u018c\u018f\u019b\u01a2\u01a5")
buf.write("\u01a8\u01ac\u01b1\u01b5\u01c6\u01c8\u01cc\u01d2\u01dc")
buf.write("\u01e2\u01ed\u01f0\u01fa\u01fd\u0203\u0206\u020e\u0211")
buf.write("\u0217\u021a\u0222\u0225\u022b\u022f\u023a\u023f\u0244")
buf.write("\u024c\u0253\u025e\u0260\u0265\u026a\u026f\u0271\u0279")
buf.write("\u0284\u0286\u029e\u02a7\u02ad\u02b2\u02b7\u02bb\u02c0")
buf.write("\u02cc\u02dc\u02e2\u02e6\u02e9\u02f0\u0304\u0316\u031a")
buf.write("\u0326\u032a\u032e\u0333\u0338\u033c\u0349\u0366\u0395")
buf.write("\u039b\u039f\u03a6\u03b4\u03b7\u03c1\u03c3\u03cd\u03d4")
buf.write("\u03d6\u03dd\u03e5\u03e9\u03f1\u03f5\u03f7\u0402\u0418")
buf.write("\u041c\u0422\u0426\u042c\u0430\u0436\u0441\u0448\u0456")
buf.write("\u045f\u0465\u0469\u0473\u0478\u0488\u048c\u0490\u049a")
buf.write("\u049d\u04a0\u04a4\u04a8\u04b0\u04b3")
return buf.getvalue()
class SolidityParser ( Parser ):
grammarFileName = "Solidity.g4"
atn = ATNDeserializer().deserialize(serializedATN())
decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ]
sharedContextCache = PredictionContextCache()
literalNames = [ "<INVALID>", "'pragma'", "';'", "'^'", "'~'", "'>='",
"'>'", "'<'", "'<='", "'='", "'as'", "'import'", "'*'",
"'from'", "'{'", "','", "'}'", "'abstract'", "'contract'",
"'interface'", "'library'", "'is'", "'('", "')'", "'({'",
"':'", "'})'", "'using'", "'for'", "'struct'", "'constructor'",
"'modifier'", "'function'", "'receive'", "'fallback'",
"'returns'", "'event'", "'enum'", "'['", "']'", "'address'",
"'.'", "'mapping'", "'=>'", "'memory'", "'storage'",
"'calldata'", "'unchecked'", "'try'", "'catch'", "'if'",
"'else'", "'while'", "'assembly'", "'do'", "'return'",
"'throw'", "'emit'", "'var'", "'bool'", "'string'",
"'byte'", "'++'", "'--'", "'!'", "'delete'", "'-'",
"'new'", "'+'", "'after'", "'**'", "'/'", "'%'", "'<<'",
"'>>'", "'>>>'", "'&'", "'|'", "'=='", "'!='", "'&&'",
"'||'", "'?'", "'|='", "'^='", "'&='", "'<<='", "'>>='",
"'>>>='", "'+='", "'-='", "'*='", "'/='", "'%='", "'let'",
"':='", "'=:'", "'switch'", "'case'", "'default'",
"'->'", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "'anonymous'", "'break'", "'constant'",
"'override'", "'immutable'", "'virtual'", "'continue'",
"'external'", "'indexed'", "'internal'", "'payable'",
"'private'", "'public'", "'pure'", "'type'", "'view'" ]
symbolicNames = [ "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "LicenseIdentifier", "Int", "Uint", "Byte",
"Fixed", "Ufixed", "VersionLiteral", "BooleanLiteral",
"DecimalNumber", "HexNumber", "NumberUnit", "HexLiteral",
"ReservedKeyword", "AnonymousKeyword", "BreakKeyword",
"ConstantKeyword", "OverrideKeyword", "ImmutableKeyword",
"VirtualKeyword", "ContinueKeyword", "ExternalKeyword",
"IndexedKeyword", "InternalKeyword", "PayableKeyword",
"PrivateKeyword", "PublicKeyword", "PureKeyword",
"TypeKeyword", "ViewKeyword", "Identifier", "StringLiteral",
"WS", "NatSpecSingleLine", "NatSpecMultiLine", "LINE_COMMENT",
"COMMENT" ]
RULE_sourceUnit = 0
RULE_spdxLicenseIdentifier = 1
RULE_pragmaDirective = 2
RULE_pragmaName = 3
RULE_pragmaValue = 4
RULE_version = 5
RULE_versionOperator = 6
RULE_versionConstraint = 7
RULE_importDeclaration = 8
RULE_importDirective = 9
RULE_natSpec = 10
RULE_contractDefinition = 11
RULE_inheritanceSpecifier = 12
RULE_callArgumentList = 13
RULE_contractPart = 14
RULE_stateVariableDeclaration = 15
RULE_usingForDeclaration = 16
RULE_structDefinition = 17
RULE_constructorDefinition = 18
RULE_modifierDefinition = 19
RULE_modifierInvocation = 20
RULE_functionDefinition = 21
RULE_returnParameters = 22
RULE_overrideParameters = 23
RULE_modifierList = 24
RULE_eventDefinition = 25
RULE_enumValue = 26
RULE_enumDefinition = 27
RULE_parameterList = 28
RULE_objectList = 29
RULE_parameter = 30
RULE_eventParameterList = 31
RULE_eventParameter = 32
RULE_functionTypeParameterList = 33
RULE_functionTypeParameter = 34
RULE_variableDeclaration = 35
RULE_typeName = 36
RULE_userDefinedTypeName = 37
RULE_mapping = 38
RULE_functionTypeName = 39
RULE_visibility = 40
RULE_storageLocation = 41
RULE_stateMutability = 42
RULE_block = 43
RULE_uncheckedBlock = 44
RULE_statement = 45
RULE_tryStatement = 46
RULE_catchClause = 47
RULE_expressionStatement = 48
RULE_ifStatement = 49
RULE_ifCondition = 50
RULE_ifRight = 51
RULE_ifWrong = 52
RULE_whileStatement = 53
RULE_simpleStatement = 54
RULE_forStatement = 55
RULE_inlineAssemblyStatement = 56
RULE_doWhileStatement = 57
RULE_continueStatement = 58
RULE_breakStatement = 59
RULE_returnStatement = 60
RULE_throwStatement = 61
RULE_emitStatement = 62
RULE_variableDeclarationStatement = 63
RULE_constantVariableDeclaration = 64
RULE_variableDeclarationList = 65
RULE_identifierList = 66
RULE_elementaryTypeName = 67
RULE_expression = 68
RULE_primaryExpression = 69
RULE_expressionList = 70
RULE_nameValueList = 71
RULE_nameValue = 72
RULE_functionCallArguments = 73
RULE_functionCall = 74
RULE_assemblyBlock = 75
RULE_assemblyItem = 76
RULE_assemblyExpression = 77
RULE_assemblyCall = 78
RULE_assemblyLocalDefinition = 79
RULE_assemblyAssignment = 80
RULE_assemblyIdentifierOrList = 81
RULE_assemblyIdentifierList = 82
RULE_assemblyStackAssignment = 83
RULE_labelDefinition = 84
RULE_assemblySwitch = 85
RULE_assemblyCase = 86
RULE_assemblyFunctionDefinition = 87
RULE_assemblyFunctionReturns = 88
RULE_assemblyFor = 89
RULE_assemblyIf = 90
RULE_assemblyLiteral = 91
RULE_subAssembly = 92
RULE_tupleExpression = 93
RULE_typeNameExpression = 94
RULE_numberLiteral = 95
RULE_identifier = 96
ruleNames = [ "sourceUnit", "spdxLicenseIdentifier", "pragmaDirective",
"pragmaName", "pragmaValue", "version", "versionOperator",
"versionConstraint", "importDeclaration", "importDirective",
"natSpec", "contractDefinition", "inheritanceSpecifier",
"callArgumentList", "contractPart", "stateVariableDeclaration",
"usingForDeclaration", "structDefinition", "constructorDefinition",
"modifierDefinition", "modifierInvocation", "functionDefinition",
"returnParameters", "overrideParameters", "modifierList",
"eventDefinition", "enumValue", "enumDefinition", "parameterList",
"objectList", "parameter", "eventParameterList", "eventParameter",
"functionTypeParameterList", "functionTypeParameter",
"variableDeclaration", "typeName", "userDefinedTypeName",
"mapping", "functionTypeName", "visibility", "storageLocation",
"stateMutability", "block", "uncheckedBlock", "statement",
"tryStatement", "catchClause", "expressionStatement",
"ifStatement", "ifCondition", "ifRight", "ifWrong", "whileStatement",
"simpleStatement", "forStatement", "inlineAssemblyStatement",
"doWhileStatement", "continueStatement", "breakStatement",
"returnStatement", "throwStatement", "emitStatement",
"variableDeclarationStatement", "constantVariableDeclaration",
"variableDeclarationList", "identifierList", "elementaryTypeName",
"expression", "primaryExpression", "expressionList",
"nameValueList", "nameValue", "functionCallArguments",
"functionCall", "assemblyBlock", "assemblyItem", "assemblyExpression",
"assemblyCall", "assemblyLocalDefinition", "assemblyAssignment",
"assemblyIdentifierOrList", "assemblyIdentifierList",
"assemblyStackAssignment", "labelDefinition", "assemblySwitch",
"assemblyCase", "assemblyFunctionDefinition", "assemblyFunctionReturns",
"assemblyFor", "assemblyIf", "assemblyLiteral", "subAssembly",
"tupleExpression", "typeNameExpression", "numberLiteral",
"identifier" ]
EOF = Token.EOF
T__0=1
T__1=2
T__2=3
T__3=4
T__4=5
T__5=6
T__6=7
T__7=8
T__8=9
T__9=10
T__10=11
T__11=12
T__12=13
T__13=14
T__14=15
T__15=16
T__16=17
T__17=18
T__18=19
T__19=20
T__20=21
T__21=22
T__22=23
T__23=24
T__24=25
T__25=26
T__26=27
T__27=28
T__28=29
T__29=30
T__30=31
T__31=32
T__32=33
T__33=34
T__34=35
T__35=36
T__36=37
T__37=38
T__38=39
T__39=40
T__40=41
T__41=42
T__42=43
T__43=44
T__44=45
T__45=46
T__46=47
T__47=48
T__48=49
T__49=50
T__50=51
T__51=52
T__52=53
T__53=54
T__54=55
T__55=56
T__56=57
T__57=58
T__58=59
T__59=60
T__60=61
T__61=62
T__62=63
T__63=64
T__64=65
T__65=66
T__66=67
T__67=68
T__68=69
T__69=70
T__70=71
T__71=72
T__72=73
T__73=74
T__74=75
T__75=76
T__76=77
T__77=78
T__78=79
T__79=80
T__80=81
T__81=82
T__82=83
T__83=84
T__84=85
T__85=86
T__86=87
T__87=88
T__88=89
T__89=90
T__90=91
T__91=92
T__92=93
T__93=94
T__94=95
T__95=96
T__96=97
T__97=98
T__98=99
T__99=100
LicenseIdentifier=101
Int=102
Uint=103
Byte=104
Fixed=105
Ufixed=106
VersionLiteral=107
BooleanLiteral=108
DecimalNumber=109
HexNumber=110
NumberUnit=111
HexLiteral=112
ReservedKeyword=113
AnonymousKeyword=114
BreakKeyword=115
ConstantKeyword=116
OverrideKeyword=117
ImmutableKeyword=118
VirtualKeyword=119
ContinueKeyword=120
ExternalKeyword=121
IndexedKeyword=122
InternalKeyword=123
PayableKeyword=124
PrivateKeyword=125
PublicKeyword=126
PureKeyword=127
TypeKeyword=128
ViewKeyword=129
Identifier=130
StringLiteral=131
WS=132
NatSpecSingleLine=133
NatSpecMultiLine=134
LINE_COMMENT=135
COMMENT=136
def __init__(self, input:TokenStream, output:TextIO = sys.stdout):
super().__init__(input, output)
self.checkVersion("4.9.3")
self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache)
self._predicates = None
class SourceUnitContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def EOF(self):
return self.getToken(SolidityParser.EOF, 0)
def spdxLicenseIdentifier(self):
return self.getTypedRuleContext(SolidityParser.SpdxLicenseIdentifierContext,0)
def natSpec(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.NatSpecContext)
else:
return self.getTypedRuleContext(SolidityParser.NatSpecContext,i)
def pragmaDirective(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.PragmaDirectiveContext)
else:
return self.getTypedRuleContext(SolidityParser.PragmaDirectiveContext,i)
def importDirective(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.ImportDirectiveContext)
else:
return self.getTypedRuleContext(SolidityParser.ImportDirectiveContext,i)
def contractDefinition(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.ContractDefinitionContext)
else:
return self.getTypedRuleContext(SolidityParser.ContractDefinitionContext,i)
def functionDefinition(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.FunctionDefinitionContext)
else:
return self.getTypedRuleContext(SolidityParser.FunctionDefinitionContext,i)
def constantVariableDeclaration(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.ConstantVariableDeclarationContext)
else:
return self.getTypedRuleContext(SolidityParser.ConstantVariableDeclarationContext,i)
def structDefinition(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.StructDefinitionContext)
else:
return self.getTypedRuleContext(SolidityParser.StructDefinitionContext,i)
def enumDefinition(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.EnumDefinitionContext)
else:
return self.getTypedRuleContext(SolidityParser.EnumDefinitionContext,i)
def getRuleIndex(self):
return SolidityParser.RULE_sourceUnit
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterSourceUnit" ):
listener.enterSourceUnit(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitSourceUnit" ):
listener.exitSourceUnit(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSourceUnit" ):
return visitor.visitSourceUnit(self)
else:
return visitor.visitChildren(self)
def sourceUnit(self):
localctx = SolidityParser.SourceUnitContext(self, self._ctx, self.state)
self.enterRule(localctx, 0, self.RULE_sourceUnit)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 195
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.LicenseIdentifier:
self.state = 194
self.spdxLicenseIdentifier()
self.state = 207
self._errHandler.sync(self)
_la = self._input.LA(1)
while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << SolidityParser.T__0) | (1 << SolidityParser.T__10) | (1 << SolidityParser.T__12) | (1 << SolidityParser.T__16) | (1 << SolidityParser.T__17) | (1 << SolidityParser.T__18) | (1 << SolidityParser.T__19) | (1 << SolidityParser.T__28) | (1 << SolidityParser.T__31) | (1 << SolidityParser.T__32) | (1 << SolidityParser.T__33) | (1 << SolidityParser.T__36) | (1 << SolidityParser.T__39) | (1 << SolidityParser.T__41) | (1 << SolidityParser.T__45) | (1 << SolidityParser.T__57) | (1 << SolidityParser.T__58) | (1 << SolidityParser.T__59) | (1 << SolidityParser.T__60))) != 0) or ((((_la - 102)) & ~0x3f) == 0 and ((1 << (_la - 102)) & ((1 << (SolidityParser.Int - 102)) | (1 << (SolidityParser.Uint - 102)) | (1 << (SolidityParser.Byte - 102)) | (1 << (SolidityParser.Fixed - 102)) | (1 << (SolidityParser.Ufixed - 102)) | (1 << (SolidityParser.Identifier - 102)) | (1 << (SolidityParser.NatSpecSingleLine - 102)) | (1 << (SolidityParser.NatSpecMultiLine - 102)))) != 0):
self.state = 205
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,1,self._ctx)
if la_ == 1:
self.state = 197
self.natSpec()
pass
elif la_ == 2:
self.state = 198
self.pragmaDirective()
pass
elif la_ == 3:
self.state = 199
self.importDirective()
pass
elif la_ == 4:
self.state = 200
self.contractDefinition()
pass
elif la_ == 5:
self.state = 201
self.functionDefinition()
pass
elif la_ == 6:
self.state = 202
self.constantVariableDeclaration()
pass
elif la_ == 7:
self.state = 203
self.structDefinition()
pass
elif la_ == 8:
self.state = 204
self.enumDefinition()
pass
self.state = 209
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 210
self.match(SolidityParser.EOF)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class SpdxLicenseIdentifierContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def LicenseIdentifier(self):
return self.getToken(SolidityParser.LicenseIdentifier, 0)
def getRuleIndex(self):
return SolidityParser.RULE_spdxLicenseIdentifier
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterSpdxLicenseIdentifier" ):
listener.enterSpdxLicenseIdentifier(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitSpdxLicenseIdentifier" ):
listener.exitSpdxLicenseIdentifier(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSpdxLicenseIdentifier" ):
return visitor.visitSpdxLicenseIdentifier(self)
else:
return visitor.visitChildren(self)
def spdxLicenseIdentifier(self):
localctx = SolidityParser.SpdxLicenseIdentifierContext(self, self._ctx, self.state)
self.enterRule(localctx, 2, self.RULE_spdxLicenseIdentifier)
try:
self.enterOuterAlt(localctx, 1)
self.state = 212
self.match(SolidityParser.LicenseIdentifier)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class PragmaDirectiveContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def pragmaName(self):
return self.getTypedRuleContext(SolidityParser.PragmaNameContext,0)
def pragmaValue(self):
return self.getTypedRuleContext(SolidityParser.PragmaValueContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_pragmaDirective
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterPragmaDirective" ):
listener.enterPragmaDirective(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitPragmaDirective" ):
listener.exitPragmaDirective(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitPragmaDirective" ):
return visitor.visitPragmaDirective(self)
else:
return visitor.visitChildren(self)
def pragmaDirective(self):
localctx = SolidityParser.PragmaDirectiveContext(self, self._ctx, self.state)
self.enterRule(localctx, 4, self.RULE_pragmaDirective)
try:
self.enterOuterAlt(localctx, 1)
self.state = 214
self.match(SolidityParser.T__0)
self.state = 215
self.pragmaName()
self.state = 216
self.pragmaValue()
self.state = 217
self.match(SolidityParser.T__1)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class PragmaNameContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def identifier(self):
return self.getTypedRuleContext(SolidityParser.IdentifierContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_pragmaName
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterPragmaName" ):
listener.enterPragmaName(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitPragmaName" ):
listener.exitPragmaName(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitPragmaName" ):
return visitor.visitPragmaName(self)
else:
return visitor.visitChildren(self)
def pragmaName(self):
localctx = SolidityParser.PragmaNameContext(self, self._ctx, self.state)
self.enterRule(localctx, 6, self.RULE_pragmaName)
try:
self.enterOuterAlt(localctx, 1)
self.state = 219
self.identifier()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class PragmaValueContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def version(self):
return self.getTypedRuleContext(SolidityParser.VersionContext,0)
def expression(self):
return self.getTypedRuleContext(SolidityParser.ExpressionContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_pragmaValue
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterPragmaValue" ):
listener.enterPragmaValue(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitPragmaValue" ):
listener.exitPragmaValue(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitPragmaValue" ):
return visitor.visitPragmaValue(self)
else:
return visitor.visitChildren(self)
def pragmaValue(self):
localctx = SolidityParser.PragmaValueContext(self, self._ctx, self.state)
self.enterRule(localctx, 8, self.RULE_pragmaValue)
try:
self.state = 223
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,3,self._ctx)
if la_ == 1:
self.enterOuterAlt(localctx, 1)
self.state = 221
self.version()
pass
elif la_ == 2:
self.enterOuterAlt(localctx, 2)
self.state = 222
self.expression(0)
pass
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class VersionContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def versionConstraint(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.VersionConstraintContext)
else:
return self.getTypedRuleContext(SolidityParser.VersionConstraintContext,i)
def getRuleIndex(self):
return SolidityParser.RULE_version
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterVersion" ):
listener.enterVersion(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitVersion" ):
listener.exitVersion(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitVersion" ):
return visitor.visitVersion(self)
else:
return visitor.visitChildren(self)
def version(self):
localctx = SolidityParser.VersionContext(self, self._ctx, self.state)
self.enterRule(localctx, 10, self.RULE_version)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 225
self.versionConstraint()
self.state = 227
self._errHandler.sync(self)
_la = self._input.LA(1)
if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << SolidityParser.T__2) | (1 << SolidityParser.T__3) | (1 << SolidityParser.T__4) | (1 << SolidityParser.T__5) | (1 << SolidityParser.T__6) | (1 << SolidityParser.T__7) | (1 << SolidityParser.T__8))) != 0) or _la==SolidityParser.VersionLiteral:
self.state = 226
self.versionConstraint()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class VersionOperatorContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return SolidityParser.RULE_versionOperator
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterVersionOperator" ):
listener.enterVersionOperator(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitVersionOperator" ):
listener.exitVersionOperator(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitVersionOperator" ):
return visitor.visitVersionOperator(self)
else:
return visitor.visitChildren(self)
def versionOperator(self):
localctx = SolidityParser.VersionOperatorContext(self, self._ctx, self.state)
self.enterRule(localctx, 12, self.RULE_versionOperator)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 229
_la = self._input.LA(1)
if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << SolidityParser.T__2) | (1 << SolidityParser.T__3) | (1 << SolidityParser.T__4) | (1 << SolidityParser.T__5) | (1 << SolidityParser.T__6) | (1 << SolidityParser.T__7) | (1 << SolidityParser.T__8))) != 0)):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class VersionConstraintContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def VersionLiteral(self):
return self.getToken(SolidityParser.VersionLiteral, 0)
def versionOperator(self):
return self.getTypedRuleContext(SolidityParser.VersionOperatorContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_versionConstraint
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterVersionConstraint" ):
listener.enterVersionConstraint(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitVersionConstraint" ):
listener.exitVersionConstraint(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitVersionConstraint" ):
return visitor.visitVersionConstraint(self)
else:
return visitor.visitChildren(self)
def versionConstraint(self):
localctx = SolidityParser.VersionConstraintContext(self, self._ctx, self.state)
self.enterRule(localctx, 14, self.RULE_versionConstraint)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 232
self._errHandler.sync(self)
_la = self._input.LA(1)
if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << SolidityParser.T__2) | (1 << SolidityParser.T__3) | (1 << SolidityParser.T__4) | (1 << SolidityParser.T__5) | (1 << SolidityParser.T__6) | (1 << SolidityParser.T__7) | (1 << SolidityParser.T__8))) != 0):
self.state = 231
self.versionOperator()
self.state = 234
self.match(SolidityParser.VersionLiteral)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ImportDeclarationContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def identifier(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.IdentifierContext)
else:
return self.getTypedRuleContext(SolidityParser.IdentifierContext,i)
def getRuleIndex(self):
return SolidityParser.RULE_importDeclaration
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterImportDeclaration" ):
listener.enterImportDeclaration(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitImportDeclaration" ):
listener.exitImportDeclaration(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitImportDeclaration" ):
return visitor.visitImportDeclaration(self)
else:
return visitor.visitChildren(self)
def importDeclaration(self):
localctx = SolidityParser.ImportDeclarationContext(self, self._ctx, self.state)
self.enterRule(localctx, 16, self.RULE_importDeclaration)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 236
self.identifier()
self.state = 239
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.T__9:
self.state = 237
self.match(SolidityParser.T__9)
self.state = 238
self.identifier()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ImportDirectiveContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def StringLiteral(self):
return self.getToken(SolidityParser.StringLiteral, 0)
def identifier(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.IdentifierContext)
else:
return self.getTypedRuleContext(SolidityParser.IdentifierContext,i)
def importDeclaration(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.ImportDeclarationContext)
else:
return self.getTypedRuleContext(SolidityParser.ImportDeclarationContext,i)
def getRuleIndex(self):
return SolidityParser.RULE_importDirective
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterImportDirective" ):
listener.enterImportDirective(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitImportDirective" ):
listener.exitImportDirective(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitImportDirective" ):
return visitor.visitImportDirective(self)
else:
return visitor.visitChildren(self)
def importDirective(self):
localctx = SolidityParser.ImportDirectiveContext(self, self._ctx, self.state)
self.enterRule(localctx, 18, self.RULE_importDirective)
self._la = 0 # Token type
try:
self.state = 275
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,11,self._ctx)
if la_ == 1:
self.enterOuterAlt(localctx, 1)
self.state = 241
self.match(SolidityParser.T__10)
self.state = 242
self.match(SolidityParser.StringLiteral)
self.state = 245
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.T__9:
self.state = 243
self.match(SolidityParser.T__9)
self.state = 244
self.identifier()
self.state = 247
self.match(SolidityParser.T__1)
pass
elif la_ == 2:
self.enterOuterAlt(localctx, 2)
self.state = 248
self.match(SolidityParser.T__10)
self.state = 251
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [SolidityParser.T__11]:
self.state = 249
self.match(SolidityParser.T__11)
pass
elif token in [SolidityParser.T__12, SolidityParser.T__45, SolidityParser.Identifier]:
self.state = 250
self.identifier()
pass
else:
raise NoViableAltException(self)
self.state = 255
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.T__9:
self.state = 253
self.match(SolidityParser.T__9)
self.state = 254
self.identifier()
self.state = 257
self.match(SolidityParser.T__12)
self.state = 258
self.match(SolidityParser.StringLiteral)
self.state = 259
self.match(SolidityParser.T__1)
pass
elif la_ == 3:
self.enterOuterAlt(localctx, 3)
self.state = 260
self.match(SolidityParser.T__10)
self.state = 261
self.match(SolidityParser.T__13)
self.state = 262
self.importDeclaration()
self.state = 267
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==SolidityParser.T__14:
self.state = 263
self.match(SolidityParser.T__14)
self.state = 264
self.importDeclaration()
self.state = 269
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 270
self.match(SolidityParser.T__15)
self.state = 271
self.match(SolidityParser.T__12)
self.state = 272
self.match(SolidityParser.StringLiteral)
self.state = 273
self.match(SolidityParser.T__1)
pass
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class NatSpecContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def NatSpecSingleLine(self, i:int=None):
if i is None:
return self.getTokens(SolidityParser.NatSpecSingleLine)
else:
return self.getToken(SolidityParser.NatSpecSingleLine, i)
def NatSpecMultiLine(self):
return self.getToken(SolidityParser.NatSpecMultiLine, 0)
def getRuleIndex(self):
return SolidityParser.RULE_natSpec
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterNatSpec" ):
listener.enterNatSpec(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitNatSpec" ):
listener.exitNatSpec(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitNatSpec" ):
return visitor.visitNatSpec(self)
else:
return visitor.visitChildren(self)
def natSpec(self):
localctx = SolidityParser.NatSpecContext(self, self._ctx, self.state)
self.enterRule(localctx, 20, self.RULE_natSpec)
try:
self.state = 283
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [SolidityParser.NatSpecSingleLine]:
self.enterOuterAlt(localctx, 1)
self.state = 278
self._errHandler.sync(self)
_alt = 1
while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
if _alt == 1:
self.state = 277
self.match(SolidityParser.NatSpecSingleLine)
else:
raise NoViableAltException(self)
self.state = 280
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,12,self._ctx)
pass
elif token in [SolidityParser.NatSpecMultiLine]:
self.enterOuterAlt(localctx, 2)
self.state = 282
self.match(SolidityParser.NatSpecMultiLine)
pass
else:
raise NoViableAltException(self)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ContractDefinitionContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def identifier(self):
return self.getTypedRuleContext(SolidityParser.IdentifierContext,0)
def natSpec(self):
return self.getTypedRuleContext(SolidityParser.NatSpecContext,0)
def inheritanceSpecifier(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.InheritanceSpecifierContext)
else:
return self.getTypedRuleContext(SolidityParser.InheritanceSpecifierContext,i)
def contractPart(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.ContractPartContext)
else:
return self.getTypedRuleContext(SolidityParser.ContractPartContext,i)
def getRuleIndex(self):
return SolidityParser.RULE_contractDefinition
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterContractDefinition" ):
listener.enterContractDefinition(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitContractDefinition" ):
listener.exitContractDefinition(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitContractDefinition" ):
return visitor.visitContractDefinition(self)
else:
return visitor.visitChildren(self)
def contractDefinition(self):
localctx = SolidityParser.ContractDefinitionContext(self, self._ctx, self.state)
self.enterRule(localctx, 22, self.RULE_contractDefinition)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 286
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.NatSpecSingleLine or _la==SolidityParser.NatSpecMultiLine:
self.state = 285
self.natSpec()
self.state = 289
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.T__16:
self.state = 288
self.match(SolidityParser.T__16)
self.state = 291
_la = self._input.LA(1)
if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << SolidityParser.T__17) | (1 << SolidityParser.T__18) | (1 << SolidityParser.T__19))) != 0)):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
self.state = 292
self.identifier()
self.state = 302
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.T__20:
self.state = 293
self.match(SolidityParser.T__20)
self.state = 294
self.inheritanceSpecifier()
self.state = 299
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==SolidityParser.T__14:
self.state = 295
self.match(SolidityParser.T__14)
self.state = 296
self.inheritanceSpecifier()
self.state = 301
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 304
self.match(SolidityParser.T__13)
self.state = 308
self._errHandler.sync(self)
_la = self._input.LA(1)
while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << SolidityParser.T__12) | (1 << SolidityParser.T__26) | (1 << SolidityParser.T__28) | (1 << SolidityParser.T__29) | (1 << SolidityParser.T__30) | (1 << SolidityParser.T__31) | (1 << SolidityParser.T__32) | (1 << SolidityParser.T__33) | (1 << SolidityParser.T__35) | (1 << SolidityParser.T__36) | (1 << SolidityParser.T__39) | (1 << SolidityParser.T__41) | (1 << SolidityParser.T__45) | (1 << SolidityParser.T__57) | (1 << SolidityParser.T__58) | (1 << SolidityParser.T__59) | (1 << SolidityParser.T__60))) != 0) or ((((_la - 102)) & ~0x3f) == 0 and ((1 << (_la - 102)) & ((1 << (SolidityParser.Int - 102)) | (1 << (SolidityParser.Uint - 102)) | (1 << (SolidityParser.Byte - 102)) | (1 << (SolidityParser.Fixed - 102)) | (1 << (SolidityParser.Ufixed - 102)) | (1 << (SolidityParser.Identifier - 102)) | (1 << (SolidityParser.NatSpecSingleLine - 102)) | (1 << (SolidityParser.NatSpecMultiLine - 102)))) != 0):
self.state = 305
self.contractPart()
self.state = 310
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 311
self.match(SolidityParser.T__15)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class InheritanceSpecifierContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def userDefinedTypeName(self):
return self.getTypedRuleContext(SolidityParser.UserDefinedTypeNameContext,0)
def callArgumentList(self):
return self.getTypedRuleContext(SolidityParser.CallArgumentListContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_inheritanceSpecifier
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterInheritanceSpecifier" ):
listener.enterInheritanceSpecifier(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitInheritanceSpecifier" ):
listener.exitInheritanceSpecifier(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitInheritanceSpecifier" ):
return visitor.visitInheritanceSpecifier(self)
else:
return visitor.visitChildren(self)
def inheritanceSpecifier(self):
localctx = SolidityParser.InheritanceSpecifierContext(self, self._ctx, self.state)
self.enterRule(localctx, 24, self.RULE_inheritanceSpecifier)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 313
self.userDefinedTypeName()
self.state = 315
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.T__21 or _la==SolidityParser.T__23:
self.state = 314
self.callArgumentList()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class CallArgumentListContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def expression(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.ExpressionContext)
else:
return self.getTypedRuleContext(SolidityParser.ExpressionContext,i)
def identifier(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.IdentifierContext)
else:
return self.getTypedRuleContext(SolidityParser.IdentifierContext,i)
def getRuleIndex(self):
return SolidityParser.RULE_callArgumentList
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterCallArgumentList" ):
listener.enterCallArgumentList(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitCallArgumentList" ):
listener.exitCallArgumentList(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitCallArgumentList" ):
return visitor.visitCallArgumentList(self)
else:
return visitor.visitChildren(self)
def callArgumentList(self):
localctx = SolidityParser.CallArgumentListContext(self, self._ctx, self.state)
self.enterRule(localctx, 26, self.RULE_callArgumentList)
self._la = 0 # Token type
try:
self.state = 349
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [SolidityParser.T__21]:
self.enterOuterAlt(localctx, 1)
self.state = 317
self.match(SolidityParser.T__21)
self.state = 319
self._errHandler.sync(self)
_la = self._input.LA(1)
if ((((_la - 4)) & ~0x3f) == 0 and ((1 << (_la - 4)) & ((1 << (SolidityParser.T__3 - 4)) | (1 << (SolidityParser.T__12 - 4)) | (1 << (SolidityParser.T__21 - 4)) | (1 << (SolidityParser.T__37 - 4)) | (1 << (SolidityParser.T__39 - 4)) | (1 << (SolidityParser.T__45 - 4)) | (1 << (SolidityParser.T__57 - 4)) | (1 << (SolidityParser.T__58 - 4)) | (1 << (SolidityParser.T__59 - 4)) | (1 << (SolidityParser.T__60 - 4)) | (1 << (SolidityParser.T__61 - 4)) | (1 << (SolidityParser.T__62 - 4)) | (1 << (SolidityParser.T__63 - 4)) | (1 << (SolidityParser.T__64 - 4)) | (1 << (SolidityParser.T__65 - 4)) | (1 << (SolidityParser.T__66 - 4)))) != 0) or ((((_la - 68)) & ~0x3f) == 0 and ((1 << (_la - 68)) & ((1 << (SolidityParser.T__67 - 68)) | (1 << (SolidityParser.T__68 - 68)) | (1 << (SolidityParser.Int - 68)) | (1 << (SolidityParser.Uint - 68)) | (1 << (SolidityParser.Byte - 68)) | (1 << (SolidityParser.Fixed - 68)) | (1 << (SolidityParser.Ufixed - 68)) | (1 << (SolidityParser.BooleanLiteral - 68)) | (1 << (SolidityParser.DecimalNumber - 68)) | (1 << (SolidityParser.HexNumber - 68)) | (1 << (SolidityParser.HexLiteral - 68)) | (1 << (SolidityParser.PayableKeyword - 68)) | (1 << (SolidityParser.TypeKeyword - 68)) | (1 << (SolidityParser.Identifier - 68)) | (1 << (SolidityParser.StringLiteral - 68)))) != 0):
self.state = 318
self.expression(0)
self.state = 325
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==SolidityParser.T__14:
self.state = 321
self.match(SolidityParser.T__14)
self.state = 322
self.expression(0)
self.state = 327
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 328
self.match(SolidityParser.T__22)
pass
elif token in [SolidityParser.T__23]:
self.enterOuterAlt(localctx, 2)
self.state = 329
self.match(SolidityParser.T__23)
self.state = 345
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==SolidityParser.T__12 or _la==SolidityParser.T__45 or _la==SolidityParser.Identifier:
self.state = 330
self.identifier()
self.state = 331
self.match(SolidityParser.T__24)
self.state = 332
self.expression(0)
self.state = 340
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==SolidityParser.T__14:
self.state = 333
self.match(SolidityParser.T__14)
self.state = 334
self.identifier()
self.state = 335
self.match(SolidityParser.T__24)
self.state = 336
self.expression(0)
self.state = 342
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 347
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 348
self.match(SolidityParser.T__25)
pass
else:
raise NoViableAltException(self)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ContractPartContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def stateVariableDeclaration(self):
return self.getTypedRuleContext(SolidityParser.StateVariableDeclarationContext,0)
def usingForDeclaration(self):
return self.getTypedRuleContext(SolidityParser.UsingForDeclarationContext,0)
def structDefinition(self):
return self.getTypedRuleContext(SolidityParser.StructDefinitionContext,0)
def constructorDefinition(self):
return self.getTypedRuleContext(SolidityParser.ConstructorDefinitionContext,0)
def modifierDefinition(self):
return self.getTypedRuleContext(SolidityParser.ModifierDefinitionContext,0)
def functionDefinition(self):
return self.getTypedRuleContext(SolidityParser.FunctionDefinitionContext,0)
def eventDefinition(self):
return self.getTypedRuleContext(SolidityParser.EventDefinitionContext,0)
def enumDefinition(self):
return self.getTypedRuleContext(SolidityParser.EnumDefinitionContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_contractPart
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterContractPart" ):
listener.enterContractPart(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitContractPart" ):
listener.exitContractPart(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitContractPart" ):
return visitor.visitContractPart(self)
else:
return visitor.visitChildren(self)
def contractPart(self):
localctx = SolidityParser.ContractPartContext(self, self._ctx, self.state)
self.enterRule(localctx, 28, self.RULE_contractPart)
try:
self.state = 359
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,25,self._ctx)
if la_ == 1:
self.enterOuterAlt(localctx, 1)
self.state = 351
self.stateVariableDeclaration()
pass
elif la_ == 2:
self.enterOuterAlt(localctx, 2)
self.state = 352
self.usingForDeclaration()
pass
elif la_ == 3:
self.enterOuterAlt(localctx, 3)
self.state = 353
self.structDefinition()
pass
elif la_ == 4:
self.enterOuterAlt(localctx, 4)
self.state = 354
self.constructorDefinition()
pass
elif la_ == 5:
self.enterOuterAlt(localctx, 5)
self.state = 355
self.modifierDefinition()
pass
elif la_ == 6:
self.enterOuterAlt(localctx, 6)
self.state = 356
self.functionDefinition()
pass
elif la_ == 7:
self.enterOuterAlt(localctx, 7)
self.state = 357
self.eventDefinition()
pass
elif la_ == 8:
self.enterOuterAlt(localctx, 8)
self.state = 358
self.enumDefinition()
pass
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class StateVariableDeclarationContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def typeName(self):
return self.getTypedRuleContext(SolidityParser.TypeNameContext,0)
def identifier(self):
return self.getTypedRuleContext(SolidityParser.IdentifierContext,0)
def expression(self):
return self.getTypedRuleContext(SolidityParser.ExpressionContext,0)
def PublicKeyword(self, i:int=None):
if i is None:
return self.getTokens(SolidityParser.PublicKeyword)
else:
return self.getToken(SolidityParser.PublicKeyword, i)
def InternalKeyword(self, i:int=None):
if i is None:
return self.getTokens(SolidityParser.InternalKeyword)
else:
return self.getToken(SolidityParser.InternalKeyword, i)
def PrivateKeyword(self, i:int=None):
if i is None:
return self.getTokens(SolidityParser.PrivateKeyword)
else:
return self.getToken(SolidityParser.PrivateKeyword, i)
def ConstantKeyword(self, i:int=None):
if i is None:
return self.getTokens(SolidityParser.ConstantKeyword)
else:
return self.getToken(SolidityParser.ConstantKeyword, i)
def OverrideKeyword(self, i:int=None):
if i is None:
return self.getTokens(SolidityParser.OverrideKeyword)
else:
return self.getToken(SolidityParser.OverrideKeyword, i)
def ImmutableKeyword(self, i:int=None):
if i is None:
return self.getTokens(SolidityParser.ImmutableKeyword)
else:
return self.getToken(SolidityParser.ImmutableKeyword, i)
def getRuleIndex(self):
return SolidityParser.RULE_stateVariableDeclaration
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterStateVariableDeclaration" ):
listener.enterStateVariableDeclaration(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitStateVariableDeclaration" ):
listener.exitStateVariableDeclaration(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitStateVariableDeclaration" ):
return visitor.visitStateVariableDeclaration(self)
else:
return visitor.visitChildren(self)
def stateVariableDeclaration(self):
localctx = SolidityParser.StateVariableDeclarationContext(self, self._ctx, self.state)
self.enterRule(localctx, 30, self.RULE_stateVariableDeclaration)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 361
self.typeName(0)
self.state = 365
self._errHandler.sync(self)
_la = self._input.LA(1)
while ((((_la - 116)) & ~0x3f) == 0 and ((1 << (_la - 116)) & ((1 << (SolidityParser.ConstantKeyword - 116)) | (1 << (SolidityParser.OverrideKeyword - 116)) | (1 << (SolidityParser.ImmutableKeyword - 116)) | (1 << (SolidityParser.InternalKeyword - 116)) | (1 << (SolidityParser.PrivateKeyword - 116)) | (1 << (SolidityParser.PublicKeyword - 116)))) != 0):
self.state = 362
_la = self._input.LA(1)
if not(((((_la - 116)) & ~0x3f) == 0 and ((1 << (_la - 116)) & ((1 << (SolidityParser.ConstantKeyword - 116)) | (1 << (SolidityParser.OverrideKeyword - 116)) | (1 << (SolidityParser.ImmutableKeyword - 116)) | (1 << (SolidityParser.InternalKeyword - 116)) | (1 << (SolidityParser.PrivateKeyword - 116)) | (1 << (SolidityParser.PublicKeyword - 116)))) != 0)):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
self.state = 367
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 368
self.identifier()
self.state = 371
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.T__8:
self.state = 369
self.match(SolidityParser.T__8)
self.state = 370
self.expression(0)
self.state = 373
self.match(SolidityParser.T__1)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class UsingForDeclarationContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def identifier(self):
return self.getTypedRuleContext(SolidityParser.IdentifierContext,0)
def typeName(self):
return self.getTypedRuleContext(SolidityParser.TypeNameContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_usingForDeclaration
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterUsingForDeclaration" ):
listener.enterUsingForDeclaration(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitUsingForDeclaration" ):
listener.exitUsingForDeclaration(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitUsingForDeclaration" ):
return visitor.visitUsingForDeclaration(self)
else:
return visitor.visitChildren(self)
def usingForDeclaration(self):
localctx = SolidityParser.UsingForDeclarationContext(self, self._ctx, self.state)
self.enterRule(localctx, 32, self.RULE_usingForDeclaration)
try:
self.enterOuterAlt(localctx, 1)
self.state = 375
self.match(SolidityParser.T__26)
self.state = 376
self.identifier()
self.state = 377
self.match(SolidityParser.T__27)
self.state = 380
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [SolidityParser.T__11]:
self.state = 378
self.match(SolidityParser.T__11)
pass
elif token in [SolidityParser.T__12, SolidityParser.T__31, SolidityParser.T__39, SolidityParser.T__41, SolidityParser.T__45, SolidityParser.T__57, SolidityParser.T__58, SolidityParser.T__59, SolidityParser.T__60, SolidityParser.Int, SolidityParser.Uint, SolidityParser.Byte, SolidityParser.Fixed, SolidityParser.Ufixed, SolidityParser.Identifier]:
self.state = 379
self.typeName(0)
pass
else:
raise NoViableAltException(self)
self.state = 382
self.match(SolidityParser.T__1)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class StructDefinitionContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def identifier(self):
return self.getTypedRuleContext(SolidityParser.IdentifierContext,0)
def variableDeclaration(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.VariableDeclarationContext)
else:
return self.getTypedRuleContext(SolidityParser.VariableDeclarationContext,i)
def getRuleIndex(self):
return SolidityParser.RULE_structDefinition
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterStructDefinition" ):
listener.enterStructDefinition(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitStructDefinition" ):
listener.exitStructDefinition(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitStructDefinition" ):
return visitor.visitStructDefinition(self)
else:
return visitor.visitChildren(self)
def structDefinition(self):
localctx = SolidityParser.StructDefinitionContext(self, self._ctx, self.state)
self.enterRule(localctx, 34, self.RULE_structDefinition)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 384
self.match(SolidityParser.T__28)
self.state = 385
self.identifier()
self.state = 386
self.match(SolidityParser.T__13)
self.state = 397
self._errHandler.sync(self)
_la = self._input.LA(1)
if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << SolidityParser.T__12) | (1 << SolidityParser.T__31) | (1 << SolidityParser.T__39) | (1 << SolidityParser.T__41) | (1 << SolidityParser.T__45) | (1 << SolidityParser.T__57) | (1 << SolidityParser.T__58) | (1 << SolidityParser.T__59) | (1 << SolidityParser.T__60))) != 0) or ((((_la - 102)) & ~0x3f) == 0 and ((1 << (_la - 102)) & ((1 << (SolidityParser.Int - 102)) | (1 << (SolidityParser.Uint - 102)) | (1 << (SolidityParser.Byte - 102)) | (1 << (SolidityParser.Fixed - 102)) | (1 << (SolidityParser.Ufixed - 102)) | (1 << (SolidityParser.Identifier - 102)))) != 0):
self.state = 387
self.variableDeclaration()
self.state = 388
self.match(SolidityParser.T__1)
self.state = 394
self._errHandler.sync(self)
_la = self._input.LA(1)
while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << SolidityParser.T__12) | (1 << SolidityParser.T__31) | (1 << SolidityParser.T__39) | (1 << SolidityParser.T__41) | (1 << SolidityParser.T__45) | (1 << SolidityParser.T__57) | (1 << SolidityParser.T__58) | (1 << SolidityParser.T__59) | (1 << SolidityParser.T__60))) != 0) or ((((_la - 102)) & ~0x3f) == 0 and ((1 << (_la - 102)) & ((1 << (SolidityParser.Int - 102)) | (1 << (SolidityParser.Uint - 102)) | (1 << (SolidityParser.Byte - 102)) | (1 << (SolidityParser.Fixed - 102)) | (1 << (SolidityParser.Ufixed - 102)) | (1 << (SolidityParser.Identifier - 102)))) != 0):
self.state = 389
self.variableDeclaration()
self.state = 390
self.match(SolidityParser.T__1)
self.state = 396
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 399
self.match(SolidityParser.T__15)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ConstructorDefinitionContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def parameterList(self):
return self.getTypedRuleContext(SolidityParser.ParameterListContext,0)
def modifierList(self):
return self.getTypedRuleContext(SolidityParser.ModifierListContext,0)
def block(self):
return self.getTypedRuleContext(SolidityParser.BlockContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_constructorDefinition
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterConstructorDefinition" ):
listener.enterConstructorDefinition(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitConstructorDefinition" ):
listener.exitConstructorDefinition(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitConstructorDefinition" ):
return visitor.visitConstructorDefinition(self)
else:
return visitor.visitChildren(self)
def constructorDefinition(self):
localctx = SolidityParser.ConstructorDefinitionContext(self, self._ctx, self.state)
self.enterRule(localctx, 36, self.RULE_constructorDefinition)
try:
self.enterOuterAlt(localctx, 1)
self.state = 401
self.match(SolidityParser.T__29)
self.state = 402
self.parameterList()
self.state = 403
self.modifierList()
self.state = 404
self.block()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ModifierDefinitionContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def identifier(self):
return self.getTypedRuleContext(SolidityParser.IdentifierContext,0)
def block(self):
return self.getTypedRuleContext(SolidityParser.BlockContext,0)
def parameterList(self):
return self.getTypedRuleContext(SolidityParser.ParameterListContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_modifierDefinition
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterModifierDefinition" ):
listener.enterModifierDefinition(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitModifierDefinition" ):
listener.exitModifierDefinition(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitModifierDefinition" ):
return visitor.visitModifierDefinition(self)
else:
return visitor.visitChildren(self)
def modifierDefinition(self):
localctx = SolidityParser.ModifierDefinitionContext(self, self._ctx, self.state)
self.enterRule(localctx, 38, self.RULE_modifierDefinition)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 406
self.match(SolidityParser.T__30)
self.state = 407
self.identifier()
self.state = 409
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.T__21:
self.state = 408
self.parameterList()
self.state = 411
self.block()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ModifierInvocationContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def identifier(self):
return self.getTypedRuleContext(SolidityParser.IdentifierContext,0)
def expressionList(self):
return self.getTypedRuleContext(SolidityParser.ExpressionListContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_modifierInvocation
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterModifierInvocation" ):
listener.enterModifierInvocation(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitModifierInvocation" ):
listener.exitModifierInvocation(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitModifierInvocation" ):
return visitor.visitModifierInvocation(self)
else:
return visitor.visitChildren(self)
def modifierInvocation(self):
localctx = SolidityParser.ModifierInvocationContext(self, self._ctx, self.state)
self.enterRule(localctx, 40, self.RULE_modifierInvocation)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 413
self.identifier()
self.state = 419
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.T__21:
self.state = 414
self.match(SolidityParser.T__21)
self.state = 416
self._errHandler.sync(self)
_la = self._input.LA(1)
if ((((_la - 4)) & ~0x3f) == 0 and ((1 << (_la - 4)) & ((1 << (SolidityParser.T__3 - 4)) | (1 << (SolidityParser.T__12 - 4)) | (1 << (SolidityParser.T__21 - 4)) | (1 << (SolidityParser.T__37 - 4)) | (1 << (SolidityParser.T__39 - 4)) | (1 << (SolidityParser.T__45 - 4)) | (1 << (SolidityParser.T__57 - 4)) | (1 << (SolidityParser.T__58 - 4)) | (1 << (SolidityParser.T__59 - 4)) | (1 << (SolidityParser.T__60 - 4)) | (1 << (SolidityParser.T__61 - 4)) | (1 << (SolidityParser.T__62 - 4)) | (1 << (SolidityParser.T__63 - 4)) | (1 << (SolidityParser.T__64 - 4)) | (1 << (SolidityParser.T__65 - 4)) | (1 << (SolidityParser.T__66 - 4)))) != 0) or ((((_la - 68)) & ~0x3f) == 0 and ((1 << (_la - 68)) & ((1 << (SolidityParser.T__67 - 68)) | (1 << (SolidityParser.T__68 - 68)) | (1 << (SolidityParser.Int - 68)) | (1 << (SolidityParser.Uint - 68)) | (1 << (SolidityParser.Byte - 68)) | (1 << (SolidityParser.Fixed - 68)) | (1 << (SolidityParser.Ufixed - 68)) | (1 << (SolidityParser.BooleanLiteral - 68)) | (1 << (SolidityParser.DecimalNumber - 68)) | (1 << (SolidityParser.HexNumber - 68)) | (1 << (SolidityParser.HexLiteral - 68)) | (1 << (SolidityParser.PayableKeyword - 68)) | (1 << (SolidityParser.TypeKeyword - 68)) | (1 << (SolidityParser.Identifier - 68)) | (1 << (SolidityParser.StringLiteral - 68)))) != 0):
self.state = 415
self.expressionList()
self.state = 418
self.match(SolidityParser.T__22)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class FunctionDefinitionContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def parameterList(self):
return self.getTypedRuleContext(SolidityParser.ParameterListContext,0)
def modifierList(self):
return self.getTypedRuleContext(SolidityParser.ModifierListContext,0)
def block(self):
return self.getTypedRuleContext(SolidityParser.BlockContext,0)
def natSpec(self):
return self.getTypedRuleContext(SolidityParser.NatSpecContext,0)
def identifier(self):
return self.getTypedRuleContext(SolidityParser.IdentifierContext,0)
def returnParameters(self):
return self.getTypedRuleContext(SolidityParser.ReturnParametersContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_functionDefinition
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterFunctionDefinition" ):
listener.enterFunctionDefinition(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitFunctionDefinition" ):
listener.exitFunctionDefinition(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFunctionDefinition" ):
return visitor.visitFunctionDefinition(self)
else:
return visitor.visitChildren(self)
def functionDefinition(self):
localctx = SolidityParser.FunctionDefinitionContext(self, self._ctx, self.state)
self.enterRule(localctx, 42, self.RULE_functionDefinition)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 422
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.NatSpecSingleLine or _la==SolidityParser.NatSpecMultiLine:
self.state = 421
self.natSpec()
self.state = 424
_la = self._input.LA(1)
if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << SolidityParser.T__31) | (1 << SolidityParser.T__32) | (1 << SolidityParser.T__33))) != 0)):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
self.state = 426
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.T__12 or _la==SolidityParser.T__45 or _la==SolidityParser.Identifier:
self.state = 425
self.identifier()
self.state = 428
self.parameterList()
self.state = 429
self.modifierList()
self.state = 431
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.T__34:
self.state = 430
self.returnParameters()
self.state = 435
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [SolidityParser.T__1]:
self.state = 433
self.match(SolidityParser.T__1)
pass
elif token in [SolidityParser.T__13]:
self.state = 434
self.block()
pass
else:
raise NoViableAltException(self)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ReturnParametersContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def parameterList(self):
return self.getTypedRuleContext(SolidityParser.ParameterListContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_returnParameters
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterReturnParameters" ):
listener.enterReturnParameters(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitReturnParameters" ):
listener.exitReturnParameters(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitReturnParameters" ):
return visitor.visitReturnParameters(self)
else:
return visitor.visitChildren(self)
def returnParameters(self):
localctx = SolidityParser.ReturnParametersContext(self, self._ctx, self.state)
self.enterRule(localctx, 44, self.RULE_returnParameters)
try:
self.enterOuterAlt(localctx, 1)
self.state = 437
self.match(SolidityParser.T__34)
self.state = 438
self.parameterList()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class OverrideParametersContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def OverrideKeyword(self):
return self.getToken(SolidityParser.OverrideKeyword, 0)
def parameterList(self):
return self.getTypedRuleContext(SolidityParser.ParameterListContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_overrideParameters
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterOverrideParameters" ):
listener.enterOverrideParameters(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitOverrideParameters" ):
listener.exitOverrideParameters(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitOverrideParameters" ):
return visitor.visitOverrideParameters(self)
else:
return visitor.visitChildren(self)
def overrideParameters(self):
localctx = SolidityParser.OverrideParametersContext(self, self._ctx, self.state)
self.enterRule(localctx, 46, self.RULE_overrideParameters)
try:
self.enterOuterAlt(localctx, 1)
self.state = 440
self.match(SolidityParser.OverrideKeyword)
self.state = 441
self.parameterList()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ModifierListContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def modifierInvocation(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.ModifierInvocationContext)
else:
return self.getTypedRuleContext(SolidityParser.ModifierInvocationContext,i)
def stateMutability(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.StateMutabilityContext)
else:
return self.getTypedRuleContext(SolidityParser.StateMutabilityContext,i)
def ExternalKeyword(self, i:int=None):
if i is None:
return self.getTokens(SolidityParser.ExternalKeyword)
else:
return self.getToken(SolidityParser.ExternalKeyword, i)
def PublicKeyword(self, i:int=None):
if i is None:
return self.getTokens(SolidityParser.PublicKeyword)
else:
return self.getToken(SolidityParser.PublicKeyword, i)
def InternalKeyword(self, i:int=None):
if i is None:
return self.getTokens(SolidityParser.InternalKeyword)
else:
return self.getToken(SolidityParser.InternalKeyword, i)
def PrivateKeyword(self, i:int=None):
if i is None:
return self.getTokens(SolidityParser.PrivateKeyword)
else:
return self.getToken(SolidityParser.PrivateKeyword, i)
def OverrideKeyword(self, i:int=None):
if i is None:
return self.getTokens(SolidityParser.OverrideKeyword)
else:
return self.getToken(SolidityParser.OverrideKeyword, i)
def overrideParameters(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.OverrideParametersContext)
else:
return self.getTypedRuleContext(SolidityParser.OverrideParametersContext,i)
def VirtualKeyword(self, i:int=None):
if i is None:
return self.getTokens(SolidityParser.VirtualKeyword)
else:
return self.getToken(SolidityParser.VirtualKeyword, i)
def getRuleIndex(self):
return SolidityParser.RULE_modifierList
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterModifierList" ):
listener.enterModifierList(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitModifierList" ):
listener.exitModifierList(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitModifierList" ):
return visitor.visitModifierList(self)
else:
return visitor.visitChildren(self)
def modifierList(self):
localctx = SolidityParser.ModifierListContext(self, self._ctx, self.state)
self.enterRule(localctx, 48, self.RULE_modifierList)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 454
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==SolidityParser.T__12 or _la==SolidityParser.T__45 or ((((_la - 116)) & ~0x3f) == 0 and ((1 << (_la - 116)) & ((1 << (SolidityParser.ConstantKeyword - 116)) | (1 << (SolidityParser.OverrideKeyword - 116)) | (1 << (SolidityParser.VirtualKeyword - 116)) | (1 << (SolidityParser.ExternalKeyword - 116)) | (1 << (SolidityParser.InternalKeyword - 116)) | (1 << (SolidityParser.PayableKeyword - 116)) | (1 << (SolidityParser.PrivateKeyword - 116)) | (1 << (SolidityParser.PublicKeyword - 116)) | (1 << (SolidityParser.PureKeyword - 116)) | (1 << (SolidityParser.ViewKeyword - 116)) | (1 << (SolidityParser.Identifier - 116)))) != 0):
self.state = 452
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,38,self._ctx)
if la_ == 1:
self.state = 443
self.modifierInvocation()
pass
elif la_ == 2:
self.state = 444
self.stateMutability()
pass
elif la_ == 3:
self.state = 445
self.match(SolidityParser.ExternalKeyword)
pass
elif la_ == 4:
self.state = 446
self.match(SolidityParser.PublicKeyword)
pass
elif la_ == 5:
self.state = 447
self.match(SolidityParser.InternalKeyword)
pass
elif la_ == 6:
self.state = 448
self.match(SolidityParser.PrivateKeyword)
pass
elif la_ == 7:
self.state = 449
self.match(SolidityParser.OverrideKeyword)
pass
elif la_ == 8:
self.state = 450
self.overrideParameters()
pass
elif la_ == 9:
self.state = 451
self.match(SolidityParser.VirtualKeyword)
pass
self.state = 456
self._errHandler.sync(self)
_la = self._input.LA(1)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class EventDefinitionContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def identifier(self):
return self.getTypedRuleContext(SolidityParser.IdentifierContext,0)
def eventParameterList(self):
return self.getTypedRuleContext(SolidityParser.EventParameterListContext,0)
def natSpec(self):
return self.getTypedRuleContext(SolidityParser.NatSpecContext,0)
def AnonymousKeyword(self):
return self.getToken(SolidityParser.AnonymousKeyword, 0)
def getRuleIndex(self):
return SolidityParser.RULE_eventDefinition
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterEventDefinition" ):
listener.enterEventDefinition(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitEventDefinition" ):
listener.exitEventDefinition(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitEventDefinition" ):
return visitor.visitEventDefinition(self)
else:
return visitor.visitChildren(self)
def eventDefinition(self):
localctx = SolidityParser.EventDefinitionContext(self, self._ctx, self.state)
self.enterRule(localctx, 50, self.RULE_eventDefinition)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 458
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.NatSpecSingleLine or _la==SolidityParser.NatSpecMultiLine:
self.state = 457
self.natSpec()
self.state = 460
self.match(SolidityParser.T__35)
self.state = 461
self.identifier()
self.state = 462
self.eventParameterList()
self.state = 464
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.AnonymousKeyword:
self.state = 463
self.match(SolidityParser.AnonymousKeyword)
self.state = 466
self.match(SolidityParser.T__1)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class EnumValueContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def identifier(self):
return self.getTypedRuleContext(SolidityParser.IdentifierContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_enumValue
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterEnumValue" ):
listener.enterEnumValue(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitEnumValue" ):
listener.exitEnumValue(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitEnumValue" ):
return visitor.visitEnumValue(self)
else:
return visitor.visitChildren(self)
def enumValue(self):
localctx = SolidityParser.EnumValueContext(self, self._ctx, self.state)
self.enterRule(localctx, 52, self.RULE_enumValue)
try:
self.enterOuterAlt(localctx, 1)
self.state = 468
self.identifier()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class EnumDefinitionContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def identifier(self):
return self.getTypedRuleContext(SolidityParser.IdentifierContext,0)
def enumValue(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.EnumValueContext)
else:
return self.getTypedRuleContext(SolidityParser.EnumValueContext,i)
def getRuleIndex(self):
return SolidityParser.RULE_enumDefinition
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterEnumDefinition" ):
listener.enterEnumDefinition(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitEnumDefinition" ):
listener.exitEnumDefinition(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitEnumDefinition" ):
return visitor.visitEnumDefinition(self)
else:
return visitor.visitChildren(self)
def enumDefinition(self):
localctx = SolidityParser.EnumDefinitionContext(self, self._ctx, self.state)
self.enterRule(localctx, 54, self.RULE_enumDefinition)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 470
self.match(SolidityParser.T__36)
self.state = 471
self.identifier()
self.state = 472
self.match(SolidityParser.T__13)
self.state = 474
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.T__12 or _la==SolidityParser.T__45 or _la==SolidityParser.Identifier:
self.state = 473
self.enumValue()
self.state = 480
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==SolidityParser.T__14:
self.state = 476
self.match(SolidityParser.T__14)
self.state = 477
self.enumValue()
self.state = 482
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 483
self.match(SolidityParser.T__15)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ParameterListContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def parameter(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.ParameterContext)
else:
return self.getTypedRuleContext(SolidityParser.ParameterContext,i)
def getRuleIndex(self):
return SolidityParser.RULE_parameterList
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterParameterList" ):
listener.enterParameterList(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitParameterList" ):
listener.exitParameterList(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitParameterList" ):
return visitor.visitParameterList(self)
else:
return visitor.visitChildren(self)
def parameterList(self):
localctx = SolidityParser.ParameterListContext(self, self._ctx, self.state)
self.enterRule(localctx, 56, self.RULE_parameterList)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 485
self.match(SolidityParser.T__21)
self.state = 494
self._errHandler.sync(self)
_la = self._input.LA(1)
if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << SolidityParser.T__12) | (1 << SolidityParser.T__31) | (1 << SolidityParser.T__39) | (1 << SolidityParser.T__41) | (1 << SolidityParser.T__45) | (1 << SolidityParser.T__57) | (1 << SolidityParser.T__58) | (1 << SolidityParser.T__59) | (1 << SolidityParser.T__60))) != 0) or ((((_la - 102)) & ~0x3f) == 0 and ((1 << (_la - 102)) & ((1 << (SolidityParser.Int - 102)) | (1 << (SolidityParser.Uint - 102)) | (1 << (SolidityParser.Byte - 102)) | (1 << (SolidityParser.Fixed - 102)) | (1 << (SolidityParser.Ufixed - 102)) | (1 << (SolidityParser.Identifier - 102)))) != 0):
self.state = 486
self.parameter()
self.state = 491
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==SolidityParser.T__14:
self.state = 487
self.match(SolidityParser.T__14)
self.state = 488
self.parameter()
self.state = 493
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 496
self.match(SolidityParser.T__22)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ObjectListContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def parameter(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.ParameterContext)
else:
return self.getTypedRuleContext(SolidityParser.ParameterContext,i)
def getRuleIndex(self):
return SolidityParser.RULE_objectList
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterObjectList" ):
listener.enterObjectList(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitObjectList" ):
listener.exitObjectList(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitObjectList" ):
return visitor.visitObjectList(self)
else:
return visitor.visitChildren(self)
def objectList(self):
localctx = SolidityParser.ObjectListContext(self, self._ctx, self.state)
self.enterRule(localctx, 58, self.RULE_objectList)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 498
self.match(SolidityParser.T__21)
self.state = 507
self._errHandler.sync(self)
_la = self._input.LA(1)
if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << SolidityParser.T__12) | (1 << SolidityParser.T__31) | (1 << SolidityParser.T__39) | (1 << SolidityParser.T__41) | (1 << SolidityParser.T__45) | (1 << SolidityParser.T__57) | (1 << SolidityParser.T__58) | (1 << SolidityParser.T__59) | (1 << SolidityParser.T__60))) != 0) or ((((_la - 102)) & ~0x3f) == 0 and ((1 << (_la - 102)) & ((1 << (SolidityParser.Int - 102)) | (1 << (SolidityParser.Uint - 102)) | (1 << (SolidityParser.Byte - 102)) | (1 << (SolidityParser.Fixed - 102)) | (1 << (SolidityParser.Ufixed - 102)) | (1 << (SolidityParser.Identifier - 102)))) != 0):
self.state = 499
self.parameter()
self.state = 504
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==SolidityParser.T__14:
self.state = 500
self.match(SolidityParser.T__14)
self.state = 501
self.parameter()
self.state = 506
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 509
self.match(SolidityParser.T__22)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ParameterContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def typeName(self):
return self.getTypedRuleContext(SolidityParser.TypeNameContext,0)
def storageLocation(self):
return self.getTypedRuleContext(SolidityParser.StorageLocationContext,0)
def identifier(self):
return self.getTypedRuleContext(SolidityParser.IdentifierContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_parameter
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterParameter" ):
listener.enterParameter(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitParameter" ):
listener.exitParameter(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitParameter" ):
return visitor.visitParameter(self)
else:
return visitor.visitChildren(self)
def parameter(self):
localctx = SolidityParser.ParameterContext(self, self._ctx, self.state)
self.enterRule(localctx, 60, self.RULE_parameter)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 511
self.typeName(0)
self.state = 513
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,48,self._ctx)
if la_ == 1:
self.state = 512
self.storageLocation()
self.state = 516
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.T__12 or _la==SolidityParser.T__45 or _la==SolidityParser.Identifier:
self.state = 515
self.identifier()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class EventParameterListContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def eventParameter(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.EventParameterContext)
else:
return self.getTypedRuleContext(SolidityParser.EventParameterContext,i)
def getRuleIndex(self):
return SolidityParser.RULE_eventParameterList
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterEventParameterList" ):
listener.enterEventParameterList(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitEventParameterList" ):
listener.exitEventParameterList(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitEventParameterList" ):
return visitor.visitEventParameterList(self)
else:
return visitor.visitChildren(self)
def eventParameterList(self):
localctx = SolidityParser.EventParameterListContext(self, self._ctx, self.state)
self.enterRule(localctx, 62, self.RULE_eventParameterList)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 518
self.match(SolidityParser.T__21)
self.state = 527
self._errHandler.sync(self)
_la = self._input.LA(1)
if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << SolidityParser.T__12) | (1 << SolidityParser.T__31) | (1 << SolidityParser.T__39) | (1 << SolidityParser.T__41) | (1 << SolidityParser.T__45) | (1 << SolidityParser.T__57) | (1 << SolidityParser.T__58) | (1 << SolidityParser.T__59) | (1 << SolidityParser.T__60))) != 0) or ((((_la - 102)) & ~0x3f) == 0 and ((1 << (_la - 102)) & ((1 << (SolidityParser.Int - 102)) | (1 << (SolidityParser.Uint - 102)) | (1 << (SolidityParser.Byte - 102)) | (1 << (SolidityParser.Fixed - 102)) | (1 << (SolidityParser.Ufixed - 102)) | (1 << (SolidityParser.Identifier - 102)))) != 0):
self.state = 519
self.eventParameter()
self.state = 524
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==SolidityParser.T__14:
self.state = 520
self.match(SolidityParser.T__14)
self.state = 521
self.eventParameter()
self.state = 526
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 529
self.match(SolidityParser.T__22)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class EventParameterContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def typeName(self):
return self.getTypedRuleContext(SolidityParser.TypeNameContext,0)
def IndexedKeyword(self):
return self.getToken(SolidityParser.IndexedKeyword, 0)
def identifier(self):
return self.getTypedRuleContext(SolidityParser.IdentifierContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_eventParameter
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterEventParameter" ):
listener.enterEventParameter(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitEventParameter" ):
listener.exitEventParameter(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitEventParameter" ):
return visitor.visitEventParameter(self)
else:
return visitor.visitChildren(self)
def eventParameter(self):
localctx = SolidityParser.EventParameterContext(self, self._ctx, self.state)
self.enterRule(localctx, 64, self.RULE_eventParameter)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 531
self.typeName(0)
self.state = 533
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.IndexedKeyword:
self.state = 532
self.match(SolidityParser.IndexedKeyword)
self.state = 536
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.T__12 or _la==SolidityParser.T__45 or _la==SolidityParser.Identifier:
self.state = 535
self.identifier()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class FunctionTypeParameterListContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def functionTypeParameter(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.FunctionTypeParameterContext)
else:
return self.getTypedRuleContext(SolidityParser.FunctionTypeParameterContext,i)
def getRuleIndex(self):
return SolidityParser.RULE_functionTypeParameterList
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterFunctionTypeParameterList" ):
listener.enterFunctionTypeParameterList(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitFunctionTypeParameterList" ):
listener.exitFunctionTypeParameterList(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFunctionTypeParameterList" ):
return visitor.visitFunctionTypeParameterList(self)
else:
return visitor.visitChildren(self)
def functionTypeParameterList(self):
localctx = SolidityParser.FunctionTypeParameterListContext(self, self._ctx, self.state)
self.enterRule(localctx, 66, self.RULE_functionTypeParameterList)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 538
self.match(SolidityParser.T__21)
self.state = 547
self._errHandler.sync(self)
_la = self._input.LA(1)
if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << SolidityParser.T__12) | (1 << SolidityParser.T__31) | (1 << SolidityParser.T__39) | (1 << SolidityParser.T__41) | (1 << SolidityParser.T__45) | (1 << SolidityParser.T__57) | (1 << SolidityParser.T__58) | (1 << SolidityParser.T__59) | (1 << SolidityParser.T__60))) != 0) or ((((_la - 102)) & ~0x3f) == 0 and ((1 << (_la - 102)) & ((1 << (SolidityParser.Int - 102)) | (1 << (SolidityParser.Uint - 102)) | (1 << (SolidityParser.Byte - 102)) | (1 << (SolidityParser.Fixed - 102)) | (1 << (SolidityParser.Ufixed - 102)) | (1 << (SolidityParser.Identifier - 102)))) != 0):
self.state = 539
self.functionTypeParameter()
self.state = 544
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==SolidityParser.T__14:
self.state = 540
self.match(SolidityParser.T__14)
self.state = 541
self.functionTypeParameter()
self.state = 546
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 549
self.match(SolidityParser.T__22)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class FunctionTypeParameterContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def typeName(self):
return self.getTypedRuleContext(SolidityParser.TypeNameContext,0)
def storageLocation(self):
return self.getTypedRuleContext(SolidityParser.StorageLocationContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_functionTypeParameter
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterFunctionTypeParameter" ):
listener.enterFunctionTypeParameter(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitFunctionTypeParameter" ):
listener.exitFunctionTypeParameter(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFunctionTypeParameter" ):
return visitor.visitFunctionTypeParameter(self)
else:
return visitor.visitChildren(self)
def functionTypeParameter(self):
localctx = SolidityParser.FunctionTypeParameterContext(self, self._ctx, self.state)
self.enterRule(localctx, 68, self.RULE_functionTypeParameter)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 551
self.typeName(0)
self.state = 553
self._errHandler.sync(self)
_la = self._input.LA(1)
if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << SolidityParser.T__43) | (1 << SolidityParser.T__44) | (1 << SolidityParser.T__45))) != 0):
self.state = 552
self.storageLocation()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class VariableDeclarationContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def typeName(self):
return self.getTypedRuleContext(SolidityParser.TypeNameContext,0)
def identifier(self):
return self.getTypedRuleContext(SolidityParser.IdentifierContext,0)
def storageLocation(self):
return self.getTypedRuleContext(SolidityParser.StorageLocationContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_variableDeclaration
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterVariableDeclaration" ):
listener.enterVariableDeclaration(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitVariableDeclaration" ):
listener.exitVariableDeclaration(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitVariableDeclaration" ):
return visitor.visitVariableDeclaration(self)
else:
return visitor.visitChildren(self)
def variableDeclaration(self):
localctx = SolidityParser.VariableDeclarationContext(self, self._ctx, self.state)
self.enterRule(localctx, 70, self.RULE_variableDeclaration)
try:
self.enterOuterAlt(localctx, 1)
self.state = 555
self.typeName(0)
self.state = 557
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,57,self._ctx)
if la_ == 1:
self.state = 556
self.storageLocation()
self.state = 559
self.identifier()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class TypeNameContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def elementaryTypeName(self):
return self.getTypedRuleContext(SolidityParser.ElementaryTypeNameContext,0)
def userDefinedTypeName(self):
return self.getTypedRuleContext(SolidityParser.UserDefinedTypeNameContext,0)
def mapping(self):
return self.getTypedRuleContext(SolidityParser.MappingContext,0)
def functionTypeName(self):
return self.getTypedRuleContext(SolidityParser.FunctionTypeNameContext,0)
def PayableKeyword(self):
return self.getToken(SolidityParser.PayableKeyword, 0)
def typeName(self):
return self.getTypedRuleContext(SolidityParser.TypeNameContext,0)
def expression(self):
return self.getTypedRuleContext(SolidityParser.ExpressionContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_typeName
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterTypeName" ):
listener.enterTypeName(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitTypeName" ):
listener.exitTypeName(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitTypeName" ):
return visitor.visitTypeName(self)
else:
return visitor.visitChildren(self)
def typeName(self, _p:int=0):
_parentctx = self._ctx
_parentState = self.state
localctx = SolidityParser.TypeNameContext(self, self._ctx, _parentState)
_prevctx = localctx
_startState = 72
self.enterRecursionRule(localctx, 72, self.RULE_typeName, _p)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 568
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,58,self._ctx)
if la_ == 1:
self.state = 562
self.elementaryTypeName()
pass
elif la_ == 2:
self.state = 563
self.userDefinedTypeName()
pass
elif la_ == 3:
self.state = 564
self.mapping()
pass
elif la_ == 4:
self.state = 565
self.functionTypeName()
pass
elif la_ == 5:
self.state = 566
self.match(SolidityParser.T__39)
self.state = 567
self.match(SolidityParser.PayableKeyword)
pass
self._ctx.stop = self._input.LT(-1)
self.state = 578
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,60,self._ctx)
while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
if _alt==1:
if self._parseListeners is not None:
self.triggerExitRuleEvent()
_prevctx = localctx
localctx = SolidityParser.TypeNameContext(self, _parentctx, _parentState)
self.pushNewRecursionContext(localctx, _startState, self.RULE_typeName)
self.state = 570
if not self.precpred(self._ctx, 3):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 3)")
self.state = 571
self.match(SolidityParser.T__37)
self.state = 573
self._errHandler.sync(self)
_la = self._input.LA(1)
if ((((_la - 4)) & ~0x3f) == 0 and ((1 << (_la - 4)) & ((1 << (SolidityParser.T__3 - 4)) | (1 << (SolidityParser.T__12 - 4)) | (1 << (SolidityParser.T__21 - 4)) | (1 << (SolidityParser.T__37 - 4)) | (1 << (SolidityParser.T__39 - 4)) | (1 << (SolidityParser.T__45 - 4)) | (1 << (SolidityParser.T__57 - 4)) | (1 << (SolidityParser.T__58 - 4)) | (1 << (SolidityParser.T__59 - 4)) | (1 << (SolidityParser.T__60 - 4)) | (1 << (SolidityParser.T__61 - 4)) | (1 << (SolidityParser.T__62 - 4)) | (1 << (SolidityParser.T__63 - 4)) | (1 << (SolidityParser.T__64 - 4)) | (1 << (SolidityParser.T__65 - 4)) | (1 << (SolidityParser.T__66 - 4)))) != 0) or ((((_la - 68)) & ~0x3f) == 0 and ((1 << (_la - 68)) & ((1 << (SolidityParser.T__67 - 68)) | (1 << (SolidityParser.T__68 - 68)) | (1 << (SolidityParser.Int - 68)) | (1 << (SolidityParser.Uint - 68)) | (1 << (SolidityParser.Byte - 68)) | (1 << (SolidityParser.Fixed - 68)) | (1 << (SolidityParser.Ufixed - 68)) | (1 << (SolidityParser.BooleanLiteral - 68)) | (1 << (SolidityParser.DecimalNumber - 68)) | (1 << (SolidityParser.HexNumber - 68)) | (1 << (SolidityParser.HexLiteral - 68)) | (1 << (SolidityParser.PayableKeyword - 68)) | (1 << (SolidityParser.TypeKeyword - 68)) | (1 << (SolidityParser.Identifier - 68)) | (1 << (SolidityParser.StringLiteral - 68)))) != 0):
self.state = 572
self.expression(0)
self.state = 575
self.match(SolidityParser.T__38)
self.state = 580
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,60,self._ctx)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.unrollRecursionContexts(_parentctx)
return localctx
class UserDefinedTypeNameContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def identifier(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.IdentifierContext)
else:
return self.getTypedRuleContext(SolidityParser.IdentifierContext,i)
def getRuleIndex(self):
return SolidityParser.RULE_userDefinedTypeName
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterUserDefinedTypeName" ):
listener.enterUserDefinedTypeName(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitUserDefinedTypeName" ):
listener.exitUserDefinedTypeName(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitUserDefinedTypeName" ):
return visitor.visitUserDefinedTypeName(self)
else:
return visitor.visitChildren(self)
def userDefinedTypeName(self):
localctx = SolidityParser.UserDefinedTypeNameContext(self, self._ctx, self.state)
self.enterRule(localctx, 74, self.RULE_userDefinedTypeName)
try:
self.enterOuterAlt(localctx, 1)
self.state = 581
self.identifier()
self.state = 586
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,61,self._ctx)
while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
if _alt==1:
self.state = 582
self.match(SolidityParser.T__40)
self.state = 583
self.identifier()
self.state = 588
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,61,self._ctx)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class MappingContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def typeName(self):
return self.getTypedRuleContext(SolidityParser.TypeNameContext,0)
def elementaryTypeName(self):
return self.getTypedRuleContext(SolidityParser.ElementaryTypeNameContext,0)
def userDefinedTypeName(self):
return self.getTypedRuleContext(SolidityParser.UserDefinedTypeNameContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_mapping
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterMapping" ):
listener.enterMapping(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitMapping" ):
listener.exitMapping(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitMapping" ):
return visitor.visitMapping(self)
else:
return visitor.visitChildren(self)
def mapping(self):
localctx = SolidityParser.MappingContext(self, self._ctx, self.state)
self.enterRule(localctx, 76, self.RULE_mapping)
try:
self.enterOuterAlt(localctx, 1)
self.state = 589
self.match(SolidityParser.T__41)
self.state = 590
self.match(SolidityParser.T__21)
self.state = 593
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [SolidityParser.T__39, SolidityParser.T__57, SolidityParser.T__58, SolidityParser.T__59, SolidityParser.T__60, SolidityParser.Int, SolidityParser.Uint, SolidityParser.Byte, SolidityParser.Fixed, SolidityParser.Ufixed]:
self.state = 591
self.elementaryTypeName()
pass
elif token in [SolidityParser.T__12, SolidityParser.T__45, SolidityParser.Identifier]:
self.state = 592
self.userDefinedTypeName()
pass
else:
raise NoViableAltException(self)
self.state = 595
self.match(SolidityParser.T__42)
self.state = 596
self.typeName(0)
self.state = 597
self.match(SolidityParser.T__22)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class FunctionTypeNameContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def functionTypeParameterList(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.FunctionTypeParameterListContext)
else:
return self.getTypedRuleContext(SolidityParser.FunctionTypeParameterListContext,i)
def InternalKeyword(self, i:int=None):
if i is None:
return self.getTokens(SolidityParser.InternalKeyword)
else:
return self.getToken(SolidityParser.InternalKeyword, i)
def ExternalKeyword(self, i:int=None):
if i is None:
return self.getTokens(SolidityParser.ExternalKeyword)
else:
return self.getToken(SolidityParser.ExternalKeyword, i)
def stateMutability(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.StateMutabilityContext)
else:
return self.getTypedRuleContext(SolidityParser.StateMutabilityContext,i)
def parameterList(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.ParameterListContext)
else:
return self.getTypedRuleContext(SolidityParser.ParameterListContext,i)
def visibility(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.VisibilityContext)
else:
return self.getTypedRuleContext(SolidityParser.VisibilityContext,i)
def getRuleIndex(self):
return SolidityParser.RULE_functionTypeName
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterFunctionTypeName" ):
listener.enterFunctionTypeName(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitFunctionTypeName" ):
listener.exitFunctionTypeName(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFunctionTypeName" ):
return visitor.visitFunctionTypeName(self)
else:
return visitor.visitChildren(self)
def functionTypeName(self):
localctx = SolidityParser.FunctionTypeNameContext(self, self._ctx, self.state)
self.enterRule(localctx, 78, self.RULE_functionTypeName)
self._la = 0 # Token type
try:
self.state = 631
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,69,self._ctx)
if la_ == 1:
self.enterOuterAlt(localctx, 1)
self.state = 599
self.match(SolidityParser.T__31)
self.state = 600
self.functionTypeParameterList()
self.state = 606
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,64,self._ctx)
while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
if _alt==1:
self.state = 604
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [SolidityParser.InternalKeyword]:
self.state = 601
self.match(SolidityParser.InternalKeyword)
pass
elif token in [SolidityParser.ExternalKeyword]:
self.state = 602
self.match(SolidityParser.ExternalKeyword)
pass
elif token in [SolidityParser.ConstantKeyword, SolidityParser.PayableKeyword, SolidityParser.PureKeyword, SolidityParser.ViewKeyword]:
self.state = 603
self.stateMutability()
pass
else:
raise NoViableAltException(self)
self.state = 608
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,64,self._ctx)
self.state = 611
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,65,self._ctx)
if la_ == 1:
self.state = 609
self.match(SolidityParser.T__34)
self.state = 610
self.functionTypeParameterList()
pass
elif la_ == 2:
self.enterOuterAlt(localctx, 2)
self.state = 613
self.match(SolidityParser.T__31)
self.state = 614
self.match(SolidityParser.T__21)
self.state = 616
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.T__21:
self.state = 615
self.parameterList()
self.state = 618
self.match(SolidityParser.T__22)
self.state = 623
self._errHandler.sync(self)
_la = self._input.LA(1)
while ((((_la - 116)) & ~0x3f) == 0 and ((1 << (_la - 116)) & ((1 << (SolidityParser.ConstantKeyword - 116)) | (1 << (SolidityParser.ExternalKeyword - 116)) | (1 << (SolidityParser.InternalKeyword - 116)) | (1 << (SolidityParser.PayableKeyword - 116)) | (1 << (SolidityParser.PrivateKeyword - 116)) | (1 << (SolidityParser.PublicKeyword - 116)) | (1 << (SolidityParser.PureKeyword - 116)) | (1 << (SolidityParser.ViewKeyword - 116)))) != 0):
self.state = 621
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [SolidityParser.ExternalKeyword, SolidityParser.InternalKeyword, SolidityParser.PrivateKeyword, SolidityParser.PublicKeyword]:
self.state = 619
self.visibility()
pass
elif token in [SolidityParser.ConstantKeyword, SolidityParser.PayableKeyword, SolidityParser.PureKeyword, SolidityParser.ViewKeyword]:
self.state = 620
self.stateMutability()
pass
else:
raise NoViableAltException(self)
self.state = 625
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 626
self.match(SolidityParser.T__34)
self.state = 627
self.match(SolidityParser.T__21)
self.state = 628
self.parameterList()
self.state = 629
self.match(SolidityParser.T__22)
pass
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class VisibilityContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def InternalKeyword(self):
return self.getToken(SolidityParser.InternalKeyword, 0)
def ExternalKeyword(self):
return self.getToken(SolidityParser.ExternalKeyword, 0)
def PrivateKeyword(self):
return self.getToken(SolidityParser.PrivateKeyword, 0)
def PublicKeyword(self):
return self.getToken(SolidityParser.PublicKeyword, 0)
def getRuleIndex(self):
return SolidityParser.RULE_visibility
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterVisibility" ):
listener.enterVisibility(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitVisibility" ):
listener.exitVisibility(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitVisibility" ):
return visitor.visitVisibility(self)
else:
return visitor.visitChildren(self)
def visibility(self):
localctx = SolidityParser.VisibilityContext(self, self._ctx, self.state)
self.enterRule(localctx, 80, self.RULE_visibility)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 633
_la = self._input.LA(1)
if not(((((_la - 121)) & ~0x3f) == 0 and ((1 << (_la - 121)) & ((1 << (SolidityParser.ExternalKeyword - 121)) | (1 << (SolidityParser.InternalKeyword - 121)) | (1 << (SolidityParser.PrivateKeyword - 121)) | (1 << (SolidityParser.PublicKeyword - 121)))) != 0)):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class StorageLocationContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return SolidityParser.RULE_storageLocation
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterStorageLocation" ):
listener.enterStorageLocation(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitStorageLocation" ):
listener.exitStorageLocation(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitStorageLocation" ):
return visitor.visitStorageLocation(self)
else:
return visitor.visitChildren(self)
def storageLocation(self):
localctx = SolidityParser.StorageLocationContext(self, self._ctx, self.state)
self.enterRule(localctx, 82, self.RULE_storageLocation)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 635
_la = self._input.LA(1)
if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << SolidityParser.T__43) | (1 << SolidityParser.T__44) | (1 << SolidityParser.T__45))) != 0)):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class StateMutabilityContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def PureKeyword(self):
return self.getToken(SolidityParser.PureKeyword, 0)
def ConstantKeyword(self):
return self.getToken(SolidityParser.ConstantKeyword, 0)
def ViewKeyword(self):
return self.getToken(SolidityParser.ViewKeyword, 0)
def PayableKeyword(self):
return self.getToken(SolidityParser.PayableKeyword, 0)
def getRuleIndex(self):
return SolidityParser.RULE_stateMutability
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterStateMutability" ):
listener.enterStateMutability(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitStateMutability" ):
listener.exitStateMutability(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitStateMutability" ):
return visitor.visitStateMutability(self)
else:
return visitor.visitChildren(self)
def stateMutability(self):
localctx = SolidityParser.StateMutabilityContext(self, self._ctx, self.state)
self.enterRule(localctx, 84, self.RULE_stateMutability)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 637
_la = self._input.LA(1)
if not(((((_la - 116)) & ~0x3f) == 0 and ((1 << (_la - 116)) & ((1 << (SolidityParser.ConstantKeyword - 116)) | (1 << (SolidityParser.PayableKeyword - 116)) | (1 << (SolidityParser.PureKeyword - 116)) | (1 << (SolidityParser.ViewKeyword - 116)))) != 0)):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class BlockContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def statement(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.StatementContext)
else:
return self.getTypedRuleContext(SolidityParser.StatementContext,i)
def uncheckedBlock(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.UncheckedBlockContext)
else:
return self.getTypedRuleContext(SolidityParser.UncheckedBlockContext,i)
def getRuleIndex(self):
return SolidityParser.RULE_block
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterBlock" ):
listener.enterBlock(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitBlock" ):
listener.exitBlock(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitBlock" ):
return visitor.visitBlock(self)
else:
return visitor.visitChildren(self)
def block(self):
localctx = SolidityParser.BlockContext(self, self._ctx, self.state)
self.enterRule(localctx, 86, self.RULE_block)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 639
self.match(SolidityParser.T__13)
self.state = 644
self._errHandler.sync(self)
_la = self._input.LA(1)
while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << SolidityParser.T__3) | (1 << SolidityParser.T__12) | (1 << SolidityParser.T__13) | (1 << SolidityParser.T__21) | (1 << SolidityParser.T__27) | (1 << SolidityParser.T__31) | (1 << SolidityParser.T__37) | (1 << SolidityParser.T__39) | (1 << SolidityParser.T__41) | (1 << SolidityParser.T__45) | (1 << SolidityParser.T__46) | (1 << SolidityParser.T__47) | (1 << SolidityParser.T__48) | (1 << SolidityParser.T__49) | (1 << SolidityParser.T__51) | (1 << SolidityParser.T__52) | (1 << SolidityParser.T__53) | (1 << SolidityParser.T__54) | (1 << SolidityParser.T__55) | (1 << SolidityParser.T__56) | (1 << SolidityParser.T__57) | (1 << SolidityParser.T__58) | (1 << SolidityParser.T__59) | (1 << SolidityParser.T__60) | (1 << SolidityParser.T__61) | (1 << SolidityParser.T__62))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (SolidityParser.T__63 - 64)) | (1 << (SolidityParser.T__64 - 64)) | (1 << (SolidityParser.T__65 - 64)) | (1 << (SolidityParser.T__66 - 64)) | (1 << (SolidityParser.T__67 - 64)) | (1 << (SolidityParser.T__68 - 64)) | (1 << (SolidityParser.Int - 64)) | (1 << (SolidityParser.Uint - 64)) | (1 << (SolidityParser.Byte - 64)) | (1 << (SolidityParser.Fixed - 64)) | (1 << (SolidityParser.Ufixed - 64)) | (1 << (SolidityParser.BooleanLiteral - 64)) | (1 << (SolidityParser.DecimalNumber - 64)) | (1 << (SolidityParser.HexNumber - 64)) | (1 << (SolidityParser.HexLiteral - 64)) | (1 << (SolidityParser.BreakKeyword - 64)) | (1 << (SolidityParser.ContinueKeyword - 64)) | (1 << (SolidityParser.PayableKeyword - 64)))) != 0) or ((((_la - 128)) & ~0x3f) == 0 and ((1 << (_la - 128)) & ((1 << (SolidityParser.TypeKeyword - 128)) | (1 << (SolidityParser.Identifier - 128)) | (1 << (SolidityParser.StringLiteral - 128)) | (1 << (SolidityParser.LINE_COMMENT - 128)) | (1 << (SolidityParser.COMMENT - 128)))) != 0):
self.state = 642
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [SolidityParser.T__3, SolidityParser.T__12, SolidityParser.T__13, SolidityParser.T__21, SolidityParser.T__27, SolidityParser.T__31, SolidityParser.T__37, SolidityParser.T__39, SolidityParser.T__41, SolidityParser.T__45, SolidityParser.T__47, SolidityParser.T__48, SolidityParser.T__49, SolidityParser.T__51, SolidityParser.T__52, SolidityParser.T__53, SolidityParser.T__54, SolidityParser.T__55, SolidityParser.T__56, SolidityParser.T__57, SolidityParser.T__58, SolidityParser.T__59, SolidityParser.T__60, SolidityParser.T__61, SolidityParser.T__62, SolidityParser.T__63, SolidityParser.T__64, SolidityParser.T__65, SolidityParser.T__66, SolidityParser.T__67, SolidityParser.T__68, SolidityParser.Int, SolidityParser.Uint, SolidityParser.Byte, SolidityParser.Fixed, SolidityParser.Ufixed, SolidityParser.BooleanLiteral, SolidityParser.DecimalNumber, SolidityParser.HexNumber, SolidityParser.HexLiteral, SolidityParser.BreakKeyword, SolidityParser.ContinueKeyword, SolidityParser.PayableKeyword, SolidityParser.TypeKeyword, SolidityParser.Identifier, SolidityParser.StringLiteral, SolidityParser.LINE_COMMENT, SolidityParser.COMMENT]:
self.state = 640
self.statement()
pass
elif token in [SolidityParser.T__46]:
self.state = 641
self.uncheckedBlock()
pass
else:
raise NoViableAltException(self)
self.state = 646
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 647
self.match(SolidityParser.T__15)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class UncheckedBlockContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def block(self):
return self.getTypedRuleContext(SolidityParser.BlockContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_uncheckedBlock
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterUncheckedBlock" ):
listener.enterUncheckedBlock(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitUncheckedBlock" ):
listener.exitUncheckedBlock(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitUncheckedBlock" ):
return visitor.visitUncheckedBlock(self)
else:
return visitor.visitChildren(self)
def uncheckedBlock(self):
localctx = SolidityParser.UncheckedBlockContext(self, self._ctx, self.state)
self.enterRule(localctx, 88, self.RULE_uncheckedBlock)
try:
self.enterOuterAlt(localctx, 1)
self.state = 649
self.match(SolidityParser.T__46)
self.state = 650
self.block()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class StatementContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def ifStatement(self):
return self.getTypedRuleContext(SolidityParser.IfStatementContext,0)
def whileStatement(self):
return self.getTypedRuleContext(SolidityParser.WhileStatementContext,0)
def forStatement(self):
return self.getTypedRuleContext(SolidityParser.ForStatementContext,0)
def block(self):
return self.getTypedRuleContext(SolidityParser.BlockContext,0)
def inlineAssemblyStatement(self):
return self.getTypedRuleContext(SolidityParser.InlineAssemblyStatementContext,0)
def doWhileStatement(self):
return self.getTypedRuleContext(SolidityParser.DoWhileStatementContext,0)
def continueStatement(self):
return self.getTypedRuleContext(SolidityParser.ContinueStatementContext,0)
def breakStatement(self):
return self.getTypedRuleContext(SolidityParser.BreakStatementContext,0)
def returnStatement(self):
return self.getTypedRuleContext(SolidityParser.ReturnStatementContext,0)
def throwStatement(self):
return self.getTypedRuleContext(SolidityParser.ThrowStatementContext,0)
def emitStatement(self):
return self.getTypedRuleContext(SolidityParser.EmitStatementContext,0)
def simpleStatement(self):
return self.getTypedRuleContext(SolidityParser.SimpleStatementContext,0)
def tryStatement(self):
return self.getTypedRuleContext(SolidityParser.TryStatementContext,0)
def catchClause(self):
return self.getTypedRuleContext(SolidityParser.CatchClauseContext,0)
def LINE_COMMENT(self):
return self.getToken(SolidityParser.LINE_COMMENT, 0)
def COMMENT(self):
return self.getToken(SolidityParser.COMMENT, 0)
def getRuleIndex(self):
return SolidityParser.RULE_statement
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterStatement" ):
listener.enterStatement(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitStatement" ):
listener.exitStatement(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitStatement" ):
return visitor.visitStatement(self)
else:
return visitor.visitChildren(self)
def statement(self):
localctx = SolidityParser.StatementContext(self, self._ctx, self.state)
self.enterRule(localctx, 90, self.RULE_statement)
try:
self.state = 668
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [SolidityParser.T__49]:
self.enterOuterAlt(localctx, 1)
self.state = 652
self.ifStatement()
pass
elif token in [SolidityParser.T__51]:
self.enterOuterAlt(localctx, 2)
self.state = 653
self.whileStatement()
pass
elif token in [SolidityParser.T__27]:
self.enterOuterAlt(localctx, 3)
self.state = 654
self.forStatement()
pass
elif token in [SolidityParser.T__13]:
self.enterOuterAlt(localctx, 4)
self.state = 655
self.block()
pass
elif token in [SolidityParser.T__52]:
self.enterOuterAlt(localctx, 5)
self.state = 656
self.inlineAssemblyStatement()
pass
elif token in [SolidityParser.T__53]:
self.enterOuterAlt(localctx, 6)
self.state = 657
self.doWhileStatement()
pass
elif token in [SolidityParser.ContinueKeyword]:
self.enterOuterAlt(localctx, 7)
self.state = 658
self.continueStatement()
pass
elif token in [SolidityParser.BreakKeyword]:
self.enterOuterAlt(localctx, 8)
self.state = 659
self.breakStatement()
pass
elif token in [SolidityParser.T__54]:
self.enterOuterAlt(localctx, 9)
self.state = 660
self.returnStatement()
pass
elif token in [SolidityParser.T__55]:
self.enterOuterAlt(localctx, 10)
self.state = 661
self.throwStatement()
pass
elif token in [SolidityParser.T__56]:
self.enterOuterAlt(localctx, 11)
self.state = 662
self.emitStatement()
pass
elif token in [SolidityParser.T__3, SolidityParser.T__12, SolidityParser.T__21, SolidityParser.T__31, SolidityParser.T__37, SolidityParser.T__39, SolidityParser.T__41, SolidityParser.T__45, SolidityParser.T__57, SolidityParser.T__58, SolidityParser.T__59, SolidityParser.T__60, SolidityParser.T__61, SolidityParser.T__62, SolidityParser.T__63, SolidityParser.T__64, SolidityParser.T__65, SolidityParser.T__66, SolidityParser.T__67, SolidityParser.T__68, SolidityParser.Int, SolidityParser.Uint, SolidityParser.Byte, SolidityParser.Fixed, SolidityParser.Ufixed, SolidityParser.BooleanLiteral, SolidityParser.DecimalNumber, SolidityParser.HexNumber, SolidityParser.HexLiteral, SolidityParser.PayableKeyword, SolidityParser.TypeKeyword, SolidityParser.Identifier, SolidityParser.StringLiteral]:
self.enterOuterAlt(localctx, 12)
self.state = 663
self.simpleStatement()
pass
elif token in [SolidityParser.T__47]:
self.enterOuterAlt(localctx, 13)
self.state = 664
self.tryStatement()
pass
elif token in [SolidityParser.T__48]:
self.enterOuterAlt(localctx, 14)
self.state = 665
self.catchClause()
pass
elif token in [SolidityParser.LINE_COMMENT]:
self.enterOuterAlt(localctx, 15)
self.state = 666
self.match(SolidityParser.LINE_COMMENT)
pass
elif token in [SolidityParser.COMMENT]:
self.enterOuterAlt(localctx, 16)
self.state = 667
self.match(SolidityParser.COMMENT)
pass
else:
raise NoViableAltException(self)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class TryStatementContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def expression(self):
return self.getTypedRuleContext(SolidityParser.ExpressionContext,0)
def block(self):
return self.getTypedRuleContext(SolidityParser.BlockContext,0)
def parameterList(self):
return self.getTypedRuleContext(SolidityParser.ParameterListContext,0)
def catchClause(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.CatchClauseContext)
else:
return self.getTypedRuleContext(SolidityParser.CatchClauseContext,i)
def getRuleIndex(self):
return SolidityParser.RULE_tryStatement
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterTryStatement" ):
listener.enterTryStatement(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitTryStatement" ):
listener.exitTryStatement(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitTryStatement" ):
return visitor.visitTryStatement(self)
else:
return visitor.visitChildren(self)
def tryStatement(self):
localctx = SolidityParser.TryStatementContext(self, self._ctx, self.state)
self.enterRule(localctx, 92, self.RULE_tryStatement)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 670
self.match(SolidityParser.T__47)
self.state = 671
self.expression(0)
self.state = 677
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.T__34:
self.state = 672
self.match(SolidityParser.T__34)
self.state = 673
self.match(SolidityParser.T__21)
self.state = 674
self.parameterList()
self.state = 675
self.match(SolidityParser.T__22)
self.state = 679
self.block()
self.state = 683
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,74,self._ctx)
while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
if _alt==1:
self.state = 680
self.catchClause()
self.state = 685
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,74,self._ctx)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class CatchClauseContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def block(self):
return self.getTypedRuleContext(SolidityParser.BlockContext,0)
def parameterList(self):
return self.getTypedRuleContext(SolidityParser.ParameterListContext,0)
def identifier(self):
return self.getTypedRuleContext(SolidityParser.IdentifierContext,0)
def natSpec(self):
return self.getTypedRuleContext(SolidityParser.NatSpecContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_catchClause
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterCatchClause" ):
listener.enterCatchClause(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitCatchClause" ):
listener.exitCatchClause(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitCatchClause" ):
return visitor.visitCatchClause(self)
else:
return visitor.visitChildren(self)
def catchClause(self):
localctx = SolidityParser.CatchClauseContext(self, self._ctx, self.state)
self.enterRule(localctx, 94, self.RULE_catchClause)
self._la = 0 # Token type
try:
self.state = 702
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,78,self._ctx)
if la_ == 1:
self.enterOuterAlt(localctx, 1)
self.state = 686
self.match(SolidityParser.T__48)
self.state = 697
self._errHandler.sync(self)
_la = self._input.LA(1)
if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << SolidityParser.T__12) | (1 << SolidityParser.T__21) | (1 << SolidityParser.T__45))) != 0) or _la==SolidityParser.Identifier:
self.state = 688
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.T__12 or _la==SolidityParser.T__45 or _la==SolidityParser.Identifier:
self.state = 687
self.identifier()
self.state = 690
self.match(SolidityParser.T__21)
self.state = 691
self.parameterList()
self.state = 693
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.NatSpecSingleLine or _la==SolidityParser.NatSpecMultiLine:
self.state = 692
self.natSpec()
self.state = 695
self.match(SolidityParser.T__22)
self.state = 699
self.block()
pass
elif la_ == 2:
self.enterOuterAlt(localctx, 2)
self.state = 700
self.match(SolidityParser.T__48)
self.state = 701
self.block()
pass
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ExpressionStatementContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def expression(self):
return self.getTypedRuleContext(SolidityParser.ExpressionContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_expressionStatement
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterExpressionStatement" ):
listener.enterExpressionStatement(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitExpressionStatement" ):
listener.exitExpressionStatement(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitExpressionStatement" ):
return visitor.visitExpressionStatement(self)
else:
return visitor.visitChildren(self)
def expressionStatement(self):
localctx = SolidityParser.ExpressionStatementContext(self, self._ctx, self.state)
self.enterRule(localctx, 96, self.RULE_expressionStatement)
try:
self.enterOuterAlt(localctx, 1)
self.state = 704
self.expression(0)
self.state = 705
self.match(SolidityParser.T__1)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class IfStatementContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def ifCondition(self):
return self.getTypedRuleContext(SolidityParser.IfConditionContext,0)
def ifRight(self):
return self.getTypedRuleContext(SolidityParser.IfRightContext,0)
def ifWrong(self):
return self.getTypedRuleContext(SolidityParser.IfWrongContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_ifStatement
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterIfStatement" ):
listener.enterIfStatement(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitIfStatement" ):
listener.exitIfStatement(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitIfStatement" ):
return visitor.visitIfStatement(self)
else:
return visitor.visitChildren(self)
def ifStatement(self):
localctx = SolidityParser.IfStatementContext(self, self._ctx, self.state)
self.enterRule(localctx, 98, self.RULE_ifStatement)
try:
self.enterOuterAlt(localctx, 1)
self.state = 707
self.match(SolidityParser.T__49)
self.state = 708
self.match(SolidityParser.T__21)
self.state = 709
self.ifCondition()
self.state = 710
self.match(SolidityParser.T__22)
self.state = 711
self.ifRight()
self.state = 714
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,79,self._ctx)
if la_ == 1:
self.state = 712
self.match(SolidityParser.T__50)
self.state = 713
self.ifWrong()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class IfConditionContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def expression(self):
return self.getTypedRuleContext(SolidityParser.ExpressionContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_ifCondition
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterIfCondition" ):
listener.enterIfCondition(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitIfCondition" ):
listener.exitIfCondition(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitIfCondition" ):
return visitor.visitIfCondition(self)
else:
return visitor.visitChildren(self)
def ifCondition(self):
localctx = SolidityParser.IfConditionContext(self, self._ctx, self.state)
self.enterRule(localctx, 100, self.RULE_ifCondition)
try:
self.enterOuterAlt(localctx, 1)
self.state = 716
self.expression(0)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class IfRightContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def statement(self):
return self.getTypedRuleContext(SolidityParser.StatementContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_ifRight
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterIfRight" ):
listener.enterIfRight(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitIfRight" ):
listener.exitIfRight(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitIfRight" ):
return visitor.visitIfRight(self)
else:
return visitor.visitChildren(self)
def ifRight(self):
localctx = SolidityParser.IfRightContext(self, self._ctx, self.state)
self.enterRule(localctx, 102, self.RULE_ifRight)
try:
self.enterOuterAlt(localctx, 1)
self.state = 718
self.statement()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class IfWrongContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def statement(self):
return self.getTypedRuleContext(SolidityParser.StatementContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_ifWrong
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterIfWrong" ):
listener.enterIfWrong(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitIfWrong" ):
listener.exitIfWrong(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitIfWrong" ):
return visitor.visitIfWrong(self)
else:
return visitor.visitChildren(self)
def ifWrong(self):
localctx = SolidityParser.IfWrongContext(self, self._ctx, self.state)
self.enterRule(localctx, 104, self.RULE_ifWrong)
try:
self.enterOuterAlt(localctx, 1)
self.state = 720
self.statement()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class WhileStatementContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def expression(self):
return self.getTypedRuleContext(SolidityParser.ExpressionContext,0)
def statement(self):
return self.getTypedRuleContext(SolidityParser.StatementContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_whileStatement
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterWhileStatement" ):
listener.enterWhileStatement(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitWhileStatement" ):
listener.exitWhileStatement(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitWhileStatement" ):
return visitor.visitWhileStatement(self)
else:
return visitor.visitChildren(self)
def whileStatement(self):
localctx = SolidityParser.WhileStatementContext(self, self._ctx, self.state)
self.enterRule(localctx, 106, self.RULE_whileStatement)
try:
self.enterOuterAlt(localctx, 1)
self.state = 722
self.match(SolidityParser.T__51)
self.state = 723
self.match(SolidityParser.T__21)
self.state = 724
self.expression(0)
self.state = 725
self.match(SolidityParser.T__22)
self.state = 726
self.statement()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class SimpleStatementContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def variableDeclarationStatement(self):
return self.getTypedRuleContext(SolidityParser.VariableDeclarationStatementContext,0)
def expressionStatement(self):
return self.getTypedRuleContext(SolidityParser.ExpressionStatementContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_simpleStatement
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterSimpleStatement" ):
listener.enterSimpleStatement(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitSimpleStatement" ):
listener.exitSimpleStatement(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSimpleStatement" ):
return visitor.visitSimpleStatement(self)
else:
return visitor.visitChildren(self)
def simpleStatement(self):
localctx = SolidityParser.SimpleStatementContext(self, self._ctx, self.state)
self.enterRule(localctx, 108, self.RULE_simpleStatement)
try:
self.enterOuterAlt(localctx, 1)
self.state = 730
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,80,self._ctx)
if la_ == 1:
self.state = 728
self.variableDeclarationStatement()
pass
elif la_ == 2:
self.state = 729
self.expressionStatement()
pass
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ForStatementContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def statement(self):
return self.getTypedRuleContext(SolidityParser.StatementContext,0)
def simpleStatement(self):
return self.getTypedRuleContext(SolidityParser.SimpleStatementContext,0)
def expressionStatement(self):
return self.getTypedRuleContext(SolidityParser.ExpressionStatementContext,0)
def expression(self):
return self.getTypedRuleContext(SolidityParser.ExpressionContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_forStatement
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterForStatement" ):
listener.enterForStatement(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitForStatement" ):
listener.exitForStatement(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitForStatement" ):
return visitor.visitForStatement(self)
else:
return visitor.visitChildren(self)
def forStatement(self):
localctx = SolidityParser.ForStatementContext(self, self._ctx, self.state)
self.enterRule(localctx, 110, self.RULE_forStatement)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 732
self.match(SolidityParser.T__27)
self.state = 733
self.match(SolidityParser.T__21)
self.state = 736
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [SolidityParser.T__3, SolidityParser.T__12, SolidityParser.T__21, SolidityParser.T__31, SolidityParser.T__37, SolidityParser.T__39, SolidityParser.T__41, SolidityParser.T__45, SolidityParser.T__57, SolidityParser.T__58, SolidityParser.T__59, SolidityParser.T__60, SolidityParser.T__61, SolidityParser.T__62, SolidityParser.T__63, SolidityParser.T__64, SolidityParser.T__65, SolidityParser.T__66, SolidityParser.T__67, SolidityParser.T__68, SolidityParser.Int, SolidityParser.Uint, SolidityParser.Byte, SolidityParser.Fixed, SolidityParser.Ufixed, SolidityParser.BooleanLiteral, SolidityParser.DecimalNumber, SolidityParser.HexNumber, SolidityParser.HexLiteral, SolidityParser.PayableKeyword, SolidityParser.TypeKeyword, SolidityParser.Identifier, SolidityParser.StringLiteral]:
self.state = 734
self.simpleStatement()
pass
elif token in [SolidityParser.T__1]:
self.state = 735
self.match(SolidityParser.T__1)
pass
else:
raise NoViableAltException(self)
self.state = 740
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [SolidityParser.T__3, SolidityParser.T__12, SolidityParser.T__21, SolidityParser.T__37, SolidityParser.T__39, SolidityParser.T__45, SolidityParser.T__57, SolidityParser.T__58, SolidityParser.T__59, SolidityParser.T__60, SolidityParser.T__61, SolidityParser.T__62, SolidityParser.T__63, SolidityParser.T__64, SolidityParser.T__65, SolidityParser.T__66, SolidityParser.T__67, SolidityParser.T__68, SolidityParser.Int, SolidityParser.Uint, SolidityParser.Byte, SolidityParser.Fixed, SolidityParser.Ufixed, SolidityParser.BooleanLiteral, SolidityParser.DecimalNumber, SolidityParser.HexNumber, SolidityParser.HexLiteral, SolidityParser.PayableKeyword, SolidityParser.TypeKeyword, SolidityParser.Identifier, SolidityParser.StringLiteral]:
self.state = 738
self.expressionStatement()
pass
elif token in [SolidityParser.T__1]:
self.state = 739
self.match(SolidityParser.T__1)
pass
else:
raise NoViableAltException(self)
self.state = 743
self._errHandler.sync(self)
_la = self._input.LA(1)
if ((((_la - 4)) & ~0x3f) == 0 and ((1 << (_la - 4)) & ((1 << (SolidityParser.T__3 - 4)) | (1 << (SolidityParser.T__12 - 4)) | (1 << (SolidityParser.T__21 - 4)) | (1 << (SolidityParser.T__37 - 4)) | (1 << (SolidityParser.T__39 - 4)) | (1 << (SolidityParser.T__45 - 4)) | (1 << (SolidityParser.T__57 - 4)) | (1 << (SolidityParser.T__58 - 4)) | (1 << (SolidityParser.T__59 - 4)) | (1 << (SolidityParser.T__60 - 4)) | (1 << (SolidityParser.T__61 - 4)) | (1 << (SolidityParser.T__62 - 4)) | (1 << (SolidityParser.T__63 - 4)) | (1 << (SolidityParser.T__64 - 4)) | (1 << (SolidityParser.T__65 - 4)) | (1 << (SolidityParser.T__66 - 4)))) != 0) or ((((_la - 68)) & ~0x3f) == 0 and ((1 << (_la - 68)) & ((1 << (SolidityParser.T__67 - 68)) | (1 << (SolidityParser.T__68 - 68)) | (1 << (SolidityParser.Int - 68)) | (1 << (SolidityParser.Uint - 68)) | (1 << (SolidityParser.Byte - 68)) | (1 << (SolidityParser.Fixed - 68)) | (1 << (SolidityParser.Ufixed - 68)) | (1 << (SolidityParser.BooleanLiteral - 68)) | (1 << (SolidityParser.DecimalNumber - 68)) | (1 << (SolidityParser.HexNumber - 68)) | (1 << (SolidityParser.HexLiteral - 68)) | (1 << (SolidityParser.PayableKeyword - 68)) | (1 << (SolidityParser.TypeKeyword - 68)) | (1 << (SolidityParser.Identifier - 68)) | (1 << (SolidityParser.StringLiteral - 68)))) != 0):
self.state = 742
self.expression(0)
self.state = 745
self.match(SolidityParser.T__22)
self.state = 746
self.statement()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class InlineAssemblyStatementContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def assemblyBlock(self):
return self.getTypedRuleContext(SolidityParser.AssemblyBlockContext,0)
def StringLiteral(self):
return self.getToken(SolidityParser.StringLiteral, 0)
def getRuleIndex(self):
return SolidityParser.RULE_inlineAssemblyStatement
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterInlineAssemblyStatement" ):
listener.enterInlineAssemblyStatement(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitInlineAssemblyStatement" ):
listener.exitInlineAssemblyStatement(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitInlineAssemblyStatement" ):
return visitor.visitInlineAssemblyStatement(self)
else:
return visitor.visitChildren(self)
def inlineAssemblyStatement(self):
localctx = SolidityParser.InlineAssemblyStatementContext(self, self._ctx, self.state)
self.enterRule(localctx, 112, self.RULE_inlineAssemblyStatement)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 748
self.match(SolidityParser.T__52)
self.state = 750
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.StringLiteral:
self.state = 749
self.match(SolidityParser.StringLiteral)
self.state = 752
self.assemblyBlock()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class DoWhileStatementContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def statement(self):
return self.getTypedRuleContext(SolidityParser.StatementContext,0)
def expression(self):
return self.getTypedRuleContext(SolidityParser.ExpressionContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_doWhileStatement
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterDoWhileStatement" ):
listener.enterDoWhileStatement(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitDoWhileStatement" ):
listener.exitDoWhileStatement(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitDoWhileStatement" ):
return visitor.visitDoWhileStatement(self)
else:
return visitor.visitChildren(self)
def doWhileStatement(self):
localctx = SolidityParser.DoWhileStatementContext(self, self._ctx, self.state)
self.enterRule(localctx, 114, self.RULE_doWhileStatement)
try:
self.enterOuterAlt(localctx, 1)
self.state = 754
self.match(SolidityParser.T__53)
self.state = 755
self.statement()
self.state = 756
self.match(SolidityParser.T__51)
self.state = 757
self.match(SolidityParser.T__21)
self.state = 758
self.expression(0)
self.state = 759
self.match(SolidityParser.T__22)
self.state = 760
self.match(SolidityParser.T__1)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ContinueStatementContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def ContinueKeyword(self):
return self.getToken(SolidityParser.ContinueKeyword, 0)
def getRuleIndex(self):
return SolidityParser.RULE_continueStatement
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterContinueStatement" ):
listener.enterContinueStatement(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitContinueStatement" ):
listener.exitContinueStatement(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitContinueStatement" ):
return visitor.visitContinueStatement(self)
else:
return visitor.visitChildren(self)
def continueStatement(self):
localctx = SolidityParser.ContinueStatementContext(self, self._ctx, self.state)
self.enterRule(localctx, 116, self.RULE_continueStatement)
try:
self.enterOuterAlt(localctx, 1)
self.state = 762
self.match(SolidityParser.ContinueKeyword)
self.state = 763
self.match(SolidityParser.T__1)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class BreakStatementContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def BreakKeyword(self):
return self.getToken(SolidityParser.BreakKeyword, 0)
def getRuleIndex(self):
return SolidityParser.RULE_breakStatement
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterBreakStatement" ):
listener.enterBreakStatement(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitBreakStatement" ):
listener.exitBreakStatement(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitBreakStatement" ):
return visitor.visitBreakStatement(self)
else:
return visitor.visitChildren(self)
def breakStatement(self):
localctx = SolidityParser.BreakStatementContext(self, self._ctx, self.state)
self.enterRule(localctx, 118, self.RULE_breakStatement)
try:
self.enterOuterAlt(localctx, 1)
self.state = 765
self.match(SolidityParser.BreakKeyword)
self.state = 766
self.match(SolidityParser.T__1)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ReturnStatementContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def expression(self):
return self.getTypedRuleContext(SolidityParser.ExpressionContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_returnStatement
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterReturnStatement" ):
listener.enterReturnStatement(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitReturnStatement" ):
listener.exitReturnStatement(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitReturnStatement" ):
return visitor.visitReturnStatement(self)
else:
return visitor.visitChildren(self)
def returnStatement(self):
localctx = SolidityParser.ReturnStatementContext(self, self._ctx, self.state)
self.enterRule(localctx, 120, self.RULE_returnStatement)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 768
self.match(SolidityParser.T__54)
self.state = 770
self._errHandler.sync(self)
_la = self._input.LA(1)
if ((((_la - 4)) & ~0x3f) == 0 and ((1 << (_la - 4)) & ((1 << (SolidityParser.T__3 - 4)) | (1 << (SolidityParser.T__12 - 4)) | (1 << (SolidityParser.T__21 - 4)) | (1 << (SolidityParser.T__37 - 4)) | (1 << (SolidityParser.T__39 - 4)) | (1 << (SolidityParser.T__45 - 4)) | (1 << (SolidityParser.T__57 - 4)) | (1 << (SolidityParser.T__58 - 4)) | (1 << (SolidityParser.T__59 - 4)) | (1 << (SolidityParser.T__60 - 4)) | (1 << (SolidityParser.T__61 - 4)) | (1 << (SolidityParser.T__62 - 4)) | (1 << (SolidityParser.T__63 - 4)) | (1 << (SolidityParser.T__64 - 4)) | (1 << (SolidityParser.T__65 - 4)) | (1 << (SolidityParser.T__66 - 4)))) != 0) or ((((_la - 68)) & ~0x3f) == 0 and ((1 << (_la - 68)) & ((1 << (SolidityParser.T__67 - 68)) | (1 << (SolidityParser.T__68 - 68)) | (1 << (SolidityParser.Int - 68)) | (1 << (SolidityParser.Uint - 68)) | (1 << (SolidityParser.Byte - 68)) | (1 << (SolidityParser.Fixed - 68)) | (1 << (SolidityParser.Ufixed - 68)) | (1 << (SolidityParser.BooleanLiteral - 68)) | (1 << (SolidityParser.DecimalNumber - 68)) | (1 << (SolidityParser.HexNumber - 68)) | (1 << (SolidityParser.HexLiteral - 68)) | (1 << (SolidityParser.PayableKeyword - 68)) | (1 << (SolidityParser.TypeKeyword - 68)) | (1 << (SolidityParser.Identifier - 68)) | (1 << (SolidityParser.StringLiteral - 68)))) != 0):
self.state = 769
self.expression(0)
self.state = 772
self.match(SolidityParser.T__1)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ThrowStatementContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return SolidityParser.RULE_throwStatement
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterThrowStatement" ):
listener.enterThrowStatement(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitThrowStatement" ):
listener.exitThrowStatement(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitThrowStatement" ):
return visitor.visitThrowStatement(self)
else:
return visitor.visitChildren(self)
def throwStatement(self):
localctx = SolidityParser.ThrowStatementContext(self, self._ctx, self.state)
self.enterRule(localctx, 122, self.RULE_throwStatement)
try:
self.enterOuterAlt(localctx, 1)
self.state = 774
self.match(SolidityParser.T__55)
self.state = 775
self.match(SolidityParser.T__1)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class EmitStatementContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def functionCall(self):
return self.getTypedRuleContext(SolidityParser.FunctionCallContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_emitStatement
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterEmitStatement" ):
listener.enterEmitStatement(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitEmitStatement" ):
listener.exitEmitStatement(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitEmitStatement" ):
return visitor.visitEmitStatement(self)
else:
return visitor.visitChildren(self)
def emitStatement(self):
localctx = SolidityParser.EmitStatementContext(self, self._ctx, self.state)
self.enterRule(localctx, 124, self.RULE_emitStatement)
try:
self.enterOuterAlt(localctx, 1)
self.state = 777
self.match(SolidityParser.T__56)
self.state = 778
self.functionCall()
self.state = 779
self.match(SolidityParser.T__1)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class VariableDeclarationStatementContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def identifierList(self):
return self.getTypedRuleContext(SolidityParser.IdentifierListContext,0)
def variableDeclaration(self):
return self.getTypedRuleContext(SolidityParser.VariableDeclarationContext,0)
def variableDeclarationList(self):
return self.getTypedRuleContext(SolidityParser.VariableDeclarationListContext,0)
def expression(self):
return self.getTypedRuleContext(SolidityParser.ExpressionContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_variableDeclarationStatement
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterVariableDeclarationStatement" ):
listener.enterVariableDeclarationStatement(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitVariableDeclarationStatement" ):
listener.exitVariableDeclarationStatement(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitVariableDeclarationStatement" ):
return visitor.visitVariableDeclarationStatement(self)
else:
return visitor.visitChildren(self)
def variableDeclarationStatement(self):
localctx = SolidityParser.VariableDeclarationStatementContext(self, self._ctx, self.state)
self.enterRule(localctx, 126, self.RULE_variableDeclarationStatement)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 788
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,86,self._ctx)
if la_ == 1:
self.state = 781
self.match(SolidityParser.T__57)
self.state = 782
self.identifierList()
pass
elif la_ == 2:
self.state = 783
self.variableDeclaration()
pass
elif la_ == 3:
self.state = 784
self.match(SolidityParser.T__21)
self.state = 785
self.variableDeclarationList()
self.state = 786
self.match(SolidityParser.T__22)
pass
self.state = 792
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.T__8:
self.state = 790
self.match(SolidityParser.T__8)
self.state = 791
self.expression(0)
self.state = 794
self.match(SolidityParser.T__1)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ConstantVariableDeclarationContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def typeName(self):
return self.getTypedRuleContext(SolidityParser.TypeNameContext,0)
def ConstantKeyword(self):
return self.getToken(SolidityParser.ConstantKeyword, 0)
def identifier(self):
return self.getTypedRuleContext(SolidityParser.IdentifierContext,0)
def expression(self):
return self.getTypedRuleContext(SolidityParser.ExpressionContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_constantVariableDeclaration
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterConstantVariableDeclaration" ):
listener.enterConstantVariableDeclaration(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitConstantVariableDeclaration" ):
listener.exitConstantVariableDeclaration(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitConstantVariableDeclaration" ):
return visitor.visitConstantVariableDeclaration(self)
else:
return visitor.visitChildren(self)
def constantVariableDeclaration(self):
localctx = SolidityParser.ConstantVariableDeclarationContext(self, self._ctx, self.state)
self.enterRule(localctx, 128, self.RULE_constantVariableDeclaration)
try:
self.enterOuterAlt(localctx, 1)
self.state = 796
self.typeName(0)
self.state = 797
self.match(SolidityParser.ConstantKeyword)
self.state = 798
self.identifier()
self.state = 799
self.match(SolidityParser.T__8)
self.state = 800
self.expression(0)
self.state = 801
self.match(SolidityParser.T__1)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class VariableDeclarationListContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def variableDeclaration(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.VariableDeclarationContext)
else:
return self.getTypedRuleContext(SolidityParser.VariableDeclarationContext,i)
def getRuleIndex(self):
return SolidityParser.RULE_variableDeclarationList
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterVariableDeclarationList" ):
listener.enterVariableDeclarationList(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitVariableDeclarationList" ):
listener.exitVariableDeclarationList(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitVariableDeclarationList" ):
return visitor.visitVariableDeclarationList(self)
else:
return visitor.visitChildren(self)
def variableDeclarationList(self):
localctx = SolidityParser.VariableDeclarationListContext(self, self._ctx, self.state)
self.enterRule(localctx, 130, self.RULE_variableDeclarationList)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 804
self._errHandler.sync(self)
_la = self._input.LA(1)
if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << SolidityParser.T__12) | (1 << SolidityParser.T__31) | (1 << SolidityParser.T__39) | (1 << SolidityParser.T__41) | (1 << SolidityParser.T__45) | (1 << SolidityParser.T__57) | (1 << SolidityParser.T__58) | (1 << SolidityParser.T__59) | (1 << SolidityParser.T__60))) != 0) or ((((_la - 102)) & ~0x3f) == 0 and ((1 << (_la - 102)) & ((1 << (SolidityParser.Int - 102)) | (1 << (SolidityParser.Uint - 102)) | (1 << (SolidityParser.Byte - 102)) | (1 << (SolidityParser.Fixed - 102)) | (1 << (SolidityParser.Ufixed - 102)) | (1 << (SolidityParser.Identifier - 102)))) != 0):
self.state = 803
self.variableDeclaration()
self.state = 812
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==SolidityParser.T__14:
self.state = 806
self.match(SolidityParser.T__14)
self.state = 808
self._errHandler.sync(self)
_la = self._input.LA(1)
if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << SolidityParser.T__12) | (1 << SolidityParser.T__31) | (1 << SolidityParser.T__39) | (1 << SolidityParser.T__41) | (1 << SolidityParser.T__45) | (1 << SolidityParser.T__57) | (1 << SolidityParser.T__58) | (1 << SolidityParser.T__59) | (1 << SolidityParser.T__60))) != 0) or ((((_la - 102)) & ~0x3f) == 0 and ((1 << (_la - 102)) & ((1 << (SolidityParser.Int - 102)) | (1 << (SolidityParser.Uint - 102)) | (1 << (SolidityParser.Byte - 102)) | (1 << (SolidityParser.Fixed - 102)) | (1 << (SolidityParser.Ufixed - 102)) | (1 << (SolidityParser.Identifier - 102)))) != 0):
self.state = 807
self.variableDeclaration()
self.state = 814
self._errHandler.sync(self)
_la = self._input.LA(1)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class IdentifierListContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def identifier(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.IdentifierContext)
else:
return self.getTypedRuleContext(SolidityParser.IdentifierContext,i)
def getRuleIndex(self):
return SolidityParser.RULE_identifierList
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterIdentifierList" ):
listener.enterIdentifierList(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitIdentifierList" ):
listener.exitIdentifierList(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitIdentifierList" ):
return visitor.visitIdentifierList(self)
else:
return visitor.visitChildren(self)
def identifierList(self):
localctx = SolidityParser.IdentifierListContext(self, self._ctx, self.state)
self.enterRule(localctx, 132, self.RULE_identifierList)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 815
self.match(SolidityParser.T__21)
self.state = 822
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,92,self._ctx)
while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
if _alt==1:
self.state = 817
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.T__12 or _la==SolidityParser.T__45 or _la==SolidityParser.Identifier:
self.state = 816
self.identifier()
self.state = 819
self.match(SolidityParser.T__14)
self.state = 824
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,92,self._ctx)
self.state = 826
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.T__12 or _la==SolidityParser.T__45 or _la==SolidityParser.Identifier:
self.state = 825
self.identifier()
self.state = 828
self.match(SolidityParser.T__22)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ElementaryTypeNameContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def Int(self):
return self.getToken(SolidityParser.Int, 0)
def Uint(self):
return self.getToken(SolidityParser.Uint, 0)
def Byte(self):
return self.getToken(SolidityParser.Byte, 0)
def Fixed(self):
return self.getToken(SolidityParser.Fixed, 0)
def Ufixed(self):
return self.getToken(SolidityParser.Ufixed, 0)
def getRuleIndex(self):
return SolidityParser.RULE_elementaryTypeName
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterElementaryTypeName" ):
listener.enterElementaryTypeName(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitElementaryTypeName" ):
listener.exitElementaryTypeName(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitElementaryTypeName" ):
return visitor.visitElementaryTypeName(self)
else:
return visitor.visitChildren(self)
def elementaryTypeName(self):
localctx = SolidityParser.ElementaryTypeNameContext(self, self._ctx, self.state)
self.enterRule(localctx, 134, self.RULE_elementaryTypeName)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 830
_la = self._input.LA(1)
if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << SolidityParser.T__39) | (1 << SolidityParser.T__57) | (1 << SolidityParser.T__58) | (1 << SolidityParser.T__59) | (1 << SolidityParser.T__60))) != 0) or ((((_la - 102)) & ~0x3f) == 0 and ((1 << (_la - 102)) & ((1 << (SolidityParser.Int - 102)) | (1 << (SolidityParser.Uint - 102)) | (1 << (SolidityParser.Byte - 102)) | (1 << (SolidityParser.Fixed - 102)) | (1 << (SolidityParser.Ufixed - 102)))) != 0)):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ExpressionContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def expression(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.ExpressionContext)
else:
return self.getTypedRuleContext(SolidityParser.ExpressionContext,i)
def PayableKeyword(self):
return self.getToken(SolidityParser.PayableKeyword, 0)
def callArgumentList(self):
return self.getTypedRuleContext(SolidityParser.CallArgumentListContext,0)
def TypeKeyword(self):
return self.getToken(SolidityParser.TypeKeyword, 0)
def typeName(self):
return self.getTypedRuleContext(SolidityParser.TypeNameContext,0)
def primaryExpression(self):
return self.getTypedRuleContext(SolidityParser.PrimaryExpressionContext,0)
def identifier(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.IdentifierContext)
else:
return self.getTypedRuleContext(SolidityParser.IdentifierContext,i)
def functionCallArguments(self):
return self.getTypedRuleContext(SolidityParser.FunctionCallArgumentsContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_expression
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterExpression" ):
listener.enterExpression(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitExpression" ):
listener.exitExpression(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitExpression" ):
return visitor.visitExpression(self)
else:
return visitor.visitChildren(self)
def expression(self, _p:int=0):
_parentctx = self._ctx
_parentState = self.state
localctx = SolidityParser.ExpressionContext(self, self._ctx, _parentState)
_prevctx = localctx
_startState = 136
self.enterRecursionRule(localctx, 136, self.RULE_expression, _p)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 868
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,95,self._ctx)
if la_ == 1:
self.state = 833
self.match(SolidityParser.T__37)
self.state = 834
self.expression(0)
self.state = 839
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==SolidityParser.T__14:
self.state = 835
self.match(SolidityParser.T__14)
self.state = 836
self.expression(0)
self.state = 841
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 842
self.match(SolidityParser.T__38)
pass
elif la_ == 2:
self.state = 844
self.match(SolidityParser.PayableKeyword)
self.state = 845
self.callArgumentList()
pass
elif la_ == 3:
self.state = 846
self.match(SolidityParser.TypeKeyword)
self.state = 847
self.match(SolidityParser.T__21)
self.state = 848
self.typeName(0)
self.state = 849
self.match(SolidityParser.T__22)
pass
elif la_ == 4:
self.state = 851
_la = self._input.LA(1)
if not(((((_la - 4)) & ~0x3f) == 0 and ((1 << (_la - 4)) & ((1 << (SolidityParser.T__3 - 4)) | (1 << (SolidityParser.T__61 - 4)) | (1 << (SolidityParser.T__62 - 4)) | (1 << (SolidityParser.T__63 - 4)) | (1 << (SolidityParser.T__64 - 4)) | (1 << (SolidityParser.T__65 - 4)))) != 0)):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
self.state = 852
self.expression(23)
pass
elif la_ == 5:
self.state = 853
self.match(SolidityParser.T__66)
self.state = 854
self.typeName(0)
pass
elif la_ == 6:
self.state = 855
self.match(SolidityParser.T__21)
self.state = 856
self.expression(0)
self.state = 857
self.match(SolidityParser.T__22)
pass
elif la_ == 7:
self.state = 859
_la = self._input.LA(1)
if not(_la==SolidityParser.T__65 or _la==SolidityParser.T__67):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
self.state = 860
self.expression(18)
pass
elif la_ == 8:
self.state = 861
_la = self._input.LA(1)
if not(_la==SolidityParser.T__64 or _la==SolidityParser.T__68):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
self.state = 862
self.expression(17)
pass
elif la_ == 9:
self.state = 863
self.match(SolidityParser.T__63)
self.state = 864
self.expression(16)
pass
elif la_ == 10:
self.state = 865
self.match(SolidityParser.T__3)
self.state = 866
self.expression(15)
pass
elif la_ == 11:
self.state = 867
self.primaryExpression()
pass
self._ctx.stop = self._input.LT(-1)
self.state = 961
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,103,self._ctx)
while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
if _alt==1:
if self._parseListeners is not None:
self.triggerExitRuleEvent()
_prevctx = localctx
self.state = 959
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,102,self._ctx)
if la_ == 1:
localctx = SolidityParser.ExpressionContext(self, _parentctx, _parentState)
self.pushNewRecursionContext(localctx, _startState, self.RULE_expression)
self.state = 870
if not self.precpred(self._ctx, 14):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 14)")
self.state = 871
self.match(SolidityParser.T__69)
self.state = 872
self.expression(15)
pass
elif la_ == 2:
localctx = SolidityParser.ExpressionContext(self, _parentctx, _parentState)
self.pushNewRecursionContext(localctx, _startState, self.RULE_expression)
self.state = 873
if not self.precpred(self._ctx, 13):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 13)")
self.state = 874
_la = self._input.LA(1)
if not(((((_la - 12)) & ~0x3f) == 0 and ((1 << (_la - 12)) & ((1 << (SolidityParser.T__11 - 12)) | (1 << (SolidityParser.T__70 - 12)) | (1 << (SolidityParser.T__71 - 12)))) != 0)):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
self.state = 875
self.expression(14)
pass
elif la_ == 3:
localctx = SolidityParser.ExpressionContext(self, _parentctx, _parentState)
self.pushNewRecursionContext(localctx, _startState, self.RULE_expression)
self.state = 876
if not self.precpred(self._ctx, 12):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 12)")
self.state = 877
_la = self._input.LA(1)
if not(_la==SolidityParser.T__65 or _la==SolidityParser.T__67):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
self.state = 878
self.expression(13)
pass
elif la_ == 4:
localctx = SolidityParser.ExpressionContext(self, _parentctx, _parentState)
self.pushNewRecursionContext(localctx, _startState, self.RULE_expression)
self.state = 879
if not self.precpred(self._ctx, 11):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 11)")
self.state = 880
_la = self._input.LA(1)
if not(((((_la - 73)) & ~0x3f) == 0 and ((1 << (_la - 73)) & ((1 << (SolidityParser.T__72 - 73)) | (1 << (SolidityParser.T__73 - 73)) | (1 << (SolidityParser.T__74 - 73)))) != 0)):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
self.state = 881
self.expression(12)
pass
elif la_ == 5:
localctx = SolidityParser.ExpressionContext(self, _parentctx, _parentState)
self.pushNewRecursionContext(localctx, _startState, self.RULE_expression)
self.state = 882
if not self.precpred(self._ctx, 10):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 10)")
self.state = 883
self.match(SolidityParser.T__75)
self.state = 884
self.expression(11)
pass
elif la_ == 6:
localctx = SolidityParser.ExpressionContext(self, _parentctx, _parentState)
self.pushNewRecursionContext(localctx, _startState, self.RULE_expression)
self.state = 885
if not self.precpred(self._ctx, 9):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 9)")
self.state = 886
self.match(SolidityParser.T__2)
self.state = 887
self.expression(10)
pass
elif la_ == 7:
localctx = SolidityParser.ExpressionContext(self, _parentctx, _parentState)
self.pushNewRecursionContext(localctx, _startState, self.RULE_expression)
self.state = 888
if not self.precpred(self._ctx, 8):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 8)")
self.state = 889
self.match(SolidityParser.T__76)
self.state = 890
self.expression(9)
pass
elif la_ == 8:
localctx = SolidityParser.ExpressionContext(self, _parentctx, _parentState)
self.pushNewRecursionContext(localctx, _startState, self.RULE_expression)
self.state = 891
if not self.precpred(self._ctx, 7):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 7)")
self.state = 892
_la = self._input.LA(1)
if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << SolidityParser.T__4) | (1 << SolidityParser.T__5) | (1 << SolidityParser.T__6) | (1 << SolidityParser.T__7))) != 0)):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
self.state = 893
self.expression(8)
pass
elif la_ == 9:
localctx = SolidityParser.ExpressionContext(self, _parentctx, _parentState)
self.pushNewRecursionContext(localctx, _startState, self.RULE_expression)
self.state = 894
if not self.precpred(self._ctx, 6):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 6)")
self.state = 895
_la = self._input.LA(1)
if not(_la==SolidityParser.T__77 or _la==SolidityParser.T__78):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
self.state = 896
self.expression(7)
pass
elif la_ == 10:
localctx = SolidityParser.ExpressionContext(self, _parentctx, _parentState)
self.pushNewRecursionContext(localctx, _startState, self.RULE_expression)
self.state = 897
if not self.precpred(self._ctx, 5):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 5)")
self.state = 898
self.match(SolidityParser.T__79)
self.state = 899
self.expression(6)
pass
elif la_ == 11:
localctx = SolidityParser.ExpressionContext(self, _parentctx, _parentState)
self.pushNewRecursionContext(localctx, _startState, self.RULE_expression)
self.state = 900
if not self.precpred(self._ctx, 4):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 4)")
self.state = 901
self.match(SolidityParser.T__80)
self.state = 902
self.expression(5)
pass
elif la_ == 12:
localctx = SolidityParser.ExpressionContext(self, _parentctx, _parentState)
self.pushNewRecursionContext(localctx, _startState, self.RULE_expression)
self.state = 903
if not self.precpred(self._ctx, 3):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 3)")
self.state = 904
self.match(SolidityParser.T__81)
self.state = 905
self.expression(0)
self.state = 906
self.match(SolidityParser.T__24)
self.state = 907
self.expression(4)
pass
elif la_ == 13:
localctx = SolidityParser.ExpressionContext(self, _parentctx, _parentState)
self.pushNewRecursionContext(localctx, _startState, self.RULE_expression)
self.state = 909
if not self.precpred(self._ctx, 2):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 2)")
self.state = 910
_la = self._input.LA(1)
if not(_la==SolidityParser.T__8 or ((((_la - 83)) & ~0x3f) == 0 and ((1 << (_la - 83)) & ((1 << (SolidityParser.T__82 - 83)) | (1 << (SolidityParser.T__83 - 83)) | (1 << (SolidityParser.T__84 - 83)) | (1 << (SolidityParser.T__85 - 83)) | (1 << (SolidityParser.T__86 - 83)) | (1 << (SolidityParser.T__87 - 83)) | (1 << (SolidityParser.T__88 - 83)) | (1 << (SolidityParser.T__89 - 83)) | (1 << (SolidityParser.T__90 - 83)) | (1 << (SolidityParser.T__91 - 83)) | (1 << (SolidityParser.T__92 - 83)))) != 0)):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
self.state = 911
self.expression(3)
pass
elif la_ == 14:
localctx = SolidityParser.ExpressionContext(self, _parentctx, _parentState)
self.pushNewRecursionContext(localctx, _startState, self.RULE_expression)
self.state = 912
if not self.precpred(self._ctx, 30):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 30)")
self.state = 913
self.match(SolidityParser.T__37)
self.state = 915
self._errHandler.sync(self)
_la = self._input.LA(1)
if ((((_la - 4)) & ~0x3f) == 0 and ((1 << (_la - 4)) & ((1 << (SolidityParser.T__3 - 4)) | (1 << (SolidityParser.T__12 - 4)) | (1 << (SolidityParser.T__21 - 4)) | (1 << (SolidityParser.T__37 - 4)) | (1 << (SolidityParser.T__39 - 4)) | (1 << (SolidityParser.T__45 - 4)) | (1 << (SolidityParser.T__57 - 4)) | (1 << (SolidityParser.T__58 - 4)) | (1 << (SolidityParser.T__59 - 4)) | (1 << (SolidityParser.T__60 - 4)) | (1 << (SolidityParser.T__61 - 4)) | (1 << (SolidityParser.T__62 - 4)) | (1 << (SolidityParser.T__63 - 4)) | (1 << (SolidityParser.T__64 - 4)) | (1 << (SolidityParser.T__65 - 4)) | (1 << (SolidityParser.T__66 - 4)))) != 0) or ((((_la - 68)) & ~0x3f) == 0 and ((1 << (_la - 68)) & ((1 << (SolidityParser.T__67 - 68)) | (1 << (SolidityParser.T__68 - 68)) | (1 << (SolidityParser.Int - 68)) | (1 << (SolidityParser.Uint - 68)) | (1 << (SolidityParser.Byte - 68)) | (1 << (SolidityParser.Fixed - 68)) | (1 << (SolidityParser.Ufixed - 68)) | (1 << (SolidityParser.BooleanLiteral - 68)) | (1 << (SolidityParser.DecimalNumber - 68)) | (1 << (SolidityParser.HexNumber - 68)) | (1 << (SolidityParser.HexLiteral - 68)) | (1 << (SolidityParser.PayableKeyword - 68)) | (1 << (SolidityParser.TypeKeyword - 68)) | (1 << (SolidityParser.Identifier - 68)) | (1 << (SolidityParser.StringLiteral - 68)))) != 0):
self.state = 914
self.expression(0)
self.state = 917
self.match(SolidityParser.T__38)
pass
elif la_ == 15:
localctx = SolidityParser.ExpressionContext(self, _parentctx, _parentState)
self.pushNewRecursionContext(localctx, _startState, self.RULE_expression)
self.state = 918
if not self.precpred(self._ctx, 28):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 28)")
self.state = 919
self.match(SolidityParser.T__37)
self.state = 921
self._errHandler.sync(self)
_la = self._input.LA(1)
if ((((_la - 4)) & ~0x3f) == 0 and ((1 << (_la - 4)) & ((1 << (SolidityParser.T__3 - 4)) | (1 << (SolidityParser.T__12 - 4)) | (1 << (SolidityParser.T__21 - 4)) | (1 << (SolidityParser.T__37 - 4)) | (1 << (SolidityParser.T__39 - 4)) | (1 << (SolidityParser.T__45 - 4)) | (1 << (SolidityParser.T__57 - 4)) | (1 << (SolidityParser.T__58 - 4)) | (1 << (SolidityParser.T__59 - 4)) | (1 << (SolidityParser.T__60 - 4)) | (1 << (SolidityParser.T__61 - 4)) | (1 << (SolidityParser.T__62 - 4)) | (1 << (SolidityParser.T__63 - 4)) | (1 << (SolidityParser.T__64 - 4)) | (1 << (SolidityParser.T__65 - 4)) | (1 << (SolidityParser.T__66 - 4)))) != 0) or ((((_la - 68)) & ~0x3f) == 0 and ((1 << (_la - 68)) & ((1 << (SolidityParser.T__67 - 68)) | (1 << (SolidityParser.T__68 - 68)) | (1 << (SolidityParser.Int - 68)) | (1 << (SolidityParser.Uint - 68)) | (1 << (SolidityParser.Byte - 68)) | (1 << (SolidityParser.Fixed - 68)) | (1 << (SolidityParser.Ufixed - 68)) | (1 << (SolidityParser.BooleanLiteral - 68)) | (1 << (SolidityParser.DecimalNumber - 68)) | (1 << (SolidityParser.HexNumber - 68)) | (1 << (SolidityParser.HexLiteral - 68)) | (1 << (SolidityParser.PayableKeyword - 68)) | (1 << (SolidityParser.TypeKeyword - 68)) | (1 << (SolidityParser.Identifier - 68)) | (1 << (SolidityParser.StringLiteral - 68)))) != 0):
self.state = 920
self.expression(0)
self.state = 923
self.match(SolidityParser.T__24)
self.state = 925
self._errHandler.sync(self)
_la = self._input.LA(1)
if ((((_la - 4)) & ~0x3f) == 0 and ((1 << (_la - 4)) & ((1 << (SolidityParser.T__3 - 4)) | (1 << (SolidityParser.T__12 - 4)) | (1 << (SolidityParser.T__21 - 4)) | (1 << (SolidityParser.T__37 - 4)) | (1 << (SolidityParser.T__39 - 4)) | (1 << (SolidityParser.T__45 - 4)) | (1 << (SolidityParser.T__57 - 4)) | (1 << (SolidityParser.T__58 - 4)) | (1 << (SolidityParser.T__59 - 4)) | (1 << (SolidityParser.T__60 - 4)) | (1 << (SolidityParser.T__61 - 4)) | (1 << (SolidityParser.T__62 - 4)) | (1 << (SolidityParser.T__63 - 4)) | (1 << (SolidityParser.T__64 - 4)) | (1 << (SolidityParser.T__65 - 4)) | (1 << (SolidityParser.T__66 - 4)))) != 0) or ((((_la - 68)) & ~0x3f) == 0 and ((1 << (_la - 68)) & ((1 << (SolidityParser.T__67 - 68)) | (1 << (SolidityParser.T__68 - 68)) | (1 << (SolidityParser.Int - 68)) | (1 << (SolidityParser.Uint - 68)) | (1 << (SolidityParser.Byte - 68)) | (1 << (SolidityParser.Fixed - 68)) | (1 << (SolidityParser.Ufixed - 68)) | (1 << (SolidityParser.BooleanLiteral - 68)) | (1 << (SolidityParser.DecimalNumber - 68)) | (1 << (SolidityParser.HexNumber - 68)) | (1 << (SolidityParser.HexLiteral - 68)) | (1 << (SolidityParser.PayableKeyword - 68)) | (1 << (SolidityParser.TypeKeyword - 68)) | (1 << (SolidityParser.Identifier - 68)) | (1 << (SolidityParser.StringLiteral - 68)))) != 0):
self.state = 924
self.expression(0)
self.state = 927
self.match(SolidityParser.T__38)
pass
elif la_ == 16:
localctx = SolidityParser.ExpressionContext(self, _parentctx, _parentState)
self.pushNewRecursionContext(localctx, _startState, self.RULE_expression)
self.state = 928
if not self.precpred(self._ctx, 27):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 27)")
self.state = 929
self.match(SolidityParser.T__40)
self.state = 932
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [SolidityParser.T__12, SolidityParser.T__45, SolidityParser.Identifier]:
self.state = 930
self.identifier()
pass
elif token in [SolidityParser.T__39]:
self.state = 931
self.match(SolidityParser.T__39)
pass
else:
raise NoViableAltException(self)
pass
elif la_ == 17:
localctx = SolidityParser.ExpressionContext(self, _parentctx, _parentState)
self.pushNewRecursionContext(localctx, _startState, self.RULE_expression)
self.state = 934
if not self.precpred(self._ctx, 26):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 26)")
self.state = 935
self.match(SolidityParser.T__13)
self.state = 949
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.T__12 or _la==SolidityParser.T__45 or _la==SolidityParser.Identifier:
self.state = 936
self.identifier()
self.state = 937
self.match(SolidityParser.T__24)
self.state = 938
self.expression(0)
self.state = 946
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==SolidityParser.T__14:
self.state = 939
self.match(SolidityParser.T__14)
self.state = 940
self.identifier()
self.state = 941
self.match(SolidityParser.T__24)
self.state = 942
self.expression(0)
self.state = 948
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 951
self.match(SolidityParser.T__15)
pass
elif la_ == 18:
localctx = SolidityParser.ExpressionContext(self, _parentctx, _parentState)
self.pushNewRecursionContext(localctx, _startState, self.RULE_expression)
self.state = 952
if not self.precpred(self._ctx, 22):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 22)")
self.state = 953
_la = self._input.LA(1)
if not(_la==SolidityParser.T__61 or _la==SolidityParser.T__62):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
pass
elif la_ == 19:
localctx = SolidityParser.ExpressionContext(self, _parentctx, _parentState)
self.pushNewRecursionContext(localctx, _startState, self.RULE_expression)
self.state = 954
if not self.precpred(self._ctx, 20):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 20)")
self.state = 955
self.match(SolidityParser.T__21)
self.state = 956
self.functionCallArguments()
self.state = 957
self.match(SolidityParser.T__22)
pass
self.state = 963
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,103,self._ctx)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.unrollRecursionContexts(_parentctx)
return localctx
class PrimaryExpressionContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def BooleanLiteral(self):
return self.getToken(SolidityParser.BooleanLiteral, 0)
def numberLiteral(self):
return self.getTypedRuleContext(SolidityParser.NumberLiteralContext,0)
def HexLiteral(self):
return self.getToken(SolidityParser.HexLiteral, 0)
def StringLiteral(self):
return self.getToken(SolidityParser.StringLiteral, 0)
def identifier(self):
return self.getTypedRuleContext(SolidityParser.IdentifierContext,0)
def TypeKeyword(self):
return self.getToken(SolidityParser.TypeKeyword, 0)
def tupleExpression(self):
return self.getTypedRuleContext(SolidityParser.TupleExpressionContext,0)
def typeNameExpression(self):
return self.getTypedRuleContext(SolidityParser.TypeNameExpressionContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_primaryExpression
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterPrimaryExpression" ):
listener.enterPrimaryExpression(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitPrimaryExpression" ):
listener.exitPrimaryExpression(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitPrimaryExpression" ):
return visitor.visitPrimaryExpression(self)
else:
return visitor.visitChildren(self)
def primaryExpression(self):
localctx = SolidityParser.PrimaryExpressionContext(self, self._ctx, self.state)
self.enterRule(localctx, 138, self.RULE_primaryExpression)
try:
self.state = 980
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,106,self._ctx)
if la_ == 1:
self.enterOuterAlt(localctx, 1)
self.state = 964
self.match(SolidityParser.BooleanLiteral)
pass
elif la_ == 2:
self.enterOuterAlt(localctx, 2)
self.state = 965
self.numberLiteral()
pass
elif la_ == 3:
self.enterOuterAlt(localctx, 3)
self.state = 966
self.match(SolidityParser.HexLiteral)
pass
elif la_ == 4:
self.enterOuterAlt(localctx, 4)
self.state = 967
self.match(SolidityParser.StringLiteral)
pass
elif la_ == 5:
self.enterOuterAlt(localctx, 5)
self.state = 968
self.identifier()
self.state = 971
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,104,self._ctx)
if la_ == 1:
self.state = 969
self.match(SolidityParser.T__37)
self.state = 970
self.match(SolidityParser.T__38)
pass
elif la_ == 6:
self.enterOuterAlt(localctx, 6)
self.state = 973
self.match(SolidityParser.TypeKeyword)
pass
elif la_ == 7:
self.enterOuterAlt(localctx, 7)
self.state = 974
self.tupleExpression()
pass
elif la_ == 8:
self.enterOuterAlt(localctx, 8)
self.state = 975
self.typeNameExpression()
self.state = 978
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,105,self._ctx)
if la_ == 1:
self.state = 976
self.match(SolidityParser.T__37)
self.state = 977
self.match(SolidityParser.T__38)
pass
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ExpressionListContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def expression(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.ExpressionContext)
else:
return self.getTypedRuleContext(SolidityParser.ExpressionContext,i)
def getRuleIndex(self):
return SolidityParser.RULE_expressionList
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterExpressionList" ):
listener.enterExpressionList(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitExpressionList" ):
listener.exitExpressionList(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitExpressionList" ):
return visitor.visitExpressionList(self)
else:
return visitor.visitChildren(self)
def expressionList(self):
localctx = SolidityParser.ExpressionListContext(self, self._ctx, self.state)
self.enterRule(localctx, 140, self.RULE_expressionList)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 982
self.expression(0)
self.state = 987
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==SolidityParser.T__14:
self.state = 983
self.match(SolidityParser.T__14)
self.state = 984
self.expression(0)
self.state = 989
self._errHandler.sync(self)
_la = self._input.LA(1)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class NameValueListContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def nameValue(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.NameValueContext)
else:
return self.getTypedRuleContext(SolidityParser.NameValueContext,i)
def getRuleIndex(self):
return SolidityParser.RULE_nameValueList
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterNameValueList" ):
listener.enterNameValueList(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitNameValueList" ):
listener.exitNameValueList(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitNameValueList" ):
return visitor.visitNameValueList(self)
else:
return visitor.visitChildren(self)
def nameValueList(self):
localctx = SolidityParser.NameValueListContext(self, self._ctx, self.state)
self.enterRule(localctx, 142, self.RULE_nameValueList)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 990
self.nameValue()
self.state = 995
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,108,self._ctx)
while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
if _alt==1:
self.state = 991
self.match(SolidityParser.T__14)
self.state = 992
self.nameValue()
self.state = 997
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,108,self._ctx)
self.state = 999
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.T__14:
self.state = 998
self.match(SolidityParser.T__14)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class NameValueContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def identifier(self):
return self.getTypedRuleContext(SolidityParser.IdentifierContext,0)
def expression(self):
return self.getTypedRuleContext(SolidityParser.ExpressionContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_nameValue
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterNameValue" ):
listener.enterNameValue(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitNameValue" ):
listener.exitNameValue(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitNameValue" ):
return visitor.visitNameValue(self)
else:
return visitor.visitChildren(self)
def nameValue(self):
localctx = SolidityParser.NameValueContext(self, self._ctx, self.state)
self.enterRule(localctx, 144, self.RULE_nameValue)
try:
self.enterOuterAlt(localctx, 1)
self.state = 1001
self.identifier()
self.state = 1002
self.match(SolidityParser.T__24)
self.state = 1003
self.expression(0)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class FunctionCallArgumentsContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def nameValueList(self):
return self.getTypedRuleContext(SolidityParser.NameValueListContext,0)
def expressionList(self):
return self.getTypedRuleContext(SolidityParser.ExpressionListContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_functionCallArguments
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterFunctionCallArguments" ):
listener.enterFunctionCallArguments(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitFunctionCallArguments" ):
listener.exitFunctionCallArguments(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFunctionCallArguments" ):
return visitor.visitFunctionCallArguments(self)
else:
return visitor.visitChildren(self)
def functionCallArguments(self):
localctx = SolidityParser.FunctionCallArgumentsContext(self, self._ctx, self.state)
self.enterRule(localctx, 146, self.RULE_functionCallArguments)
self._la = 0 # Token type
try:
self.state = 1013
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [SolidityParser.T__13]:
self.enterOuterAlt(localctx, 1)
self.state = 1005
self.match(SolidityParser.T__13)
self.state = 1007
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.T__12 or _la==SolidityParser.T__45 or _la==SolidityParser.Identifier:
self.state = 1006
self.nameValueList()
self.state = 1009
self.match(SolidityParser.T__15)
pass
elif token in [SolidityParser.T__3, SolidityParser.T__12, SolidityParser.T__21, SolidityParser.T__22, SolidityParser.T__37, SolidityParser.T__39, SolidityParser.T__45, SolidityParser.T__57, SolidityParser.T__58, SolidityParser.T__59, SolidityParser.T__60, SolidityParser.T__61, SolidityParser.T__62, SolidityParser.T__63, SolidityParser.T__64, SolidityParser.T__65, SolidityParser.T__66, SolidityParser.T__67, SolidityParser.T__68, SolidityParser.Int, SolidityParser.Uint, SolidityParser.Byte, SolidityParser.Fixed, SolidityParser.Ufixed, SolidityParser.BooleanLiteral, SolidityParser.DecimalNumber, SolidityParser.HexNumber, SolidityParser.HexLiteral, SolidityParser.PayableKeyword, SolidityParser.TypeKeyword, SolidityParser.Identifier, SolidityParser.StringLiteral]:
self.enterOuterAlt(localctx, 2)
self.state = 1011
self._errHandler.sync(self)
_la = self._input.LA(1)
if ((((_la - 4)) & ~0x3f) == 0 and ((1 << (_la - 4)) & ((1 << (SolidityParser.T__3 - 4)) | (1 << (SolidityParser.T__12 - 4)) | (1 << (SolidityParser.T__21 - 4)) | (1 << (SolidityParser.T__37 - 4)) | (1 << (SolidityParser.T__39 - 4)) | (1 << (SolidityParser.T__45 - 4)) | (1 << (SolidityParser.T__57 - 4)) | (1 << (SolidityParser.T__58 - 4)) | (1 << (SolidityParser.T__59 - 4)) | (1 << (SolidityParser.T__60 - 4)) | (1 << (SolidityParser.T__61 - 4)) | (1 << (SolidityParser.T__62 - 4)) | (1 << (SolidityParser.T__63 - 4)) | (1 << (SolidityParser.T__64 - 4)) | (1 << (SolidityParser.T__65 - 4)) | (1 << (SolidityParser.T__66 - 4)))) != 0) or ((((_la - 68)) & ~0x3f) == 0 and ((1 << (_la - 68)) & ((1 << (SolidityParser.T__67 - 68)) | (1 << (SolidityParser.T__68 - 68)) | (1 << (SolidityParser.Int - 68)) | (1 << (SolidityParser.Uint - 68)) | (1 << (SolidityParser.Byte - 68)) | (1 << (SolidityParser.Fixed - 68)) | (1 << (SolidityParser.Ufixed - 68)) | (1 << (SolidityParser.BooleanLiteral - 68)) | (1 << (SolidityParser.DecimalNumber - 68)) | (1 << (SolidityParser.HexNumber - 68)) | (1 << (SolidityParser.HexLiteral - 68)) | (1 << (SolidityParser.PayableKeyword - 68)) | (1 << (SolidityParser.TypeKeyword - 68)) | (1 << (SolidityParser.Identifier - 68)) | (1 << (SolidityParser.StringLiteral - 68)))) != 0):
self.state = 1010
self.expressionList()
pass
else:
raise NoViableAltException(self)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class FunctionCallContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def expression(self):
return self.getTypedRuleContext(SolidityParser.ExpressionContext,0)
def functionCallArguments(self):
return self.getTypedRuleContext(SolidityParser.FunctionCallArgumentsContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_functionCall
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterFunctionCall" ):
listener.enterFunctionCall(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitFunctionCall" ):
listener.exitFunctionCall(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFunctionCall" ):
return visitor.visitFunctionCall(self)
else:
return visitor.visitChildren(self)
def functionCall(self):
localctx = SolidityParser.FunctionCallContext(self, self._ctx, self.state)
self.enterRule(localctx, 148, self.RULE_functionCall)
try:
self.enterOuterAlt(localctx, 1)
self.state = 1015
self.expression(0)
self.state = 1016
self.match(SolidityParser.T__21)
self.state = 1017
self.functionCallArguments()
self.state = 1018
self.match(SolidityParser.T__22)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class AssemblyBlockContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def assemblyItem(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.AssemblyItemContext)
else:
return self.getTypedRuleContext(SolidityParser.AssemblyItemContext,i)
def getRuleIndex(self):
return SolidityParser.RULE_assemblyBlock
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAssemblyBlock" ):
listener.enterAssemblyBlock(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAssemblyBlock" ):
listener.exitAssemblyBlock(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAssemblyBlock" ):
return visitor.visitAssemblyBlock(self)
else:
return visitor.visitChildren(self)
def assemblyBlock(self):
localctx = SolidityParser.AssemblyBlockContext(self, self._ctx, self.state)
self.enterRule(localctx, 150, self.RULE_assemblyBlock)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 1020
self.match(SolidityParser.T__13)
self.state = 1024
self._errHandler.sync(self)
_la = self._input.LA(1)
while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << SolidityParser.T__12) | (1 << SolidityParser.T__13) | (1 << SolidityParser.T__21) | (1 << SolidityParser.T__27) | (1 << SolidityParser.T__31) | (1 << SolidityParser.T__39) | (1 << SolidityParser.T__45) | (1 << SolidityParser.T__49) | (1 << SolidityParser.T__52) | (1 << SolidityParser.T__54) | (1 << SolidityParser.T__60))) != 0) or ((((_la - 94)) & ~0x3f) == 0 and ((1 << (_la - 94)) & ((1 << (SolidityParser.T__93 - 94)) | (1 << (SolidityParser.T__95 - 94)) | (1 << (SolidityParser.T__96 - 94)) | (1 << (SolidityParser.DecimalNumber - 94)) | (1 << (SolidityParser.HexNumber - 94)) | (1 << (SolidityParser.HexLiteral - 94)) | (1 << (SolidityParser.BreakKeyword - 94)) | (1 << (SolidityParser.ContinueKeyword - 94)) | (1 << (SolidityParser.Identifier - 94)) | (1 << (SolidityParser.StringLiteral - 94)))) != 0):
self.state = 1021
self.assemblyItem()
self.state = 1026
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 1027
self.match(SolidityParser.T__15)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class AssemblyItemContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def identifier(self):
return self.getTypedRuleContext(SolidityParser.IdentifierContext,0)
def assemblyBlock(self):
return self.getTypedRuleContext(SolidityParser.AssemblyBlockContext,0)
def assemblyExpression(self):
return self.getTypedRuleContext(SolidityParser.AssemblyExpressionContext,0)
def assemblyLocalDefinition(self):
return self.getTypedRuleContext(SolidityParser.AssemblyLocalDefinitionContext,0)
def assemblyAssignment(self):
return self.getTypedRuleContext(SolidityParser.AssemblyAssignmentContext,0)
def assemblyStackAssignment(self):
return self.getTypedRuleContext(SolidityParser.AssemblyStackAssignmentContext,0)
def labelDefinition(self):
return self.getTypedRuleContext(SolidityParser.LabelDefinitionContext,0)
def assemblySwitch(self):
return self.getTypedRuleContext(SolidityParser.AssemblySwitchContext,0)
def assemblyFunctionDefinition(self):
return self.getTypedRuleContext(SolidityParser.AssemblyFunctionDefinitionContext,0)
def assemblyFor(self):
return self.getTypedRuleContext(SolidityParser.AssemblyForContext,0)
def assemblyIf(self):
return self.getTypedRuleContext(SolidityParser.AssemblyIfContext,0)
def BreakKeyword(self):
return self.getToken(SolidityParser.BreakKeyword, 0)
def ContinueKeyword(self):
return self.getToken(SolidityParser.ContinueKeyword, 0)
def subAssembly(self):
return self.getTypedRuleContext(SolidityParser.SubAssemblyContext,0)
def numberLiteral(self):
return self.getTypedRuleContext(SolidityParser.NumberLiteralContext,0)
def StringLiteral(self):
return self.getToken(SolidityParser.StringLiteral, 0)
def HexLiteral(self):
return self.getToken(SolidityParser.HexLiteral, 0)
def getRuleIndex(self):
return SolidityParser.RULE_assemblyItem
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAssemblyItem" ):
listener.enterAssemblyItem(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAssemblyItem" ):
listener.exitAssemblyItem(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAssemblyItem" ):
return visitor.visitAssemblyItem(self)
else:
return visitor.visitChildren(self)
def assemblyItem(self):
localctx = SolidityParser.AssemblyItemContext(self, self._ctx, self.state)
self.enterRule(localctx, 152, self.RULE_assemblyItem)
try:
self.state = 1046
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,114,self._ctx)
if la_ == 1:
self.enterOuterAlt(localctx, 1)
self.state = 1029
self.identifier()
pass
elif la_ == 2:
self.enterOuterAlt(localctx, 2)
self.state = 1030
self.assemblyBlock()
pass
elif la_ == 3:
self.enterOuterAlt(localctx, 3)
self.state = 1031
self.assemblyExpression()
pass
elif la_ == 4:
self.enterOuterAlt(localctx, 4)
self.state = 1032
self.assemblyLocalDefinition()
pass
elif la_ == 5:
self.enterOuterAlt(localctx, 5)
self.state = 1033
self.assemblyAssignment()
pass
elif la_ == 6:
self.enterOuterAlt(localctx, 6)
self.state = 1034
self.assemblyStackAssignment()
pass
elif la_ == 7:
self.enterOuterAlt(localctx, 7)
self.state = 1035
self.labelDefinition()
pass
elif la_ == 8:
self.enterOuterAlt(localctx, 8)
self.state = 1036
self.assemblySwitch()
pass
elif la_ == 9:
self.enterOuterAlt(localctx, 9)
self.state = 1037
self.assemblyFunctionDefinition()
pass
elif la_ == 10:
self.enterOuterAlt(localctx, 10)
self.state = 1038
self.assemblyFor()
pass
elif la_ == 11:
self.enterOuterAlt(localctx, 11)
self.state = 1039
self.assemblyIf()
pass
elif la_ == 12:
self.enterOuterAlt(localctx, 12)
self.state = 1040
self.match(SolidityParser.BreakKeyword)
pass
elif la_ == 13:
self.enterOuterAlt(localctx, 13)
self.state = 1041
self.match(SolidityParser.ContinueKeyword)
pass
elif la_ == 14:
self.enterOuterAlt(localctx, 14)
self.state = 1042
self.subAssembly()
pass
elif la_ == 15:
self.enterOuterAlt(localctx, 15)
self.state = 1043
self.numberLiteral()
pass
elif la_ == 16:
self.enterOuterAlt(localctx, 16)
self.state = 1044
self.match(SolidityParser.StringLiteral)
pass
elif la_ == 17:
self.enterOuterAlt(localctx, 17)
self.state = 1045
self.match(SolidityParser.HexLiteral)
pass
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class AssemblyExpressionContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def assemblyCall(self):
return self.getTypedRuleContext(SolidityParser.AssemblyCallContext,0)
def assemblyLiteral(self):
return self.getTypedRuleContext(SolidityParser.AssemblyLiteralContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_assemblyExpression
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAssemblyExpression" ):
listener.enterAssemblyExpression(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAssemblyExpression" ):
listener.exitAssemblyExpression(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAssemblyExpression" ):
return visitor.visitAssemblyExpression(self)
else:
return visitor.visitChildren(self)
def assemblyExpression(self):
localctx = SolidityParser.AssemblyExpressionContext(self, self._ctx, self.state)
self.enterRule(localctx, 154, self.RULE_assemblyExpression)
try:
self.state = 1050
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [SolidityParser.T__12, SolidityParser.T__39, SolidityParser.T__45, SolidityParser.T__54, SolidityParser.T__60, SolidityParser.Identifier]:
self.enterOuterAlt(localctx, 1)
self.state = 1048
self.assemblyCall()
pass
elif token in [SolidityParser.DecimalNumber, SolidityParser.HexNumber, SolidityParser.HexLiteral, SolidityParser.StringLiteral]:
self.enterOuterAlt(localctx, 2)
self.state = 1049
self.assemblyLiteral()
pass
else:
raise NoViableAltException(self)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class AssemblyCallContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def identifier(self):
return self.getTypedRuleContext(SolidityParser.IdentifierContext,0)
def assemblyExpression(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.AssemblyExpressionContext)
else:
return self.getTypedRuleContext(SolidityParser.AssemblyExpressionContext,i)
def getRuleIndex(self):
return SolidityParser.RULE_assemblyCall
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAssemblyCall" ):
listener.enterAssemblyCall(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAssemblyCall" ):
listener.exitAssemblyCall(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAssemblyCall" ):
return visitor.visitAssemblyCall(self)
else:
return visitor.visitChildren(self)
def assemblyCall(self):
localctx = SolidityParser.AssemblyCallContext(self, self._ctx, self.state)
self.enterRule(localctx, 156, self.RULE_assemblyCall)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 1056
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [SolidityParser.T__54]:
self.state = 1052
self.match(SolidityParser.T__54)
pass
elif token in [SolidityParser.T__39]:
self.state = 1053
self.match(SolidityParser.T__39)
pass
elif token in [SolidityParser.T__60]:
self.state = 1054
self.match(SolidityParser.T__60)
pass
elif token in [SolidityParser.T__12, SolidityParser.T__45, SolidityParser.Identifier]:
self.state = 1055
self.identifier()
pass
else:
raise NoViableAltException(self)
self.state = 1070
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,119,self._ctx)
if la_ == 1:
self.state = 1058
self.match(SolidityParser.T__21)
self.state = 1060
self._errHandler.sync(self)
_la = self._input.LA(1)
if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << SolidityParser.T__12) | (1 << SolidityParser.T__39) | (1 << SolidityParser.T__45) | (1 << SolidityParser.T__54) | (1 << SolidityParser.T__60))) != 0) or ((((_la - 109)) & ~0x3f) == 0 and ((1 << (_la - 109)) & ((1 << (SolidityParser.DecimalNumber - 109)) | (1 << (SolidityParser.HexNumber - 109)) | (1 << (SolidityParser.HexLiteral - 109)) | (1 << (SolidityParser.Identifier - 109)) | (1 << (SolidityParser.StringLiteral - 109)))) != 0):
self.state = 1059
self.assemblyExpression()
self.state = 1066
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==SolidityParser.T__14:
self.state = 1062
self.match(SolidityParser.T__14)
self.state = 1063
self.assemblyExpression()
self.state = 1068
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 1069
self.match(SolidityParser.T__22)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class AssemblyLocalDefinitionContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def assemblyIdentifierOrList(self):
return self.getTypedRuleContext(SolidityParser.AssemblyIdentifierOrListContext,0)
def assemblyExpression(self):
return self.getTypedRuleContext(SolidityParser.AssemblyExpressionContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_assemblyLocalDefinition
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAssemblyLocalDefinition" ):
listener.enterAssemblyLocalDefinition(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAssemblyLocalDefinition" ):
listener.exitAssemblyLocalDefinition(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAssemblyLocalDefinition" ):
return visitor.visitAssemblyLocalDefinition(self)
else:
return visitor.visitChildren(self)
def assemblyLocalDefinition(self):
localctx = SolidityParser.AssemblyLocalDefinitionContext(self, self._ctx, self.state)
self.enterRule(localctx, 158, self.RULE_assemblyLocalDefinition)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 1072
self.match(SolidityParser.T__93)
self.state = 1073
self.assemblyIdentifierOrList()
self.state = 1076
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.T__94:
self.state = 1074
self.match(SolidityParser.T__94)
self.state = 1075
self.assemblyExpression()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class AssemblyAssignmentContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def assemblyIdentifierOrList(self):
return self.getTypedRuleContext(SolidityParser.AssemblyIdentifierOrListContext,0)
def assemblyExpression(self):
return self.getTypedRuleContext(SolidityParser.AssemblyExpressionContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_assemblyAssignment
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAssemblyAssignment" ):
listener.enterAssemblyAssignment(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAssemblyAssignment" ):
listener.exitAssemblyAssignment(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAssemblyAssignment" ):
return visitor.visitAssemblyAssignment(self)
else:
return visitor.visitChildren(self)
def assemblyAssignment(self):
localctx = SolidityParser.AssemblyAssignmentContext(self, self._ctx, self.state)
self.enterRule(localctx, 160, self.RULE_assemblyAssignment)
try:
self.enterOuterAlt(localctx, 1)
self.state = 1078
self.assemblyIdentifierOrList()
self.state = 1079
self.match(SolidityParser.T__94)
self.state = 1080
self.assemblyExpression()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class AssemblyIdentifierOrListContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def identifier(self):
return self.getTypedRuleContext(SolidityParser.IdentifierContext,0)
def assemblyIdentifierList(self):
return self.getTypedRuleContext(SolidityParser.AssemblyIdentifierListContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_assemblyIdentifierOrList
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAssemblyIdentifierOrList" ):
listener.enterAssemblyIdentifierOrList(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAssemblyIdentifierOrList" ):
listener.exitAssemblyIdentifierOrList(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAssemblyIdentifierOrList" ):
return visitor.visitAssemblyIdentifierOrList(self)
else:
return visitor.visitChildren(self)
def assemblyIdentifierOrList(self):
localctx = SolidityParser.AssemblyIdentifierOrListContext(self, self._ctx, self.state)
self.enterRule(localctx, 162, self.RULE_assemblyIdentifierOrList)
try:
self.state = 1087
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [SolidityParser.T__12, SolidityParser.T__45, SolidityParser.Identifier]:
self.enterOuterAlt(localctx, 1)
self.state = 1082
self.identifier()
pass
elif token in [SolidityParser.T__21]:
self.enterOuterAlt(localctx, 2)
self.state = 1083
self.match(SolidityParser.T__21)
self.state = 1084
self.assemblyIdentifierList()
self.state = 1085
self.match(SolidityParser.T__22)
pass
else:
raise NoViableAltException(self)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class AssemblyIdentifierListContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def identifier(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.IdentifierContext)
else:
return self.getTypedRuleContext(SolidityParser.IdentifierContext,i)
def getRuleIndex(self):
return SolidityParser.RULE_assemblyIdentifierList
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAssemblyIdentifierList" ):
listener.enterAssemblyIdentifierList(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAssemblyIdentifierList" ):
listener.exitAssemblyIdentifierList(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAssemblyIdentifierList" ):
return visitor.visitAssemblyIdentifierList(self)
else:
return visitor.visitChildren(self)
def assemblyIdentifierList(self):
localctx = SolidityParser.AssemblyIdentifierListContext(self, self._ctx, self.state)
self.enterRule(localctx, 164, self.RULE_assemblyIdentifierList)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 1089
self.identifier()
self.state = 1094
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==SolidityParser.T__14:
self.state = 1090
self.match(SolidityParser.T__14)
self.state = 1091
self.identifier()
self.state = 1096
self._errHandler.sync(self)
_la = self._input.LA(1)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class AssemblyStackAssignmentContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def identifier(self):
return self.getTypedRuleContext(SolidityParser.IdentifierContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_assemblyStackAssignment
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAssemblyStackAssignment" ):
listener.enterAssemblyStackAssignment(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAssemblyStackAssignment" ):
listener.exitAssemblyStackAssignment(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAssemblyStackAssignment" ):
return visitor.visitAssemblyStackAssignment(self)
else:
return visitor.visitChildren(self)
def assemblyStackAssignment(self):
localctx = SolidityParser.AssemblyStackAssignmentContext(self, self._ctx, self.state)
self.enterRule(localctx, 166, self.RULE_assemblyStackAssignment)
try:
self.enterOuterAlt(localctx, 1)
self.state = 1097
self.match(SolidityParser.T__95)
self.state = 1098
self.identifier()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class LabelDefinitionContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def identifier(self):
return self.getTypedRuleContext(SolidityParser.IdentifierContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_labelDefinition
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterLabelDefinition" ):
listener.enterLabelDefinition(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitLabelDefinition" ):
listener.exitLabelDefinition(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitLabelDefinition" ):
return visitor.visitLabelDefinition(self)
else:
return visitor.visitChildren(self)
def labelDefinition(self):
localctx = SolidityParser.LabelDefinitionContext(self, self._ctx, self.state)
self.enterRule(localctx, 168, self.RULE_labelDefinition)
try:
self.enterOuterAlt(localctx, 1)
self.state = 1100
self.identifier()
self.state = 1101
self.match(SolidityParser.T__24)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class AssemblySwitchContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def assemblyExpression(self):
return self.getTypedRuleContext(SolidityParser.AssemblyExpressionContext,0)
def assemblyCase(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.AssemblyCaseContext)
else:
return self.getTypedRuleContext(SolidityParser.AssemblyCaseContext,i)
def getRuleIndex(self):
return SolidityParser.RULE_assemblySwitch
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAssemblySwitch" ):
listener.enterAssemblySwitch(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAssemblySwitch" ):
listener.exitAssemblySwitch(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAssemblySwitch" ):
return visitor.visitAssemblySwitch(self)
else:
return visitor.visitChildren(self)
def assemblySwitch(self):
localctx = SolidityParser.AssemblySwitchContext(self, self._ctx, self.state)
self.enterRule(localctx, 170, self.RULE_assemblySwitch)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 1103
self.match(SolidityParser.T__96)
self.state = 1104
self.assemblyExpression()
self.state = 1108
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==SolidityParser.T__97 or _la==SolidityParser.T__98:
self.state = 1105
self.assemblyCase()
self.state = 1110
self._errHandler.sync(self)
_la = self._input.LA(1)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class AssemblyCaseContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def assemblyLiteral(self):
return self.getTypedRuleContext(SolidityParser.AssemblyLiteralContext,0)
def assemblyBlock(self):
return self.getTypedRuleContext(SolidityParser.AssemblyBlockContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_assemblyCase
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAssemblyCase" ):
listener.enterAssemblyCase(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAssemblyCase" ):
listener.exitAssemblyCase(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAssemblyCase" ):
return visitor.visitAssemblyCase(self)
else:
return visitor.visitChildren(self)
def assemblyCase(self):
localctx = SolidityParser.AssemblyCaseContext(self, self._ctx, self.state)
self.enterRule(localctx, 172, self.RULE_assemblyCase)
try:
self.state = 1117
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [SolidityParser.T__97]:
self.enterOuterAlt(localctx, 1)
self.state = 1111
self.match(SolidityParser.T__97)
self.state = 1112
self.assemblyLiteral()
self.state = 1113
self.assemblyBlock()
pass
elif token in [SolidityParser.T__98]:
self.enterOuterAlt(localctx, 2)
self.state = 1115
self.match(SolidityParser.T__98)
self.state = 1116
self.assemblyBlock()
pass
else:
raise NoViableAltException(self)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class AssemblyFunctionDefinitionContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def identifier(self):
return self.getTypedRuleContext(SolidityParser.IdentifierContext,0)
def assemblyBlock(self):
return self.getTypedRuleContext(SolidityParser.AssemblyBlockContext,0)
def assemblyIdentifierList(self):
return self.getTypedRuleContext(SolidityParser.AssemblyIdentifierListContext,0)
def assemblyFunctionReturns(self):
return self.getTypedRuleContext(SolidityParser.AssemblyFunctionReturnsContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_assemblyFunctionDefinition
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAssemblyFunctionDefinition" ):
listener.enterAssemblyFunctionDefinition(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAssemblyFunctionDefinition" ):
listener.exitAssemblyFunctionDefinition(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAssemblyFunctionDefinition" ):
return visitor.visitAssemblyFunctionDefinition(self)
else:
return visitor.visitChildren(self)
def assemblyFunctionDefinition(self):
localctx = SolidityParser.AssemblyFunctionDefinitionContext(self, self._ctx, self.state)
self.enterRule(localctx, 174, self.RULE_assemblyFunctionDefinition)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 1119
self.match(SolidityParser.T__31)
self.state = 1120
self.identifier()
self.state = 1121
self.match(SolidityParser.T__21)
self.state = 1123
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.T__12 or _la==SolidityParser.T__45 or _la==SolidityParser.Identifier:
self.state = 1122
self.assemblyIdentifierList()
self.state = 1125
self.match(SolidityParser.T__22)
self.state = 1127
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==SolidityParser.T__99:
self.state = 1126
self.assemblyFunctionReturns()
self.state = 1129
self.assemblyBlock()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class AssemblyFunctionReturnsContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def assemblyIdentifierList(self):
return self.getTypedRuleContext(SolidityParser.AssemblyIdentifierListContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_assemblyFunctionReturns
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAssemblyFunctionReturns" ):
listener.enterAssemblyFunctionReturns(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAssemblyFunctionReturns" ):
listener.exitAssemblyFunctionReturns(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAssemblyFunctionReturns" ):
return visitor.visitAssemblyFunctionReturns(self)
else:
return visitor.visitChildren(self)
def assemblyFunctionReturns(self):
localctx = SolidityParser.AssemblyFunctionReturnsContext(self, self._ctx, self.state)
self.enterRule(localctx, 176, self.RULE_assemblyFunctionReturns)
try:
self.enterOuterAlt(localctx, 1)
self.state = 1131
self.match(SolidityParser.T__99)
self.state = 1132
self.assemblyIdentifierList()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class AssemblyForContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def assemblyExpression(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.AssemblyExpressionContext)
else:
return self.getTypedRuleContext(SolidityParser.AssemblyExpressionContext,i)
def assemblyBlock(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.AssemblyBlockContext)
else:
return self.getTypedRuleContext(SolidityParser.AssemblyBlockContext,i)
def getRuleIndex(self):
return SolidityParser.RULE_assemblyFor
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAssemblyFor" ):
listener.enterAssemblyFor(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAssemblyFor" ):
listener.exitAssemblyFor(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAssemblyFor" ):
return visitor.visitAssemblyFor(self)
else:
return visitor.visitChildren(self)
def assemblyFor(self):
localctx = SolidityParser.AssemblyForContext(self, self._ctx, self.state)
self.enterRule(localctx, 178, self.RULE_assemblyFor)
try:
self.enterOuterAlt(localctx, 1)
self.state = 1134
self.match(SolidityParser.T__27)
self.state = 1137
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [SolidityParser.T__13]:
self.state = 1135
self.assemblyBlock()
pass
elif token in [SolidityParser.T__12, SolidityParser.T__39, SolidityParser.T__45, SolidityParser.T__54, SolidityParser.T__60, SolidityParser.DecimalNumber, SolidityParser.HexNumber, SolidityParser.HexLiteral, SolidityParser.Identifier, SolidityParser.StringLiteral]:
self.state = 1136
self.assemblyExpression()
pass
else:
raise NoViableAltException(self)
self.state = 1139
self.assemblyExpression()
self.state = 1142
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [SolidityParser.T__13]:
self.state = 1140
self.assemblyBlock()
pass
elif token in [SolidityParser.T__12, SolidityParser.T__39, SolidityParser.T__45, SolidityParser.T__54, SolidityParser.T__60, SolidityParser.DecimalNumber, SolidityParser.HexNumber, SolidityParser.HexLiteral, SolidityParser.Identifier, SolidityParser.StringLiteral]:
self.state = 1141
self.assemblyExpression()
pass
else:
raise NoViableAltException(self)
self.state = 1144
self.assemblyBlock()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class AssemblyIfContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def assemblyExpression(self):
return self.getTypedRuleContext(SolidityParser.AssemblyExpressionContext,0)
def assemblyBlock(self):
return self.getTypedRuleContext(SolidityParser.AssemblyBlockContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_assemblyIf
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAssemblyIf" ):
listener.enterAssemblyIf(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAssemblyIf" ):
listener.exitAssemblyIf(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAssemblyIf" ):
return visitor.visitAssemblyIf(self)
else:
return visitor.visitChildren(self)
def assemblyIf(self):
localctx = SolidityParser.AssemblyIfContext(self, self._ctx, self.state)
self.enterRule(localctx, 180, self.RULE_assemblyIf)
try:
self.enterOuterAlt(localctx, 1)
self.state = 1146
self.match(SolidityParser.T__49)
self.state = 1147
self.assemblyExpression()
self.state = 1148
self.assemblyBlock()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class AssemblyLiteralContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def StringLiteral(self):
return self.getToken(SolidityParser.StringLiteral, 0)
def DecimalNumber(self):
return self.getToken(SolidityParser.DecimalNumber, 0)
def HexNumber(self):
return self.getToken(SolidityParser.HexNumber, 0)
def HexLiteral(self):
return self.getToken(SolidityParser.HexLiteral, 0)
def getRuleIndex(self):
return SolidityParser.RULE_assemblyLiteral
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAssemblyLiteral" ):
listener.enterAssemblyLiteral(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAssemblyLiteral" ):
listener.exitAssemblyLiteral(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAssemblyLiteral" ):
return visitor.visitAssemblyLiteral(self)
else:
return visitor.visitChildren(self)
def assemblyLiteral(self):
localctx = SolidityParser.AssemblyLiteralContext(self, self._ctx, self.state)
self.enterRule(localctx, 182, self.RULE_assemblyLiteral)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 1150
_la = self._input.LA(1)
if not(((((_la - 109)) & ~0x3f) == 0 and ((1 << (_la - 109)) & ((1 << (SolidityParser.DecimalNumber - 109)) | (1 << (SolidityParser.HexNumber - 109)) | (1 << (SolidityParser.HexLiteral - 109)) | (1 << (SolidityParser.StringLiteral - 109)))) != 0)):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class SubAssemblyContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def identifier(self):
return self.getTypedRuleContext(SolidityParser.IdentifierContext,0)
def assemblyBlock(self):
return self.getTypedRuleContext(SolidityParser.AssemblyBlockContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_subAssembly
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterSubAssembly" ):
listener.enterSubAssembly(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitSubAssembly" ):
listener.exitSubAssembly(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSubAssembly" ):
return visitor.visitSubAssembly(self)
else:
return visitor.visitChildren(self)
def subAssembly(self):
localctx = SolidityParser.SubAssemblyContext(self, self._ctx, self.state)
self.enterRule(localctx, 184, self.RULE_subAssembly)
try:
self.enterOuterAlt(localctx, 1)
self.state = 1152
self.match(SolidityParser.T__52)
self.state = 1153
self.identifier()
self.state = 1154
self.assemblyBlock()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class TupleExpressionContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def expression(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(SolidityParser.ExpressionContext)
else:
return self.getTypedRuleContext(SolidityParser.ExpressionContext,i)
def getRuleIndex(self):
return SolidityParser.RULE_tupleExpression
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterTupleExpression" ):
listener.enterTupleExpression(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitTupleExpression" ):
listener.exitTupleExpression(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitTupleExpression" ):
return visitor.visitTupleExpression(self)
else:
return visitor.visitChildren(self)
def tupleExpression(self):
localctx = SolidityParser.TupleExpressionContext(self, self._ctx, self.state)
self.enterRule(localctx, 186, self.RULE_tupleExpression)
self._la = 0 # Token type
try:
self.state = 1182
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [SolidityParser.T__21]:
self.enterOuterAlt(localctx, 1)
self.state = 1156
self.match(SolidityParser.T__21)
self.state = 1158
self._errHandler.sync(self)
_la = self._input.LA(1)
if ((((_la - 4)) & ~0x3f) == 0 and ((1 << (_la - 4)) & ((1 << (SolidityParser.T__3 - 4)) | (1 << (SolidityParser.T__12 - 4)) | (1 << (SolidityParser.T__21 - 4)) | (1 << (SolidityParser.T__37 - 4)) | (1 << (SolidityParser.T__39 - 4)) | (1 << (SolidityParser.T__45 - 4)) | (1 << (SolidityParser.T__57 - 4)) | (1 << (SolidityParser.T__58 - 4)) | (1 << (SolidityParser.T__59 - 4)) | (1 << (SolidityParser.T__60 - 4)) | (1 << (SolidityParser.T__61 - 4)) | (1 << (SolidityParser.T__62 - 4)) | (1 << (SolidityParser.T__63 - 4)) | (1 << (SolidityParser.T__64 - 4)) | (1 << (SolidityParser.T__65 - 4)) | (1 << (SolidityParser.T__66 - 4)))) != 0) or ((((_la - 68)) & ~0x3f) == 0 and ((1 << (_la - 68)) & ((1 << (SolidityParser.T__67 - 68)) | (1 << (SolidityParser.T__68 - 68)) | (1 << (SolidityParser.Int - 68)) | (1 << (SolidityParser.Uint - 68)) | (1 << (SolidityParser.Byte - 68)) | (1 << (SolidityParser.Fixed - 68)) | (1 << (SolidityParser.Ufixed - 68)) | (1 << (SolidityParser.BooleanLiteral - 68)) | (1 << (SolidityParser.DecimalNumber - 68)) | (1 << (SolidityParser.HexNumber - 68)) | (1 << (SolidityParser.HexLiteral - 68)) | (1 << (SolidityParser.PayableKeyword - 68)) | (1 << (SolidityParser.TypeKeyword - 68)) | (1 << (SolidityParser.Identifier - 68)) | (1 << (SolidityParser.StringLiteral - 68)))) != 0):
self.state = 1157
self.expression(0)
self.state = 1166
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==SolidityParser.T__14:
self.state = 1160
self.match(SolidityParser.T__14)
self.state = 1162
self._errHandler.sync(self)
_la = self._input.LA(1)
if ((((_la - 4)) & ~0x3f) == 0 and ((1 << (_la - 4)) & ((1 << (SolidityParser.T__3 - 4)) | (1 << (SolidityParser.T__12 - 4)) | (1 << (SolidityParser.T__21 - 4)) | (1 << (SolidityParser.T__37 - 4)) | (1 << (SolidityParser.T__39 - 4)) | (1 << (SolidityParser.T__45 - 4)) | (1 << (SolidityParser.T__57 - 4)) | (1 << (SolidityParser.T__58 - 4)) | (1 << (SolidityParser.T__59 - 4)) | (1 << (SolidityParser.T__60 - 4)) | (1 << (SolidityParser.T__61 - 4)) | (1 << (SolidityParser.T__62 - 4)) | (1 << (SolidityParser.T__63 - 4)) | (1 << (SolidityParser.T__64 - 4)) | (1 << (SolidityParser.T__65 - 4)) | (1 << (SolidityParser.T__66 - 4)))) != 0) or ((((_la - 68)) & ~0x3f) == 0 and ((1 << (_la - 68)) & ((1 << (SolidityParser.T__67 - 68)) | (1 << (SolidityParser.T__68 - 68)) | (1 << (SolidityParser.Int - 68)) | (1 << (SolidityParser.Uint - 68)) | (1 << (SolidityParser.Byte - 68)) | (1 << (SolidityParser.Fixed - 68)) | (1 << (SolidityParser.Ufixed - 68)) | (1 << (SolidityParser.BooleanLiteral - 68)) | (1 << (SolidityParser.DecimalNumber - 68)) | (1 << (SolidityParser.HexNumber - 68)) | (1 << (SolidityParser.HexLiteral - 68)) | (1 << (SolidityParser.PayableKeyword - 68)) | (1 << (SolidityParser.TypeKeyword - 68)) | (1 << (SolidityParser.Identifier - 68)) | (1 << (SolidityParser.StringLiteral - 68)))) != 0):
self.state = 1161
self.expression(0)
self.state = 1168
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 1169
self.match(SolidityParser.T__22)
pass
elif token in [SolidityParser.T__37]:
self.enterOuterAlt(localctx, 2)
self.state = 1170
self.match(SolidityParser.T__37)
self.state = 1179
self._errHandler.sync(self)
_la = self._input.LA(1)
if ((((_la - 4)) & ~0x3f) == 0 and ((1 << (_la - 4)) & ((1 << (SolidityParser.T__3 - 4)) | (1 << (SolidityParser.T__12 - 4)) | (1 << (SolidityParser.T__21 - 4)) | (1 << (SolidityParser.T__37 - 4)) | (1 << (SolidityParser.T__39 - 4)) | (1 << (SolidityParser.T__45 - 4)) | (1 << (SolidityParser.T__57 - 4)) | (1 << (SolidityParser.T__58 - 4)) | (1 << (SolidityParser.T__59 - 4)) | (1 << (SolidityParser.T__60 - 4)) | (1 << (SolidityParser.T__61 - 4)) | (1 << (SolidityParser.T__62 - 4)) | (1 << (SolidityParser.T__63 - 4)) | (1 << (SolidityParser.T__64 - 4)) | (1 << (SolidityParser.T__65 - 4)) | (1 << (SolidityParser.T__66 - 4)))) != 0) or ((((_la - 68)) & ~0x3f) == 0 and ((1 << (_la - 68)) & ((1 << (SolidityParser.T__67 - 68)) | (1 << (SolidityParser.T__68 - 68)) | (1 << (SolidityParser.Int - 68)) | (1 << (SolidityParser.Uint - 68)) | (1 << (SolidityParser.Byte - 68)) | (1 << (SolidityParser.Fixed - 68)) | (1 << (SolidityParser.Ufixed - 68)) | (1 << (SolidityParser.BooleanLiteral - 68)) | (1 << (SolidityParser.DecimalNumber - 68)) | (1 << (SolidityParser.HexNumber - 68)) | (1 << (SolidityParser.HexLiteral - 68)) | (1 << (SolidityParser.PayableKeyword - 68)) | (1 << (SolidityParser.TypeKeyword - 68)) | (1 << (SolidityParser.Identifier - 68)) | (1 << (SolidityParser.StringLiteral - 68)))) != 0):
self.state = 1171
self.expression(0)
self.state = 1176
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==SolidityParser.T__14:
self.state = 1172
self.match(SolidityParser.T__14)
self.state = 1173
self.expression(0)
self.state = 1178
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 1181
self.match(SolidityParser.T__38)
pass
else:
raise NoViableAltException(self)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class TypeNameExpressionContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def elementaryTypeName(self):
return self.getTypedRuleContext(SolidityParser.ElementaryTypeNameContext,0)
def userDefinedTypeName(self):
return self.getTypedRuleContext(SolidityParser.UserDefinedTypeNameContext,0)
def getRuleIndex(self):
return SolidityParser.RULE_typeNameExpression
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterTypeNameExpression" ):
listener.enterTypeNameExpression(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitTypeNameExpression" ):
listener.exitTypeNameExpression(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitTypeNameExpression" ):
return visitor.visitTypeNameExpression(self)
else:
return visitor.visitChildren(self)
def typeNameExpression(self):
localctx = SolidityParser.TypeNameExpressionContext(self, self._ctx, self.state)
self.enterRule(localctx, 188, self.RULE_typeNameExpression)
try:
self.state = 1186
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [SolidityParser.T__39, SolidityParser.T__57, SolidityParser.T__58, SolidityParser.T__59, SolidityParser.T__60, SolidityParser.Int, SolidityParser.Uint, SolidityParser.Byte, SolidityParser.Fixed, SolidityParser.Ufixed]:
self.enterOuterAlt(localctx, 1)
self.state = 1184
self.elementaryTypeName()
pass
elif token in [SolidityParser.T__12, SolidityParser.T__45, SolidityParser.Identifier]:
self.enterOuterAlt(localctx, 2)
self.state = 1185
self.userDefinedTypeName()
pass
else:
raise NoViableAltException(self)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class NumberLiteralContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def DecimalNumber(self):
return self.getToken(SolidityParser.DecimalNumber, 0)
def HexNumber(self):
return self.getToken(SolidityParser.HexNumber, 0)
def NumberUnit(self):
return self.getToken(SolidityParser.NumberUnit, 0)
def getRuleIndex(self):
return SolidityParser.RULE_numberLiteral
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterNumberLiteral" ):
listener.enterNumberLiteral(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitNumberLiteral" ):
listener.exitNumberLiteral(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitNumberLiteral" ):
return visitor.visitNumberLiteral(self)
else:
return visitor.visitChildren(self)
def numberLiteral(self):
localctx = SolidityParser.NumberLiteralContext(self, self._ctx, self.state)
self.enterRule(localctx, 190, self.RULE_numberLiteral)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 1188
_la = self._input.LA(1)
if not(_la==SolidityParser.DecimalNumber or _la==SolidityParser.HexNumber):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
self.state = 1190
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,136,self._ctx)
if la_ == 1:
self.state = 1189
self.match(SolidityParser.NumberUnit)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class IdentifierContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def Identifier(self, i:int=None):
if i is None:
return self.getTokens(SolidityParser.Identifier)
else:
return self.getToken(SolidityParser.Identifier, i)
def getRuleIndex(self):
return SolidityParser.RULE_identifier
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterIdentifier" ):
listener.enterIdentifier(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitIdentifier" ):
listener.exitIdentifier(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitIdentifier" ):
return visitor.visitIdentifier(self)
else:
return visitor.visitChildren(self)
def identifier(self):
localctx = SolidityParser.IdentifierContext(self, self._ctx, self.state)
self.enterRule(localctx, 192, self.RULE_identifier)
self._la = 0 # Token type
try:
self.state = 1201
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,138,self._ctx)
if la_ == 1:
self.enterOuterAlt(localctx, 1)
self.state = 1192
_la = self._input.LA(1)
if not(_la==SolidityParser.T__12 or _la==SolidityParser.T__45 or _la==SolidityParser.Identifier):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
pass
elif la_ == 2:
self.enterOuterAlt(localctx, 2)
self.state = 1193
self.match(SolidityParser.Identifier)
self.state = 1198
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,137,self._ctx)
while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
if _alt==1:
self.state = 1194
self.match(SolidityParser.T__12)
self.state = 1195
self.match(SolidityParser.Identifier)
self.state = 1200
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,137,self._ctx)
pass
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
def sempred(self, localctx:RuleContext, ruleIndex:int, predIndex:int):
if self._predicates == None:
self._predicates = dict()
self._predicates[36] = self.typeName_sempred
self._predicates[68] = self.expression_sempred
pred = self._predicates.get(ruleIndex, None)
if pred is None:
raise Exception("No predicate with index:" + str(ruleIndex))
else:
return pred(localctx, predIndex)
def typeName_sempred(self, localctx:TypeNameContext, predIndex:int):
if predIndex == 0:
return self.precpred(self._ctx, 3)
def expression_sempred(self, localctx:ExpressionContext, predIndex:int):
if predIndex == 1:
return self.precpred(self._ctx, 14)
if predIndex == 2:
return self.precpred(self._ctx, 13)
if predIndex == 3:
return self.precpred(self._ctx, 12)
if predIndex == 4:
return self.precpred(self._ctx, 11)
if predIndex == 5:
return self.precpred(self._ctx, 10)
if predIndex == 6:
return self.precpred(self._ctx, 9)
if predIndex == 7:
return self.precpred(self._ctx, 8)
if predIndex == 8:
return self.precpred(self._ctx, 7)
if predIndex == 9:
return self.precpred(self._ctx, 6)
if predIndex == 10:
return self.precpred(self._ctx, 5)
if predIndex == 11:
return self.precpred(self._ctx, 4)
if predIndex == 12:
return self.precpred(self._ctx, 3)
if predIndex == 13:
return self.precpred(self._ctx, 2)
if predIndex == 14:
return self.precpred(self._ctx, 30)
if predIndex == 15:
return self.precpred(self._ctx, 28)
if predIndex == 16:
return self.precpred(self._ctx, 27)
if predIndex == 17:
return self.precpred(self._ctx, 26)
if predIndex == 18:
return self.precpred(self._ctx, 22)
if predIndex == 19:
return self.precpred(self._ctx, 20)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment