Felder (Field) müssen nun immer mit einem Offset initialisiert werden. Fehler behoben. Parser modifiziert. VariableTypeInsertTest läuft erfolgreich
This commit is contained in:
parent
1872b8aac4
commit
4786345f7b
@ -821,7 +821,7 @@ classmemberdeclaration : fielddeclaration
|
|||||||
|
|
||||||
staticinitializer : STATIC block
|
staticinitializer : STATIC block
|
||||||
{
|
{
|
||||||
Method STAT = new Method();
|
Method STAT = new Method($1.getOffset());
|
||||||
DeclId DST = new DeclId();
|
DeclId DST = new DeclId();
|
||||||
DST.set_Name($1.getLexem());
|
DST.set_Name($1.getLexem());
|
||||||
STAT.set_DeclId(DST);
|
STAT.set_DeclId(DST);
|
||||||
@ -869,7 +869,7 @@ Dieses Problem ist bei Feldern nicht der Fall.
|
|||||||
*/
|
*/
|
||||||
fielddeclarator : variabledeclarator '=' expression
|
fielddeclarator : variabledeclarator '=' expression
|
||||||
{
|
{
|
||||||
FieldDeclaration ret = new FieldDeclaration();
|
FieldDeclaration ret = new FieldDeclaration($1.getOffset());
|
||||||
ret.set_DeclId($1);
|
ret.set_DeclId($1);
|
||||||
ret.setWert($3);
|
ret.setWert($3);
|
||||||
$$=ret;
|
$$=ret;
|
||||||
@ -1197,8 +1197,9 @@ type : primitivetype
|
|||||||
}
|
}
|
||||||
variabledeclarators : variabledeclarator
|
variabledeclarators : variabledeclarator
|
||||||
{
|
{
|
||||||
FieldDeclaration IVD = new FieldDeclaration();
|
FieldDeclaration IVD = new FieldDeclaration($1.getOffset());
|
||||||
IVD.getDeclIdVector().addElement( $1 );
|
IVD.getDeclIdVector().addElement( $1 );
|
||||||
|
IVD.setOffset($1.getOffset());
|
||||||
$$ = IVD;
|
$$ = IVD;
|
||||||
}
|
}
|
||||||
| variabledeclarators ',' variabledeclarator
|
| variabledeclarators ',' variabledeclarator
|
||||||
@ -1267,7 +1268,7 @@ classtypelist : classtype
|
|||||||
|
|
||||||
methoddeclarator :IDENTIFIER '(' ')'
|
methoddeclarator :IDENTIFIER '(' ')'
|
||||||
{
|
{
|
||||||
Method met = new Method();
|
Method met = new Method($1.getOffset());
|
||||||
/* #JB# 10.04.2005 */
|
/* #JB# 10.04.2005 */
|
||||||
/* ########################################################### */
|
/* ########################################################### */
|
||||||
met.setLineNumber($1.getLineNumber());
|
met.setLineNumber($1.getLineNumber());
|
||||||
@ -1280,7 +1281,7 @@ methoddeclarator :IDENTIFIER '(' ')'
|
|||||||
}
|
}
|
||||||
|IDENTIFIER '(' formalparameterlist ')'
|
|IDENTIFIER '(' formalparameterlist ')'
|
||||||
{
|
{
|
||||||
Method met_para = new Method();
|
Method met_para = new Method($1.getOffset());
|
||||||
/* #JB# 10.04.2005 */
|
/* #JB# 10.04.2005 */
|
||||||
/* ########################################################### */
|
/* ########################################################### */
|
||||||
met_para.setLineNumber($1.getLineNumber());
|
met_para.setLineNumber($1.getLineNumber());
|
||||||
|
@ -50,10 +50,12 @@ public class Constant extends Method
|
|||||||
// ino.end
|
// ino.end
|
||||||
|
|
||||||
// ino.method.Constant.23228.definition
|
// ino.method.Constant.23228.definition
|
||||||
|
@Deprecated
|
||||||
public Constant(String name, Modifiers mod)
|
public Constant(String name, Modifiers mod)
|
||||||
// ino.end
|
// ino.end
|
||||||
// ino.method.Constant.23228.body
|
// ino.method.Constant.23228.body
|
||||||
{
|
{
|
||||||
|
super(0); //Nur ein Workaraound. Da Constant = Deprecated
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.mod = mod;
|
this.mod = mod;
|
||||||
}
|
}
|
||||||
|
@ -26,11 +26,13 @@ public class Constructor extends Method {
|
|||||||
* Diese Klasse beherbegt den als Methode geparsten Konstruktor und wandelt sein verhalten zu dem eines Konstruktors ab.
|
* Diese Klasse beherbegt den als Methode geparsten Konstruktor und wandelt sein verhalten zu dem eines Konstruktors ab.
|
||||||
*/
|
*/
|
||||||
public Constructor(Method methode){
|
public Constructor(Method methode){
|
||||||
|
super(methode.getOffset());
|
||||||
this.methode = methode;
|
this.methode = methode;
|
||||||
this.setDeclIdVector(methode.getDeclIdVector());
|
this.setDeclIdVector(methode.getDeclIdVector());
|
||||||
this.methode.setType(new RefType(this.methode.getParentClass().getName(),0));
|
this.methode.setType(new RefType(this.methode.getParentClass().getName(),0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setGenericMethodParameters(
|
public void setGenericMethodParameters(
|
||||||
Vector<GenericTypeVar> genericMethodParameters) {
|
Vector<GenericTypeVar> genericMethodParameters) {
|
||||||
|
@ -22,6 +22,10 @@ public abstract class Field extends SyntaxTreeNode implements TypeInsertable, Ty
|
|||||||
|
|
||||||
private int offset;
|
private int offset;
|
||||||
|
|
||||||
|
public Field(int offset){
|
||||||
|
this.offset = offset;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setOffset(int offset){
|
public void setOffset(int offset){
|
||||||
this.offset = offset;
|
this.offset = offset;
|
||||||
|
@ -29,6 +29,10 @@ public class FieldDeclaration extends Field{
|
|||||||
private Expr wert;
|
private Expr wert;
|
||||||
//private Type type;
|
//private Type type;
|
||||||
|
|
||||||
|
public FieldDeclaration(int offset){
|
||||||
|
super(offset);
|
||||||
|
}
|
||||||
|
|
||||||
public void setWert(Expr initialExpression){
|
public void setWert(Expr initialExpression){
|
||||||
this.wert = initialExpression;
|
this.wert = initialExpression;
|
||||||
}
|
}
|
||||||
|
@ -100,6 +100,10 @@ public class Method extends Field implements ITypeReplacementListener, IItemWith
|
|||||||
protected static Logger parserlog = Logger.getLogger("parser");
|
protected static Logger parserlog = Logger.getLogger("parser");
|
||||||
// ino.end
|
// ino.end
|
||||||
|
|
||||||
|
public Method(int offset){
|
||||||
|
super(offset);
|
||||||
|
}
|
||||||
|
|
||||||
// ino.method.setGenericMethodParameters.23521.definition
|
// ino.method.setGenericMethodParameters.23521.definition
|
||||||
public void setGenericMethodParameters(Vector<GenericTypeVar> genericMethodParameters)
|
public void setGenericMethodParameters(Vector<GenericTypeVar> genericMethodParameters)
|
||||||
// ino.end
|
// ino.end
|
||||||
@ -684,7 +688,7 @@ public class Method extends Field implements ITypeReplacementListener, IItemWith
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static Method createEmptyMethod(String withSignature, Class parent){
|
public static Method createEmptyMethod(String withSignature, Class parent){
|
||||||
Method ret = new Method();
|
Method ret = new Method(0);
|
||||||
DeclId DImethod = new DeclId();
|
DeclId DImethod = new DeclId();
|
||||||
DImethod.set_Name(withSignature);
|
DImethod.set_Name(withSignature);
|
||||||
ret.set_DeclId(DImethod);
|
ret.set_DeclId(DImethod);
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -821,7 +821,7 @@ classmemberdeclaration : fielddeclaration
|
|||||||
|
|
||||||
staticinitializer : STATIC block
|
staticinitializer : STATIC block
|
||||||
{
|
{
|
||||||
Method STAT = new Method();
|
Method STAT = new Method($1.getOffset());
|
||||||
DeclId DST = new DeclId();
|
DeclId DST = new DeclId();
|
||||||
DST.set_Name($1.getLexem());
|
DST.set_Name($1.getLexem());
|
||||||
STAT.set_DeclId(DST);
|
STAT.set_DeclId(DST);
|
||||||
@ -869,7 +869,7 @@ Dieses Problem ist bei Feldern nicht der Fall.
|
|||||||
*/
|
*/
|
||||||
fielddeclarator : variabledeclarator '=' expression
|
fielddeclarator : variabledeclarator '=' expression
|
||||||
{
|
{
|
||||||
FieldDeclaration ret = new FieldDeclaration();
|
FieldDeclaration ret = new FieldDeclaration($1.getOffset());
|
||||||
ret.set_DeclId($1);
|
ret.set_DeclId($1);
|
||||||
ret.setWert($3);
|
ret.setWert($3);
|
||||||
$$=ret;
|
$$=ret;
|
||||||
@ -1197,8 +1197,9 @@ type : primitivetype
|
|||||||
}
|
}
|
||||||
variabledeclarators : variabledeclarator
|
variabledeclarators : variabledeclarator
|
||||||
{
|
{
|
||||||
FieldDeclaration IVD = new FieldDeclaration();
|
FieldDeclaration IVD = new FieldDeclaration($1.getOffset());
|
||||||
IVD.getDeclIdVector().addElement( $1 );
|
IVD.getDeclIdVector().addElement( $1 );
|
||||||
|
IVD.setOffset($1.getOffset());
|
||||||
$$ = IVD;
|
$$ = IVD;
|
||||||
}
|
}
|
||||||
| variabledeclarators ',' variabledeclarator
|
| variabledeclarators ',' variabledeclarator
|
||||||
@ -1267,7 +1268,7 @@ classtypelist : classtype
|
|||||||
|
|
||||||
methoddeclarator :IDENTIFIER '(' ')'
|
methoddeclarator :IDENTIFIER '(' ')'
|
||||||
{
|
{
|
||||||
Method met = new Method();
|
Method met = new Method($1.getOffset());
|
||||||
/* #JB# 10.04.2005 */
|
/* #JB# 10.04.2005 */
|
||||||
/* ########################################################### */
|
/* ########################################################### */
|
||||||
met.setLineNumber($1.getLineNumber());
|
met.setLineNumber($1.getLineNumber());
|
||||||
@ -1280,7 +1281,7 @@ methoddeclarator :IDENTIFIER '(' ')'
|
|||||||
}
|
}
|
||||||
|IDENTIFIER '(' formalparameterlist ')'
|
|IDENTIFIER '(' formalparameterlist ')'
|
||||||
{
|
{
|
||||||
Method met_para = new Method();
|
Method met_para = new Method($1.getOffset());
|
||||||
/* #JB# 10.04.2005 */
|
/* #JB# 10.04.2005 */
|
||||||
/* ########################################################### */
|
/* ########################################################### */
|
||||||
met_para.setLineNumber($1.getLineNumber());
|
met_para.setLineNumber($1.getLineNumber());
|
||||||
|
@ -12,6 +12,7 @@ public class FunNMethod extends Method{
|
|||||||
* @param N - Anzahl der Parameter (Beispiel: Fun2<R, T1, T2>)
|
* @param N - Anzahl der Parameter (Beispiel: Fun2<R, T1, T2>)
|
||||||
*/
|
*/
|
||||||
public FunNMethod(int N){
|
public FunNMethod(int N){
|
||||||
|
super(0); //Hat keinen Offset, da nur theoretisch gedachte Methode
|
||||||
this.setType(TypePlaceholder.fresh(this));
|
this.setType(TypePlaceholder.fresh(this));
|
||||||
ParameterList pl = new ParameterList();
|
ParameterList pl = new ParameterList();
|
||||||
Vector<FormalParameter> fpList = new Vector<FormalParameter>();
|
Vector<FormalParameter> fpList = new Vector<FormalParameter>();
|
||||||
|
Loading…
Reference in New Issue
Block a user