derive all parsers from g, g* and g|, add g|| parser