(참고 : this과 같은 다른 질문을 읽었지만이를 파악하지 못했습니다.) 나는이 문법 쓴 :이 입력으로 start = call
ident = [a-z]+
spaces = [ ]+
call = f:ident spaces g:(call/ident) {
return f + "(" + g + ")";
}
는 a b c d
는 "a(b(
그래서 저는 pegjs에 아주 기본적인 Lisp 파서를 쓰려고 노력하고 있습니다. Lisp 코드가 구문 상 유효하고 적합하다면 같은 코드를 내뱉습니다. 한 줄. 어디에도 삽입 된 개행 문자를 허용 할 수 있도록 파서를 확장하여 코드의 공백을 추가하고 싶습니다. I가 "튜플"에 대한 규칙을 변경 시도, 줄 바꿈과 공백 수 있도록 내 시도, Start
나는이 사용 pegjs 같은 토큰을 일치 할 필요가 : ?xxx ?yyy
나는이 일 것이라고 생각했을 것이다 : 나는 소스를 구문 분석 할 때 variable
= str:?[a-z]+ { console.log('---->>>',str); return str.join(""); }
내가 얻을 오류 : Object ? has no method '
주변에 문구를 일치하는 방법 난 내가 이런 일을 구문 분석하려고 해요 PegJS 으로 파서를 만들을하려는 .. I would like to email [email protected] today or tomorrow. 당신은 어떻게 할 것 email [email protected]과 같은 특정 구에 일치하는 파서가 주변 문자와 공백을 버립니다 (존재하는 경우
다음 작업은 내가하려는 일에 잘 작동하지만 분명히 반복적입니다. 그것은 다음의 예와 일치해야합니다 : # id.class1.class2 ATTR = "asdsa" .class1.class2 ATTR = "asdsad" ATTR = "ASDS" 유혹입니다. id:idShortcut? classes:classShortcut* attrs:fullAttribute
pegjs을 사용하여 파서를 만들려고합니다. blah blah START Lorem ipsum
dolor sit amet, consectetur
adipiscing elit END foo bar
etc.
내가 문제 "START"에서 "END"에 텍스트를 잡기 위해 규칙을 작성하는이 : 내가 좋아하는 뭔가를 구문 분석 할 필요가있다.
다음과 같은 간단한 pegjs 문법은 잘 작동 ""공백 규칙을 처리하는 데 실패 : 그것은 http://jsfiddle.net/4V3Zt/에서 확인할 수있다 start
= sentence
sentence
= word ws sentence
/word
word
= [a-z]*
ws
= " "
. 문법은 htt
PEG.js 문법을 TextMate 문법으로 변환하는 도구가 있습니까? 나는 내 자신의 언어를 만들고 있으며, 선호하는 편집기 인 TextMate에서 구문 강조 표시를하고 싶습니다. 내 언어의 문법은 PEG.js으로 작성되었습니다. 이 유스 케이스의 경우 TextMate documentation에 따르면, PEG.js와 호환되지 않는 양식으로 TextMat
PEG.js 버전 0.6을 사용하여 Maven Plugin (예 : Java 코드에서 PEG.js 호출)을 사용하여 파서를 성공적으로 작성했습니다. 새로운 버전으로 업그레이드하는 동안 1,하지만 지금, 그것은 오류 메시지와 함께 실패하는 것 : sun.org.mozilla.javascript.internal.EcmaError: SyntaxError: mis