0
다음과 같은 문법이 있습니다.antlr을 사용하여 반복 속성을 구문 분석하는 방법은 무엇입니까?
meta : '<' TAG attribute* '>';
attribute : NAME '=' VAL;
TAG : [A-Z0-9]+;
NAME : [A-Z_-]+;
VAL : '"'.*?'"';
다음 문자열과 일치 시키려합니다.
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
하지만 다음과 같은 오류가 발생합니다.
ParseError extraneous input 'CONTENT' expecting {'>', NAME} clj-antlr.common/parse-error (common.clj:146)
하나의 속성으로 구문 분석 할 수 있습니다.
<META HTTP-EQUIV="Content-Type">
반복 속성을 구문 분석하는 방법은 무엇입니까? attribute*
을 주면 아무 효과가 없습니다.
업데이트 : 실제로는 렉서가 원인입니다. TAG
과 NAME
을 결합하면 작동합니다.
meta : '<' NAME attribute* '>';
NAME : [A-Z0-9_-]+;
하지만 숫자를 포함하는 NAME
을 가지고 싶지 않아. 이 일을 할 수있는 방법이 있습니까?