CMake/Source/cmDependsJavaParser.y

3213 lines
48 KiB
Plaintext
Raw Normal View History

2005-01-29 01:13:58 +03:00
%{
Simplify CMake per-source license notices Per-source copyright/license notice headers that spell out copyright holder names and years are hard to maintain and often out-of-date or plain wrong. Precise contributor information is already maintained automatically by the version control tool. Ultimately it is the receiver of a file who is responsible for determining its licensing status, and per-source notices are merely a convenience. Therefore it is simpler and more accurate for each source to have a generic notice of the license name and references to more detailed information on copyright holders and full license terms. Our `Copyright.txt` file now contains a list of Contributors whose names appeared source-level copyright notices. It also references version control history for more precise information. Therefore we no longer need to spell out the list of Contributors in each source file notice. Replace CMake per-source copyright/license notice headers with a short description of the license and links to `Copyright.txt` and online information available from "https://cmake.org/licensing". The online URL also handles cases of modules being copied out of our source into other projects, so we can drop our notices about replacing links with full license text. Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority of the replacements mechanically. Manually fix up shebang lines and trailing newlines in a few files. Manually update the notices in a few files that the script does not handle.
2016-09-27 22:01:08 +03:00
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
2005-01-29 01:13:58 +03:00
/*
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:
2005-01-29 01:13:58 +03:00
- remove TABs
- remove use of the 'register' storage class specifier
- add __HP_aCC to the #if test for yyerrorlab warning suppression
2005-01-29 01:13:58 +03:00
*/
/* Configure the parser to use a lexer object. */
#define YYPARSE_PARAM yyscanner
#define YYLEX_PARAM yyscanner
#define YYERROR_VERBOSE 1
#define cmDependsJava_yyerror(x) \
cmDependsJavaError(yyscanner, x)
#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;
/* Internal utility functions. */
static void cmDependsJavaError(yyscan_t yyscanner, const char* message);
#define YYDEBUG 1
#define YYMAXDEPTH 1000000
2005-01-29 01:43:57 +03:00
#define jpCheckEmpty(cnt) yyGetParser->CheckEmpty(__LINE__, cnt, yyvsp);
#define jpElementStart(cnt) yyGetParser->PrepareElement(&yyval)
#define jpStoreClass(str) yyGetParser->AddClassFound(str); yyGetParser->DeallocateParserType(&(str))
2005-01-29 01:13:58 +03:00
/* Disable some warnings in the generated code. */
#ifdef _MSC_VER
# pragma warning (disable: 4102) /* Unused goto label. */
2005-01-29 01:24:45 +03:00
# pragma warning (disable: 4065) /* Switch statement contains default but no case. */
2005-01-29 01:13:58 +03:00
#endif
%}
/* Generate a reentrant parser object. */
%pure_parser
/*
%union {
char* string;
}
*/
/*-------------------------------------------------------------------------*/
/* Tokens */
2005-01-29 01:43:57 +03:00
%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
2005-01-29 01:13:58 +03:00
/*-------------------------------------------------------------------------*/
/* grammar */
%%
Goal:
CompilationUnit
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
Literal:
IntegerLiteral
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_FLOATINGPOINTLITERAL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_BOOLEANLITERAL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_CHARACTERLITERAL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_STRINGLITERAL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_NULLLITERAL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
IntegerLiteral:
2005-01-29 01:43:57 +03:00
jp_DECIMALINTEGERLITERAL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_HEXINTEGERLITERAL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
Type:
PrimitiveType
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
ReferenceType
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
PrimitiveType:
2005-01-29 01:43:57 +03:00
jp_BYTE_TYPE
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(0);
2005-01-29 01:13:58 +03:00
}
|
2005-01-29 01:43:57 +03:00
jp_SHORT_TYPE
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(0);
2005-01-29 01:13:58 +03:00
}
|
2005-01-29 01:43:57 +03:00
jp_INT_TYPE
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(0);
2005-01-29 01:13:58 +03:00
}
|
2005-01-29 01:43:57 +03:00
jp_LONG_TYPE
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(0);
2005-01-29 01:13:58 +03:00
}
|
2005-01-29 01:43:57 +03:00
jp_CHAR_TYPE
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(0);
2005-01-29 01:13:58 +03:00
}
|
2005-01-29 01:43:57 +03:00
jp_FLOAT_TYPE
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(0);
2005-01-29 01:13:58 +03:00
}
|
2005-01-29 01:43:57 +03:00
jp_DOUBLE_TYPE
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(0);
2005-01-29 01:13:58 +03:00
}
|
2005-01-29 01:43:57 +03:00
jp_BOOLEAN_TYPE
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(0);
2005-01-29 01:13:58 +03:00
}
ReferenceType:
ClassOrInterfaceType
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
ArrayType
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ClassOrInterfaceType:
Name
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpStoreClass($<str>1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ClassType:
ClassOrInterfaceType
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
InterfaceType:
ClassOrInterfaceType
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ArrayType:
PrimitiveType Dims
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
Name Dims
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpStoreClass($<str>1);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
Name:
SimpleName
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
2005-01-29 01:13:58 +03:00
$<str>$ = $<str>1;
}
|
QualifiedName
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
2005-01-29 01:13:58 +03:00
$<str>$ = $<str>1;
}
SimpleName:
Identifier
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
2005-01-29 01:13:58 +03:00
$<str>$ = $<str>1;
}
Identifier:
2005-01-29 01:43:57 +03:00
jp_NAME
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
2005-01-29 01:13:58 +03:00
$<str>$ = $<str>1;
}
|
2005-01-29 01:43:57 +03:00
jp_DOLLAR jp_NAME
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
2005-01-29 01:13:58 +03:00
$<str>$ = $<str>2;
}
QualifiedName:
2005-01-29 01:43:57 +03:00
Name jp_DOT Identifier
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
2005-01-29 01:13:58 +03:00
yyGetParser->AddClassFound($<str>1);
yyGetParser->UpdateCombine($<str>1, $<str>3);
yyGetParser->DeallocateParserType(&($<str>1));
$<str>$ = const_cast<char*>(yyGetParser->GetCurrentCombine());
}
|
2005-01-29 01:43:57 +03:00
Name jp_DOT jp_CLASS
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpStoreClass($<str>1);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
yyGetParser->SetCurrentCombine("");
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
Name jp_DOT jp_THIS
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpStoreClass($<str>1);
2005-01-29 01:13:58 +03:00
yyGetParser->SetCurrentCombine("");
2005-01-29 01:43:57 +03:00
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
SimpleType jp_DOT jp_CLASS
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
SimpleType:
PrimitiveType
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_VOID
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
CompilationUnit:
PackageDeclarationopt ImportDeclarations TypeDeclarations
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
PackageDeclarationopt:
{
2005-01-29 01:43:57 +03:00
jpElementStart(0);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
PackageDeclaration
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ImportDeclarations:
{
2005-01-29 01:43:57 +03:00
jpElementStart(0);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
ImportDeclarations ImportDeclaration
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
TypeDeclarations:
{
2005-01-29 01:43:57 +03:00
jpElementStart(0);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
TypeDeclarations TypeDeclaration
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
PackageDeclaration:
2005-01-29 01:43:57 +03:00
jp_PACKAGE Name jp_SEMICOL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
2005-01-29 01:13:58 +03:00
yyGetParser->SetCurrentPackage($<str>2);
yyGetParser->DeallocateParserType(&($<str>2));
yyGetParser->SetCurrentCombine("");
2005-01-29 01:43:57 +03:00
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ImportDeclaration:
SingleTypeImportDeclaration
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
TypeImportOnDemandDeclaration
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
SingleTypeImportDeclaration:
2005-01-29 01:43:57 +03:00
jp_IMPORT Name jp_SEMICOL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
2005-01-29 01:13:58 +03:00
yyGetParser->AddPackagesImport($<str>2);
yyGetParser->DeallocateParserType(&($<str>2));
yyGetParser->SetCurrentCombine("");
2005-01-29 01:43:57 +03:00
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
TypeImportOnDemandDeclaration:
2005-01-29 01:43:57 +03:00
jp_IMPORT Name jp_DOT jp_TIMES jp_SEMICOL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(5);
2005-01-29 01:13:58 +03:00
std::string str = $<str>2;
str += ".*";
yyGetParser->AddPackagesImport(str.c_str());
yyGetParser->DeallocateParserType(&($<str>2));
yyGetParser->SetCurrentCombine("");
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
TypeDeclaration:
ClassDeclaration
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
InterfaceDeclaration
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_SEMICOL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
Modifiers:
Modifier
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
Modifiers Modifier
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
Modifier:
2005-01-29 01:43:57 +03:00
jp_PUBLIC | jp_PROTECTED | jp_PRIVATE |
jp_STATIC |
jp_ABSTRACT | jp_FINAL | jp_NATIVE | jp_SYNCHRONIZED | jp_TRANSIENT | jp_VOLATILE |
jp_STRICTFP
2005-01-29 01:13:58 +03:00
ClassHeader:
2005-01-29 01:43:57 +03:00
Modifiersopt jp_CLASS Identifier
2005-01-29 01:13:58 +03:00
{
yyGetParser->StartClass($<str>3);
2005-01-29 01:43:57 +03:00
jpElementStart(3);
2005-01-29 01:13:58 +03:00
yyGetParser->DeallocateParserType(&($<str>3));
2005-01-29 01:43:57 +03:00
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
}
ClassDeclaration:
ClassHeader ClassBody
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
yyGetParser->EndClass();
}
|
ClassHeader Interfaces ClassBody
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
yyGetParser->EndClass();
}
|
ClassHeader Super ClassBody
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
yyGetParser->EndClass();
}
|
ClassHeader Super Interfaces ClassBody
{
2005-01-29 01:43:57 +03:00
jpElementStart(4);
jpCheckEmpty(4);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
yyGetParser->EndClass();
}
Modifiersopt:
{
2005-01-29 01:43:57 +03:00
jpElementStart(0);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
Modifiers
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
Super:
2005-01-29 01:43:57 +03:00
jp_EXTENDS ClassType
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
Interfaces:
2005-01-29 01:43:57 +03:00
jp_IMPLEMENTS InterfaceTypeList
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
InterfaceTypeList:
InterfaceType
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
InterfaceTypeList jp_COMMA InterfaceType
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ClassBody:
2005-01-29 01:43:57 +03:00
jp_CURLYSTART ClassBodyDeclarations jp_CURLYEND
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ClassBodyDeclarations:
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
ClassBodyDeclarations ClassBodyDeclaration
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ClassBodyDeclaration:
ClassMemberDeclaration
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
StaticInitializer
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
ConstructorDeclaration
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
TypeDeclaration
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ClassMemberDeclaration:
FieldDeclaration
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
MethodDeclaration
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
FieldDeclaration:
2005-01-29 01:43:57 +03:00
Modifiersopt Type VariableDeclarators jp_SEMICOL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(4);
2005-01-29 01:13:58 +03:00
}
VariableDeclarators:
VariableDeclarator
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
VariableDeclarators jp_COMMA VariableDeclarator
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
VariableDeclarator:
VariableDeclaratorId
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
VariableDeclaratorId jp_EQUALS VariableInitializer
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
VariableDeclaratorId:
Identifier
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
2005-01-29 01:13:58 +03:00
yyGetParser->DeallocateParserType(&($<str>1));
2005-01-29 01:43:57 +03:00
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
VariableDeclaratorId jp_BRACKETSTART jp_BRACKETEND
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
VariableInitializer:
Expression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
ArrayInitializer
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
MethodDeclaration:
2005-01-29 01:43:57 +03:00
MethodHeader jp_SEMICOL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
MethodHeader MethodBody
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
MethodHeader MethodBody jp_SEMICOL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
MethodHeader:
Modifiersopt Type MethodDeclarator Throwsopt
{
2005-01-29 01:43:57 +03:00
jpElementStart(4);
jpCheckEmpty(4);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
Modifiersopt jp_VOID MethodDeclarator Throwsopt
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(4);
jpCheckEmpty(4);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
Throwsopt:
{
2005-01-29 01:43:57 +03:00
jpElementStart(0);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
Throws
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
MethodDeclarator:
2005-01-29 01:43:57 +03:00
Identifier jp_PARESTART FormalParameterListopt jp_PAREEND
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(4);
2005-01-29 01:13:58 +03:00
yyGetParser->DeallocateParserType(&($<str>1));
2005-01-29 01:43:57 +03:00
jpCheckEmpty(4);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
MethodDeclarator jp_BRACKETSTART jp_BRACKETEND
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
2005-01-29 01:13:58 +03:00
}
FormalParameterListopt:
{
2005-01-29 01:43:57 +03:00
jpElementStart(0);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
FormalParameterList
FormalParameterList:
FormalParameter
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
2005-01-29 01:13:58 +03:00
}
|
2005-01-29 01:43:57 +03:00
FormalParameterList jp_COMMA FormalParameter
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
FormalParameter:
Modifiersopt Type VariableDeclaratorId
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
Throws:
2005-01-29 01:43:57 +03:00
jp_THROWS ClassTypeList
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ClassTypeList:
ClassType
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
2005-01-29 01:13:58 +03:00
}
|
2005-01-29 01:43:57 +03:00
ClassTypeList jp_COMMA ClassType
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
MethodBody:
Block
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
StaticInitializer:
2005-01-29 01:43:57 +03:00
jp_STATIC Block
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ConstructorDeclaration:
Modifiersopt ConstructorDeclarator Throwsopt ConstructorBody
{
2005-01-29 01:43:57 +03:00
jpElementStart(4);
jpCheckEmpty(4);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
Modifiersopt ConstructorDeclarator Throwsopt ConstructorBody jp_SEMICOL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(5);
jpCheckEmpty(5);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ConstructorDeclarator:
2005-01-29 01:43:57 +03:00
SimpleName jp_PARESTART FormalParameterListopt jp_PAREEND
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(4);
2005-01-29 01:13:58 +03:00
yyGetParser->DeallocateParserType(&($<str>1));
2005-01-29 01:43:57 +03:00
jpCheckEmpty(4);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ConstructorBody:
2005-01-29 01:43:57 +03:00
jp_CURLYSTART ExplicitConstructorInvocationopt BlockStatementsopt jp_CURLYEND
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(4);
jpCheckEmpty(4);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ExplicitConstructorInvocationopt:
{
2005-01-29 01:43:57 +03:00
jpElementStart(0);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
ExplicitConstructorInvocationopt ExplicitConstructorInvocation
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ExplicitConstructorInvocation:
2005-01-29 01:43:57 +03:00
jp_THIS jp_PARESTART ArgumentListopt jp_PAREEND jp_SEMICOL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(5);
jpCheckEmpty(5);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_SUPER jp_PARESTART ArgumentListopt jp_PAREEND jp_SEMICOL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(5);
jpCheckEmpty(5);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
InterfaceHeader:
2005-01-29 01:43:57 +03:00
Modifiersopt jp_INTERFACE Identifier
2005-01-29 01:13:58 +03:00
{
yyGetParser->StartClass($<str>3);
2005-01-29 01:43:57 +03:00
jpElementStart(3);
2005-01-29 01:13:58 +03:00
yyGetParser->DeallocateParserType(&($<str>3));
2005-01-29 01:43:57 +03:00
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
}
InterfaceDeclaration:
InterfaceHeader ExtendsInterfacesopt InterfaceBody
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
yyGetParser->EndClass();
}
ExtendsInterfacesopt:
{
2005-01-29 01:43:57 +03:00
jpElementStart(0);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
ExtendsInterfaces
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ExtendsInterfaces:
2005-01-29 01:43:57 +03:00
jp_EXTENDS InterfaceType
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
ExtendsInterfaces jp_COMMA InterfaceType
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
InterfaceBody:
2005-01-29 01:43:57 +03:00
jp_CURLYSTART InterfaceMemberDeclarations jp_CURLYEND
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
InterfaceMemberDeclarations:
{
2005-01-29 01:43:57 +03:00
jpElementStart(0);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
InterfaceMemberDeclarations InterfaceMemberDeclaration
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
InterfaceMemberDeclaration:
ConstantDeclaration
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
AbstractMethodDeclaration
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
ClassDeclaration
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
ClassDeclaration jp_SEMICOL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
InterfaceDeclaration
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
InterfaceDeclaration jp_SEMICOL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ConstantDeclaration:
FieldDeclaration
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
AbstractMethodDeclaration:
MethodHeader Semicols
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
Semicols:
2005-01-29 01:43:57 +03:00
jp_SEMICOL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
Semicols jp_SEMICOL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ArrayInitializer:
2005-01-29 01:43:57 +03:00
jp_CURLYSTART VariableInitializersOptional jp_CURLYEND
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
VariableInitializersOptional:
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
VariableInitializers
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
VariableInitializers jp_COMMA
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
VariableInitializers:
VariableInitializer
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
VariableInitializers jp_COMMA VariableInitializer
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
Block:
2005-01-29 01:43:57 +03:00
jp_CURLYSTART BlockStatementsopt jp_CURLYEND
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(4);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
BlockStatementsopt:
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
BlockStatements
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
BlockStatements:
BlockStatement
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
BlockStatements BlockStatement
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
BlockStatement:
LocalVariableDeclarationStatement
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
Statement
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
ClassDeclaration
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
LocalVariableDeclarationStatement:
2005-01-29 01:43:57 +03:00
LocalVariableDeclaration jp_SEMICOL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
LocalVariableDeclaration:
Modifiers Type VariableDeclarators
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
Type VariableDeclarators
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
Statement:
StatementWithoutTrailingSubstatement
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
LabeledStatement
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
IfThenStatement
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
IfThenElseStatement
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
WhileStatement
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
ForStatement
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
StatementNoShortIf:
StatementWithoutTrailingSubstatement
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
LabeledStatementNoShortIf
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
IfThenElseStatementNoShortIf
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
WhileStatementNoShortIf
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
ForStatementNoShortIf
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
StatementWithoutTrailingSubstatement:
Block
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
EmptyStatement
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
ExpressionStatement
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
SwitchStatement
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
DoStatement
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
BreakStatement
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
ContinueStatement
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
ReturnStatement
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
SynchronizedStatement
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
ThrowStatement
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
TryStatement
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
AssertStatement
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
EmptyStatement:
2005-01-29 01:43:57 +03:00
jp_SEMICOL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
LabeledStatement:
2005-01-29 01:43:57 +03:00
Identifier jp_COLON Statement
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
2005-01-29 01:13:58 +03:00
yyGetParser->DeallocateParserType(&($<str>1));
2005-01-29 01:43:57 +03:00
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
LabeledStatementNoShortIf:
2005-01-29 01:43:57 +03:00
Identifier jp_COLON StatementNoShortIf
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ExpressionStatement:
2005-01-29 01:43:57 +03:00
StatementExpression jp_SEMICOL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
StatementExpression:
Assignment
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
PreIncrementExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
PreDecrementExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
PostIncrementExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
PostDecrementExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
MethodInvocation
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
ClassInstanceCreationExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
IfThenStatement:
2005-01-29 01:43:57 +03:00
jp_IF jp_PARESTART Expression jp_PAREEND Statement
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(5);
jpCheckEmpty(5);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
IfThenElseStatement:
2005-01-29 01:43:57 +03:00
jp_IF jp_PARESTART Expression jp_PAREEND StatementNoShortIf jp_ELSE Statement
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(7);
jpCheckEmpty(7);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
IfThenElseStatementNoShortIf:
2005-01-29 01:43:57 +03:00
jp_IF jp_PARESTART Expression jp_PAREEND StatementNoShortIf jp_ELSE StatementNoShortIf
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(7);
jpCheckEmpty(7);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
SwitchStatement:
2005-01-29 01:43:57 +03:00
jp_SWITCH jp_PARESTART Expression jp_PAREEND SwitchBlock
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(5);
2005-01-29 01:13:58 +03:00
}
SwitchBlock:
2005-01-29 01:43:57 +03:00
jp_CURLYSTART SwitchBlockStatementGroups SwitchLabelsopt jp_CURLYEND
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(4);
2005-01-29 01:13:58 +03:00
}
SwitchLabelsopt:
{
2005-01-29 01:43:57 +03:00
jpElementStart(0);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
SwitchLabels
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
SwitchBlockStatementGroups:
{
2005-01-29 01:43:57 +03:00
jpElementStart(0);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
SwitchBlockStatementGroups SwitchBlockStatementGroup
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
SwitchBlockStatementGroup:
SwitchLabels BlockStatements
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
SwitchLabels:
SwitchLabel
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
SwitchLabels SwitchLabel
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
SwitchLabel:
2005-01-29 01:43:57 +03:00
jp_CASE ConstantExpression jp_COLON
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_DEFAULT jp_COLON
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
WhileStatement:
2005-01-29 01:43:57 +03:00
jp_WHILE jp_PARESTART Expression jp_PAREEND Statement
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(5);
2005-01-29 01:13:58 +03:00
}
WhileStatementNoShortIf:
2005-01-29 01:43:57 +03:00
jp_WHILE jp_PARESTART Expression jp_PAREEND StatementNoShortIf
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(5);
2005-01-29 01:13:58 +03:00
}
DoStatement:
2005-01-29 01:43:57 +03:00
jp_DO Statement jp_WHILE jp_PARESTART Expression jp_PAREEND jp_SEMICOL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(7);
2005-01-29 01:13:58 +03:00
}
ForStatement:
2005-01-29 01:43:57 +03:00
jp_FOR jp_PARESTART ForInitopt jp_SEMICOL Expressionopt jp_SEMICOL ForUpdateopt jp_PAREEND
2005-01-29 01:13:58 +03:00
Statement
{
2005-01-29 01:43:57 +03:00
jpElementStart(9);
2005-01-29 01:13:58 +03:00
}
ForUpdateopt:
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
ForUpdate
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ForInitopt:
{
2005-01-29 01:43:57 +03:00
jpElementStart(0);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
ForInit
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ForStatementNoShortIf:
2005-01-29 01:43:57 +03:00
jp_FOR jp_PARESTART ForInitopt jp_SEMICOL Expressionopt jp_SEMICOL ForUpdateopt jp_PAREEND
2005-01-29 01:13:58 +03:00
StatementNoShortIf
{
2005-01-29 01:43:57 +03:00
jpElementStart(9);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
Expressionopt:
{
2005-01-29 01:43:57 +03:00
jpElementStart(0);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
Expression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ForInit:
StatementExpressionList
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
LocalVariableDeclaration
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ForUpdate:
StatementExpressionList
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
StatementExpressionList:
StatementExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
StatementExpressionList jp_COMMA StatementExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
AssertStatement:
2005-01-29 01:43:57 +03:00
jp_ASSERT Expression jp_SEMICOL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_ASSERT Expression jp_COLON Expression jp_SEMICOL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(5);
jpCheckEmpty(5);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
BreakStatement:
2005-01-29 01:43:57 +03:00
jp_BREAK Identifieropt jp_SEMICOL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
2005-01-29 01:13:58 +03:00
yyGetParser->DeallocateParserType(&($<str>2));
2005-01-29 01:43:57 +03:00
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
Identifieropt:
{
2005-01-29 01:43:57 +03:00
jpElementStart(0);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
Identifier
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
2005-01-29 01:13:58 +03:00
}
ContinueStatement:
2005-01-29 01:43:57 +03:00
jp_CONTINUE Identifieropt jp_SEMICOL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
2005-01-29 01:13:58 +03:00
yyGetParser->DeallocateParserType(&($<str>2));
2005-01-29 01:43:57 +03:00
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ReturnStatement:
2005-01-29 01:43:57 +03:00
jp_RETURN Expressionopt jp_SEMICOL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ThrowStatement:
2005-01-29 01:43:57 +03:00
jp_THROW Expression jp_SEMICOL
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
SynchronizedStatement:
2005-01-29 01:43:57 +03:00
jp_SYNCHRONIZED jp_PARESTART Expression jp_PAREEND Block
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(5);
jpCheckEmpty(5);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
TryStatement:
2005-01-29 01:43:57 +03:00
jp_TRY Block Catches
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_TRY Block Catchesopt Finally
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(4);
jpCheckEmpty(4);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
Catchesopt:
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
Catches
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
Catches:
CatchClause
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
Catches CatchClause
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
CatchClause:
2005-01-29 01:43:57 +03:00
jp_CATCH jp_PARESTART FormalParameter jp_PAREEND Block
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(5);
2005-01-29 01:13:58 +03:00
}
Finally:
2005-01-29 01:43:57 +03:00
jp_FINALLY Block
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
Primary:
PrimaryNoNewArray
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
ArrayCreationExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
PrimaryNoNewArray:
Literal
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_THIS
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
2005-01-29 01:13:58 +03:00
}
|
2005-01-29 01:43:57 +03:00
jp_PARESTART Expression jp_PAREEND
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
ClassInstanceCreationExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
FieldAccess
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
MethodInvocation
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
ArrayAccess
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ClassInstanceCreationExpression:
2005-01-29 01:43:57 +03:00
New ClassType jp_PARESTART ArgumentListopt jp_PAREEND ClassBodyOpt
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(6);
jpCheckEmpty(6);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ClassBodyOpt:
{
2005-01-29 01:43:57 +03:00
jpElementStart(0);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
ClassBody
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ArgumentListopt:
{
2005-01-29 01:43:57 +03:00
jpElementStart(0);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
ArgumentList
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ArgumentList:
Expression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
ArgumentList jp_COMMA Expression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ArrayCreationExpression:
New PrimitiveType DimExprs Dimsopt
{
2005-01-29 01:43:57 +03:00
jpElementStart(4);
jpCheckEmpty(4);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
New ClassOrInterfaceType DimExprs Dimsopt
{
2005-01-29 01:43:57 +03:00
jpElementStart(4);
jpCheckEmpty(4);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
New PrimitiveType Dims ArrayInitializer
{
2005-01-29 01:43:57 +03:00
jpElementStart(4);
jpCheckEmpty(4);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
New ClassOrInterfaceType Dims ArrayInitializer
{
2005-01-29 01:43:57 +03:00
jpElementStart(4);
jpCheckEmpty(4);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
Dimsopt:
{
2005-01-29 01:43:57 +03:00
jpElementStart(0);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
Dims
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
DimExprs:
DimExpr
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
DimExprs DimExpr
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
DimExpr:
2005-01-29 01:43:57 +03:00
jp_BRACKETSTART Expression jp_BRACKETEND
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
Dims:
2005-01-29 01:43:57 +03:00
jp_BRACKETSTART jp_BRACKETEND
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
2005-01-29 01:13:58 +03:00
}
|
2005-01-29 01:43:57 +03:00
Dims jp_BRACKETSTART jp_BRACKETEND
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
2005-01-29 01:13:58 +03:00
}
FieldAccess:
2005-01-29 01:43:57 +03:00
Primary jp_DOT Identifier
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
2005-01-29 01:13:58 +03:00
yyGetParser->DeallocateParserType(&($<str>3));
2005-01-29 01:43:57 +03:00
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_SUPER jp_DOT Identifier
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
2005-01-29 01:13:58 +03:00
yyGetParser->DeallocateParserType(&($<str>3));
2005-01-29 01:43:57 +03:00
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_THIS jp_DOT Identifier
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
2005-01-29 01:13:58 +03:00
yyGetParser->DeallocateParserType(&($<str>3));
2005-01-29 01:43:57 +03:00
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
Primary jp_DOT jp_THIS
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
2005-01-29 01:13:58 +03:00
yyGetParser->DeallocateParserType(&($<str>3));
2005-01-29 01:43:57 +03:00
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
MethodInvocation:
2005-01-29 01:43:57 +03:00
Name jp_PARESTART ArgumentListopt jp_PAREEND
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(4);
2005-01-29 01:13:58 +03:00
yyGetParser->DeallocateParserType(&($<str>1));
2005-01-29 01:43:57 +03:00
jpCheckEmpty(4);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
Primary jp_DOT Identifier jp_PARESTART ArgumentListopt jp_PAREEND
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(6);
2005-01-29 01:13:58 +03:00
yyGetParser->DeallocateParserType(&($<str>1));
yyGetParser->DeallocateParserType(&($<str>3));
2005-01-29 01:43:57 +03:00
jpCheckEmpty(6);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_SUPER jp_DOT Identifier jp_PARESTART ArgumentListopt jp_PAREEND
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(6);
2005-01-29 01:13:58 +03:00
yyGetParser->DeallocateParserType(&($<str>3));
2005-01-29 01:43:57 +03:00
jpCheckEmpty(6);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_THIS jp_DOT Identifier jp_PARESTART ArgumentListopt jp_PAREEND
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(6);
2005-01-29 01:13:58 +03:00
yyGetParser->DeallocateParserType(&($<str>3));
2005-01-29 01:43:57 +03:00
jpCheckEmpty(6);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ArrayAccess:
2005-01-29 01:43:57 +03:00
Name jp_BRACKETSTART Expression jp_BRACKETEND
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(4);
2005-01-29 01:13:58 +03:00
yyGetParser->DeallocateParserType(&($<str>1));
2005-01-29 01:43:57 +03:00
jpCheckEmpty(4);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
PrimaryNoNewArray jp_BRACKETSTART Expression jp_BRACKETEND
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(4);
jpCheckEmpty(4);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
PostfixExpression:
Primary
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
Name
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
2005-01-29 01:13:58 +03:00
yyGetParser->DeallocateParserType(&($<str>1));
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
ArrayType jp_DOT jp_CLASS
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
PostIncrementExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
PostDecrementExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
PostIncrementExpression:
2005-01-29 01:43:57 +03:00
PostfixExpression jp_PLUSPLUS
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
PostDecrementExpression:
2005-01-29 01:43:57 +03:00
PostfixExpression jp_MINUSMINUS
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
UnaryExpression:
PreIncrementExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
PreDecrementExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_PLUS UnaryExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_MINUS UnaryExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
UnaryExpressionNotPlusMinus
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
PreIncrementExpression:
2005-01-29 01:43:57 +03:00
jp_PLUSPLUS UnaryExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
PreDecrementExpression:
2005-01-29 01:43:57 +03:00
jp_MINUSMINUS UnaryExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
UnaryExpressionNotPlusMinus:
PostfixExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_TILDE UnaryExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_EXCLAMATION UnaryExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(2);
jpCheckEmpty(2);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
CastExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
CastExpression:
2005-01-29 01:43:57 +03:00
jp_PARESTART PrimitiveType Dimsopt jp_PAREEND UnaryExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(5);
jpCheckEmpty(5);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_PARESTART Expression jp_PAREEND UnaryExpressionNotPlusMinus
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(4);
jpCheckEmpty(4);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_PARESTART Name Dims jp_PAREEND UnaryExpressionNotPlusMinus
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(5);
2005-01-29 01:13:58 +03:00
}
MultiplicativeExpression:
UnaryExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
MultiplicativeExpression jp_TIMES UnaryExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
MultiplicativeExpression jp_DIVIDE UnaryExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
MultiplicativeExpression jp_PERCENT UnaryExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
AdditiveExpression:
MultiplicativeExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
AdditiveExpression jp_PLUS MultiplicativeExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
AdditiveExpression jp_MINUS MultiplicativeExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ShiftExpression:
AdditiveExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
ShiftExpression jp_LTLT AdditiveExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
ShiftExpression jp_GTGT AdditiveExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
ShiftExpression jp_GTGTGT AdditiveExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
RelationalExpression:
ShiftExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
RelationalExpression jp_LESSTHAN ShiftExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
RelationalExpression jp_GREATER ShiftExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
RelationalExpression jp_LTEQUALS ShiftExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
RelationalExpression jp_GTEQUALS ShiftExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
RelationalExpression jp_INSTANCEOF ReferenceType
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
EqualityExpression:
RelationalExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
EqualityExpression jp_EQUALSEQUALS RelationalExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
EqualityExpression jp_EXCLAMATIONEQUALS RelationalExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
AndExpression:
EqualityExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
AndExpression jp_AND EqualityExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ExclusiveOrExpression:
AndExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
ExclusiveOrExpression jp_CARROT AndExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
InclusiveOrExpression:
ExclusiveOrExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
InclusiveOrExpression jp_PIPE ExclusiveOrExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ConditionalAndExpression:
InclusiveOrExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
ConditionalAndExpression jp_ANDAND InclusiveOrExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ConditionalOrExpression:
ConditionalAndExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
ConditionalOrExpression jp_PIPEPIPE ConditionalAndExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ConditionalExpression:
ConditionalOrExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
ConditionalOrExpression jp_QUESTION Expression jp_COLON ConditionalExpression
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(5);
jpCheckEmpty(5);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
AssignmentExpression:
ConditionalExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
Assignment
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
Assignment:
LeftHandSide AssignmentOperator AssignmentExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
LeftHandSide:
Name
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
2005-01-29 01:13:58 +03:00
yyGetParser->DeallocateParserType(&($<str>1));
2005-01-29 01:43:57 +03:00
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
FieldAccess
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
ArrayAccess
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
AssignmentOperator:
2005-01-29 01:43:57 +03:00
jp_EQUALS
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_TIMESEQUALS
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_DIVIDEEQUALS
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_PERCENTEQUALS
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_PLUSEQUALS
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_MINUSEQUALS
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_LESLESEQUALS
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_GTGTEQUALS
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_GTGTGTEQUALS
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_ANDEQUALS
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_CARROTEQUALS
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
jp_PIPEEQUALS
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
Expression:
AssignmentExpression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
ConstantExpression:
Expression
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
New:
2005-01-29 01:43:57 +03:00
jp_NEW
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(1);
jpCheckEmpty(1);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
|
2005-01-29 01:43:57 +03:00
Name jp_DOT jp_NEW
2005-01-29 01:13:58 +03:00
{
2005-01-29 01:43:57 +03:00
jpElementStart(3);
jpStoreClass($<str>1);
jpCheckEmpty(3);
2005-01-29 01:13:58 +03:00
$<str>$ = 0;
yyGetParser->SetCurrentCombine("");
}
%%
/* End of grammar */
/*--------------------------------------------------------------------------*/
void cmDependsJavaError(yyscan_t yyscanner, const char* message)
{
yyGetParser->Error(message);
}