update
This commit is contained in:
parent
7a36174789
commit
e272e758b4
|
@ -56,9 +56,19 @@ public:
|
||||||
~nasal_scalar();
|
~nasal_scalar();
|
||||||
void clear();
|
void clear();
|
||||||
bool set_type(int);
|
bool set_type(int);
|
||||||
// +-*/~
|
int nasal_scalar_add(int,int);
|
||||||
// =
|
int nasal_scalar_sub(int,int);
|
||||||
// unary - !
|
int nasal_scalar_mult(int,int);
|
||||||
|
int nasal_scalar_div(int,int);
|
||||||
|
int nasal_scalar_link(int,int);
|
||||||
|
int nasal_scalar_unary_sub(int);
|
||||||
|
int nasal_scalar_unary_not(int);
|
||||||
|
int nasal_scalar_cmp_equal(int,int);
|
||||||
|
int nasal_scalar_cmp_not_equal(int,int);
|
||||||
|
int nasal_scalar_cmp_less(int,int);
|
||||||
|
int nasal_scalar_cmp_greater(int,int);
|
||||||
|
int nasal_scalar_cmp_less_or_equal(int,int);
|
||||||
|
int nasal_scalar_cmp_greater_or_equal(int,int);
|
||||||
};
|
};
|
||||||
|
|
||||||
class nasal_virtual_machine
|
class nasal_virtual_machine
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
#ifndef __NASAL_RUNTIME_H__
|
||||||
|
#define __NASAL_RUNTIME_H__
|
||||||
|
|
||||||
|
class nasal_runtime
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
nasal_ast root;
|
||||||
|
std::stack<int> function_position;
|
||||||
|
std::stack<int> running_stack;
|
||||||
|
std::stack<int> closure_stack;
|
||||||
|
public:
|
||||||
|
nasal_runtime();
|
||||||
|
~nasal_runtime();
|
||||||
|
};
|
||||||
|
|
||||||
|
nasal_runtime::nasal_runtime()
|
||||||
|
{
|
||||||
|
root.clear();
|
||||||
|
while(!function_position.empty())
|
||||||
|
function_position.pop();
|
||||||
|
while(!running_stack.empty())
|
||||||
|
running_stack.pop();
|
||||||
|
while(!closure_stack.empty())
|
||||||
|
closure_stack.pop();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
nasal_runtime::~nasal_runtime()
|
||||||
|
{
|
||||||
|
root.clear();
|
||||||
|
while(!function_position.empty())
|
||||||
|
function_position.pop();
|
||||||
|
while(!running_stack.empty())
|
||||||
|
running_stack.pop();
|
||||||
|
while(!closure_stack.empty())
|
||||||
|
closure_stack.pop();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue