CMake/Source/cmDependsJavaParser.y

3227 lines
49 KiB
Plaintext
Raw Normal View History

2005-01-29 01:13:58 +03:00
%{
2009-10-02 01:21:28 +04:00
/*============================================================================
CMake - Cross Platform Makefile Generator
Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
2005-01-29 01:13:58 +03:00
2009-10-02 01:21:28 +04:00
Distributed under the OSI-approved BSD License (the "License");
see accompanying file Copyright.txt for details.
2005-01-29 01:13:58 +03:00
2009-10-02 01:21:28 +04:00
This software is distributed WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the License for more information.
============================================================================*/
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
- 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 __BORLANDC__
# pragma warn -8004 /* Variable assigned a value that is not used. */
# pragma warn -8008 /* condition always returns true */
# pragma warn -8060 /* possibly incorrect assignment */
# pragma warn -8066 /* unreachable code */
2005-01-29 01:13:58 +03:00
#endif
#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);
}