, , . : "[ab]? C". , , :
Boolean parseA() {
return parseB() && (get_token() == Token.c);
}
Boolean parseB {
token current_token = get_token();
if (token != Token.a && token != Token.b)
push_back(current_token);
return true;
}
( ): , B, Token.c. B, : "a", "b" . , A, , B, Token.c.
, - :
A:: = B C
B:: = a | b | ε
C:: = c |
"B" , , . , , () B, C.