Antlr을 처음 사용했습니다. CSS 파서를 구현하려고합니다. 처음에는 구문 분석기를 생성하기 위해 this 문법을 사용하고 있습니다. 가이드 : this tutorial를 팔로우하고 있습니다. C#에서 Antlr 3.4를 사용하여 코드를 생성합니다 (다음으로 Antlr 4.0을 사용하여 시도 할 것입니다).맞춤 설정, 분류, Antlr의 오류 수집
나는 몇 가지 문제에 직면하고 있으며 인터넷에서 자원을 찾을 수 없어서 분명히 이해할 수 있습니다.
문제 나는 데 :
- 는 다른 유형 (오류, 경고)에서 사용자 정의 오류 메시지를 생성합니다. 이것은 Antlr에서 제공됩니까? 이를 달성하는 방법을 이해할 수있는 자료를 제공해주십시오.
다음 자습서에서는 구문 분석 및 렉싱에서 예외를 잡을 수있었습니다. 하지만이 코드를 추가하고 잘못된 CSS 내용을 테스트했지만 문법에서 내가 시도한 어떤 오류도주지 않습니다.
partial class CSS3Lexer { public override void ReportError(RecognitionException e) { base.ReportError(e); Console.WriteLine("Error in lexer at line " + e.Line + ":" + e.CharPositionInLine + e.Message); } }
내가 데이터 구조 (오류 유형, 메시지가 오류 개체의 목록, 위치) 내가 그들을 사용할 수 있도록하는 어떤 종류의 오류 (파서와 렉서 오류)의 목록을 수집 할 다른 일을 위해서. 이렇게하는 더 의미있는 방법이 있을까요?
나는 더 우아한 디자인에 도달 할 수 없기 때문에 내 접근 방식에 대한 제안을 받고 싶습니다.
참고로, 코드 블록은 목록 항목 내에 배치 되었기 때문에 제대로 포맷되지 않았습니다. 이 경우 여분의 4 개의 들여 쓰기 공간 (총 8 개)이 필요합니다. –
@BartKiers는 그것을 잘 알고 있습니다. 감사!! –