문제

Java의 프로그램 구조를 분석 할 수 있도록 Rexx 소스를 구문 분석하고 싶습니다.

구문 적으로 다른 소스에서 동등한 논리 구조를 정상화하고, 중복 변수 선언을 찾는 등을 정상화해야하며 이미 Java 배경이 있습니다.

코드로드를 작성하는 것보다 더 쉬운 방법은 무엇입니까?

도움이 되었습니까?

해결책

당신이 가지고 있다면 BNF 렉스 문법 Javacc 당신이 구축하는 데 도움이 될 수 있습니다 ast (추상 구문 트리) 해당 Rexx 코드의 표현.

더 정확하게는 Javacc가 구축 할 것입니다 자바 수업 할 것 :

  • Rexx 코드를 구문 분석합니다
  • 실제로 AST를 구축합니다.

여전히 "코드로드"가 있지만 해당 REXX 코드 파서에 대한 수업을 작성하는 사람은 아닙니다. 그 세대 만.

다른 팁

Rexx는 일반적인 도구, 특히 BNF 문법을 기대하는 도구를 구문 분석하는 것이 쉬운 언어가 아닙니다. C에 노출 된 사람들이 설계 한 대부분의 언어와 달리 REXX에는 예약 된 단어가 없으므로 작업이 다소 복잡 해집니다. 예약 된 단어처럼 보이는 모든 용어는 실제로 특정 상황에서만 해결됩니다 (예를 들어, "풀"은 PULL 지시 또는 a의 두 번째 단어 PARSE PULL 명령어 - Pull (”라는 변수도 가질 수 있습니다.PULL = 1 + 2")). 또한 댓글의 매우 놀라운 효과가 있습니다. 그러나 ANSI 렉스 표준 전체 구문과 모든 규칙이 있습니다.

살펴보십시오 antlr, 그것은 정말로 AST를 구축하고, 그것을 변환하는 등의 훌륭한 작업을 수행합니다 ... 좋은 편집기 (antlrworks)를 가지고 있으며 Java를 기반으로하며 애플리케이션에서 실행하는 동안 구문 분석기 / 트리 워커를 디버깅 할 수 있습니다. 모든 종류의 구문 분석 작업에 대해 실제로 조사 할 가치가 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top