0
내가 한 EBNF에서 다음이 명 생성 규칙 :ENBF {}
<CharLiteral> ::= ' " ' [ <Printable> ] ' " '
및
<StringLiteral> ::= ' " ' { <Printable> } ' " '
둘 사이의 차이점은 무엇입니까? [] 1 회 이상의 반복을 의미하고 {}은 0 회 이상의 반복을 의미합니까?
내가 한 EBNF에서 다음이 명 생성 규칙 :ENBF {}
<CharLiteral> ::= ' " ' [ <Printable> ] ' " '
및
<StringLiteral> ::= ' " ' { <Printable> } ' " '
둘 사이의 차이점은 무엇입니까? [] 1 회 이상의 반복을 의미하고 {}은 0 회 이상의 반복을 의미합니까?
EBNF에서, [X]
은 0 또는 1을 의미합니다. X
및 {X}
은 0 이상 X
을 의미합니다.
JavaCC에서 [X]
은 문법 제작을 위해 0 또는 1 X
을 의미합니다. 정규 표현식 제작에서는 (X)?
을 대신 사용해야합니다. JavaCC에서 X
을 0 이상으로 표현하려면 (X)*
을 사용하십시오.