Use typedefs for pointers.
This commit is contained in:
parent
76782bfa4a
commit
6d38b8e82a
1 changed files with 46 additions and 43 deletions
|
|
@ -6,53 +6,56 @@ module Hammer
|
|||
|
||||
ffi_lib 'libhammer.dylib'
|
||||
|
||||
typedef :pointer, :h_parser
|
||||
typedef :pointer, :h_parse_result
|
||||
|
||||
# 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
|
||||
attach_function :h_token, [:string, :size_t], :pointer
|
||||
attach_function :h_ch, [:uint8], :pointer
|
||||
attach_function :h_ch_range, [:uint8, :uint8], :pointer
|
||||
attach_function :h_int_range, [:int64, :int64], :pointer
|
||||
attach_function :h_bits, [:size_t, :bool], :pointer
|
||||
attach_function :h_int64, [], :pointer
|
||||
attach_function :h_int32, [], :pointer
|
||||
attach_function :h_int16, [], :pointer
|
||||
attach_function :h_int8, [], :pointer
|
||||
attach_function :h_uint64, [], :pointer
|
||||
attach_function :h_uint32, [], :pointer
|
||||
attach_function :h_uint16, [], :pointer
|
||||
attach_function :h_uint8, [], :pointer
|
||||
attach_function :h_whitespace, [:pointer], :pointer
|
||||
attach_function :h_left, [:pointer, :pointer], :pointer
|
||||
attach_function :h_right, [:pointer, :pointer], :pointer
|
||||
attach_function :h_middle, [:pointer, :pointer, :pointer], :pointer
|
||||
#attach_function :h_in, [:string, :size_t], :pointer
|
||||
#attach_function :h_not_in, [:string, :size_t], :pointer
|
||||
attach_function :h_end_p, [], :pointer
|
||||
attach_function :h_nothing_p, [], :pointer
|
||||
attach_function :h_sequence, [:varargs], :pointer
|
||||
attach_function :h_choice, [:varargs], :pointer
|
||||
attach_function :h_butnot, [:pointer, :pointer], :pointer
|
||||
attach_function :h_difference, [:pointer, :pointer], :pointer
|
||||
attach_function :h_xor, [:pointer, :pointer], :pointer
|
||||
attach_function :h_many, [:pointer], :pointer
|
||||
attach_function :h_many1, [:pointer], :pointer
|
||||
#attach_function :h_repeat_n, [:pointer, :size_t], :pointer
|
||||
attach_function :h_optional, [:pointer], :pointer
|
||||
attach_function :h_ignore, [:pointer], :pointer
|
||||
attach_function :h_sepBy, [:pointer, :pointer], :pointer
|
||||
attach_function :h_sepBy1, [:pointer, :pointer], :pointer
|
||||
attach_function :h_epsilon_p, [], :pointer
|
||||
attach_function :h_length_value, [:pointer, :pointer], :pointer
|
||||
attach_function :h_and, [:pointer], :pointer
|
||||
attach_function :h_not, [:pointer], :pointer
|
||||
attach_function :h_token, [:string, :size_t], :h_parser
|
||||
attach_function :h_ch, [:uint8], :h_parser
|
||||
attach_function :h_ch_range, [:uint8, :uint8], :h_parser
|
||||
attach_function :h_int_range, [:int64, :int64], :h_parser
|
||||
attach_function :h_bits, [:size_t, :bool], :h_parser
|
||||
attach_function :h_int64, [], :h_parser
|
||||
attach_function :h_int32, [], :h_parser
|
||||
attach_function :h_int16, [], :h_parser
|
||||
attach_function :h_int8, [], :h_parser
|
||||
attach_function :h_uint64, [], :h_parser
|
||||
attach_function :h_uint32, [], :h_parser
|
||||
attach_function :h_uint16, [], :h_parser
|
||||
attach_function :h_uint8, [], :h_parser
|
||||
attach_function :h_whitespace, [:h_parser], :h_parser
|
||||
attach_function :h_left, [:h_parser, :h_parser], :h_parser
|
||||
attach_function :h_right, [:h_parser, :h_parser], :h_parser
|
||||
attach_function :h_middle, [:h_parser, :h_parser, :h_parser], :h_parser
|
||||
#attach_function :h_in, [:string, :size_t], :h_parser
|
||||
#attach_function :h_not_in, [:string, :size_t], :h_parser
|
||||
attach_function :h_end_p, [], :h_parser
|
||||
attach_function :h_nothing_p, [], :h_parser
|
||||
attach_function :h_sequence, [:varargs], :h_parser
|
||||
attach_function :h_choice, [:varargs], :h_parser
|
||||
attach_function :h_butnot, [:h_parser, :h_parser], :h_parser
|
||||
attach_function :h_difference, [:h_parser, :h_parser], :h_parser
|
||||
attach_function :h_xor, [:h_parser, :h_parser], :h_parser
|
||||
attach_function :h_many, [:h_parser], :h_parser
|
||||
attach_function :h_many1, [:h_parser], :h_parser
|
||||
#attach_function :h_repeat_n, [:h_parser, :size_t], :h_parser
|
||||
attach_function :h_optional, [:h_parser], :h_parser
|
||||
attach_function :h_ignore, [:h_parser], :h_parser
|
||||
attach_function :h_sepBy, [:h_parser, :h_parser], :h_parser
|
||||
attach_function :h_sepBy1, [:h_parser, :h_parser], :h_parser
|
||||
attach_function :h_epsilon_p, [], :h_parser
|
||||
attach_function :h_length_value, [:h_parser, :h_parser], :h_parser
|
||||
attach_function :h_and, [:h_parser], :h_parser
|
||||
attach_function :h_not, [:h_parser], :h_parser
|
||||
|
||||
attach_function :h_indirect, [], :pointer
|
||||
attach_function :h_bind_indirect, [:pointer, :pointer], :void
|
||||
attach_function :h_indirect, [], :h_parser
|
||||
attach_function :h_bind_indirect, [:h_parser, :h_parser], :void
|
||||
|
||||
#attach_function :h_action, [:pointer, ...], :pointer
|
||||
#attach_function :h_attr_bool, [:pointer, ...], :pointer
|
||||
#attach_function :h_action, [:h_parser, ...], :h_parser
|
||||
#attach_function :h_attr_bool, [:h_parser, ...], :h_parser
|
||||
|
||||
#class HParseResult < FFI::Struct
|
||||
# layout :ast, :pointer,
|
||||
|
|
@ -61,7 +64,7 @@ module Hammer
|
|||
#end
|
||||
|
||||
# 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?
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue