인터넷에서 사용 가능한 파서를 조금 보았지만 사용자 정의 표현에 가장 적합한 것이 무엇인지 이해하지 못했습니다. (ANTLR 내 요구에 헤비급 조금 보이지만, 그것은 단지 첫 인상이다) 내가 필요로하는 다음과 같은 표현이 잘 형성되어 있다는 검증 할 필요가간단한 사용자 정의 구문 분석기
:
IF (var1에> VAR2 15 IF (var3 < = var4; 1; 2)) 표현식은 다음과 같이 변환됩니다. 조건이 참이면 결과는 1535이고 다른 결과는입니다.
나는
그래서 무엇이 문제입니까? –
스프링의 SpEL 파서를 사용해 볼 수 있습니다 (** 연산자 **를 사용해야하는 경우 ** 대신 http://docs.spring.io/spring/docs/current/spring-framework-reference/html/). expressions.html. ** ExpressionParser parser = new SpelExpressionParser()와 같이 간단합니다. 표현식 exp = parser.parseExpression ("1 + 2 * (2 + 7 * (1 + 5))"); System.out.println (exp.getValue()); ** 변수 및 기타 기능을 지원합니다. –