CommonObjectMacro.java
package edu.udel.cis.vsl.abc.token.common;
import org.antlr.runtime.Token;
import org.antlr.runtime.tree.Tree;
import edu.udel.cis.vsl.abc.token.IF.ObjectMacro;
import edu.udel.cis.vsl.abc.token.IF.SourceFile;
public class CommonObjectMacro extends CommonMacro implements ObjectMacro {
public CommonObjectMacro(Tree definitionNode, SourceFile file) {
super(definitionNode, file);
}
@Override
public Tree getBodyNode() {
return definitionNode.getChild(1);
}
@Override
public String toString() {
StringBuffer buf = new StringBuffer("ObjectMacro[" + getName() + "=");
int numReplacements = getNumReplacements();
for (int i = 0; i < numReplacements; i++) {
ReplacementUnit unit = getReplacementUnit(i);
buf.append(unit.token.getText());
for (Token t : unit.whitespace)
buf.append(t.getText());
}
buf.append("]");
return buf.toString();
}
@Override
public boolean equals(Object object) {
return object instanceof CommonObjectMacro && super.equals(object);
}
@Override
protected ReplacementUnit makeReplacement(int index, Token token,
Token[] whitespace) {
return new ReplacementUnit(index, token, whitespace);
}
}