R better grammer definition: | for multiple productions
add new task
add productions.py
try add bnf parser
bnf parser tested
auto gen optional item
repetitive items support
add alternatives production test
add select_list test
use new grammer definition
refactor syntax
refactor lexer