2010-11-29 3 views

답변

1

"아니요" [편집 : 질문이있는 시점에서] 질문이 Perl을 렉싱/파싱하는 것에 관한 것이라면 꽤 어렵습니다. 우리는 (우리의 "우리"를위한 나의 바이오 참조) Perl5 렉서를 가지고있다. 우리는 실제로 좋은 lexer-generator 도구 (유니 코드, 다중 상태, "regexp"이 내장 된 regexps)을 가지고 있습니다. Perl 렉서는 왕실의 두통 거리였습니다. 우리는 렉싱 (lexing) 부분을 처리하기 위해 50 개의 렉시 컬 모드 (각 자체 토큰 정의 세트가있는)와 같은 것으로 끝 맺었습니다.

우리는 파싱 부분을보고 있으며 오늘은 운이 좋고 직접 할 필요가 없으므로 지금까지 회피했습니다. Apparently 다양한 언어의 동적 정의에 따라 언어가 모호합니다. 한 순간에 구문을 해석 (구문 분석)하는 방법은 정적으로 결정할 수 없습니다. 우리는 모호성을 처리하는 GLR 파서를 사용하여이를 수행 할 수 있다고 생각하며 가능한 모호한 대안으로 단순히 모호성을 유지합니다. 몇 달 후에 알려 드리겠습니다.

+0

이 대답은 Perl 5에 관한 것입니다. 질문은 Perl 6에 관한 것이 었습니다. 후자에 대한 대답은 찬성 예입니다. 이 최근 블로그 게시물에서 P6 구문을 구부리는 것에 대해 논의 해 보겠습니다. [P6 안에 HTML을 P6 안에 SQL을 간단히 포함시킬 수 있습니다.] (http://strangelyconsistent.org/blog/macros-define-your- 자기 - 리터럴 - 하루). – raiph

+0

@raiph : 네, 맞습니다. 이 글이 쓰여지 자마자, Perl6은 더 불투명 해 보였으므로 그 대답은 "외부 Perl6"관점에서 작성되었습니다. 대답으로 의견을 추가 하시길 권합니다. [이것은 SO에 대한 대답이 영구적이지 않다는 것을 증명합니다. 그들은 썩어진다.] –

관련 문제