diff --git a/version3.0/nasal_gc.h b/version3.0/nasal_gc.h index d7b78c9..8dccb36 100644 --- a/version3.0/nasal_gc.h +++ b/version3.0/nasal_gc.h @@ -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 diff --git a/version3.0/nasal_runtime.h b/version3.0/nasal_runtime.h new file mode 100644 index 0000000..b9f4987 --- /dev/null +++ b/version3.0/nasal_runtime.h @@ -0,0 +1,39 @@ +#ifndef __NASAL_RUNTIME_H__ +#define __NASAL_RUNTIME_H__ + +class nasal_runtime +{ +private: + nasal_ast root; + std::stack function_position; + std::stack running_stack; + std::stack 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 \ No newline at end of file