2014-04-22 9 views
0

내가 한 EBNF에서 다음이 명 생성 규칙 :ENBF {}

<CharLiteral> ::= ' " ' [ <Printable> ] ' " ' 

<StringLiteral> ::= ' " ' { <Printable> } ' " ' 

둘 사이의 차이점은 무엇입니까? [] 1 회 이상의 반복을 의미하고 {}은 0 회 이상의 반복을 의미합니까?

답변

1

EBNF에서, [X]은 0 또는 1을 의미합니다. X{X}은 0 이상 X을 의미합니다.

JavaCC에서 [X]은 문법 제작을 위해 0 또는 1 X을 의미합니다. 정규 표현식 제작에서는 (X)?을 대신 사용해야합니다. JavaCC에서 X을 0 이상으로 표현하려면 (X)*을 사용하십시오.