diff options
author | Daniel Pfeifer <daniel@pfeifer-mail.de> | 2017-04-28 18:26:55 (GMT) |
---|---|---|
committer | Daniel Pfeifer <daniel@pfeifer-mail.de> | 2017-04-28 21:10:39 (GMT) |
commit | 9bad0dfccedcc1cd71ee2579486f6729cb9d7749 (patch) | |
tree | 254ca1652ef98e6a3d36024f675f05a2fe6ad1d4 /Source/cmDependsJavaParser.y | |
parent | 8927e913f780fa62c540063b8a5cfe0dcbfdd288 (diff) | |
download | CMake-9bad0dfccedcc1cd71ee2579486f6729cb9d7749.zip CMake-9bad0dfccedcc1cd71ee2579486f6729cb9d7749.tar.gz CMake-9bad0dfccedcc1cd71ee2579486f6729cb9d7749.tar.bz2 |
LexerParser: move to custom directory
Diffstat (limited to 'Source/cmDependsJavaParser.y')
-rw-r--r-- | Source/cmDependsJavaParser.y | 3215 |
1 files changed, 0 insertions, 3215 deletions
diff --git a/Source/cmDependsJavaParser.y b/Source/cmDependsJavaParser.y deleted file mode 100644 index 1137f39..0000000 --- a/Source/cmDependsJavaParser.y +++ /dev/null @@ -1,3215 +0,0 @@ -%{ -/* 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 --yacc --name-prefix=cmDependsJava_yy --defines=cmDependsJavaParserTokens.h -ocmDependsJavaParser.cxx cmDependsJavaParser.y - -Modify cmDependsJavaParser.cxx: - - "#if 0" out yyerrorlab block in range ["goto yyerrlab1", "yyerrlab1:"] - -*/ - -#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. */ -#include "cmDependsJavaParserTokens.h" /* Need YYSTYPE for YY_DECL. */ - -/* 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 -%} - -/* 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); -} - |