package com.github.sommeri.less4j.core.compiler.expressions;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.github.sommeri.less4j.core.ast.Expression;
import com.github.sommeri.less4j.core.ast.FunctionExpression;
import com.github.sommeri.less4j.core.ast.IdentifierExpression;
import com.github.sommeri.less4j.core.problems.ProblemsHandler;
public class GuardOnlyFunctions extends BuiltInFunctionsPack {
protected static final String DEFAULT = "default";
private Map<String, Function> functions = new HashMap<String, Function>();
public GuardOnlyFunctions(ProblemsHandler problemsHandler, boolean assumeDefault) {
super(problemsHandler);
functions.put(DEFAULT, new Default(assumeDefault));
}
@Override
protected Map<String, Function> getFunctions() {
return functions;
}
}
class Default extends AbstractFunction {
private final String value;
public Default(boolean value) {
this.value = value ? "true" : "false";
}
@Override
public Expression evaluate(List<Expression> parameters, ProblemsHandler problemsHandler, FunctionExpression call, Expression evaluatedParameter) {
return new IdentifierExpression(call.getUnderlyingStructure(), value);
}
}