2009-09-20 1 views
0

내가 가진 문제가 있습니다 :[a/b]를 어떻게 파싱 할 수 있습니까? Rebol에서 구문 오류가 발생 했습니까?

>> parse [a/b] ['a '/ 'b] 
** Syntax Error: Invalid word-lit -- ' 
** Near: (line 1) parse [a/b] ['a '/ 'b] 
>> 
+0

나는 확실히 모르겠다. 그러나 나는 어떤 종류의 정교한 (또는 아님) 광고 계획이라고 느낀다. –

+0

나는 꽤 확실하지는 않지만 어떤 종류의 pananoïds가 있다고 느낀다. –

답변

1

REBOL의 통역은 행복하게 명령 행에 쓸 수 있는지에 대한 몇 가지 제한 사항이 있습니다. lit-word'/으로 작성하여 얻을 수 없습니다. REBOL은 /이 op임을 알고 있기 때문에 오류가 발생합니다. 부문 :

'/ 
** Syntax Error: Invalid word-lit -- ' 

하지만 당신은 문자열로 시작, 조명 단어로/'만들 수 있습니다

to-lit-word "/" 
== '/ 

코드 문제에 대한 해결책 :

parse [a/b] compose ['a (to-lit-word "/") 'b] 
=== true 
  • compose [...] - 구문 분석 전에 블록의 일부를 선택적으로 평가 함을 의미합니다.
  • (...) - is 선택적으로 평가되어 원하는 단어를 생성하는 부분
+0

위대한 단지 지금 아래에 보이는 세련미가 필요하다 :) –

+0

오히려 http://stackoverflow.com/questions/1458139/rebol-parse-rule- with-compose-deep-and-append-function은 다른 질문이기 때문에 –

+0

Nitpickin 'here :하지만 PATH에 대한 /의 특별한 상태라고 생각합니다! 이것은 파싱 (파열 연산자가되는 것과 반대되는)을 깨뜨릴 것입니다. 예를 들어, 당신은 문자 그대로 다른 작업을 문자 그대로 인용 할 수 있습니다. '* or'+ ... – HostileFork