0
+, -, *,/및 float 및 variable 연산자를 처리하는 간단한 계산기 (중위 연산자 사용) 파서를 작성해야합니다. 이렇게하려면 javacc을 사용했고 jytree를 사용하여 this grammar을 만들었습니다. 그것은 작동하지만 최종 트리가 필요한 2 진 트리가되도록 보장하지는 않습니다. 내가 원하는 5 * 3과 같이 + 다음 트리를 생성하는 X-Y :javacc로 이진 트리를 만드는 계산기 문법 만들기
*
/\
5 +
/\
3 -
/\
x y
어떤 적절한 문법 재귀 왼쪽되지 않을 것이라고, 그렇게하는 것?
하지만 연산자 우선 순위가 유지 될까요? 삽입 기호 표기법을 구문 분석하고 있습니까? – Maeln
아니요, 운영자 우선 순위를 따르지 않습니다. 그것도 연관성을 얻지 못합니다. 이것은 신중한 것입니다. 원래 게시물의 예제 트리를 보면 연산자 우선 순위가 존중되지 않으며 +와 -의 연관성을 얻지 못한다는 것을 알 수 있습니다. 편집을 참조하십시오. –
죄송합니다. 불쾌합니다. 예제를 빨리 완료했습니다. 연산자 우선 순위를 존중해야합니다. 나는 [이] (http://stackoverflow.com/a/7867104/1149206)을 시도하고 있는데, 공식적으로 문법을 사용하는 것은 아니지만, 내가 성취하고자하는 것에 대해서는 꽤 잘 작동한다. 어쨌든 당신의 대답에 감사드립니다! – Maeln