import gll ws = gll.many(gll.whitespace) function = function package_name = gll.seq(gll.skip(gll.string("package")), gl.skip(ws), gll.regex(".*$"), tag="package_name") package = gll.seq(package_name, gll.many(function, tag="package_body"), tag="package") parser = gll.all(package)