rpl.rb/lib/rpl/core/general.rb
Gwenhael Le Moine 8b07724e50
make it a gem
2022-02-15 17:06:19 +01:00

57 lines
2 KiB
Ruby

# frozen_string_literal: true
module RplLang
module Core
module General
def populate_dictionary
super
@dictionary.add_word( ['nop'],
'General',
'( -- ) no operation',
proc {} )
@dictionary.add_word( ['help'],
'General',
'( w -- s ) pop help string of the given word',
proc do
args = stack_extract( [%i[name]] )
word = @dictionary.words[ args[0][:value] ]
@stack << { type: :string,
value: "#{args[0][:value]}: #{word.nil? ? 'not a core word' : word[:help]}" }
end )
@dictionary.add_word( ['quit'],
'General',
'( -- ) Stop and quit interpreter',
proc {} )
@dictionary.add_word( ['version'],
'General',
'( -- n ) Pop the interpreter\'s version number',
proc do
@stack += parse( @version.to_s )
end )
@dictionary.add_word( ['uname'],
'General',
'( -- s ) Pop the interpreter\'s complete indentification string',
proc do
@stack += parse( "\"Rpl Interpreter version #{@version}\"" )
end )
@dictionary.add_word( ['history'],
'REPL',
'',
proc {} )
@dictionary.add_word( ['.s'],
'REPL',
'DEBUG',
proc { pp @stack } )
end
end
end
end