@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;
 }
예제 #2
0
파일: AstLogic.java 프로젝트: karlvr/less4j
  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);
      }
    }
  }
예제 #3
0
  @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");
    }
  }