나는 ANTLR로 놀고있어 JavaScript로 파싱 해보기로했다. 그러나 나는 선택적 ';'을 다루는 벽을 쳤다. 여기서 문 끝은 개행으로 표시됩니다. 몇 가지 간단한 방법으로 끝낼 수 있습니까? 나는이 (자바 스크립트 파서에 의해 해석 될 수있다)ANTLR, 선택 사항 ';' JavaScript in
var i =
10
10;
PS를 구문 분석 할 수 있기를 원하고
grammar optional_newline;
def : statements ;
statements : statement (statement)* ;
statement : expression (';' | '\n') ;
expression : ID | INT | 'var' ID '=' INT ;
ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')* ;
INT : '0'..'9'+ ;
WS : (' ' | '\t' | '\r' | '\n') {$channel=HIDDEN;} ;
작동하지 않습니다
그냥 간단한 문법 예 : I 돈 파서 규칙에 WS
을 넣고 싶지는 않습니다. 렉서가 그 규칙을 없애면 훨씬 행복해집니다. 이 자바 스크립트에서 가능한 모든 경우에 작동하는지
을 ANLR 위키에 게시 됨 : http://www.antlr.org/grammar/list? –
@Bart, 예, 그렇습니다.하지만 거기에는 모든 규칙에서 공백이 허용됩니다. 나는 그게 유일한 방법이라고 생각합니다. 그러나 나는 틀렸다고 생각하고 누군가 문법을 엉망으로 만들지 않고이 문제를 해결하는 방법을 알고 있습니다. – vava
나는 네가 가진 줄 알았지 만 확실히하고 싶었다. 나는 그것에 대해 생각할 것이다. 비록 주위에 아무런 의심이 없지만 ... –