package org.develnext.jphp.core.tokenizer.token.expr.value;
import org.develnext.jphp.core.tokenizer.TokenType;
import org.develnext.jphp.core.tokenizer.TokenMeta;
import org.develnext.jphp.core.tokenizer.token.expr.ValueExprToken;
public class VariableExprToken extends ValueExprToken implements VariableValueExprToken {
private String name;
protected VariableExprToken(TokenMeta meta, String name){
super(meta, TokenType.T_VARIABLE);
this.name = name;
}
public VariableExprToken(TokenMeta meta) {
super(meta, TokenType.T_VARIABLE);
this.name = meta.getWord().substring(1); // skip $
}
public String getName() {
return name;
}
@Override
public int hashCode() {
return name.hashCode();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof VariableExprToken)) return false;
VariableExprToken token = (VariableExprToken) o;
return token.getClass() == this.getClass() && name.equals(token.name);
}
public static VariableExprToken valueOf(String name){
return new VariableExprToken(TokenMeta.empty(), name);
}
}