mirror of
https://github.com/ValKmjolnir/Nasal-Interpreter.git
synced 2026-07-21 10:28:50 +08:00
update
This commit is contained in:
+13
-3
@@ -56,9 +56,19 @@ public:
|
||||
~nasal_scalar();
|
||||
void clear();
|
||||
bool set_type(int);
|
||||
// +-*/~
|
||||
// =
|
||||
// unary - !
|
||||
int nasal_scalar_add(int,int);
|
||||
int nasal_scalar_sub(int,int);
|
||||
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
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user