rpl.rb/lib/rpl/words/mode.rb
2022-10-12 17:04:50 +02:00

47 lines
1.8 KiB
Ruby

# frozen_string_literal: true
module RplLang
module Words
module Mode
include Types
def populate_dictionary
super
category = 'Mode'
@dictionary.add_word!( ['prec'],
category,
'( a -- ) set precision to a',
proc do
args = stack_extract( [[RplNumeric]] )
RplNumeric.precision = args[0].value
end )
@dictionary.add_word!( ['default'],
category,
'( -- ) set default precision',
proc do
RplNumeric.default_precision
end )
@dictionary.add_word!( ['type'],
category,
'( a -- s ) type of a as a string',
proc do
args = stack_extract( [:any] )
@stack << Types.new_object( RplString, "\"#{args[0].class.to_s[10..]}\"" )
end )
# @dictionary.add_word!( ['std'],
# proc { __todo } ) # standard floating numbers representation. ex: std
# @dictionary.add_word!( ['fix'],
# proc { __todo } ) # fixed point representation. ex: 6 fix
# @dictionary.add_word!( ['sci'],
# proc { __todo } ) # scientific floating point representation. ex: 20 sci
# @dictionary.add_word!( ['round'],
# proc { __todo } ) # set float rounding mode. ex: ["nearest", "toward zero", "toward +inf", "toward -inf", "away from zero"] round
end
end
end
end