UnaryExpression.java
package org.sterling.source.syntax;
import org.sterling.SterlingException;
public class UnaryExpression extends SourceNode {
public UnaryExpression(NodeKind kind) {
super(kind);
}
@Override
public <R, S> R accept(SourceVisitor<R, S> visitor, S state) throws SterlingException {
return visitor.visitUnaryExpression(this, state);
}
public SourceNode getOperand() {
if (hasOperator()) {
return getChildAt(1);
} else {
return getChildAt(0);
}
}
public Token getOperator() {
if (hasOperator()) {
return getChildAt(0).getToken();
} else {
return Token.NULL;
}
}
public boolean hasOperator() {
return getChildren().size() > 1;
}
}