Use typedefs for pointers.

This commit is contained in:
Jakob Rath 2013-12-15 11:29:04 +01:00 committed by Dan Hirsch
parent 76782bfa4a
commit 6d38b8e82a

View file

@ -6,53 +6,56 @@ module Hammer
ffi_lib 'libhammer.dylib' ffi_lib 'libhammer.dylib'
typedef :pointer, :h_parser
typedef :pointer, :h_parse_result
# run a parser # run a parser
attach_function :h_parse, [:pointer, :string, :size_t], :pointer attach_function :h_parse, [:h_parser, :string, :size_t], :h_parse_result
# build a parser # build a parser
attach_function :h_token, [:string, :size_t], :pointer attach_function :h_token, [:string, :size_t], :h_parser
attach_function :h_ch, [:uint8], :pointer attach_function :h_ch, [:uint8], :h_parser
attach_function :h_ch_range, [:uint8, :uint8], :pointer attach_function :h_ch_range, [:uint8, :uint8], :h_parser
attach_function :h_int_range, [:int64, :int64], :pointer attach_function :h_int_range, [:int64, :int64], :h_parser
attach_function :h_bits, [:size_t, :bool], :pointer attach_function :h_bits, [:size_t, :bool], :h_parser
attach_function :h_int64, [], :pointer attach_function :h_int64, [], :h_parser
attach_function :h_int32, [], :pointer attach_function :h_int32, [], :h_parser
attach_function :h_int16, [], :pointer attach_function :h_int16, [], :h_parser
attach_function :h_int8, [], :pointer attach_function :h_int8, [], :h_parser
attach_function :h_uint64, [], :pointer attach_function :h_uint64, [], :h_parser
attach_function :h_uint32, [], :pointer attach_function :h_uint32, [], :h_parser
attach_function :h_uint16, [], :pointer attach_function :h_uint16, [], :h_parser
attach_function :h_uint8, [], :pointer attach_function :h_uint8, [], :h_parser
attach_function :h_whitespace, [:pointer], :pointer attach_function :h_whitespace, [:h_parser], :h_parser
attach_function :h_left, [:pointer, :pointer], :pointer attach_function :h_left, [:h_parser, :h_parser], :h_parser
attach_function :h_right, [:pointer, :pointer], :pointer attach_function :h_right, [:h_parser, :h_parser], :h_parser
attach_function :h_middle, [:pointer, :pointer, :pointer], :pointer attach_function :h_middle, [:h_parser, :h_parser, :h_parser], :h_parser
#attach_function :h_in, [:string, :size_t], :pointer #attach_function :h_in, [:string, :size_t], :h_parser
#attach_function :h_not_in, [:string, :size_t], :pointer #attach_function :h_not_in, [:string, :size_t], :h_parser
attach_function :h_end_p, [], :pointer attach_function :h_end_p, [], :h_parser
attach_function :h_nothing_p, [], :pointer attach_function :h_nothing_p, [], :h_parser
attach_function :h_sequence, [:varargs], :pointer attach_function :h_sequence, [:varargs], :h_parser
attach_function :h_choice, [:varargs], :pointer attach_function :h_choice, [:varargs], :h_parser
attach_function :h_butnot, [:pointer, :pointer], :pointer attach_function :h_butnot, [:h_parser, :h_parser], :h_parser
attach_function :h_difference, [:pointer, :pointer], :pointer attach_function :h_difference, [:h_parser, :h_parser], :h_parser
attach_function :h_xor, [:pointer, :pointer], :pointer attach_function :h_xor, [:h_parser, :h_parser], :h_parser
attach_function :h_many, [:pointer], :pointer attach_function :h_many, [:h_parser], :h_parser
attach_function :h_many1, [:pointer], :pointer attach_function :h_many1, [:h_parser], :h_parser
#attach_function :h_repeat_n, [:pointer, :size_t], :pointer #attach_function :h_repeat_n, [:h_parser, :size_t], :h_parser
attach_function :h_optional, [:pointer], :pointer attach_function :h_optional, [:h_parser], :h_parser
attach_function :h_ignore, [:pointer], :pointer attach_function :h_ignore, [:h_parser], :h_parser
attach_function :h_sepBy, [:pointer, :pointer], :pointer attach_function :h_sepBy, [:h_parser, :h_parser], :h_parser
attach_function :h_sepBy1, [:pointer, :pointer], :pointer attach_function :h_sepBy1, [:h_parser, :h_parser], :h_parser
attach_function :h_epsilon_p, [], :pointer attach_function :h_epsilon_p, [], :h_parser
attach_function :h_length_value, [:pointer, :pointer], :pointer attach_function :h_length_value, [:h_parser, :h_parser], :h_parser
attach_function :h_and, [:pointer], :pointer attach_function :h_and, [:h_parser], :h_parser
attach_function :h_not, [:pointer], :pointer attach_function :h_not, [:h_parser], :h_parser
attach_function :h_indirect, [], :pointer attach_function :h_indirect, [], :h_parser
attach_function :h_bind_indirect, [:pointer, :pointer], :void attach_function :h_bind_indirect, [:h_parser, :h_parser], :void
#attach_function :h_action, [:pointer, ...], :pointer #attach_function :h_action, [:h_parser, ...], :h_parser
#attach_function :h_attr_bool, [:pointer, ...], :pointer #attach_function :h_attr_bool, [:h_parser, ...], :h_parser
#class HParseResult < FFI::Struct #class HParseResult < FFI::Struct
# layout :ast, :pointer, # layout :ast, :pointer,
@ -61,7 +64,7 @@ module Hammer
#end #end
# free the parse result # free the parse result
attach_function :h_parse_result_free, [:pointer], :void attach_function :h_parse_result_free, [:h_parse_result], :void
# TODO: Does the HParser* need to be freed? # TODO: Does the HParser* need to be freed?
end end