ASTReceiveStatement.java
package edu.udel.cis.vsl.tass.front.minimp.ast.statement;
import edu.udel.cis.vsl.tass.front.minimp.ast.expression.ASTBufferExpressionIF;
import edu.udel.cis.vsl.tass.front.minimp.ast.expression.ASTExpressionIF;
import edu.udel.cis.vsl.tass.front.minimp.ast.expression.ASTLhsExpressionIF;
import edu.udel.cis.vsl.tass.front.minimp.ast.expression.ASTWildcardExpression;
public class ASTReceiveStatement extends ASTStatement {
private ASTBufferExpressionIF recvBody;
private ASTExpressionIF msgSource;
private ASTExpressionIF recvTag;
private ASTLhsExpressionIF size;
private boolean isAnySrc;
private boolean isAnyTag;
public ASTReceiveStatement(ASTBufferExpressionIF data, ASTExpressionIF src,
ASTExpressionIF tag) {
recvBody = data;
this.msgSource = src;
recvTag = tag;
if (src instanceof ASTWildcardExpression) {
isAnySrc = true;
}
if (tag instanceof ASTWildcardExpression) {
isAnyTag = false;
}
size = null;
}
public ASTReceiveStatement(ASTBufferExpressionIF data, ASTExpressionIF src,
ASTExpressionIF tag, ASTLhsExpressionIF size) {
recvBody = data;
this.msgSource = src;
recvTag = tag;
this.size = size;
if (src instanceof ASTWildcardExpression) {
isAnySrc = true;
}
if (tag instanceof ASTWildcardExpression) {
isAnyTag = false;
}
}
public ASTBufferExpressionIF getRecvBody() {
return recvBody;
}
public ASTExpressionIF getRecvSource() {
return this.msgSource;
}
public ASTExpressionIF getTag() {
return recvTag;
}
public ASTExpressionIF getSize() {
return size;
}
public boolean isAnySource() {
return isAnySrc;
}
public boolean isAnyTag() {
return isAnyTag;
}
public String toString() {
return "recv(" + this.recvBody.toString() + ", " + this.source.toString()
+ ", " + this.recvTag.toString() + ");";
}
}