private PExp parse(String exp) throws AnalysisException { if (exp == null || exp.isEmpty()) { throw new AnalysisException("No expression to generate from"); } ParserResult<PExp> parseResult = null; try { parseResult = ParserUtil.parseExpression(exp); } catch (Exception e) { throw new AnalysisException( "Unable to parse expression: " + exp + ". Message: " + e.getMessage()); } if (parseResult.errors.size() > 0) { throw new AnalysisException("Unable to parse expression: " + exp); } TypeCheckResult<PExp> typeCheckResult = null; try { typeCheckResult = TypeCheckerUtil.typeCheckExpression(exp); } catch (Exception e) { throw new AnalysisException( "Unable to type check expression: " + exp + ". Message: " + e.getMessage()); } if (typeCheckResult.errors.size() > 0) { // throw new AnalysisException("Unable to type check expression: " // + exp); } return typeCheckResult.result; }