implemented option symbol for EBNF
updated test
made '{' '}' at start/end of EBNF optional