2014-11-01 7 views
1

JavaCC에서 단일 선택 목록의 모든 선택 항목에 대해 3의 미리보기를 갖고 싶습니다. * 나는 코드 를 참조 JavaCC에 5.0 예/데모 패키지의 examples/JavaGrammars/1.5/Java1.5.jj 파일을 찾고JavaCC : 단일 선택 목록의 모든 선택 항목에 LOOKAHEAD 번호 적용

LOOKAHEAD(3) ((A) | B() | C()) 

:

LOOKAHEAD(3) A() | LOOKAHEAD(3) B | LOOKAHEAD(3) C 

하지만 내가 좋아하는 뭔가를 원합니다 : 그건 내가 할 수있다 처럼 : 그렇지 않으면 나에게 경고 Encountered LOOKAHEAD(...) at a non-choice location. This will be ignored.를 얻을 수 있다는 점

(LOOKAHEAD(3) ((A) | B() | C())) 

와는 효과가 없습니다.

*는 :

if the next three tokens are compatible with A() 
    A() 
else if the next three tokens are compatible with B() 
    B() 
else if the next token is compatible with C() 
    C() 
else error 

the JavaCC lookahead tutorial를 참조하십시오 특히, Modifiers 규칙, 라인 (1104)

+0

example/JavaGrammars/1.5/Java1.5.jj에서 제공 한 예제는 루프 내에 있습니다. 2의 미리보기는 루프에 (재) 입력할지 여부를 결정하는 데 사용됩니다. 후속 선택 사항은 기본적으로 미리보기 1로 분명히 결정될 수 있습니다. –

답변

2

그것을 할 방법이 의미

LOOKAHEAD(3) A() | LOOKAHEAD(3) B() | C() 

입니다.