initial fork ebnf2yacc code from XLang incubator