summaryrefslogtreecommitdiffhomepage
path: root/generate.rb
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2022-03-05 08:55:18 -0500
committerrealtradam <[email protected]>2022-03-05 08:55:18 -0500
commit130abe0f012b955e89c10f2771ecb58ec0d8d1e9 (patch)
tree4f1c06dad631b3239989889a14da9053c46e6c8e /generate.rb
parent13879296c42c07285bc08720ef57c959ef2fdecc (diff)
downloadFelBind-130abe0f012b955e89c10f2771ecb58ec0d8d1e9.tar.gz
FelBind-130abe0f012b955e89c10f2771ecb58ec0d8d1e9.zip
added phase 2 floats, doubles, and bools
Diffstat (limited to 'generate.rb')
-rw-r--r--generate.rb30
1 files changed, 23 insertions, 7 deletions
diff --git a/generate.rb b/generate.rb
index fbe02b0..9eda393 100644
--- a/generate.rb
+++ b/generate.rb
@@ -95,20 +95,35 @@ glue.first.each do |func, params|
func_name = rpart.last
if func_datatype == 'void' && params[0] == 'void'
- body = "#{func.split(' ').last}();\nreturn mrb_nil_value();"
- defines += Template.function(func.split(' ').last, body)
- init_body += Template.init_module_function('test', func.split(' ').last.underscore, func.split(' ').last, "MRB_ARGS_NONE()")
+ body = "#{func_name}();\nreturn mrb_nil_value();"
+ defines += Template.function(func_name, body)
+ init_body += Template.init_module_function('test', func_name.underscore, func_name, "MRB_ARGS_NONE()")
bound[func] = params
debug_mark_binding(func, params)
elsif (standard_types.include? func_datatype) && (params[0] == 'void')
if func_datatype == 'int'
- body = "return mrb_fixnum_value(#{func.split(' ').last}());"
- defines += Template.function(func.split(' ').last, body)
- init_body += Template.init_module_function('test', func.split(' ').last.underscore, func.split(' ').last, "MRB_ARGS_NONE()")
+ body = "return mrb_fixnum_value(#{func_name}());"
+ defines += Template.function(func_name, body)
+ init_body += Template.init_module_function('test', func_name.underscore, func_name, "MRB_ARGS_NONE()")
bound[func] = params
debug_mark_binding(func, params)
+ elsif func_datatype == 'float' || func_datatype == 'double'
+ body = "return mrb_float_value(mrb, #{func_name}());"
+ defines += Template.function(func_name, body)
+ init_body += Template.init_module_function('test', func_name.underscore, func_name, "MRB_ARGS_NONE()")
+
+ bound[func] = params
+ debug_mark_binding(func, params)
+ elsif func_datatype == 'bool'
+ body = "return mrb_bool_value(#{func_name}());"
+ defines += Template.function(func_name, body)
+ init_body += Template.init_module_function('test', func_name.underscore, func_name, "MRB_ARGS_NONE()")
+
+ bound[func] = params
+ debug_mark_binding(func, params)
+
end
end
end
@@ -116,7 +131,7 @@ end
init_body.prepend(Template.define_module('Test'))
result = %{
- #{includes}
+#{includes}
#{defines}
#{Template.base('test', init_body, nil)}
}
@@ -131,3 +146,4 @@ result += "//Phase 5 Functions: #{$complete_phase5.length} / #{$phase5.length}\n
puts result
+