2017-05-19 1 views
0

나는 여러 가지 속성을 포함하는지도를 가지고 있습니다. "A", "B", "C"... 나는 같은 식을 평가할 수있는 템플릿을 정의 할Java에서 사용자 정의 표현식 평가기를 구현하는 올바른 방법은 무엇입니까?

,

"A"& & "B"& &! "다 "

사실, 다음을 의미합니다

"a" is in the map, "b" is in the map but "c" is not in the map 

, 그렇지 않은 경우는 false

무슨 방법 난에있는 경우 Java에서 이것을 구현할 수 있습니까? 주얼은 도움이됩니까?

편집 :

이 분명 당신이 실행시에 평가해야합니다 구성 파일에서 표현의 종류를 정의 할 수있는 구성 가능한 언어를 작성해야합니다 확인합니다.

예 : 나는 그런 같은 표현을 포함 할 수있는 파일,

"A"& & "B"

! ("A"& & "D")

내가 돈을 구문 분석하는 내 자바 코드가 필요 컴파일 타임에 어떤 표현식을 평가해야하는지 알 수 없습니다. 희망이 더 명확한 요구 사항을 만듭니다.

답변

0

Java로 구현하는 방법은 무엇입니까?

  • 이 도구에 대한 자습서를 읽고, (당신은/배운 적이없는 전에 문법과 파서 생성기에 대해 배운 특히)
  • 을 예제를 연구 :

나는 JavaCC에 나 ANTLR 같은 것을 사용합니다

  • 이 단순한 언어의 비행
  • 에 표현식을 평가하는 문법
  • 추가 "조치를"문법을 작성하는 자바 클래스를 생성
  • 학습 곡선이 있지만 구현하기에 매우 간단하거나 문제가없는 문법이어야합니다.

    JUEL이 도움이됩니까?

    아마도 그렇지 않습니다. 처음에는 JUEL을 기반으로하는 모든 것이 완전한 EL 구문을 허용합니다.

    0

    기본 기술은 재귀 적 디센트, Dijkstra Shunting-yard 알고리즘 또는 상당 수의 시스템을 통한 파서 생성입니다. '괄호', '와', '또는'을 괄호로 묶어서 처리해야한다면 재귀 적 강하를 넘어서지 않을 것입니다.

    관련 문제