package org.develnext.jphp.core.tokenizer.token.expr.operator.cast; import php.runtime.common.Association; import org.develnext.jphp.core.tokenizer.TokenMeta; import org.develnext.jphp.core.tokenizer.TokenType; import org.develnext.jphp.core.tokenizer.token.expr.OperatorExprToken; abstract public class CastExprToken extends OperatorExprToken { public CastExprToken(TokenMeta meta, TokenType type) { super(meta, type); } @Override public boolean isBinary() { return false; } @Override public int getPriority() { return 21; } @Override public Association getOnlyAssociation() { return Association.RIGHT; } public static CastExprToken valueOf(String name, TokenMeta meta){ String word = name.toLowerCase(); if (word.equals("int") || word.equals("integer")) return new IntCastExprToken(meta); else if (word.equals("float") || word.equals("double") || word.equals("real")) return new DoubleCastExprToken(meta); else if (word.equals("string")) return new StringCastExprToken(meta); else if (word.equals("bool") || word.equals("boolean")) return new BooleanCastExprToken(meta); else if (word.equals("array")) return new ArrayCastExprToken(meta); else if (word.equals("object")) return new ObjectCastExprToken(meta); else if (word.equals("unset")) return new UnsetCastExprToken(meta); else if (word.equals("binary")) return new BinaryCastExprToken(meta); return null; } }