package com.semmle.js.ast;
/**
* A unary expression such as !x or void(0).
*
*
Note that increment and decrement expressions are represented by {@link UpdateExpression}.
*/
public class UnaryExpression extends Expression {
private final String operator;
private final Expression argument;
private final boolean prefix;
public UnaryExpression(SourceLocation loc, String operator, Expression argument, Boolean prefix) {
super("UnaryExpression", loc);
this.operator = operator;
this.argument = argument;
this.prefix = prefix == Boolean.TRUE;
}
@Override
public A accept(Visitor
v, Q q) {
return v.visit(this, q);
}
/** The operator of this unary expression. */
public String getOperator() {
return operator;
}
/** The argument of this unary expression. */
public Expression getArgument() {
return argument;
}
/** Is the operator of this unary expression a prefix operator? */
public boolean isPrefix() {
return prefix;
}
}