| %{ |
| /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying |
| file Copyright.txt or https://cmake.org/licensing for details. */ |
| /* |
| |
| This file must be translated to C and modified to build everywhere. |
| |
| Run bison like this: |
| |
| bison --name-prefix=cmDependsJava_yy --defines=cmDependsJavaParserTokens.h -ocmDependsJavaParser.cxx cmDependsJavaParser.y |
| |
| */ |
| |
| #include "cmConfigure.h" // IWYU pragma: keep |
| |
| #include <stdlib.h> |
| #include <string.h> |
| #include <string> |
| |
| #define yyGetParser (cmDependsJava_yyget_extra(yyscanner)) |
| |
| /*-------------------------------------------------------------------------*/ |
| #include "cmDependsJavaParserHelper.h" /* Interface to parser object. */ |
| #include "cmDependsJavaLexer.h" /* Interface to lexer object. */ |
| |
| /* Forward declare the lexer entry point. */ |
| YY_DECL; |
| |
| /* Helper function to forward error callback from parser. */ |
| static void cmDependsJava_yyerror(yyscan_t yyscanner, const char* message); |
| |
| #define YYMAXDEPTH 1000000 |
| |
| |
| #define jpCheckEmpty(cnt) yyGetParser->CheckEmpty(__LINE__, cnt, yyvsp) |
| #define jpElementStart(cnt) yyGetParser->PrepareElement(&yyval) |
| #define jpStoreClass(str) yyGetParser->AddClassFound(str); yyGetParser->DeallocateParserType(&(str)) |
| /* Disable some warnings in the generated code. */ |
| #ifdef _MSC_VER |
| # pragma warning (disable: 4102) /* Unused goto label. */ |
| # pragma warning (disable: 4065) /* Switch statement contains default but no case. */ |
| #endif |
| #if defined(__GNUC__) && __GNUC__ >= 8 |
| # pragma GCC diagnostic ignored "-Wconversion" |
| # pragma GCC diagnostic ignored "-Wfree-nonheap-object" |
| #endif |
| #if defined(__clang__) && defined(__has_warning) |
| # if __has_warning("-Wunused-but-set-variable") |
| # pragma clang diagnostic ignored "-Wunused-but-set-variable" |
| # endif |
| #endif |
| %} |
| |
| /* Generate a reentrant parser object. */ |
| %define api.pure |
| |
| /* Configure the parser to use a lexer object. */ |
| %lex-param {yyscan_t yyscanner} |
| %parse-param {yyscan_t yyscanner} |
| |
| %define parse.error verbose |
| |
| /* |
| %union { |
| char* string; |
| } |
| */ |
| |
| /*-------------------------------------------------------------------------*/ |
| /* Tokens */ |
| %token jp_ABSTRACT |
| %token jp_ASSERT |
| %token jp_BOOLEAN_TYPE |
| %token jp_BREAK |
| %token jp_BYTE_TYPE |
| %token jp_CASE |
| %token jp_CATCH |
| %token jp_CHAR_TYPE |
| %token jp_CLASS |
| %token jp_CONTINUE |
| %token jp_DEFAULT |
| %token jp_DO |
| %token jp_DOUBLE_TYPE |
| %token jp_ELSE |
| %token jp_EXTENDS |
| %token jp_FINAL |
| %token jp_FINALLY |
| %token jp_FLOAT_TYPE |
| %token jp_FOR |
| %token jp_IF |
| %token jp_IMPLEMENTS |
| %token jp_IMPORT |
| %token jp_INSTANCEOF |
| %token jp_INT_TYPE |
| %token jp_INTERFACE |
| %token jp_LONG_TYPE |
| %token jp_NATIVE |
| %token jp_NEW |
| %token jp_PACKAGE |
| %token jp_PRIVATE |
| %token jp_PROTECTED |
| %token jp_PUBLIC |
| %token jp_RETURN |
| %token jp_SHORT_TYPE |
| %token jp_STATIC |
| %token jp_STRICTFP |
| %token jp_SUPER |
| %token jp_SWITCH |
| %token jp_SYNCHRONIZED |
| %token jp_THIS |
| %token jp_THROW |
| %token jp_THROWS |
| %token jp_TRANSIENT |
| %token jp_TRY |
| %token jp_VOID |
| %token jp_VOLATILE |
| %token jp_WHILE |
| |
| %token jp_BOOLEANLITERAL |
| %token jp_CHARACTERLITERAL |
| %token jp_DECIMALINTEGERLITERAL |
| %token jp_FLOATINGPOINTLITERAL |
| %token jp_HEXINTEGERLITERAL |
| %token jp_NULLLITERAL |
| %token jp_STRINGLITERAL |
| |
| %token jp_NAME |
| |
| %token jp_AND |
| %token jp_ANDAND |
| %token jp_ANDEQUALS |
| %token jp_BRACKETEND |
| %token jp_BRACKETSTART |
| %token jp_CARROT |
| %token jp_CARROTEQUALS |
| %token jp_COLON |
| %token jp_COMMA |
| %token jp_CURLYEND |
| %token jp_CURLYSTART |
| %token jp_DIVIDE |
| %token jp_DIVIDEEQUALS |
| %token jp_DOLLAR |
| %token jp_DOT |
| %token jp_EQUALS |
| %token jp_EQUALSEQUALS |
| %token jp_EXCLAMATION |
| %token jp_EXCLAMATIONEQUALS |
| %token jp_GREATER |
| %token jp_GTEQUALS |
| %token jp_GTGT |
| %token jp_GTGTEQUALS |
| %token jp_GTGTGT |
| %token jp_GTGTGTEQUALS |
| %token jp_LESLESEQUALS |
| %token jp_LESSTHAN |
| %token jp_LTEQUALS |
| %token jp_LTLT |
| %token jp_MINUS |
| %token jp_MINUSEQUALS |
| %token jp_MINUSMINUS |
| %token jp_PAREEND |
| %token jp_PARESTART |
| %token jp_PERCENT |
| %token jp_PERCENTEQUALS |
| %token jp_PIPE |
| %token jp_PIPEEQUALS |
| %token jp_PIPEPIPE |
| %token jp_PLUS |
| %token jp_PLUSEQUALS |
| %token jp_PLUSPLUS |
| %token jp_QUESTION |
| %token jp_SEMICOL |
| %token jp_TILDE |
| %token jp_TIMES |
| %token jp_TIMESEQUALS |
| |
| %token jp_ERROR |
| |
| /*-------------------------------------------------------------------------*/ |
| /* grammar */ |
| %% |
| |
| Goal: |
| CompilationUnit |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| Literal: |
| IntegerLiteral |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| jp_FLOATINGPOINTLITERAL |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| jp_BOOLEANLITERAL |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| jp_CHARACTERLITERAL |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| jp_STRINGLITERAL |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| jp_NULLLITERAL |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| IntegerLiteral: |
| jp_DECIMALINTEGERLITERAL |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| jp_HEXINTEGERLITERAL |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| Type: |
| PrimitiveType |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| ReferenceType |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| PrimitiveType: |
| jp_BYTE_TYPE |
| { |
| jpElementStart(0); |
| } |
| | |
| jp_SHORT_TYPE |
| { |
| jpElementStart(0); |
| } |
| | |
| jp_INT_TYPE |
| { |
| jpElementStart(0); |
| } |
| | |
| jp_LONG_TYPE |
| { |
| jpElementStart(0); |
| } |
| | |
| jp_CHAR_TYPE |
| { |
| jpElementStart(0); |
| } |
| | |
| jp_FLOAT_TYPE |
| { |
| jpElementStart(0); |
| } |
| | |
| jp_DOUBLE_TYPE |
| { |
| jpElementStart(0); |
| } |
| | |
| jp_BOOLEAN_TYPE |
| { |
| jpElementStart(0); |
| } |
| |
| ReferenceType: |
| ClassOrInterfaceType |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| ArrayType |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| ClassOrInterfaceType: |
| Name |
| { |
| jpElementStart(1); |
| jpStoreClass($<str>1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| ClassType: |
| ClassOrInterfaceType |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| InterfaceType: |
| ClassOrInterfaceType |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| ArrayType: |
| PrimitiveType Dims |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| Name Dims |
| { |
| jpElementStart(2); |
| jpStoreClass($<str>1); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| Name: |
| SimpleName |
| { |
| jpElementStart(1); |
| $<str>$ = $<str>1; |
| } |
| | |
| QualifiedName |
| { |
| jpElementStart(1); |
| $<str>$ = $<str>1; |
| } |
| |
| SimpleName: |
| Identifier |
| { |
| jpElementStart(1); |
| $<str>$ = $<str>1; |
| } |
| |
| Identifier: |
| jp_NAME |
| { |
| jpElementStart(1); |
| $<str>$ = $<str>1; |
| } |
| | |
| jp_DOLLAR jp_NAME |
| { |
| jpElementStart(2); |
| $<str>$ = $<str>2; |
| } |
| |
| QualifiedName: |
| Name jp_DOT Identifier |
| { |
| jpElementStart(3); |
| yyGetParser->AddClassFound($<str>1); |
| yyGetParser->UpdateCombine($<str>1, $<str>3); |
| yyGetParser->DeallocateParserType(&($<str>1)); |
| $<str>$ = const_cast<char*>(yyGetParser->GetCurrentCombine()); |
| } |
| | |
| Name jp_DOT jp_CLASS |
| { |
| jpElementStart(3); |
| jpStoreClass($<str>1); |
| jpCheckEmpty(3); |
| yyGetParser->SetCurrentCombine(""); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| Name jp_DOT jp_THIS |
| { |
| jpElementStart(3); |
| jpStoreClass($<str>1); |
| yyGetParser->SetCurrentCombine(""); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| SimpleType jp_DOT jp_CLASS |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| SimpleType: |
| PrimitiveType |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| jp_VOID |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| CompilationUnit: |
| PackageDeclarationopt ImportDeclarations TypeDeclarations |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| PackageDeclarationopt: |
| { |
| jpElementStart(0); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| PackageDeclaration |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| ImportDeclarations: |
| { |
| jpElementStart(0); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| ImportDeclarations ImportDeclaration |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| TypeDeclarations: |
| { |
| jpElementStart(0); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| TypeDeclarations TypeDeclaration |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| PackageDeclaration: |
| jp_PACKAGE Name jp_SEMICOL |
| { |
| jpElementStart(3); |
| yyGetParser->SetCurrentPackage($<str>2); |
| yyGetParser->DeallocateParserType(&($<str>2)); |
| yyGetParser->SetCurrentCombine(""); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| ImportDeclaration: |
| SingleTypeImportDeclaration |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| TypeImportOnDemandDeclaration |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| SingleTypeImportDeclaration: |
| jp_IMPORT Name jp_SEMICOL |
| { |
| jpElementStart(3); |
| yyGetParser->AddPackagesImport($<str>2); |
| yyGetParser->DeallocateParserType(&($<str>2)); |
| yyGetParser->SetCurrentCombine(""); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| TypeImportOnDemandDeclaration: |
| jp_IMPORT Name jp_DOT jp_TIMES jp_SEMICOL |
| { |
| jpElementStart(5); |
| std::string str = $<str>2; |
| str += ".*"; |
| yyGetParser->AddPackagesImport(str.c_str()); |
| yyGetParser->DeallocateParserType(&($<str>2)); |
| yyGetParser->SetCurrentCombine(""); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| TypeDeclaration: |
| ClassDeclaration |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| InterfaceDeclaration |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| jp_SEMICOL |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| Modifiers: |
| Modifier |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| Modifiers Modifier |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| Modifier: |
| jp_PUBLIC | jp_PROTECTED | jp_PRIVATE | |
| jp_STATIC | |
| jp_ABSTRACT | jp_FINAL | jp_NATIVE | jp_SYNCHRONIZED | jp_TRANSIENT | jp_VOLATILE | |
| jp_STRICTFP |
| |
| ClassHeader: |
| Modifiersopt jp_CLASS Identifier |
| { |
| yyGetParser->StartClass($<str>3); |
| jpElementStart(3); |
| yyGetParser->DeallocateParserType(&($<str>3)); |
| jpCheckEmpty(3); |
| } |
| |
| |
| ClassDeclaration: |
| ClassHeader ClassBody |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| yyGetParser->EndClass(); |
| } |
| | |
| ClassHeader Interfaces ClassBody |
| { |
| jpElementStart(3); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| yyGetParser->EndClass(); |
| } |
| | |
| ClassHeader Super ClassBody |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| yyGetParser->EndClass(); |
| } |
| | |
| ClassHeader Super Interfaces ClassBody |
| { |
| jpElementStart(4); |
| jpCheckEmpty(4); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| yyGetParser->EndClass(); |
| } |
| |
| Modifiersopt: |
| { |
| jpElementStart(0); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| Modifiers |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| Super: |
| jp_EXTENDS ClassType |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| Interfaces: |
| jp_IMPLEMENTS InterfaceTypeList |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| InterfaceTypeList: |
| InterfaceType |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| InterfaceTypeList jp_COMMA InterfaceType |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| ClassBody: |
| jp_CURLYSTART ClassBodyDeclarations jp_CURLYEND |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| ClassBodyDeclarations: |
| { |
| jpElementStart(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| ClassBodyDeclarations ClassBodyDeclaration |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| ClassBodyDeclaration: |
| ClassMemberDeclaration |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| StaticInitializer |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| ConstructorDeclaration |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| TypeDeclaration |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| ClassMemberDeclaration: |
| FieldDeclaration |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| MethodDeclaration |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| FieldDeclaration: |
| Modifiersopt Type VariableDeclarators jp_SEMICOL |
| { |
| jpElementStart(4); |
| } |
| |
| VariableDeclarators: |
| VariableDeclarator |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| VariableDeclarators jp_COMMA VariableDeclarator |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| VariableDeclarator: |
| VariableDeclaratorId |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| VariableDeclaratorId jp_EQUALS VariableInitializer |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| VariableDeclaratorId: |
| Identifier |
| { |
| jpElementStart(1); |
| yyGetParser->DeallocateParserType(&($<str>1)); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| VariableDeclaratorId jp_BRACKETSTART jp_BRACKETEND |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| VariableInitializer: |
| Expression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| ArrayInitializer |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| MethodDeclaration: |
| MethodHeader jp_SEMICOL |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| MethodHeader MethodBody |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| MethodHeader MethodBody jp_SEMICOL |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| |
| MethodHeader: |
| Modifiersopt Type MethodDeclarator Throwsopt |
| { |
| jpElementStart(4); |
| jpCheckEmpty(4); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| Modifiersopt jp_VOID MethodDeclarator Throwsopt |
| { |
| jpElementStart(4); |
| jpCheckEmpty(4); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| Throwsopt: |
| { |
| jpElementStart(0); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| Throws |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| MethodDeclarator: |
| Identifier jp_PARESTART FormalParameterListopt jp_PAREEND |
| { |
| jpElementStart(4); |
| yyGetParser->DeallocateParserType(&($<str>1)); |
| jpCheckEmpty(4); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| MethodDeclarator jp_BRACKETSTART jp_BRACKETEND |
| { |
| jpElementStart(3); |
| |
| } |
| |
| FormalParameterListopt: |
| { |
| jpElementStart(0); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| FormalParameterList |
| |
| FormalParameterList: |
| FormalParameter |
| { |
| jpElementStart(1); |
| |
| } |
| | |
| FormalParameterList jp_COMMA FormalParameter |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| FormalParameter: |
| Modifiersopt Type VariableDeclaratorId |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| Throws: |
| jp_THROWS ClassTypeList |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ClassTypeList: |
| ClassType |
| { |
| jpElementStart(1); |
| |
| } |
| | |
| ClassTypeList jp_COMMA ClassType |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| MethodBody: |
| Block |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| StaticInitializer: |
| jp_STATIC Block |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ConstructorDeclaration: |
| Modifiersopt ConstructorDeclarator Throwsopt ConstructorBody |
| { |
| jpElementStart(4); |
| jpCheckEmpty(4); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| Modifiersopt ConstructorDeclarator Throwsopt ConstructorBody jp_SEMICOL |
| { |
| jpElementStart(5); |
| jpCheckEmpty(5); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ConstructorDeclarator: |
| SimpleName jp_PARESTART FormalParameterListopt jp_PAREEND |
| { |
| jpElementStart(4); |
| yyGetParser->DeallocateParserType(&($<str>1)); |
| jpCheckEmpty(4); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ConstructorBody: |
| jp_CURLYSTART ExplicitConstructorInvocationopt BlockStatementsopt jp_CURLYEND |
| { |
| jpElementStart(4); |
| jpCheckEmpty(4); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ExplicitConstructorInvocationopt: |
| { |
| jpElementStart(0); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ExplicitConstructorInvocationopt ExplicitConstructorInvocation |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ExplicitConstructorInvocation: |
| jp_THIS jp_PARESTART ArgumentListopt jp_PAREEND jp_SEMICOL |
| { |
| jpElementStart(5); |
| jpCheckEmpty(5); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| jp_SUPER jp_PARESTART ArgumentListopt jp_PAREEND jp_SEMICOL |
| { |
| jpElementStart(5); |
| jpCheckEmpty(5); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| InterfaceHeader: |
| Modifiersopt jp_INTERFACE Identifier |
| { |
| yyGetParser->StartClass($<str>3); |
| jpElementStart(3); |
| yyGetParser->DeallocateParserType(&($<str>3)); |
| jpCheckEmpty(3); |
| } |
| |
| InterfaceDeclaration: |
| InterfaceHeader ExtendsInterfacesopt InterfaceBody |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| yyGetParser->EndClass(); |
| } |
| |
| ExtendsInterfacesopt: |
| { |
| jpElementStart(0); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| } |
| | |
| ExtendsInterfaces |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ExtendsInterfaces: |
| jp_EXTENDS InterfaceType |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ExtendsInterfaces jp_COMMA InterfaceType |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| InterfaceBody: |
| jp_CURLYSTART InterfaceMemberDeclarations jp_CURLYEND |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| InterfaceMemberDeclarations: |
| { |
| jpElementStart(0); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| InterfaceMemberDeclarations InterfaceMemberDeclaration |
| { |
| jpElementStart(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| InterfaceMemberDeclaration: |
| ConstantDeclaration |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| AbstractMethodDeclaration |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ClassDeclaration |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ClassDeclaration jp_SEMICOL |
| { |
| jpElementStart(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| InterfaceDeclaration |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| InterfaceDeclaration jp_SEMICOL |
| { |
| jpElementStart(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ConstantDeclaration: |
| FieldDeclaration |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| AbstractMethodDeclaration: |
| MethodHeader Semicols |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| Semicols: |
| jp_SEMICOL |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| Semicols jp_SEMICOL |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ArrayInitializer: |
| jp_CURLYSTART VariableInitializersOptional jp_CURLYEND |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| VariableInitializersOptional: |
| { |
| jpElementStart(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| VariableInitializers |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| VariableInitializers jp_COMMA |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| VariableInitializers: |
| VariableInitializer |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| VariableInitializers jp_COMMA VariableInitializer |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| Block: |
| jp_CURLYSTART BlockStatementsopt jp_CURLYEND |
| { |
| jpElementStart(4); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| BlockStatementsopt: |
| { |
| jpElementStart(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| BlockStatements |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| BlockStatements: |
| BlockStatement |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| BlockStatements BlockStatement |
| { |
| jpElementStart(1); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| BlockStatement: |
| LocalVariableDeclarationStatement |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| Statement |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ClassDeclaration |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| LocalVariableDeclarationStatement: |
| LocalVariableDeclaration jp_SEMICOL |
| { |
| jpElementStart(1); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| LocalVariableDeclaration: |
| Modifiers Type VariableDeclarators |
| { |
| jpElementStart(1); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| Type VariableDeclarators |
| { |
| jpElementStart(1); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| Statement: |
| StatementWithoutTrailingSubstatement |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| LabeledStatement |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| IfThenStatement |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| IfThenElseStatement |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| WhileStatement |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ForStatement |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| StatementNoShortIf: |
| StatementWithoutTrailingSubstatement |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| LabeledStatementNoShortIf |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| IfThenElseStatementNoShortIf |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| WhileStatementNoShortIf |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ForStatementNoShortIf |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| StatementWithoutTrailingSubstatement: |
| Block |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| EmptyStatement |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ExpressionStatement |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| SwitchStatement |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| DoStatement |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| BreakStatement |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ContinueStatement |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ReturnStatement |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| SynchronizedStatement |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ThrowStatement |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| TryStatement |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| AssertStatement |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| EmptyStatement: |
| jp_SEMICOL |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| LabeledStatement: |
| Identifier jp_COLON Statement |
| { |
| jpElementStart(3); |
| yyGetParser->DeallocateParserType(&($<str>1)); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| LabeledStatementNoShortIf: |
| Identifier jp_COLON StatementNoShortIf |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ExpressionStatement: |
| StatementExpression jp_SEMICOL |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| StatementExpression: |
| Assignment |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| PreIncrementExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| PreDecrementExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| PostIncrementExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| PostDecrementExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| MethodInvocation |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ClassInstanceCreationExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| IfThenStatement: |
| jp_IF jp_PARESTART Expression jp_PAREEND Statement |
| { |
| jpElementStart(5); |
| jpCheckEmpty(5); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| IfThenElseStatement: |
| jp_IF jp_PARESTART Expression jp_PAREEND StatementNoShortIf jp_ELSE Statement |
| { |
| jpElementStart(7); |
| jpCheckEmpty(7); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| IfThenElseStatementNoShortIf: |
| jp_IF jp_PARESTART Expression jp_PAREEND StatementNoShortIf jp_ELSE StatementNoShortIf |
| { |
| jpElementStart(7); |
| jpCheckEmpty(7); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| SwitchStatement: |
| jp_SWITCH jp_PARESTART Expression jp_PAREEND SwitchBlock |
| { |
| jpElementStart(5); |
| |
| } |
| |
| SwitchBlock: |
| jp_CURLYSTART SwitchBlockStatementGroups SwitchLabelsopt jp_CURLYEND |
| { |
| jpElementStart(4); |
| |
| } |
| |
| SwitchLabelsopt: |
| { |
| jpElementStart(0); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| SwitchLabels |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| SwitchBlockStatementGroups: |
| { |
| jpElementStart(0); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| SwitchBlockStatementGroups SwitchBlockStatementGroup |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| SwitchBlockStatementGroup: |
| SwitchLabels BlockStatements |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| SwitchLabels: |
| SwitchLabel |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| SwitchLabels SwitchLabel |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| SwitchLabel: |
| jp_CASE ConstantExpression jp_COLON |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| jp_DEFAULT jp_COLON |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| WhileStatement: |
| jp_WHILE jp_PARESTART Expression jp_PAREEND Statement |
| { |
| jpElementStart(5); |
| |
| } |
| |
| WhileStatementNoShortIf: |
| jp_WHILE jp_PARESTART Expression jp_PAREEND StatementNoShortIf |
| { |
| jpElementStart(5); |
| |
| } |
| |
| DoStatement: |
| jp_DO Statement jp_WHILE jp_PARESTART Expression jp_PAREEND jp_SEMICOL |
| { |
| jpElementStart(7); |
| |
| } |
| |
| ForStatement: |
| jp_FOR jp_PARESTART ForInitopt jp_SEMICOL Expressionopt jp_SEMICOL ForUpdateopt jp_PAREEND |
| Statement |
| { |
| jpElementStart(9); |
| |
| } |
| |
| ForUpdateopt: |
| { |
| jpElementStart(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ForUpdate |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ForInitopt: |
| { |
| jpElementStart(0); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ForInit |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ForStatementNoShortIf: |
| jp_FOR jp_PARESTART ForInitopt jp_SEMICOL Expressionopt jp_SEMICOL ForUpdateopt jp_PAREEND |
| StatementNoShortIf |
| { |
| jpElementStart(9); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| Expressionopt: |
| { |
| jpElementStart(0); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| Expression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ForInit: |
| StatementExpressionList |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| LocalVariableDeclaration |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ForUpdate: |
| StatementExpressionList |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| StatementExpressionList: |
| StatementExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| StatementExpressionList jp_COMMA StatementExpression |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| AssertStatement: |
| jp_ASSERT Expression jp_SEMICOL |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| jp_ASSERT Expression jp_COLON Expression jp_SEMICOL |
| { |
| jpElementStart(5); |
| jpCheckEmpty(5); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| BreakStatement: |
| jp_BREAK Identifieropt jp_SEMICOL |
| { |
| jpElementStart(3); |
| yyGetParser->DeallocateParserType(&($<str>2)); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| Identifieropt: |
| { |
| jpElementStart(0); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| Identifier |
| { |
| jpElementStart(1); |
| |
| } |
| |
| ContinueStatement: |
| jp_CONTINUE Identifieropt jp_SEMICOL |
| { |
| jpElementStart(3); |
| yyGetParser->DeallocateParserType(&($<str>2)); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ReturnStatement: |
| jp_RETURN Expressionopt jp_SEMICOL |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ThrowStatement: |
| jp_THROW Expression jp_SEMICOL |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| SynchronizedStatement: |
| jp_SYNCHRONIZED jp_PARESTART Expression jp_PAREEND Block |
| { |
| jpElementStart(5); |
| jpCheckEmpty(5); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| TryStatement: |
| jp_TRY Block Catches |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| jp_TRY Block Catchesopt Finally |
| { |
| jpElementStart(4); |
| jpCheckEmpty(4); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| Catchesopt: |
| { |
| jpElementStart(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| Catches |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| Catches: |
| CatchClause |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| Catches CatchClause |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| CatchClause: |
| jp_CATCH jp_PARESTART FormalParameter jp_PAREEND Block |
| { |
| jpElementStart(5); |
| |
| } |
| |
| Finally: |
| jp_FINALLY Block |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| Primary: |
| PrimaryNoNewArray |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ArrayCreationExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| PrimaryNoNewArray: |
| Literal |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| jp_THIS |
| { |
| jpElementStart(1); |
| |
| } |
| | |
| jp_PARESTART Expression jp_PAREEND |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ClassInstanceCreationExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| FieldAccess |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| MethodInvocation |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ArrayAccess |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ClassInstanceCreationExpression: |
| New ClassType jp_PARESTART ArgumentListopt jp_PAREEND ClassBodyOpt |
| { |
| jpElementStart(6); |
| jpCheckEmpty(6); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ClassBodyOpt: |
| { |
| jpElementStart(0); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ClassBody |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ArgumentListopt: |
| { |
| jpElementStart(0); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ArgumentList |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ArgumentList: |
| Expression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ArgumentList jp_COMMA Expression |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ArrayCreationExpression: |
| New PrimitiveType DimExprs Dimsopt |
| { |
| jpElementStart(4); |
| jpCheckEmpty(4); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| New ClassOrInterfaceType DimExprs Dimsopt |
| { |
| jpElementStart(4); |
| jpCheckEmpty(4); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| New PrimitiveType Dims ArrayInitializer |
| { |
| jpElementStart(4); |
| jpCheckEmpty(4); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| New ClassOrInterfaceType Dims ArrayInitializer |
| { |
| jpElementStart(4); |
| jpCheckEmpty(4); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| Dimsopt: |
| { |
| jpElementStart(0); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| Dims |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| DimExprs: |
| DimExpr |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| DimExprs DimExpr |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| DimExpr: |
| jp_BRACKETSTART Expression jp_BRACKETEND |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| Dims: |
| jp_BRACKETSTART jp_BRACKETEND |
| { |
| jpElementStart(2); |
| |
| } |
| | |
| Dims jp_BRACKETSTART jp_BRACKETEND |
| { |
| jpElementStart(3); |
| |
| } |
| |
| FieldAccess: |
| Primary jp_DOT Identifier |
| { |
| jpElementStart(3); |
| yyGetParser->DeallocateParserType(&($<str>3)); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| jp_SUPER jp_DOT Identifier |
| { |
| jpElementStart(3); |
| yyGetParser->DeallocateParserType(&($<str>3)); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| jp_THIS jp_DOT Identifier |
| { |
| jpElementStart(3); |
| yyGetParser->DeallocateParserType(&($<str>3)); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| Primary jp_DOT jp_THIS |
| { |
| jpElementStart(3); |
| yyGetParser->DeallocateParserType(&($<str>3)); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| MethodInvocation: |
| Name jp_PARESTART ArgumentListopt jp_PAREEND |
| { |
| jpElementStart(4); |
| yyGetParser->DeallocateParserType(&($<str>1)); |
| jpCheckEmpty(4); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| Primary jp_DOT Identifier jp_PARESTART ArgumentListopt jp_PAREEND |
| { |
| jpElementStart(6); |
| yyGetParser->DeallocateParserType(&($<str>1)); |
| yyGetParser->DeallocateParserType(&($<str>3)); |
| jpCheckEmpty(6); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| jp_SUPER jp_DOT Identifier jp_PARESTART ArgumentListopt jp_PAREEND |
| { |
| jpElementStart(6); |
| yyGetParser->DeallocateParserType(&($<str>3)); |
| jpCheckEmpty(6); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| jp_THIS jp_DOT Identifier jp_PARESTART ArgumentListopt jp_PAREEND |
| { |
| jpElementStart(6); |
| yyGetParser->DeallocateParserType(&($<str>3)); |
| jpCheckEmpty(6); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ArrayAccess: |
| Name jp_BRACKETSTART Expression jp_BRACKETEND |
| { |
| jpElementStart(4); |
| yyGetParser->DeallocateParserType(&($<str>1)); |
| jpCheckEmpty(4); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| PrimaryNoNewArray jp_BRACKETSTART Expression jp_BRACKETEND |
| { |
| jpElementStart(4); |
| jpCheckEmpty(4); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| PostfixExpression: |
| Primary |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| Name |
| { |
| jpElementStart(1); |
| yyGetParser->DeallocateParserType(&($<str>1)); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ArrayType jp_DOT jp_CLASS |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| PostIncrementExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| PostDecrementExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| PostIncrementExpression: |
| PostfixExpression jp_PLUSPLUS |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| PostDecrementExpression: |
| PostfixExpression jp_MINUSMINUS |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| UnaryExpression: |
| PreIncrementExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| PreDecrementExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| jp_PLUS UnaryExpression |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| jp_MINUS UnaryExpression |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| UnaryExpressionNotPlusMinus |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| PreIncrementExpression: |
| jp_PLUSPLUS UnaryExpression |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| PreDecrementExpression: |
| jp_MINUSMINUS UnaryExpression |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| UnaryExpressionNotPlusMinus: |
| PostfixExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| jp_TILDE UnaryExpression |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| jp_EXCLAMATION UnaryExpression |
| { |
| jpElementStart(2); |
| jpCheckEmpty(2); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| CastExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| CastExpression: |
| jp_PARESTART PrimitiveType Dimsopt jp_PAREEND UnaryExpression |
| { |
| jpElementStart(5); |
| jpCheckEmpty(5); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| jp_PARESTART Expression jp_PAREEND UnaryExpressionNotPlusMinus |
| { |
| jpElementStart(4); |
| jpCheckEmpty(4); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| jp_PARESTART Name Dims jp_PAREEND UnaryExpressionNotPlusMinus |
| { |
| jpElementStart(5); |
| |
| } |
| |
| MultiplicativeExpression: |
| UnaryExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| MultiplicativeExpression jp_TIMES UnaryExpression |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| MultiplicativeExpression jp_DIVIDE UnaryExpression |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| MultiplicativeExpression jp_PERCENT UnaryExpression |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| AdditiveExpression: |
| MultiplicativeExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| AdditiveExpression jp_PLUS MultiplicativeExpression |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| AdditiveExpression jp_MINUS MultiplicativeExpression |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ShiftExpression: |
| AdditiveExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ShiftExpression jp_LTLT AdditiveExpression |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ShiftExpression jp_GTGT AdditiveExpression |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ShiftExpression jp_GTGTGT AdditiveExpression |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| RelationalExpression: |
| ShiftExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| RelationalExpression jp_LESSTHAN ShiftExpression |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| RelationalExpression jp_GREATER ShiftExpression |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| RelationalExpression jp_LTEQUALS ShiftExpression |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| RelationalExpression jp_GTEQUALS ShiftExpression |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| RelationalExpression jp_INSTANCEOF ReferenceType |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| EqualityExpression: |
| RelationalExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| EqualityExpression jp_EQUALSEQUALS RelationalExpression |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| EqualityExpression jp_EXCLAMATIONEQUALS RelationalExpression |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| AndExpression: |
| EqualityExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| AndExpression jp_AND EqualityExpression |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ExclusiveOrExpression: |
| AndExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ExclusiveOrExpression jp_CARROT AndExpression |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| InclusiveOrExpression: |
| ExclusiveOrExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| InclusiveOrExpression jp_PIPE ExclusiveOrExpression |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ConditionalAndExpression: |
| InclusiveOrExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ConditionalAndExpression jp_ANDAND InclusiveOrExpression |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ConditionalOrExpression: |
| ConditionalAndExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ConditionalOrExpression jp_PIPEPIPE ConditionalAndExpression |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ConditionalExpression: |
| ConditionalOrExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ConditionalOrExpression jp_QUESTION Expression jp_COLON ConditionalExpression |
| { |
| jpElementStart(5); |
| jpCheckEmpty(5); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| AssignmentExpression: |
| ConditionalExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| Assignment |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| Assignment: |
| LeftHandSide AssignmentOperator AssignmentExpression |
| { |
| jpElementStart(3); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| LeftHandSide: |
| Name |
| { |
| jpElementStart(1); |
| yyGetParser->DeallocateParserType(&($<str>1)); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| FieldAccess |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| ArrayAccess |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| AssignmentOperator: |
| jp_EQUALS |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| jp_TIMESEQUALS |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| jp_DIVIDEEQUALS |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| jp_PERCENTEQUALS |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| jp_PLUSEQUALS |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| jp_MINUSEQUALS |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| jp_LESLESEQUALS |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| jp_GTGTEQUALS |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| jp_GTGTGTEQUALS |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| jp_ANDEQUALS |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| jp_CARROTEQUALS |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| jp_PIPEEQUALS |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| Expression: |
| AssignmentExpression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| ConstantExpression: |
| Expression |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| New: |
| jp_NEW |
| { |
| jpElementStart(1); |
| jpCheckEmpty(1); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| | |
| Name jp_DOT jp_NEW |
| { |
| jpElementStart(3); |
| jpStoreClass($<str>1); |
| jpCheckEmpty(3); |
| $<str>$ = 0; |
| yyGetParser->SetCurrentCombine(""); |
| |
| } |
| |
| %% |
| /* End of grammar */ |
| |
| /*--------------------------------------------------------------------------*/ |
| void cmDependsJava_yyerror(yyscan_t yyscanner, const char* message) |
| { |
| yyGetParser->Error(message); |
| } |