You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.5 KiB
48 lines
1.5 KiB
/*
|
|
* @(#)MultipleFieldTypeDenoter.java 2.1 2003/10/07
|
|
*
|
|
* Copyright (C) 1999, 2003 D.A. Watt and D.F. Brown
|
|
* Dept. of Computing Science, University of Glasgow, Glasgow G12 8QQ Scotland
|
|
* and School of Computer and Math Sciences, The Robert Gordon University,
|
|
* St. Andrew Street, Aberdeen AB25 1HG, Scotland.
|
|
* All rights reserved.
|
|
*
|
|
* This software is provided free for educational use only. It may
|
|
* not be used for commercial purposes without the prior written permission
|
|
* of the authors.
|
|
*/
|
|
|
|
package triangle.abstractSyntaxTrees.types;
|
|
|
|
import triangle.abstractSyntaxTrees.terminals.Identifier;
|
|
import triangle.abstractSyntaxTrees.visitors.TypeDenoterVisitor;
|
|
import triangle.syntacticAnalyzer.SourcePosition;
|
|
|
|
public class MultipleFieldTypeDenoter extends FieldTypeDenoter {
|
|
|
|
public MultipleFieldTypeDenoter(Identifier iAST, TypeDenoter tAST, FieldTypeDenoter ftAST,
|
|
SourcePosition position) {
|
|
super(position);
|
|
I = iAST;
|
|
T = tAST;
|
|
FT = ftAST;
|
|
}
|
|
|
|
public <TArg, TResult> TResult visit(TypeDenoterVisitor<TArg, TResult> v, TArg arg) {
|
|
return v.visitMultipleFieldTypeDenoter(this, arg);
|
|
}
|
|
|
|
@Override
|
|
public boolean equals(Object obj) {
|
|
if (obj != null && obj instanceof MultipleFieldTypeDenoter) {
|
|
MultipleFieldTypeDenoter ft = (MultipleFieldTypeDenoter) obj;
|
|
return (this.I.spelling.compareTo(ft.I.spelling) == 0) && this.T.equals(ft.T) && this.FT.equals(ft.FT);
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public final Identifier I;
|
|
public TypeDenoter T;
|
|
public FieldTypeDenoter FT;
|
|
}
|
|
|