diff --git a/src/bindings/lua/hammer.lua b/src/bindings/lua/hammer.lua
index fa3f02a55034c9633103a2b17d94baab438a3297..0236bd9e4b2c80fc0482d49bc329c2019b255ad3 100644
--- a/src/bindings/lua/hammer.lua
+++ b/src/bindings/lua/hammer.lua
@@ -224,6 +224,14 @@ local bytes_mt = {
 }
 local byte_string = ffi.metatype("HBytes", bytes_mt)
 
+local result_mt = {
+   __call = function(self)
+      return self.ast()
+   end
+}
+
+local parse_result = ffi.metatype("HParseResult", result_mt)
+
 local token_types = ffi.new("HTokenType")
 
 local parsed_token