+ };\r
+\r
+ class MethodExprContext : public ExprContext {\r
+ public:\r
+ MethodExprContext(ExprContext *ctx);\r
+\r
+ std::vector<ExprContext *> expr();\r
+ ExprContext* expr(size_t i);\r
+ FuncNameContext *funcName();\r
+ GenericInstantiationContext *genericInstantiation();\r
+ };\r
+\r
+ class PostfixOpExprContext : public ExprContext {\r
+ public:\r
+ PostfixOpExprContext(ExprContext *ctx);\r
+\r
+ ExprContext *expr();\r
+ Postfix_opContext *postfix_op();\r
+ };\r
+\r
+ class BinaryOpExprContext : public ExprContext {\r
+ public:\r
+ BinaryOpExprContext(ExprContext *ctx);\r
+\r
+ std::vector<ExprContext *> expr();\r
+ ExprContext* expr(size_t i);\r
+ Binary_opContext *binary_op();\r
+ };\r
+\r
+ class TernaryOpExprContext : public ExprContext {\r
+ public:\r
+ TernaryOpExprContext(ExprContext *ctx);\r
+\r
+ std::vector<ExprContext *> expr();\r
+ ExprContext* expr(size_t i);\r
+ };\r
+\r
+ class LitExprContext : public ExprContext {\r
+ public:\r
+ LitExprContext(ExprContext *ctx);\r
+\r
+ LiteralContext *literal();\r
+ };\r
+\r
+ class ParenExprContext : public ExprContext {\r
+ public:\r
+ ParenExprContext(ExprContext *ctx);\r
+\r
+ ExprContext *expr();\r
+ };\r
+\r
+ class IdentifierExprContext : public ExprContext {\r
+ public:\r
+ IdentifierExprContext(ExprContext *ctx);\r
+\r
+ VarNameContext *varName();\r
+ std::vector<NamespaceSpecifierContext *> namespaceSpecifier();\r
+ NamespaceSpecifierContext* namespaceSpecifier(size_t i);\r
+ };\r
+\r
+ ExprContext* expr();\r
+ ExprContext* expr(int precedence);\r
+ class DotContext : public antlr4::ParserRuleContext {\r
+ public:\r
+ DotContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ virtual size_t getRuleIndex() const override;\r