@Override public CompilationResult compile(String lessContent) throws Less4jException { problemsHandler = new ProblemsHandler(); astBuilder = new ASTBuilder(problemsHandler); compiler = new LessToCssCompiler(problemsHandler); String css = doCompile(lessContent); CompilationResult compilationResult = new CompilationResult(css, problemsHandler.getWarnings()); if (problemsHandler.hasErrors()) { throw new Less4jException(problemsHandler.getErrors(), compilationResult); } return compilationResult; }
public static void validateCssBodyCompatibility( ASTCssNode reference, List<ASTCssNode> members, ProblemsHandler problemsHandler) { ASTCssNode parent = reference.getParent(); if (!(parent instanceof Body)) { throw new BugHappened("Parent is not a body instance. " + parent, parent); } @SuppressWarnings({"unchecked", "rawtypes"}) Set<ASTCssNodeType> supportedMembers = ((Body) parent).getSupportedMembers(); for (ASTCssNode member : members) { if (!supportedMembers.contains(member.getType())) { problemsHandler.wrongMemberBroughtIntoBody(reference, member, parent); } } }
@Override public Expression evaluate( List<Expression> parameters, ProblemsHandler problemsHandler, FunctionExpression call, Expression evaluatedParameter) { if (parameters.size() > 1) problemsHandler.wrongNumberOfArgumentsToFunction(call.getParameter(), call.getName(), 1); Expression parameter = parameters.get(0); if (checkType(parameter)) { return new IdentifierExpression(parameter.getUnderlyingStructure(), "true"); } else { return new IdentifierExpression(parameter.getUnderlyingStructure(), "false"); } }