forked from JavaTX/JavaCompilerCore
Fehler im Parser behoben: castexpression und primitive Typen entfernt
This commit is contained in:
parent
21cf019ac4
commit
aa5bb3c073
File diff suppressed because it is too large
Load Diff
@ -44,7 +44,7 @@ void initUsedIdsToCheck() {
|
||||
}
|
||||
//PL 05-07-30 eingefuegt. ENDE
|
||||
|
||||
//LUAR 07-05-29 Anfang für Wildcard Test
|
||||
//LUAR 07-05-29 Anfang f<EFBFBD>r Wildcard Test
|
||||
public Menge<Pair> testPair = new Menge<Pair>();
|
||||
//LUAR 07-05-29 Ende
|
||||
%}
|
||||
@ -158,9 +158,11 @@ public Menge<Pair> testPair = new Menge<Pair>();
|
||||
%type <UsedId> interfacetype
|
||||
%type <InterfaceList> interfaces
|
||||
%type <InterfaceList> extendsinterfaces
|
||||
/*
|
||||
%type <BaseType> integraltype
|
||||
%type <BaseType> numerictype
|
||||
%type <BaseType> primitivetype
|
||||
*/
|
||||
%type <RefType> referencetype
|
||||
%type <RefType> classtypelist
|
||||
%type <Type> type
|
||||
@ -236,7 +238,7 @@ public Menge<Pair> testPair = new Menge<Pair>();
|
||||
%type <Block> constructorbody
|
||||
%type <Statement> explicitconstructorinvocation
|
||||
%type <Method> staticinitializer
|
||||
%type <CastExpr> castexpression
|
||||
// %type <CastExpr> castexpression // auskommentiert von Andreas Stadelmeier
|
||||
%type <ParaList> paralist
|
||||
%type <Menge> typelist parameter
|
||||
%type <WildcardType> wildcardparameter
|
||||
@ -712,7 +714,7 @@ classorinterfacetype : name parameter
|
||||
{
|
||||
if ($2 != null) {
|
||||
//$1.set_ParaList($2.get_ParaList());
|
||||
$1.set_ParaList($2);//Änderung von Andreas Stadelmeier. Type statt GenericVarType
|
||||
$1.set_ParaList($2);//<EFBFBD>nderung von Andreas Stadelmeier. Type statt GenericVarType
|
||||
/* otth: originale (also diese) Parameterliste retten */
|
||||
//((UsedId)$1).vParaOrg = new Menge<Type>( $2.get_ParaList() );
|
||||
}
|
||||
@ -743,7 +745,7 @@ typelist : type
|
||||
}
|
||||
|
||||
/* PL 05-07-28 erg<72>nzt, weil jeder classorinterfacetype auch parametrisiert sein kann */
|
||||
//TODO: Das hier ist möglicherweise falsch. Ein Typ hat keine parameterliste, nur eine Liste von RefTypes
|
||||
//TODO: Das hier ist m<EFBFBD>glicherweise falsch. Ein Typ hat keine parameterliste, nur eine Liste von RefTypes
|
||||
parameter : { $$ = null; }
|
||||
| '<' typelist '>' //'<'paralist'>'//typelist statt
|
||||
{
|
||||
@ -812,9 +814,9 @@ abstractmethoddeclaration : methodheader ';' ;
|
||||
|
||||
/*
|
||||
added by Andreas Stadelmeier, a10023
|
||||
Bei Lokalen Variablen ist eine initialisierung der Variablen während der Deklarisierung nicht erlaubt.
|
||||
Bei Lokalen Variablen ist eine initialisierung der Variablen w<EFBFBD>hrend der Deklarisierung nicht erlaubt.
|
||||
Beispiel: var = 2;
|
||||
Bei einer lokalen Variable lässt sich hier nicht ermitteln ob die Variable deklariert werden soll oder bereits deklariert wurde und ihr nur ein Wert zugewiesen werden soll.
|
||||
Bei einer lokalen Variable l<EFBFBD>sst sich hier nicht ermitteln ob die Variable deklariert werden soll oder bereits deklariert wurde und ihr nur ein Wert zugewiesen werden soll.
|
||||
Dieses Problem ist bei Feldern nicht der Fall.
|
||||
*/
|
||||
fielddeclarator :
|
||||
@ -860,7 +862,7 @@ fielddeclaration : type fielddeclarator ';'
|
||||
$$=$1;
|
||||
}
|
||||
| genericdeclarationlist type fielddeclarator ';'
|
||||
{//angefügt von Andreas Stadelmeier
|
||||
{//angef<EFBFBD>gt von Andreas Stadelmeier
|
||||
$3.setType($2);
|
||||
$3.setGenericParameter($1);
|
||||
$$=$3;
|
||||
@ -1161,15 +1163,7 @@ methodheader :genericdeclarationlist type methoddeclarator
|
||||
}
|
||||
|
||||
|
||||
type : primitivetype
|
||||
{
|
||||
$$=$1;
|
||||
}
|
||||
|primitivetype '[' ']'
|
||||
{
|
||||
$1.setArray(true);
|
||||
}
|
||||
|referencetype
|
||||
type : referencetype
|
||||
{
|
||||
$$=$1;
|
||||
}
|
||||
@ -1177,6 +1171,17 @@ type : primitivetype
|
||||
{
|
||||
$1.setArray(true);
|
||||
}
|
||||
/* auskommentiert von Andreas Stadelmeier
|
||||
|primitivetype
|
||||
{
|
||||
$$=$1;
|
||||
}
|
||||
|primitivetype '[' ']'
|
||||
{
|
||||
$1.setArray(true);
|
||||
}
|
||||
*/
|
||||
|
||||
variabledeclarators : variabledeclarator
|
||||
{
|
||||
FieldDeclaration IVD = new FieldDeclaration($1.getOffset());
|
||||
@ -1286,20 +1291,18 @@ methoddeclarator :IDENTIFIER '(' ')'
|
||||
$$ = met_para;
|
||||
}
|
||||
|
||||
/* auskommentiert von Andreas Stadelmeier
|
||||
primitivetype :BOOLEAN
|
||||
{
|
||||
BooleanType BT = new BooleanType(null);
|
||||
/* #JB# 05.04.2005 */
|
||||
/* ########################################################### */
|
||||
//BT.setName($1.getLexem());
|
||||
/* ########################################################### */
|
||||
$$=BT;
|
||||
}
|
||||
|
||||
|numerictype
|
||||
{
|
||||
$$=$1;
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
referencetype :classorinterfacetype
|
||||
{
|
||||
@ -1357,7 +1360,7 @@ formalparameter : type variabledeclaratorid
|
||||
{
|
||||
FormalParameter FP = new FormalParameter($2);
|
||||
FP.setType($1);
|
||||
//FP.set_DeclId($2); //auskommentiert von Andreas Stadelmeier. DeclId wird nun dem Konstruktor von FormalParameter übergeben.
|
||||
//FP.set_DeclId($2); //auskommentiert von Andreas Stadelmeier. DeclId wird nun dem Konstruktor von FormalParameter <EFBFBD>bergeben.
|
||||
$$=FP;
|
||||
}
|
||||
|
||||
@ -1408,11 +1411,12 @@ argumentlist : expression
|
||||
$1.expr.addElement($3);
|
||||
$$=$1;
|
||||
}
|
||||
|
||||
/* auskommentiert von Andreas Stadelmeier
|
||||
numerictype :integraltype
|
||||
{
|
||||
$$=$1;
|
||||
}
|
||||
*/
|
||||
|
||||
variabledeclaratorid : IDENTIFIER
|
||||
{
|
||||
@ -1469,24 +1473,18 @@ expression :assignmentexpression
|
||||
$$=$1;
|
||||
}
|
||||
|
||||
/* auskommentiert von Andreas Stadelmeier
|
||||
integraltype :INT
|
||||
{
|
||||
IntegerType IT = new IntegerType(null);
|
||||
/* #JB# 05.04.2005 */
|
||||
/* ########################################################### */
|
||||
//IT.setName($1.getLexem());
|
||||
/* ########################################################### */
|
||||
$$=IT;
|
||||
}
|
||||
| CHAR
|
||||
{
|
||||
CharacterType CT = new CharacterType(null);
|
||||
/* #JB# 05.04.2005 */
|
||||
/* ########################################################### */
|
||||
//CT.setName($1.getLexem());
|
||||
/* ########################################################### */
|
||||
$$=CT;
|
||||
}
|
||||
*/
|
||||
|
||||
localvariabledeclaration : type variabledeclarators
|
||||
{
|
||||
@ -1802,7 +1800,7 @@ conditionalorexpression : conditionalandexpression
|
||||
$$=LogOr;
|
||||
}
|
||||
|
||||
// LambdaExpression eingefügt von Andreas Stadelmeier, a10023:
|
||||
// LambdaExpression eingef<EFBFBD>gt von Andreas Stadelmeier, a10023:
|
||||
|
||||
lambdaassignmentoperator : LAMBDAASSIGNMENT
|
||||
{
|
||||
@ -2176,7 +2174,9 @@ unaryexpressionnotplusminus : postfixexpression {$$=$1;}
|
||||
NE.set_Expr($2);
|
||||
$$=NE;
|
||||
}
|
||||
/* auskommentiert von Andreas Stadelmeier
|
||||
| castexpression {$$=$1;}
|
||||
*/
|
||||
|
||||
exclusiveorexpression :andexpression {$$=$1;}
|
||||
| exclusiveorexpression '^' andexpression //{
|
||||
@ -2222,13 +2222,17 @@ literal : INTLITERAL {IntLiteral IL = new IntLiteral();
|
||||
$$=NN;
|
||||
}
|
||||
|
||||
castexpression : '(' primitivetype ')' unaryexpression
|
||||
/* auskommentiert von Andreas Stadelmeier
|
||||
//Anmerkung: Ursprünglich Stand hier: "castexpression : '(' primitivetype ')' unaryexpression"
|
||||
//Dies ist allerdings falsch. Der jetzige Stand führt jedoch zu reduce-Konflikt mit Lambda Expression
|
||||
castexpression : '(' type ')' unaryexpression
|
||||
{
|
||||
CastExpr CaEx=new CastExpr($4.getOffset(),$4.getVariableLength());
|
||||
CaEx.set_Type($2);
|
||||
CaEx.set_Expr($4);
|
||||
$$=CaEx;
|
||||
}
|
||||
*/
|
||||
//| '(' expression ')' unaryexpressionnotplusminus
|
||||
|
||||
andexpression :equalityexpression
|
||||
|
Loading…
Reference in New Issue
Block a user