Delete nasal_func_stack.h
This commit is contained in:
		
							parent
							
								
									589b63284f
								
							
						
					
					
						commit
						c4ea37db0a
					
				| 
						 | 
				
			
			@ -1,115 +0,0 @@
 | 
			
		|||
#ifndef __NASAL_FUNC_STACK_H__
 | 
			
		||||
#define __NASAL_FUNC_STACK_H__
 | 
			
		||||
 | 
			
		||||
#include "nasal_functional.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
struct func_stack_unit
 | 
			
		||||
{
 | 
			
		||||
	std::string func_name;
 | 
			
		||||
	func func_statement;
 | 
			
		||||
	func_stack_unit *next;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class func_stack
 | 
			
		||||
{
 | 
			
		||||
	private:
 | 
			
		||||
		func_stack_unit *head;
 | 
			
		||||
	public:
 | 
			
		||||
		func_stack()
 | 
			
		||||
		{
 | 
			
		||||
			head=new func_stack_unit;
 | 
			
		||||
			head->func_name="null";
 | 
			
		||||
			head->next=NULL;
 | 
			
		||||
		}
 | 
			
		||||
		~func_stack()
 | 
			
		||||
		{
 | 
			
		||||
			func_stack_unit *temp=head;
 | 
			
		||||
			func_stack_unit *this_node=NULL;
 | 
			
		||||
			while(temp->next)
 | 
			
		||||
			{
 | 
			
		||||
				this_node=temp;
 | 
			
		||||
				temp=temp->next;
 | 
			
		||||
				delete this_node;
 | 
			
		||||
			}
 | 
			
		||||
			delete temp;
 | 
			
		||||
		}
 | 
			
		||||
		void append_function(std::string &function_name,func &temp_func)
 | 
			
		||||
		{
 | 
			
		||||
			func_stack_unit *temp=head;
 | 
			
		||||
			while(temp->next)
 | 
			
		||||
			{
 | 
			
		||||
				temp=temp->next;
 | 
			
		||||
				if(temp->func_name==function_name)
 | 
			
		||||
				{
 | 
			
		||||
					std::cout<<"[Error] Redeclaration of function \""<<function_name<<"\""<<std::endl;
 | 
			
		||||
					return;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			temp->next=new func_stack_unit;
 | 
			
		||||
			temp=temp->next;
 | 
			
		||||
			temp->next=NULL;
 | 
			
		||||
			temp->func_name=function_name;
 | 
			
		||||
			temp->func_statement=temp_func;
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
//		void run_function(std::string &function_name)
 | 
			
		||||
//		{
 | 
			
		||||
//			func_stack_unit *temp=head;
 | 
			
		||||
//			while(temp->next)
 | 
			
		||||
//			{
 | 
			
		||||
//				temp=temp->next;
 | 
			
		||||
//				if(temp->func_name==function_name)
 | 
			
		||||
//				{
 | 
			
		||||
//					temp->func_statement.run();
 | 
			
		||||
//					return;
 | 
			
		||||
//				}
 | 
			
		||||
//			}
 | 
			
		||||
//			std::cout<<"[Error] Could not find this function."<<std::endl;
 | 
			
		||||
//			return;
 | 
			
		||||
//		}
 | 
			
		||||
		void print_function()
 | 
			
		||||
		{
 | 
			
		||||
			func_stack_unit *temp=head;
 | 
			
		||||
			while(temp->next)
 | 
			
		||||
			{
 | 
			
		||||
				temp=temp->next;
 | 
			
		||||
				std::cout<<"function: "<<temp->func_name;
 | 
			
		||||
				temp->func_statement.print_info();
 | 
			
		||||
			}
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
		void pop_function()
 | 
			
		||||
		{
 | 
			
		||||
			func_stack_unit *temp=head;
 | 
			
		||||
			func_stack_unit *end_temp;
 | 
			
		||||
			if(!head->next)
 | 
			
		||||
				return;
 | 
			
		||||
			while(temp->next)
 | 
			
		||||
			{
 | 
			
		||||
				end_temp=temp;
 | 
			
		||||
				temp=temp->next;
 | 
			
		||||
			}
 | 
			
		||||
			end_temp->next=NULL;
 | 
			
		||||
			delete temp;
 | 
			
		||||
		}
 | 
			
		||||
		void delete_all()
 | 
			
		||||
		{
 | 
			
		||||
			func_stack_unit *temp=head->next;
 | 
			
		||||
			func_stack_unit *this_node=NULL;
 | 
			
		||||
			head->next=NULL;
 | 
			
		||||
			if(!temp)
 | 
			
		||||
				return;
 | 
			
		||||
			while(temp->next)
 | 
			
		||||
			{
 | 
			
		||||
				this_node=temp;
 | 
			
		||||
				temp=temp->next;
 | 
			
		||||
				delete this_node;
 | 
			
		||||
			}
 | 
			
		||||
			delete temp;
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
};
 | 
			
		||||
func_stack nasal_func_stack;
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
		Loading…
	
		Reference in New Issue