mirror of
https://github.com/louisrubet/rpn
synced 2025-01-09 17:24:55 +01:00
35 lines
634 B
C
35 lines
634 B
C
|
void instr()
|
||
|
{
|
||
|
MIN_ARGUMENTS(1);
|
||
|
|
||
|
// stringify only if not already a string
|
||
|
if (_stack->get_type(0) != cmd_string)
|
||
|
{
|
||
|
stringstream out;
|
||
|
((object*)_stack->back())->show(out);
|
||
|
_stack->pop_back();
|
||
|
|
||
|
ostring* str = new ostring(out.str().c_str());
|
||
|
_stack->push_back(str, sizeof(ostring), cmd_string);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void strout()
|
||
|
{
|
||
|
MIN_ARGUMENTS(1);
|
||
|
ARG_MUST_BE_OF_TYPE(0, cmd_string);
|
||
|
|
||
|
string& entry = *((ostring*)_stack->back())->_name;
|
||
|
_stack->pop_back();
|
||
|
|
||
|
program prog;
|
||
|
|
||
|
// make program from string in stack level 1
|
||
|
if (prog.parse(entry, *this) == ret_good_bye)
|
||
|
{
|
||
|
//stack st;
|
||
|
// run it
|
||
|
//prog.run(st, *_heap);
|
||
|
}
|
||
|
}
|