나는 Irony을 사용하여 상당히 간단한 파서를 만들려고하고 있지만 아이러니가이 특별한 경우에 적합하지 않을 수도 있다는 결론에 도달했습니다.아이러니에서 공백 종결 자 & MakePlusRule
server_name example.com *.example.com www.example.*;
server_name www.example.com ~^www\d+\.example\.com$;
server_name ~^(?<subdomain>.+?)\.(?<domain>.+)$;
을 내가 난
var serverNamevalue = new FreeTextLiteral("serverNameValue", FreeTextOptions.None, " ", ";");
터미네이터로 공백이나 세미콜론 중 하나와 FreeTextLiterals을 사용하고 있습니다 :
이
내가 구문 분석하는 데 노력하고있어의 예입니다 다음 MakePlusRule을 사용하여 하나 이상의 server_name 값을 선택하십시오.httpCoreServerName.Rule = "server_name" + httpCoreServerNameItems + semicolon;
httpCoreServerNameItems.Rule = MakePlusRule(httpCoreServerNameItems, serverNamevalue);
그러나 필자는 생각합니다. 이 경우 FreeTextLiteral의 종료 문자로 공백 문자를 사용합니다. 이걸 실행할 때 파서 오류가 발생합니다. 공백 문자를 다른 특정 문자로 바꾸어 터미네이터 역할을하는 경우 (그리고 MakePlusRule을 호출 할 때이 문자를 구분 기호로 추가하십시오.) 제대로 작동합니다.
아이러니하게 처리 할 수있는 사람이 있습니까?