refactoring add_production to keep all original grammar available in the runtime
improving the print error message in Gprint
ready for switch built-in eoi_entry
S in grammar should be treated seriously