more work on on everything
recusive descent instead of yacc