antlr3에서 "island grammar"란 무엇이며 어떻게 사용합니까?아일랜드 문법 antlr3
답변
그럼 난 당신이 무슨 뜻 정확히 모르겠어요하지만 당신은 당신이 작성한 것을 언급되지 않았기 때문에 지금까지 난 여기서 시작 했죠 :
http://www.antlr.org/wiki/display/ANTLR3/Island+Grammars+Under+Parser+Control
섬 문법 취급 하나입니다 대부분의 언어는 텍스트 물결 ("물")이며 문법 규칙 ("섬")을 사용하여 구문 분석하려는 관심 분야의 일부를 선택합니다. 예를 들어, C# 프로그램에서 찾은 모든 표현식을 선택하고 변수/메소드/클래스 선언 및 명령문 구문 (if, while, ...)을 무시하도록 아일랜드 문법을 작성하도록 선택할 수 있습니다.
진짜 질문은 "섬 문법을 사용해야합니까?"입니다.
긍정적 인 혜택 :
- 당신은 당신이 처리 할 언어에 대한 완전한, 완벽한 문법을 작성할 필요가 없습니다.
단점은 :
항상 관심의 소스의 부분을 선택하는 것은 쉽지 않다. 예를 들어, 아일랜드 문법이 모든 주석을 상세하게 엮어 놓지 않는 한 어떻게 섬 문법이 주석 블록을 선택하지 않도록 할 수 있습니까? 아일랜드 문법의 요점은 그런 종류의 세부 사항에 들어가는 것을 피하는 것이 었습니다.
섬 문법 만 사용하면 문제를 집중적으로 파악할 수 있습니다. 문제가 움직이면 섬 문법도 바뀌어야 할 수도 있습니다. 항상 쉬운 것은 아닙니다.
프로그램 조작에서 가장 흥미로운 문제는 구문 (예 : "구문 분석")뿐만 아니라 조작 할 수있는 종류의 트리를 작성할 수 있어야하지만 기호의 의미를 결정할 수 있어야한다는 것입니다 . 섬 문법을 사용하면 블록이나 선언문 등의 모든 구문을 포함시키지 않는 한 효율적으로 작성할 수 있습니다. 섬 문법은 아니지만 대륙 문법은 갑자기 어둡습니다. . 그리고 그 정말 당신이 할 수있는 일을 제한합니다.
나는 편견을 가지지 만, 나는 이런 종류의 일을 오랫동안 해왔다. 나는 섬 문법이 그다지 유용하지 않다고 믿습니다. 내가 제안하는 대안은 일반적인 토대를 기반으로 여러 언어에 대해 상환 된 비용 파서이며, DMS Software Reengineering Toolkit이라고합니다.
YMMV.
- 1. ANTLR3 TreeParser에서 줄 번호를 얻는 방법
- 2. ANTLR3 런타임 메타 데이터
- 3. antlr3 AST를 serialize하는 방법
- 4. antlr3 C# 코드 생성
- 5. antlr3 NOT 규칙
- 6. Antlr3 파서 경로 명령 쉘
- 7. ANTLR3 C C++ 예외 대상
- 8. NHibernate에 대한 ANTLR3 어셈블리가 누락되었습니다.
- 9. 폴 아일랜드 인, 어떻게 그 일을합니까?
- 10. ANTLR 문법 파일을 모듈화 할 수 있습니까?
- 11. PHP (링크 문법)의 문법 파싱
- 12. 오류보고를 위해 예외를 throw하는 Antlr3 C 런타임은 무엇입니까
- 13. ANTLR3 문법을 정규 표현식으로 변환 할 수 있습니까?
- 14. Ruby 문법
- 15. 보기의 문법
- 16. 합성 문법
- 17. 문법 트리
- 18. ANTLR3 C 대상 스레드 안전이 있습니까?
- 19. 로그 파일 (ANTLR3) 구문 분석에 대한 도움말
- 20. Yacc 문법 디버거가 있습니까?
- 21. 문맥 자유 문법 변환
- 22. OCaml을 사용하여 문법 파싱
- 23. Microsoft.Speech 일반 언어 문법
- 24. "임의"문맥 자유 문법?
- 25. Maruku/마크 다운 문법 "+ -"- "="
- 26. 파이썬 초보자 문법 질문
- 27. AS3 문법 : 가장 정확함
- 28. 나무 꼭대기 문법 문제
- 29. ANTLR 문법 편집기 생성기?
- 30. 링크 문법 파서 사용