[phc-internals] [phc commit] r1482 - trunk/src/generated

codesite-noreply at google.com codesite-noreply at google.com
Wed Jul 30 01:50:06 IST 2008


Author: paul.biggar
Date: Tue Jul 29 03:02:36 2008
New Revision: 1482

Modified:
   trunk/src/generated/AST_fold.h
   trunk/src/generated/HIR_fold.h
   trunk/src/generated/MIR_fold.h

Log:
Update to the latest maketea (revision 129). This bring in the list 
parameter to folds, which was asked for by Ryan Stutsman, and was made 
based on his patch.


Modified: trunk/src/generated/AST_fold.h
==============================================================================
--- trunk/src/generated/AST_fold.h	(original)
+++ trunk/src/generated/AST_fold.h	Tue Jul 29 03:02:36 2008
@@ -95,23 +95,25 @@
  class _VARIABLE_NAME,
  class _Variable,
  class _Variable_name,
- class _While>
+ class _While,
+ template <class _Tp, class _Alloc = allocator<_Tp> > class _List = List
+>
 class Fold
 {
 // Access this class from subclasses without copying out the template instantiation
 public:
-   typedef Fold<_Actual_parameter, _Array, _Array_elem, _Assignment, 
_Attr_mod, _Attribute, _BOOL, _Bin_op, _Break, _CAST, _CLASS_NAME, 
_CONSTANT_NAME, _Cast, _Catch, _Class_def, _Class_mod, _Class_name, 
_Commented_node, _Conditional_expr, _Constant, _Continue, 
_DIRECTIVE_NAME, _Declare, _Directive, _Do, _Eval_expr, _Expr, _For, 
_Foreach, _Foreign, _Formal_parameter, _Global, _INT, _INTERFACE_NAME, 
_Identifier, _If, _Ignore_errors, _Instanceof, _Interface_def, 
_List_assignment, _List_element, _Literal, _METHOD_NAME, _Member, 
_Method, _Method_invocation, _Method_mod, _Method_name, _NIL, 
_Name_with_default, _Nested_list_elements, _New, _Node, _Nop, _OP, 
_Op_assignment, _PHP_script, _Post_op, _Pre_op, _REAL, _Reflection, 
_Return, _STRING, _Signature, _Source_rep, _Statement, 
_Static_declaration, _Switch, _Switch_case, _Target, _Throw, _Try, 
_Type, _Unary_op, _VARIABLE_NAME, _Variable, _Variable_name, _While> parent;
+   typedef Fold<_Actual_parameter, _Array, _Array_elem, _Assignment, 
_Attr_mod, _Attribute, _BOOL, _Bin_op, _Break, _CAST, _CLASS_NAME, 
_CONSTANT_NAME, _Cast, _Catch, _Class_def, _Class_mod, _Class_name, 
_Commented_node, _Conditional_expr, _Constant, _Continue, 
_DIRECTIVE_NAME, _Declare, _Directive, _Do, _Eval_expr, _Expr, _For, 
_Foreach, _Foreign, _Formal_parameter, _Global, _INT, _INTERFACE_NAME, 
_Identifier, _If, _Ignore_errors, _Instanceof, _Interface_def, 
_List_assignment, _List_element, _Literal, _METHOD_NAME, _Member, 
_Method, _Method_invocation, _Method_mod, _Method_name, _NIL, 
_Name_with_default, _Nested_list_elements, _New, _Node, _Nop, _OP, 
_Op_assignment, _PHP_script, _Post_op, _Pre_op, _REAL, _Reflection, 
_Return, _STRING, _Signature, _Source_rep, _Statement, 
_Static_declaration, _Switch, _Switch_case, _Target, _Throw, _Try, 
_Type, _Unary_op, _VARIABLE_NAME, _Variable, _Variable_name, _While, 
_List> parent;
 // Recursively fold the children before folding the parent
 // This methods form the client API for a fold, but should not be
 // overridden unless you know what you are doing
 public:
 	virtual _PHP_script fold_php_script(PHP_script* in)
 	{
-		List<_Statement>* statements = 0;
+		_List<_Statement>* statements = 0;
 	
 		{
-			statements = new List<_Statement>;
-			List<Statement*>::const_iterator i;
+			statements = new _List<_Statement>;
+			typename _List<Statement*>::const_iterator i;
 			for(i = in->statements->begin(); i != in->statements->end(); i++)
 				if(*i != NULL) statements->push_back(fold_statement(*i));
 				else statements->push_back(0);
@@ -127,20 +129,20 @@
 		if(in->class_name != NULL) class_name = fold_class_name(in->class_name);
 		_CLASS_NAME extends = 0;
 		if(in->extends != NULL) extends = fold_class_name(in->extends);
-		List<_INTERFACE_NAME>* implements = 0;
+		_List<_INTERFACE_NAME>* implements = 0;
 	
 		{
-			implements = new List<_INTERFACE_NAME>;
-			List<INTERFACE_NAME*>::const_iterator i;
+			implements = new _List<_INTERFACE_NAME>;
+			typename _List<INTERFACE_NAME*>::const_iterator i;
 			for(i = in->implements->begin(); i != in->implements->end(); i++)
 				if(*i != NULL) implements->push_back(fold_interface_name(*i));
 				else implements->push_back(0);
 		}
-		List<_Member>* members = 0;
+		_List<_Member>* members = 0;
 	
 		{
-			members = new List<_Member>;
-			List<Member*>::const_iterator i;
+			members = new _List<_Member>;
+			typename _List<Member*>::const_iterator i;
 			for(i = in->members->begin(); i != in->members->end(); i++)
 				if(*i != NULL) members->push_back(fold_member(*i));
 				else members->push_back(0);
@@ -159,20 +161,20 @@
 	{
 		_INTERFACE_NAME interface_name = 0;
 		if(in->interface_name != NULL) interface_name = fold_interface_name(in->interface_name);
-		List<_INTERFACE_NAME>* extends = 0;
+		_List<_INTERFACE_NAME>* extends = 0;
 	
 		{
-			extends = new List<_INTERFACE_NAME>;
-			List<INTERFACE_NAME*>::const_iterator i;
+			extends = new _List<_INTERFACE_NAME>;
+			typename _List<INTERFACE_NAME*>::const_iterator i;
 			for(i = in->extends->begin(); i != in->extends->end(); i++)
 				if(*i != NULL) extends->push_back(fold_interface_name(*i));
 				else extends->push_back(0);
 		}
-		List<_Member>* members = 0;
+		_List<_Member>* members = 0;
 	
 		{
-			members = new List<_Member>;
-			List<Member*>::const_iterator i;
+			members = new _List<_Member>;
+			typename _List<Member*>::const_iterator i;
 			for(i = in->members->begin(); i != in->members->end(); i++)
 				if(*i != NULL) members->push_back(fold_member(*i));
 				else members->push_back(0);
@@ -184,11 +186,11 @@
 	{
 		_Signature signature = 0;
 		if(in->signature != NULL) signature = fold_signature(in->signature);
-		List<_Statement>* statements = 0;
+		_List<_Statement>* statements = 0;
 	if (in->statements)
 		{
-			statements = new List<_Statement>;
-			List<Statement*>::const_iterator i;
+			statements = new _List<_Statement>;
+			typename _List<Statement*>::const_iterator i;
 			for(i = in->statements->begin(); i != in->statements->end(); i++)
 				if(*i != NULL) statements->push_back(fold_statement(*i));
 				else statements->push_back(0);
@@ -203,11 +205,11 @@
 		bool is_ref = in->is_ref;
 		_METHOD_NAME method_name = 0;
 		if(in->method_name != NULL) method_name = fold_method_name(in->method_name);
-		List<_Formal_parameter>* formal_parameters = 0;
+		_List<_Formal_parameter>* formal_parameters = 0;
 	
 		{
-			formal_parameters = new List<_Formal_parameter>;
-			List<Formal_parameter*>::const_iterator i;
+			formal_parameters = new _List<_Formal_parameter>;
+			typename _List<Formal_parameter*>::const_iterator i;
  			for(i = in->formal_parameters->begin(); i != 
in->formal_parameters->end(); i++)
 				if(*i != NULL) formal_parameters->push_back(fold_formal_parameter(*i));
 				else formal_parameters->push_back(0);
@@ -247,11 +249,11 @@
 	{
 		_Attr_mod attr_mod = 0;
 		if(in->attr_mod != NULL) attr_mod = fold_attr_mod(in->attr_mod);
-		List<_Name_with_default>* vars = 0;
+		_List<_Name_with_default>* vars = 0;
 	
 		{
-			vars = new List<_Name_with_default>;
-			List<Name_with_default*>::const_iterator i;
+			vars = new _List<_Name_with_default>;
+			typename _List<Name_with_default*>::const_iterator i;
 			for(i = in->vars->begin(); i != in->vars->end(); i++)
 				if(*i != NULL) vars->push_back(fold_name_with_default(*i));
 				else vars->push_back(0);
@@ -282,20 +284,20 @@
 	{
 		_Expr expr = 0;
 		if(in->expr != NULL) expr = fold_expr(in->expr);
-		List<_Statement>* iftrue = 0;
+		_List<_Statement>* iftrue = 0;
 	
 		{
-			iftrue = new List<_Statement>;
-			List<Statement*>::const_iterator i;
+			iftrue = new _List<_Statement>;
+			typename _List<Statement*>::const_iterator i;
 			for(i = in->iftrue->begin(); i != in->iftrue->end(); i++)
 				if(*i != NULL) iftrue->push_back(fold_statement(*i));
 				else iftrue->push_back(0);
 		}
-		List<_Statement>* iffalse = 0;
+		_List<_Statement>* iffalse = 0;
 	
 		{
-			iffalse = new List<_Statement>;
-			List<Statement*>::const_iterator i;
+			iffalse = new _List<_Statement>;
+			typename _List<Statement*>::const_iterator i;
 			for(i = in->iffalse->begin(); i != in->iffalse->end(); i++)
 				if(*i != NULL) iffalse->push_back(fold_statement(*i));
 				else iffalse->push_back(0);
@@ -307,11 +309,11 @@
 	{
 		_Expr expr = 0;
 		if(in->expr != NULL) expr = fold_expr(in->expr);
-		List<_Statement>* statements = 0;
+		_List<_Statement>* statements = 0;
 	
 		{
-			statements = new List<_Statement>;
-			List<Statement*>::const_iterator i;
+			statements = new _List<_Statement>;
+			typename _List<Statement*>::const_iterator i;
 			for(i = in->statements->begin(); i != in->statements->end(); i++)
 				if(*i != NULL) statements->push_back(fold_statement(*i));
 				else statements->push_back(0);
@@ -321,11 +323,11 @@

 	virtual _Do fold_do(Do* in)
 	{
-		List<_Statement>* statements = 0;
+		_List<_Statement>* statements = 0;
 	
 		{
-			statements = new List<_Statement>;
-			List<Statement*>::const_iterator i;
+			statements = new _List<_Statement>;
+			typename _List<Statement*>::const_iterator i;
 			for(i = in->statements->begin(); i != in->statements->end(); i++)
 				if(*i != NULL) statements->push_back(fold_statement(*i));
 				else statements->push_back(0);
@@ -343,11 +345,11 @@
 		if(in->cond != NULL) cond = fold_expr(in->cond);
 		_Expr incr = 0;
 		if(in->incr != NULL) incr = fold_expr(in->incr);
-		List<_Statement>* statements = 0;
+		_List<_Statement>* statements = 0;
 	
 		{
-			statements = new List<_Statement>;
-			List<Statement*>::const_iterator i;
+			statements = new _List<_Statement>;
+			typename _List<Statement*>::const_iterator i;
 			for(i = in->statements->begin(); i != in->statements->end(); i++)
 				if(*i != NULL) statements->push_back(fold_statement(*i));
 				else statements->push_back(0);
@@ -364,11 +366,11 @@
 		bool is_ref = in->is_ref;
 		_Variable val = 0;
 		if(in->val != NULL) val = fold_variable(in->val);
-		List<_Statement>* statements = 0;
+		_List<_Statement>* statements = 0;
 	
 		{
-			statements = new List<_Statement>;
-			List<Statement*>::const_iterator i;
+			statements = new _List<_Statement>;
+			typename _List<Statement*>::const_iterator i;
 			for(i = in->statements->begin(); i != in->statements->end(); i++)
 				if(*i != NULL) statements->push_back(fold_statement(*i));
 				else statements->push_back(0);
@@ -380,11 +382,11 @@
 	{
 		_Expr expr = 0;
 		if(in->expr != NULL) expr = fold_expr(in->expr);
-		List<_Switch_case>* switch_cases = 0;
+		_List<_Switch_case>* switch_cases = 0;
 	
 		{
-			switch_cases = new List<_Switch_case>;
-			List<Switch_case*>::const_iterator i;
+			switch_cases = new _List<_Switch_case>;
+			typename _List<Switch_case*>::const_iterator i;
 			for(i = in->switch_cases->begin(); i != in->switch_cases->end(); i++)
 				if(*i != NULL) switch_cases->push_back(fold_switch_case(*i));
 				else switch_cases->push_back(0);
@@ -396,11 +398,11 @@
 	{
 		_Expr expr = 0;
 		if(in->expr != NULL) expr = fold_expr(in->expr);
-		List<_Statement>* statements = 0;
+		_List<_Statement>* statements = 0;
 	
 		{
-			statements = new List<_Statement>;
-			List<Statement*>::const_iterator i;
+			statements = new _List<_Statement>;
+			typename _List<Statement*>::const_iterator i;
 			for(i = in->statements->begin(); i != in->statements->end(); i++)
 				if(*i != NULL) statements->push_back(fold_statement(*i));
 				else statements->push_back(0);
@@ -431,11 +433,11 @@

  	virtual _Static_declaration 
fold_static_declaration(Static_declaration* in)
 	{
-		List<_Name_with_default>* vars = 0;
+		_List<_Name_with_default>* vars = 0;
 	
 		{
-			vars = new List<_Name_with_default>;
-			List<Name_with_default*>::const_iterator i;
+			vars = new _List<_Name_with_default>;
+			typename _List<Name_with_default*>::const_iterator i;
 			for(i = in->vars->begin(); i != in->vars->end(); i++)
 				if(*i != NULL) vars->push_back(fold_name_with_default(*i));
 				else vars->push_back(0);
@@ -445,11 +447,11 @@

 	virtual _Global fold_global(Global* in)
 	{
-		List<_Variable_name>* variable_names = 0;
+		_List<_Variable_name>* variable_names = 0;
 	
 		{
-			variable_names = new List<_Variable_name>;
-			List<Variable_name*>::const_iterator i;
+			variable_names = new _List<_Variable_name>;
+			typename _List<Variable_name*>::const_iterator i;
  			for(i = in->variable_names->begin(); i != 
in->variable_names->end(); i++)
 				if(*i != NULL) variable_names->push_back(fold_variable_name(*i));
 				else variable_names->push_back(0);
@@ -459,20 +461,20 @@

 	virtual _Declare fold_declare(Declare* in)
 	{
-		List<_Directive>* directives = 0;
+		_List<_Directive>* directives = 0;
 	
 		{
-			directives = new List<_Directive>;
-			List<Directive*>::const_iterator i;
+			directives = new _List<_Directive>;
+			typename _List<Directive*>::const_iterator i;
 			for(i = in->directives->begin(); i != in->directives->end(); i++)
 				if(*i != NULL) directives->push_back(fold_directive(*i));
 				else directives->push_back(0);
 		}
-		List<_Statement>* statements = 0;
+		_List<_Statement>* statements = 0;
 	
 		{
-			statements = new List<_Statement>;
-			List<Statement*>::const_iterator i;
+			statements = new _List<_Statement>;
+			typename _List<Statement*>::const_iterator i;
 			for(i = in->statements->begin(); i != in->statements->end(); i++)
 				if(*i != NULL) statements->push_back(fold_statement(*i));
 				else statements->push_back(0);
@@ -491,20 +493,20 @@

 	virtual _Try fold_try(Try* in)
 	{
-		List<_Statement>* statements = 0;
+		_List<_Statement>* statements = 0;
 	
 		{
-			statements = new List<_Statement>;
-			List<Statement*>::const_iterator i;
+			statements = new _List<_Statement>;
+			typename _List<Statement*>::const_iterator i;
 			for(i = in->statements->begin(); i != in->statements->end(); i++)
 				if(*i != NULL) statements->push_back(fold_statement(*i));
 				else statements->push_back(0);
 		}
-		List<_Catch>* catches = 0;
+		_List<_Catch>* catches = 0;
 	
 		{
-			catches = new List<_Catch>;
-			List<Catch*>::const_iterator i;
+			catches = new _List<_Catch>;
+			typename _List<Catch*>::const_iterator i;
 			for(i = in->catches->begin(); i != in->catches->end(); i++)
 				if(*i != NULL) catches->push_back(fold_catch(*i));
 				else catches->push_back(0);
@@ -518,11 +520,11 @@
 		if(in->class_name != NULL) class_name = fold_class_name(in->class_name);
 		_VARIABLE_NAME variable_name = 0;
 		if(in->variable_name != NULL) variable_name = fold_variable_name(in->variable_name);
-		List<_Statement>* statements = 0;
+		_List<_Statement>* statements = 0;
 	
 		{
-			statements = new List<_Statement>;
-			List<Statement*>::const_iterator i;
+			statements = new _List<_Statement>;
+			typename _List<Statement*>::const_iterator i;
 			for(i = in->statements->begin(); i != in->statements->end(); i++)
 				if(*i != NULL) statements->push_back(fold_statement(*i));
 				else statements->push_back(0);
@@ -577,11 +579,11 @@

 	virtual _List_assignment fold_list_assignment(List_assignment* in)
 	{
-		List<_List_element>* list_elements = 0;
+		_List<_List_element>* list_elements = 0;
 	
 		{
-			list_elements = new List<_List_element>;
-			List<List_element*>::const_iterator i;
+			list_elements = new _List<_List_element>;
+			typename _List<List_element*>::const_iterator i;
 			for(i = in->list_elements->begin(); i != in->list_elements->end(); i++)
 				if(*i != NULL) list_elements->push_back(fold_list_element(*i));
 				else list_elements->push_back(0);
@@ -593,11 +595,11 @@

  	virtual _Nested_list_elements 
fold_nested_list_elements(Nested_list_elements* in)
 	{
-		List<_List_element>* list_elements = 0;
+		_List<_List_element>* list_elements = 0;
 	
 		{
-			list_elements = new List<_List_element>;
-			List<List_element*>::const_iterator i;
+			list_elements = new _List<_List_element>;
+			typename _List<List_element*>::const_iterator i;
 			for(i = in->list_elements->begin(); i != in->list_elements->end(); i++)
 				if(*i != NULL) list_elements->push_back(fold_list_element(*i));
 				else list_elements->push_back(0);
@@ -676,11 +678,11 @@
 		if(in->target != NULL) target = fold_target(in->target);
 		_Variable_name variable_name = 0;
 		if(in->variable_name != NULL) variable_name = fold_variable_name(in->variable_name);
-		List<_Expr>* array_indices = 0;
+		_List<_Expr>* array_indices = 0;
 	
 		{
-			array_indices = new List<_Expr>;
-			List<Expr*>::const_iterator i;
+			array_indices = new _List<_Expr>;
+			typename _List<Expr*>::const_iterator i;
 			for(i = in->array_indices->begin(); i != in->array_indices->end(); i++)
 				if(*i != NULL) array_indices->push_back(fold_expr(*i));
 				else array_indices->push_back(0);
@@ -715,11 +717,11 @@

 	virtual _Array fold_array(Array* in)
 	{
-		List<_Array_elem>* array_elems = 0;
+		_List<_Array_elem>* array_elems = 0;
 	
 		{
-			array_elems = new List<_Array_elem>;
-			List<Array_elem*>::const_iterator i;
+			array_elems = new _List<_Array_elem>;
+			typename _List<Array_elem*>::const_iterator i;
 			for(i = in->array_elems->begin(); i != in->array_elems->end(); i++)
 				if(*i != NULL) array_elems->push_back(fold_array_elem(*i));
 				else array_elems->push_back(0);
@@ -743,11 +745,11 @@
 		if(in->target != NULL) target = fold_target(in->target);
 		_Method_name method_name = 0;
 		if(in->method_name != NULL) method_name = fold_method_name(in->method_name);
-		List<_Actual_parameter>* actual_parameters = 0;
+		_List<_Actual_parameter>* actual_parameters = 0;
 	
 		{
-			actual_parameters = new List<_Actual_parameter>;
-			List<Actual_parameter*>::const_iterator i;
+			actual_parameters = new _List<_Actual_parameter>;
+			typename _List<Actual_parameter*>::const_iterator i;
  			for(i = in->actual_parameters->begin(); i != 
in->actual_parameters->end(); i++)
 				if(*i != NULL) actual_parameters->push_back(fold_actual_parameter(*i));
 				else actual_parameters->push_back(0);
@@ -767,11 +769,11 @@
 	{
 		_Class_name class_name = 0;
 		if(in->class_name != NULL) class_name = fold_class_name(in->class_name);
-		List<_Actual_parameter>* actual_parameters = 0;
+		_List<_Actual_parameter>* actual_parameters = 0;
 	
 		{
-			actual_parameters = new List<_Actual_parameter>;
-			List<Actual_parameter*>::const_iterator i;
+			actual_parameters = new _List<_Actual_parameter>;
+			typename _List<Actual_parameter*>::const_iterator i;
  			for(i = in->actual_parameters->begin(); i != 
in->actual_parameters->end(); i++)
 				if(*i != NULL) actual_parameters->push_back(fold_actual_parameter(*i));
 				else actual_parameters->push_back(0);
@@ -784,42 +786,42 @@
 // The user-defined folds
 // Override these methods to get specific functionality
 public:
-	virtual _PHP_script fold_impl_php_script(PHP_script* orig, 
List<_Statement>* statements) { assert(0); };
-	virtual _Class_def fold_impl_class_def(Class_def* orig, _Class_mod 
class_mod, _CLASS_NAME class_name, _CLASS_NAME extends, 
List<_INTERFACE_NAME>* implements, List<_Member>* members) { assert(0); };
+	virtual _PHP_script fold_impl_php_script(PHP_script* orig, 
_List<_Statement>* statements) { assert(0); };
+	virtual _Class_def fold_impl_class_def(Class_def* orig, _Class_mod 
class_mod, _CLASS_NAME class_name, _CLASS_NAME extends, 
_List<_INTERFACE_NAME>* implements, _List<_Member>* members) { 
assert(0); };
  	virtual _Class_mod fold_impl_class_mod(Class_mod* orig, bool 
is_abstract, bool is_final) { assert(0); };
-	virtual _Interface_def fold_impl_interface_def(Interface_def* orig, 
_INTERFACE_NAME interface_name, List<_INTERFACE_NAME>* extends, 
List<_Member>* members) { assert(0); };
-	virtual _Method fold_impl_method(Method* orig, _Signature signature, 
List<_Statement>* statements) { assert(0); };
-	virtual _Signature fold_impl_signature(Signature* orig, _Method_mod 
method_mod, bool is_ref, _METHOD_NAME method_name, 
List<_Formal_parameter>* formal_parameters) { assert(0); };
+	virtual _Interface_def fold_impl_interface_def(Interface_def* orig, 
_INTERFACE_NAME interface_name, _List<_INTERFACE_NAME>* extends, 
_List<_Member>* members) { assert(0); };
+	virtual _Method fold_impl_method(Method* orig, _Signature signature, 
_List<_Statement>* statements) { assert(0); };
+	virtual _Signature fold_impl_signature(Signature* orig, _Method_mod 
method_mod, bool is_ref, _METHOD_NAME method_name, 
_List<_Formal_parameter>* formal_parameters) { assert(0); };
  	virtual _Method_mod fold_impl_method_mod(Method_mod* orig, bool 
is_public, bool is_protected, bool is_private, bool is_static, bool 
is_abstract, bool is_final) { assert(0); };
  	virtual _Formal_parameter 
fold_impl_formal_parameter(Formal_parameter* orig, _Type type, bool 
is_ref, _Name_with_default var) { assert(0); };
  	virtual _Type fold_impl_type(Type* orig, _CLASS_NAME class_name) { 
assert(0); };
-	virtual _Attribute fold_impl_attribute(Attribute* orig, _Attr_mod 
attr_mod, List<_Name_with_default>* vars) { assert(0); };
+	virtual _Attribute fold_impl_attribute(Attribute* orig, _Attr_mod 
attr_mod, _List<_Name_with_default>* vars) { assert(0); };
  	virtual _Attr_mod fold_impl_attr_mod(Attr_mod* orig, bool is_public, 
bool is_protected, bool is_private, bool is_static, bool is_const) { 
assert(0); };
  	virtual _Name_with_default 
fold_impl_name_with_default(Name_with_default* orig, _VARIABLE_NAME 
variable_name, _Expr expr) { assert(0); };
-	virtual _If fold_impl_if(If* orig, _Expr expr, List<_Statement>* 
iftrue, List<_Statement>* iffalse) { assert(0); };
-	virtual _While fold_impl_while(While* orig, _Expr expr, 
List<_Statement>* statements) { assert(0); };
-	virtual _Do fold_impl_do(Do* orig, List<_Statement>* statements, 
_Expr expr) { assert(0); };
-	virtual _For fold_impl_for(For* orig, _Expr init, _Expr cond, _Expr 
incr, List<_Statement>* statements) { assert(0); };
-	virtual _Foreach fold_impl_foreach(Foreach* orig, _Expr expr, 
_Variable key, bool is_ref, _Variable val, List<_Statement>* 
statements) { assert(0); };
-	virtual _Switch fold_impl_switch(Switch* orig, _Expr expr, 
List<_Switch_case>* switch_cases) { assert(0); };
-	virtual _Switch_case fold_impl_switch_case(Switch_case* orig, _Expr 
expr, List<_Statement>* statements) { assert(0); };
+	virtual _If fold_impl_if(If* orig, _Expr expr, _List<_Statement>* 
iftrue, _List<_Statement>* iffalse) { assert(0); };
+	virtual _While fold_impl_while(While* orig, _Expr expr, 
_List<_Statement>* statements) { assert(0); };
+	virtual _Do fold_impl_do(Do* orig, _List<_Statement>* statements, 
_Expr expr) { assert(0); };
+	virtual _For fold_impl_for(For* orig, _Expr init, _Expr cond, _Expr 
incr, _List<_Statement>* statements) { assert(0); };
+	virtual _Foreach fold_impl_foreach(Foreach* orig, _Expr expr, 
_Variable key, bool is_ref, _Variable val, _List<_Statement>* 
statements) { assert(0); };
+	virtual _Switch fold_impl_switch(Switch* orig, _Expr expr, 
_List<_Switch_case>* switch_cases) { assert(0); };
+	virtual _Switch_case fold_impl_switch_case(Switch_case* orig, _Expr 
expr, _List<_Statement>* statements) { assert(0); };
 	virtual _Break fold_impl_break(Break* orig, _Expr expr) { assert(0); };
  	virtual _Continue fold_impl_continue(Continue* orig, _Expr expr) { 
assert(0); };
  	virtual _Return fold_impl_return(Return* orig, _Expr expr) { 
assert(0); };
-	virtual _Static_declaration 
fold_impl_static_declaration(Static_declaration* orig, 
List<_Name_with_default>* vars) { assert(0); };
-	virtual _Global fold_impl_global(Global* orig, List<_Variable_name>* 
variable_names) { assert(0); };
-	virtual _Declare fold_impl_declare(Declare* orig, List<_Directive>* 
directives, List<_Statement>* statements) { assert(0); };
+	virtual _Static_declaration 
fold_impl_static_declaration(Static_declaration* orig, 
_List<_Name_with_default>* vars) { assert(0); };
+	virtual _Global fold_impl_global(Global* orig, _List<_Variable_name>* 
variable_names) { assert(0); };
+	virtual _Declare fold_impl_declare(Declare* orig, _List<_Directive>* 
directives, _List<_Statement>* statements) { assert(0); };
  	virtual _Directive fold_impl_directive(Directive* orig, 
_DIRECTIVE_NAME directive_name, _Expr expr) { assert(0); };
-	virtual _Try fold_impl_try(Try* orig, List<_Statement>* statements, 
List<_Catch>* catches) { assert(0); };
-	virtual _Catch fold_impl_catch(Catch* orig, _CLASS_NAME class_name, 
_VARIABLE_NAME variable_name, List<_Statement>* statements) { 
assert(0); };
+	virtual _Try fold_impl_try(Try* orig, _List<_Statement>* statements, 
_List<_Catch>* catches) { assert(0); };
+	virtual _Catch fold_impl_catch(Catch* orig, _CLASS_NAME class_name, 
_VARIABLE_NAME variable_name, _List<_Statement>* statements) { 
assert(0); };
 	virtual _Throw fold_impl_throw(Throw* orig, _Expr expr) { assert(0); };
  	virtual _Eval_expr fold_impl_eval_expr(Eval_expr* orig, _Expr expr) { 
assert(0); };
 	virtual _Nop fold_impl_nop(Nop* orig) { assert(0); };
 	virtual _Foreign fold_impl_foreign(Foreign* orig) { assert(0); };
  	virtual _Assignment fold_impl_assignment(Assignment* orig, _Variable 
variable, bool is_ref, _Expr expr) { assert(0); };
  	virtual _Op_assignment fold_impl_op_assignment(Op_assignment* orig, 
_Variable variable, _OP op, _Expr expr) { assert(0); };
-	virtual _List_assignment fold_impl_list_assignment(List_assignment* 
orig, List<_List_element>* list_elements, _Expr expr) { assert(0); };
-	virtual _Nested_list_elements 
fold_impl_nested_list_elements(Nested_list_elements* orig, 
List<_List_element>* list_elements) { assert(0); };
+	virtual _List_assignment fold_impl_list_assignment(List_assignment* 
orig, _List<_List_element>* list_elements, _Expr expr) { assert(0); };
+	virtual _Nested_list_elements 
fold_impl_nested_list_elements(Nested_list_elements* orig, 
_List<_List_element>* list_elements) { assert(0); };
  	virtual _Cast fold_impl_cast(Cast* orig, _CAST cast, _Expr expr) { 
assert(0); };
  	virtual _Unary_op fold_impl_unary_op(Unary_op* orig, _OP op, _Expr 
expr) { assert(0); };
  	virtual _Bin_op fold_impl_bin_op(Bin_op* orig, _Expr left, _OP op, 
_Expr right) { assert(0); };
@@ -827,15 +829,15 @@
  	virtual _Ignore_errors fold_impl_ignore_errors(Ignore_errors* orig, 
_Expr expr) { assert(0); };
  	virtual _Constant fold_impl_constant(Constant* orig, _CLASS_NAME 
class_name, _CONSTANT_NAME constant_name) { assert(0); };
  	virtual _Instanceof fold_impl_instanceof(Instanceof* orig, _Expr 
expr, _Class_name class_name) { assert(0); };
-	virtual _Variable fold_impl_variable(Variable* orig, _Target target, 
_Variable_name variable_name, List<_Expr>* array_indices) { assert(0); };
+	virtual _Variable fold_impl_variable(Variable* orig, _Target target, 
_Variable_name variable_name, _List<_Expr>* array_indices) { assert(0); };
  	virtual _Reflection fold_impl_reflection(Reflection* orig, _Expr 
expr) { assert(0); };
  	virtual _Pre_op fold_impl_pre_op(Pre_op* orig, _OP op, _Variable 
variable) { assert(0); };
  	virtual _Post_op fold_impl_post_op(Post_op* orig, _Variable variable, 
_OP op) { assert(0); };
-	virtual _Array fold_impl_array(Array* orig, List<_Array_elem>* 
array_elems) { assert(0); };
+	virtual _Array fold_impl_array(Array* orig, _List<_Array_elem>* 
array_elems) { assert(0); };
  	virtual _Array_elem fold_impl_array_elem(Array_elem* orig, _Expr key, 
bool is_ref, _Expr val) { assert(0); };
-	virtual _Method_invocation 
fold_impl_method_invocation(Method_invocation* orig, _Target target, 
_Method_name method_name, List<_Actual_parameter>* actual_parameters) { 
assert(0); };
+	virtual _Method_invocation 
fold_impl_method_invocation(Method_invocation* orig, _Target target, 
_Method_name method_name, _List<_Actual_parameter>* actual_parameters) 
{ assert(0); };
  	virtual _Actual_parameter 
fold_impl_actual_parameter(Actual_parameter* orig, bool is_ref, _Expr 
expr) { assert(0); };
-	virtual _New fold_impl_new(New* orig, _Class_name class_name, 
List<_Actual_parameter>* actual_parameters) { assert(0); };
+	virtual _New fold_impl_new(New* orig, _Class_name class_name, 
_List<_Actual_parameter>* actual_parameters) { assert(0); };

 	virtual _CLASS_NAME fold_class_name(CLASS_NAME* orig) { assert(0); };
  	virtual _INTERFACE_NAME fold_interface_name(INTERFACE_NAME* orig) { 
assert(0); };
@@ -1342,7 +1344,7 @@
 	virtual ~Fold() {}
 };

-template<class T>
-class Uniform_fold : public Fold<T, T, T, T, T, T, T, T, T, T, T, T, 
T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, 
T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, 
T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T> {};
+template<class T, template <class _Tp, class _Alloc = allocator<_Tp> > 
class _List>
+class Uniform_fold : public Fold<T, T, T, T, T, T, T, T, T, T, T, T, 
T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, 
T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, 
T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, _List> {};
 }


Modified: trunk/src/generated/HIR_fold.h
==============================================================================
--- trunk/src/generated/HIR_fold.h	(original)
+++ trunk/src/generated/HIR_fold.h	Tue Jul 29 03:02:36 2008
@@ -87,23 +87,25 @@
  class _Variable_class,
  class _Variable_method,
  class _Variable_name,
- class _Variable_variable>
+ class _Variable_variable,
+ template <class _Tp, class _Alloc = allocator<_Tp> > class _List = List
+>
 class Fold
 {
 // Access this class from subclasses without copying out the template instantiation
 public:
-   typedef Fold<_Actual_parameter, _Assign_array, _Assign_target, 
_Assign_var, _Assign_var_var, _Attr_mod, _Attribute, _BOOL, _Bin_op, 
_Break, _CAST, _CLASS_NAME, _CONSTANT_NAME, _Cast, _Catch, _Class_def, 
_Class_mod, _Class_name, _Constant, _Continue, _Eval_expr, _Expr, 
_Foreach, _Foreign, _Formal_parameter, _Global, _INT, _INTERFACE_NAME, 
_Identifier, _If, _Index_array, _Instanceof, _Interface_def, _Literal, 
_Loop, _METHOD_NAME, _Member, _Method, _Method_invocation, _Method_mod, 
_Method_name, _NIL, _Name_with_default, _New, _Node, _OP, _PHP_script, 
_Pre_op, _Push_array, _REAL, _Return, _STRING, _Signature, _Statement, 
_Static_array, _Static_array_elem, _Static_array_key, 
_Static_declaration, _Static_value, _Target, _Target_expr, _Throw, 
_Try, _Type, _Unary_op, _VARIABLE_NAME, _Variable_class, 
_Variable_method, _Variable_name, _Variable_variable> parent;
+   typedef Fold<_Actual_parameter, _Assign_array, _Assign_target, 
_Assign_var, _Assign_var_var, _Attr_mod, _Attribute, _BOOL, _Bin_op, 
_Break, _CAST, _CLASS_NAME, _CONSTANT_NAME, _Cast, _Catch, _Class_def, 
_Class_mod, _Class_name, _Constant, _Continue, _Eval_expr, _Expr, 
_Foreach, _Foreign, _Formal_parameter, _Global, _INT, _INTERFACE_NAME, 
_Identifier, _If, _Index_array, _Instanceof, _Interface_def, _Literal, 
_Loop, _METHOD_NAME, _Member, _Method, _Method_invocation, _Method_mod, 
_Method_name, _NIL, _Name_with_default, _New, _Node, _OP, _PHP_script, 
_Pre_op, _Push_array, _REAL, _Return, _STRING, _Signature, _Statement, 
_Static_array, _Static_array_elem, _Static_array_key, 
_Static_declaration, _Static_value, _Target, _Target_expr, _Throw, 
_Try, _Type, _Unary_op, _VARIABLE_NAME, _Variable_class, 
_Variable_method, _Variable_name, _Variable_variable, _List> parent;
 // Recursively fold the children before folding the parent
 // This methods form the client API for a fold, but should not be
 // overridden unless you know what you are doing
 public:
 	virtual _PHP_script fold_php_script(PHP_script* in)
 	{
-		List<_Statement>* statements = 0;
+		_List<_Statement>* statements = 0;
 	
 		{
-			statements = new List<_Statement>;
-			List<Statement*>::const_iterator i;
+			statements = new _List<_Statement>;
+			typename _List<Statement*>::const_iterator i;
 			for(i = in->statements->begin(); i != in->statements->end(); i++)
 				if(*i != NULL) statements->push_back(fold_statement(*i));
 				else statements->push_back(0);
@@ -119,20 +121,20 @@
 		if(in->class_name != NULL) class_name = fold_class_name(in->class_name);
 		_CLASS_NAME extends = 0;
 		if(in->extends != NULL) extends = fold_class_name(in->extends);
-		List<_INTERFACE_NAME>* implements = 0;
+		_List<_INTERFACE_NAME>* implements = 0;
 	
 		{
-			implements = new List<_INTERFACE_NAME>;
-			List<INTERFACE_NAME*>::const_iterator i;
+			implements = new _List<_INTERFACE_NAME>;
+			typename _List<INTERFACE_NAME*>::const_iterator i;
 			for(i = in->implements->begin(); i != in->implements->end(); i++)
 				if(*i != NULL) implements->push_back(fold_interface_name(*i));
 				else implements->push_back(0);
 		}
-		List<_Member>* members = 0;
+		_List<_Member>* members = 0;
 	
 		{
-			members = new List<_Member>;
-			List<Member*>::const_iterator i;
+			members = new _List<_Member>;
+			typename _List<Member*>::const_iterator i;
 			for(i = in->members->begin(); i != in->members->end(); i++)
 				if(*i != NULL) members->push_back(fold_member(*i));
 				else members->push_back(0);
@@ -151,20 +153,20 @@
 	{
 		_INTERFACE_NAME interface_name = 0;
 		if(in->interface_name != NULL) interface_name = fold_interface_name(in->interface_name);
-		List<_INTERFACE_NAME>* extends = 0;
+		_List<_INTERFACE_NAME>* extends = 0;
 	
 		{
-			extends = new List<_INTERFACE_NAME>;
-			List<INTERFACE_NAME*>::const_iterator i;
+			extends = new _List<_INTERFACE_NAME>;
+			typename _List<INTERFACE_NAME*>::const_iterator i;
 			for(i = in->extends->begin(); i != in->extends->end(); i++)
 				if(*i != NULL) extends->push_back(fold_interface_name(*i));
 				else extends->push_back(0);
 		}
-		List<_Member>* members = 0;
+		_List<_Member>* members = 0;
 	
 		{
-			members = new List<_Member>;
-			List<Member*>::const_iterator i;
+			members = new _List<_Member>;
+			typename _List<Member*>::const_iterator i;
 			for(i = in->members->begin(); i != in->members->end(); i++)
 				if(*i != NULL) members->push_back(fold_member(*i));
 				else members->push_back(0);
@@ -176,11 +178,11 @@
 	{
 		_Signature signature = 0;
 		if(in->signature != NULL) signature = fold_signature(in->signature);
-		List<_Statement>* statements = 0;
+		_List<_Statement>* statements = 0;
 	if (in->statements)
 		{
-			statements = new List<_Statement>;
-			List<Statement*>::const_iterator i;
+			statements = new _List<_Statement>;
+			typename _List<Statement*>::const_iterator i;
 			for(i = in->statements->begin(); i != in->statements->end(); i++)
 				if(*i != NULL) statements->push_back(fold_statement(*i));
 				else statements->push_back(0);
@@ -195,11 +197,11 @@
 		bool is_ref = in->is_ref;
 		_METHOD_NAME method_name = 0;
 		if(in->method_name != NULL) method_name = fold_method_name(in->method_name);
-		List<_Formal_parameter>* formal_parameters = 0;
+		_List<_Formal_parameter>* formal_parameters = 0;
 	
 		{
-			formal_parameters = new List<_Formal_parameter>;
-			List<Formal_parameter*>::const_iterator i;
+			formal_parameters = new _List<_Formal_parameter>;
+			typename _List<Formal_parameter*>::const_iterator i;
  			for(i = in->formal_parameters->begin(); i != 
in->formal_parameters->end(); i++)
 				if(*i != NULL) formal_parameters->push_back(fold_formal_parameter(*i));
 				else formal_parameters->push_back(0);
@@ -267,20 +269,20 @@
 	{
 		_VARIABLE_NAME variable_name = 0;
 		if(in->variable_name != NULL) variable_name = fold_variable_name(in->variable_name);
-		List<_Statement>* iftrue = 0;
+		_List<_Statement>* iftrue = 0;
 	
 		{
-			iftrue = new List<_Statement>;
-			List<Statement*>::const_iterator i;
+			iftrue = new _List<_Statement>;
+			typename _List<Statement*>::const_iterator i;
 			for(i = in->iftrue->begin(); i != in->iftrue->end(); i++)
 				if(*i != NULL) iftrue->push_back(fold_statement(*i));
 				else iftrue->push_back(0);
 		}
-		List<_Statement>* iffalse = 0;
+		_List<_Statement>* iffalse = 0;
 	
 		{
-			iffalse = new List<_Statement>;
-			List<Statement*>::const_iterator i;
+			iffalse = new _List<_Statement>;
+			typename _List<Statement*>::const_iterator i;
 			for(i = in->iffalse->begin(); i != in->iffalse->end(); i++)
 				if(*i != NULL) iffalse->push_back(fold_statement(*i));
 				else iffalse->push_back(0);
@@ -290,11 +292,11 @@

 	virtual _Loop fold_loop(Loop* in)
 	{
-		List<_Statement>* statements = 0;
+		_List<_Statement>* statements = 0;
 	
 		{
-			statements = new List<_Statement>;
-			List<Statement*>::const_iterator i;
+			statements = new _List<_Statement>;
+			typename _List<Statement*>::const_iterator i;
 			for(i = in->statements->begin(); i != in->statements->end(); i++)
 				if(*i != NULL) statements->push_back(fold_statement(*i));
 				else statements->push_back(0);
@@ -311,11 +313,11 @@
 		bool is_ref = in->is_ref;
 		_VARIABLE_NAME val = 0;
 		if(in->val != NULL) val = fold_variable_name(in->val);
-		List<_Statement>* statements = 0;
+		_List<_Statement>* statements = 0;
 	
 		{
-			statements = new List<_Statement>;
-			List<Statement*>::const_iterator i;
+			statements = new _List<_Statement>;
+			typename _List<Statement*>::const_iterator i;
 			for(i = in->statements->begin(); i != in->statements->end(); i++)
 				if(*i != NULL) statements->push_back(fold_statement(*i));
 				else statements->push_back(0);
@@ -360,20 +362,20 @@

 	virtual _Try fold_try(Try* in)
 	{
-		List<_Statement>* statements = 0;
+		_List<_Statement>* statements = 0;
 	
 		{
-			statements = new List<_Statement>;
-			List<Statement*>::const_iterator i;
+			statements = new _List<_Statement>;
+			typename _List<Statement*>::const_iterator i;
 			for(i = in->statements->begin(); i != in->statements->end(); i++)
 				if(*i != NULL) statements->push_back(fold_statement(*i));
 				else statements->push_back(0);
 		}
-		List<_Catch>* catches = 0;
+		_List<_Catch>* catches = 0;
 	
 		{
-			catches = new List<_Catch>;
-			List<Catch*>::const_iterator i;
+			catches = new _List<_Catch>;
+			typename _List<Catch*>::const_iterator i;
 			for(i = in->catches->begin(); i != in->catches->end(); i++)
 				if(*i != NULL) catches->push_back(fold_catch(*i));
 				else catches->push_back(0);
@@ -387,11 +389,11 @@
 		if(in->class_name != NULL) class_name = fold_class_name(in->class_name);
 		_VARIABLE_NAME variable_name = 0;
 		if(in->variable_name != NULL) variable_name = fold_variable_name(in->variable_name);
-		List<_Statement>* statements = 0;
+		_List<_Statement>* statements = 0;
 	
 		{
-			statements = new List<_Statement>;
-			List<Statement*>::const_iterator i;
+			statements = new _List<_Statement>;
+			typename _List<Statement*>::const_iterator i;
 			for(i = in->statements->begin(); i != in->statements->end(); i++)
 				if(*i != NULL) statements->push_back(fold_statement(*i));
 				else statements->push_back(0);
@@ -554,11 +556,11 @@
 		if(in->target != NULL) target = fold_target(in->target);
 		_Method_name method_name = 0;
 		if(in->method_name != NULL) method_name = fold_method_name(in->method_name);
-		List<_Actual_parameter>* actual_parameters = 0;
+		_List<_Actual_parameter>* actual_parameters = 0;
 	
 		{
-			actual_parameters = new List<_Actual_parameter>;
-			List<Actual_parameter*>::const_iterator i;
+			actual_parameters = new _List<_Actual_parameter>;
+			typename _List<Actual_parameter*>::const_iterator i;
  			for(i = in->actual_parameters->begin(); i != 
in->actual_parameters->end(); i++)
 				if(*i != NULL) actual_parameters->push_back(fold_actual_parameter(*i));
 				else actual_parameters->push_back(0);
@@ -580,11 +582,11 @@
 		if(in->target != NULL) target = fold_target(in->target);
 		_Variable_name variable_name = 0;
 		if(in->variable_name != NULL) variable_name = fold_variable_name(in->variable_name);
-		List<_VARIABLE_NAME>* array_indices = 0;
+		_List<_VARIABLE_NAME>* array_indices = 0;
 	
 		{
-			array_indices = new List<_VARIABLE_NAME>;
-			List<VARIABLE_NAME*>::const_iterator i;
+			array_indices = new _List<_VARIABLE_NAME>;
+			typename _List<VARIABLE_NAME*>::const_iterator i;
 			for(i = in->array_indices->begin(); i != in->array_indices->end(); i++)
 				if(*i != NULL) array_indices->push_back(fold_variable_name(*i));
 				else array_indices->push_back(0);
@@ -596,11 +598,11 @@
 	{
 		_Class_name class_name = 0;
 		if(in->class_name != NULL) class_name = fold_class_name(in->class_name);
-		List<_Actual_parameter>* actual_parameters = 0;
+		_List<_Actual_parameter>* actual_parameters = 0;
 	
 		{
-			actual_parameters = new List<_Actual_parameter>;
-			List<Actual_parameter*>::const_iterator i;
+			actual_parameters = new _List<_Actual_parameter>;
+			typename _List<Actual_parameter*>::const_iterator i;
  			for(i = in->actual_parameters->begin(); i != 
in->actual_parameters->end(); i++)
 				if(*i != NULL) actual_parameters->push_back(fold_actual_parameter(*i));
 				else actual_parameters->push_back(0);
@@ -617,11 +619,11 @@

 	virtual _Static_array fold_static_array(Static_array* in)
 	{
-		List<_Static_array_elem>* static_array_elems = 0;
+		_List<_Static_array_elem>* static_array_elems = 0;
 	
 		{
-			static_array_elems = new List<_Static_array_elem>;
-			List<Static_array_elem*>::const_iterator i;
+			static_array_elems = new _List<_Static_array_elem>;
+			typename _List<Static_array_elem*>::const_iterator i;
  			for(i = in->static_array_elems->begin(); i != 
in->static_array_elems->end(); i++)
 				if(*i != NULL) static_array_elems->push_back(fold_static_array_elem(*i));
 				else static_array_elems->push_back(0);
@@ -649,28 +651,28 @@
 // The user-defined folds
 // Override these methods to get specific functionality
 public:
-	virtual _PHP_script fold_impl_php_script(PHP_script* orig, 
List<_Statement>* statements) { assert(0); };
-	virtual _Class_def fold_impl_class_def(Class_def* orig, _Class_mod 
class_mod, _CLASS_NAME class_name, _CLASS_NAME extends, 
List<_INTERFACE_NAME>* implements, List<_Member>* members) { assert(0); };
+	virtual _PHP_script fold_impl_php_script(PHP_script* orig, 
_List<_Statement>* statements) { assert(0); };
+	virtual _Class_def fold_impl_class_def(Class_def* orig, _Class_mod 
class_mod, _CLASS_NAME class_name, _CLASS_NAME extends, 
_List<_INTERFACE_NAME>* implements, _List<_Member>* members) { 
assert(0); };
  	virtual _Class_mod fold_impl_class_mod(Class_mod* orig, bool 
is_abstract, bool is_final) { assert(0); };
-	virtual _Interface_def fold_impl_interface_def(Interface_def* orig, 
_INTERFACE_NAME interface_name, List<_INTERFACE_NAME>* extends, 
List<_Member>* members) { assert(0); };
-	virtual _Method fold_impl_method(Method* orig, _Signature signature, 
List<_Statement>* statements) { assert(0); };
-	virtual _Signature fold_impl_signature(Signature* orig, _Method_mod 
method_mod, bool is_ref, _METHOD_NAME method_name, 
List<_Formal_parameter>* formal_parameters) { assert(0); };
+	virtual _Interface_def fold_impl_interface_def(Interface_def* orig, 
_INTERFACE_NAME interface_name, _List<_INTERFACE_NAME>* extends, 
_List<_Member>* members) { assert(0); };
+	virtual _Method fold_impl_method(Method* orig, _Signature signature, 
_List<_Statement>* statements) { assert(0); };
+	virtual _Signature fold_impl_signature(Signature* orig, _Method_mod 
method_mod, bool is_ref, _METHOD_NAME method_name, 
_List<_Formal_parameter>* formal_parameters) { assert(0); };
  	virtual _Method_mod fold_impl_method_mod(Method_mod* orig, bool 
is_public, bool is_protected, bool is_private, bool is_static, bool 
is_abstract, bool is_final) { assert(0); };
  	virtual _Formal_parameter 
fold_impl_formal_parameter(Formal_parameter* orig, _Type type, bool 
is_ref, _Name_with_default var) { assert(0); };
  	virtual _Type fold_impl_type(Type* orig, _CLASS_NAME class_name) { 
assert(0); };
  	virtual _Attribute fold_impl_attribute(Attribute* orig, _Attr_mod 
attr_mod, _Name_with_default var) { assert(0); };
  	virtual _Attr_mod fold_impl_attr_mod(Attr_mod* orig, bool is_public, 
bool is_protected, bool is_private, bool is_static, bool is_const) { 
assert(0); };
  	virtual _Name_with_default 
fold_impl_name_with_default(Name_with_default* orig, _VARIABLE_NAME 
variable_name, _Static_value default_value) { assert(0); };
-	virtual _If fold_impl_if(If* orig, _VARIABLE_NAME variable_name, 
List<_Statement>* iftrue, List<_Statement>* iffalse) { assert(0); };
-	virtual _Loop fold_impl_loop(Loop* orig, List<_Statement>* 
statements) { assert(0); };
-	virtual _Foreach fold_impl_foreach(Foreach* orig, _VARIABLE_NAME arr, 
_VARIABLE_NAME key, bool is_ref, _VARIABLE_NAME val, List<_Statement>* 
statements) { assert(0); };
+	virtual _If fold_impl_if(If* orig, _VARIABLE_NAME variable_name, 
_List<_Statement>* iftrue, _List<_Statement>* iffalse) { assert(0); };
+	virtual _Loop fold_impl_loop(Loop* orig, _List<_Statement>* 
statements) { assert(0); };
+	virtual _Foreach fold_impl_foreach(Foreach* orig, _VARIABLE_NAME arr, 
_VARIABLE_NAME key, bool is_ref, _VARIABLE_NAME val, _List<_Statement>* 
statements) { assert(0); };
 	virtual _Break fold_impl_break(Break* orig, _Expr expr) { assert(0); };
  	virtual _Continue fold_impl_continue(Continue* orig, _Expr expr) { 
assert(0); };
  	virtual _Return fold_impl_return(Return* orig, _Expr expr) { 
assert(0); };
  	virtual _Static_declaration 
fold_impl_static_declaration(Static_declaration* orig, 
_Name_with_default var) { assert(0); };
  	virtual _Global fold_impl_global(Global* orig, _Variable_name 
variable_name) { assert(0); };
-	virtual _Try fold_impl_try(Try* orig, List<_Statement>* statements, 
List<_Catch>* catches) { assert(0); };
-	virtual _Catch fold_impl_catch(Catch* orig, _CLASS_NAME class_name, 
_VARIABLE_NAME variable_name, List<_Statement>* statements) { 
assert(0); };
+	virtual _Try fold_impl_try(Try* orig, _List<_Statement>* statements, 
_List<_Catch>* catches) { assert(0); };
+	virtual _Catch fold_impl_catch(Catch* orig, _CLASS_NAME class_name, 
_VARIABLE_NAME variable_name, _List<_Statement>* statements) { 
assert(0); };
  	virtual _Throw fold_impl_throw(Throw* orig, _VARIABLE_NAME 
variable_name) { assert(0); };
  	virtual _Assign_var fold_impl_assign_var(Assign_var* orig, 
_VARIABLE_NAME lhs, bool is_ref, _Expr rhs) { assert(0); };
  	virtual _Assign_target fold_impl_assign_target(Assign_target* orig, 
_Target target, _Variable_name lhs, bool is_ref, _VARIABLE_NAME rhs) { 
assert(0); };
@@ -687,12 +689,12 @@
  	virtual _Bin_op fold_impl_bin_op(Bin_op* orig, _VARIABLE_NAME left, 
_OP op, _VARIABLE_NAME right) { assert(0); };
  	virtual _Constant fold_impl_constant(Constant* orig, _CLASS_NAME 
class_name, _CONSTANT_NAME constant_name) { assert(0); };
  	virtual _Instanceof fold_impl_instanceof(Instanceof* orig, 
_VARIABLE_NAME variable_name, _Class_name class_name) { assert(0); };
-	virtual _Method_invocation 
fold_impl_method_invocation(Method_invocation* orig, _Target target, 
_Method_name method_name, List<_Actual_parameter>* actual_parameters) { 
assert(0); };
+	virtual _Method_invocation 
fold_impl_method_invocation(Method_invocation* orig, _Target target, 
_Method_name method_name, _List<_Actual_parameter>* actual_parameters) 
{ assert(0); };
  	virtual _Variable_method fold_impl_variable_method(Variable_method* 
orig, _VARIABLE_NAME variable_name) { assert(0); };
-	virtual _Actual_parameter 
fold_impl_actual_parameter(Actual_parameter* orig, bool is_ref, _Target 
target, _Variable_name variable_name, List<_VARIABLE_NAME>* 
array_indices) { assert(0); };
-	virtual _New fold_impl_new(New* orig, _Class_name class_name, 
List<_Actual_parameter>* actual_parameters) { assert(0); };
+	virtual _Actual_parameter 
fold_impl_actual_parameter(Actual_parameter* orig, bool is_ref, _Target 
target, _Variable_name variable_name, _List<_VARIABLE_NAME>* 
array_indices) { assert(0); };
+	virtual _New fold_impl_new(New* orig, _Class_name class_name, 
_List<_Actual_parameter>* actual_parameters) { assert(0); };
  	virtual _Variable_class fold_impl_variable_class(Variable_class* 
orig, _VARIABLE_NAME variable_name) { assert(0); };
-	virtual _Static_array fold_impl_static_array(Static_array* orig, 
List<_Static_array_elem>* static_array_elems) { assert(0); };
+	virtual _Static_array fold_impl_static_array(Static_array* orig, 
_List<_Static_array_elem>* static_array_elems) { assert(0); };
  	virtual _Static_array_elem 
fold_impl_static_array_elem(Static_array_elem* orig, _Static_array_key 
key, bool is_ref, _Static_value val) { assert(0); };
 	virtual _Foreign fold_impl_foreign(Foreign* orig) { assert(0); };

@@ -1076,7 +1078,7 @@
 	virtual ~Fold() {}
 };

-template<class T>
-class Uniform_fold : public Fold<T, T, T, T, T, T, T, T, T, T, T, T, 
T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, 
T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, 
T, T, T, T, T, T, T, T, T, T> {};
+template<class T, template <class _Tp, class _Alloc = allocator<_Tp> > 
class _List>
+class Uniform_fold : public Fold<T, T, T, T, T, T, T, T, T, T, T, T, 
T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, 
T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, 
T, T, T, T, T, T, T, T, T, T, _List> {};
 }


Modified: trunk/src/generated/MIR_fold.h
==============================================================================
--- trunk/src/generated/MIR_fold.h	(original)
+++ trunk/src/generated/MIR_fold.h	Tue Jul 29 03:02:36 2008
@@ -93,23 +93,25 @@
  class _Variable_class,
  class _Variable_method,
  class _Variable_name,
- class _Variable_variable>
+ class _Variable_variable,
+ template <class _Tp, class _Alloc = allocator<_Tp> > class _List = List
+>
 class Fold
 {
 // Access this class from subclasses without copying out the template instantiation
 public:
-   typedef Fold<_Actual_parameter, _Assign_array, _Assign_target, 
_Assign_var, _Assign_var_var, _Attr_mod, _Attribute, _BOOL, _Bin_op, 
_Branch, _CAST, _CLASS_NAME, _CONSTANT_NAME, _Cast, _Catch, _Class_def, 
_Class_mod, _Class_name, _Constant, _Eval_expr, _Expr, _Foreach_end, 
_Foreach_get_key, _Foreach_get_val, _Foreach_has_key, _Foreach_next, 
_Foreach_reset, _Foreign, _Formal_parameter, _Global, _Goto, 
_HT_ITERATOR, _INT, _INTERFACE_NAME, _Identifier, _Index_array, 
_Instanceof, _Interface_def, _LABEL_NAME, _Label, _Literal, 
_METHOD_NAME, _Member, _Method, _Method_invocation, _Method_mod, 
_Method_name, _NIL, _Name_with_default, _New, _Node, _OP, _PHP_script, 
_Pre_op, _Push_array, _REAL, _Return, _STRING, _Signature, _Statement, 
_Static_array, _Static_array_elem, _Static_array_key, 
_Static_declaration, _Static_value, _Target, _Target_expr, _Throw, 
_Try, _Type, _Unary_op, _VARIABLE_NAME, _Variable_class, 
_Variable_method, _Variable_name, _Variable_variable> parent;
+   typedef Fold<_Actual_parameter, _Assign_array, _Assign_target, 
_Assign_var, _Assign_var_var, _Attr_mod, _Attribute, _BOOL, _Bin_op, 
_Branch, _CAST, _CLASS_NAME, _CONSTANT_NAME, _Cast, _Catch, _Class_def, 
_Class_mod, _Class_name, _Constant, _Eval_expr, _Expr, _Foreach_end, 
_Foreach_get_key, _Foreach_get_val, _Foreach_has_key, _Foreach_next, 
_Foreach_reset, _Foreign, _Formal_parameter, _Global, _Goto, 
_HT_ITERATOR, _INT, _INTERFACE_NAME, _Identifier, _Index_array, 
_Instanceof, _Interface_def, _LABEL_NAME, _Label, _Literal, 
_METHOD_NAME, _Member, _Method, _Method_invocation, _Method_mod, 
_Method_name, _NIL, _Name_with_default, _New, _Node, _OP, _PHP_script, 
_Pre_op, _Push_array, _REAL, _Return, _STRING, _Signature, _Statement, 
_Static_array, _Static_array_elem, _Static_array_key, 
_Static_declaration, _Static_value, _Target, _Target_expr, _Throw, 
_Try, _Type, _Unary_op, _VARIABLE_NAME, _Variable_class, 
_Variable_method, _Variable_name, _Variable_variable, _List> parent;
 // Recursively fold the children before folding the parent
 // This methods form the client API for a fold, but should not be
 // overridden unless you know what you are doing
 public:
 	virtual _PHP_script fold_php_script(PHP_script* in)
 	{
-		List<_Statement>* statements = 0;
+		_List<_Statement>* statements = 0;
 	
 		{
-			statements = new List<_Statement>;
-			List<Statement*>::const_iterator i;
+			statements = new _List<_Statement>;
+			typename _List<Statement*>::const_iterator i;
 			for(i = in->statements->begin(); i != in->statements->end(); i++)
 				if(*i != NULL) statements->push_back(fold_statement(*i));
 				else statements->push_back(0);
@@ -125,20 +127,20 @@
 		if(in->class_name != NULL) class_name = fold_class_name(in->class_name);
 		_CLASS_NAME extends = 0;
 		if(in->extends != NULL) extends = fold_class_name(in->extends);
-		List<_INTERFACE_NAME>* implements = 0;
+		_List<_INTERFACE_NAME>* implements = 0;
 	
 		{
-			implements = new List<_INTERFACE_NAME>;
-			List<INTERFACE_NAME*>::const_iterator i;
+			implements = new _List<_INTERFACE_NAME>;
+			typename _List<INTERFACE_NAME*>::const_iterator i;
 			for(i = in->implements->begin(); i != in->implements->end(); i++)
 				if(*i != NULL) implements->push_back(fold_interface_name(*i));
 				else implements->push_back(0);
 		}
-		List<_Member>* members = 0;
+		_List<_Member>* members = 0;
 	
 		{
-			members = new List<_Member>;
-			List<Member*>::const_iterator i;
+			members = new _List<_Member>;
+			typename _List<Member*>::const_iterator i;
 			for(i = in->members->begin(); i != in->members->end(); i++)
 				if(*i != NULL) members->push_back(fold_member(*i));
 				else members->push_back(0);
@@ -157,20 +159,20 @@
 	{
 		_INTERFACE_NAME interface_name = 0;
 		if(in->interface_name != NULL) interface_name = fold_interface_name(in->interface_name);
-		List<_INTERFACE_NAME>* extends = 0;
+		_List<_INTERFACE_NAME>* extends = 0;
 	
 		{
-			extends = new List<_INTERFACE_NAME>;
-			List<INTERFACE_NAME*>::const_iterator i;
+			extends = new _List<_INTERFACE_NAME>;
+			typename _List<INTERFACE_NAME*>::const_iterator i;
 			for(i = in->extends->begin(); i != in->extends->end(); i++)
 				if(*i != NULL) extends->push_back(fold_interface_name(*i));
 				else extends->push_back(0);
 		}
-		List<_Member>* members = 0;
+		_List<_Member>* members = 0;
 	
 		{
-			members = new List<_Member>;
-			List<Member*>::const_iterator i;
+			members = new _List<_Member>;
+			typename _List<Member*>::const_iterator i;
 			for(i = in->members->begin(); i != in->members->end(); i++)
 				if(*i != NULL) members->push_back(fold_member(*i));
 				else members->push_back(0);
@@ -182,11 +184,11 @@
 	{
 		_Signature signature = 0;
 		if(in->signature != NULL) signature = fold_signature(in->signature);
-		List<_Statement>* statements = 0;
+		_List<_Statement>* statements = 0;
 	if (in->statements)
 		{
-			statements = new List<_Statement>;
-			List<Statement*>::const_iterator i;
+			statements = new _List<_Statement>;
+			typename _List<Statement*>::const_iterator i;
 			for(i = in->statements->begin(); i != in->statements->end(); i++)
 				if(*i != NULL) statements->push_back(fold_statement(*i));
 				else statements->push_back(0);
@@ -201,11 +203,11 @@
 		bool is_ref = in->is_ref;
 		_METHOD_NAME method_name = 0;
 		if(in->method_name != NULL) method_name = fold_method_name(in->method_name);
-		List<_Formal_parameter>* formal_parameters = 0;
+		_List<_Formal_parameter>* formal_parameters = 0;
 	
 		{
-			formal_parameters = new List<_Formal_parameter>;
-			List<Formal_parameter*>::const_iterator i;
+			formal_parameters = new _List<_Formal_parameter>;
+			typename _List<Formal_parameter*>::const_iterator i;
  			for(i = in->formal_parameters->begin(); i != 
in->formal_parameters->end(); i++)
 				if(*i != NULL) formal_parameters->push_back(fold_formal_parameter(*i));
 				else formal_parameters->push_back(0);
@@ -292,20 +294,20 @@

 	virtual _Try fold_try(Try* in)
 	{
-		List<_Statement>* statements = 0;
+		_List<_Statement>* statements = 0;
 	
 		{
-			statements = new List<_Statement>;
-			List<Statement*>::const_iterator i;
+			statements = new _List<_Statement>;
+			typename _List<Statement*>::const_iterator i;
 			for(i = in->statements->begin(); i != in->statements->end(); i++)
 				if(*i != NULL) statements->push_back(fold_statement(*i));
 				else statements->push_back(0);
 		}
-		List<_Catch>* catches = 0;
+		_List<_Catch>* catches = 0;
 	
 		{
-			catches = new List<_Catch>;
-			List<Catch*>::const_iterator i;
+			catches = new _List<_Catch>;
+			typename _List<Catch*>::const_iterator i;
 			for(i = in->catches->begin(); i != in->catches->end(); i++)
 				if(*i != NULL) catches->push_back(fold_catch(*i));
 				else catches->push_back(0);
@@ -319,11 +321,11 @@
 		if(in->class_name != NULL) class_name = fold_class_name(in->class_name);
 		_VARIABLE_NAME variable_name = 0;
 		if(in->variable_name != NULL) variable_name = fold_variable_name(in->variable_name);
-		List<_Statement>* statements = 0;
+		_List<_Statement>* statements = 0;
 	
 		{
-			statements = new List<_Statement>;
-			List<Statement*>::const_iterator i;
+			statements = new _List<_Statement>;
+			typename _List<Statement*>::const_iterator i;
 			for(i = in->statements->begin(); i != in->statements->end(); i++)
 				if(*i != NULL) statements->push_back(fold_statement(*i));
 				else statements->push_back(0);
@@ -486,11 +488,11 @@
 		if(in->target != NULL) target = fold_target(in->target);
 		_Method_name method_name = 0;
 		if(in->method_name != NULL) method_name = fold_method_name(in->method_name);
-		List<_Actual_parameter>* actual_parameters = 0;
+		_List<_Actual_parameter>* actual_parameters = 0;
 	
 		{
-			actual_parameters = new List<_Actual_parameter>;
-			List<Actual_parameter*>::const_iterator i;
+			actual_parameters = new _List<_Actual_parameter>;
+			typename _List<Actual_parameter*>::const_iterator i;
  			for(i = in->actual_parameters->begin(); i != 
in->actual_parameters->end(); i++)
 				if(*i != NULL) actual_parameters->push_back(fold_actual_parameter(*i));
 				else actual_parameters->push_back(0);
@@ -512,11 +514,11 @@
 		if(in->target != NULL) target = fold_target(in->target);
 		_Variable_name variable_name = 0;
 		if(in->variable_name != NULL) variable_name = fold_variable_name(in->variable_name);
-		List<_VARIABLE_NAME>* array_indices = 0;
+		_List<_VARIABLE_NAME>* array_indices = 0;
 	
 		{
-			array_indices = new List<_VARIABLE_NAME>;
-			List<VARIABLE_NAME*>::const_iterator i;
+			array_indices = new _List<_VARIABLE_NAME>;
+			typename _List<VARIABLE_NAME*>::const_iterator i;
 			for(i = in->array_indices->begin(); i != in->array_indices->end(); i++)
 				if(*i != NULL) array_indices->push_back(fold_variable_name(*i));
 				else array_indices->push_back(0);
@@ -528,11 +530,11 @@
 	{
 		_Class_name class_name = 0;
 		if(in->class_name != NULL) class_name = fold_class_name(in->class_name);
-		List<_Actual_parameter>* actual_parameters = 0;
+		_List<_Actual_parameter>* actual_parameters = 0;
 	
 		{
-			actual_parameters = new List<_Actual_parameter>;
-			List<Actual_parameter*>::const_iterator i;
+			actual_parameters = new _List<_Actual_parameter>;
+			typename _List<Actual_parameter*>::const_iterator i;
  			for(i = in->actual_parameters->begin(); i != 
in->actual_parameters->end(); i++)
 				if(*i != NULL) actual_parameters->push_back(fold_actual_parameter(*i));
 				else actual_parameters->push_back(0);
@@ -549,11 +551,11 @@

 	virtual _Static_array fold_static_array(Static_array* in)
 	{
-		List<_Static_array_elem>* static_array_elems = 0;
+		_List<_Static_array_elem>* static_array_elems = 0;
 	
 		{
-			static_array_elems = new List<_Static_array_elem>;
-			List<Static_array_elem*>::const_iterator i;
+			static_array_elems = new _List<_Static_array_elem>;
+			typename _List<Static_array_elem*>::const_iterator i;
  			for(i = in->static_array_elems->begin(); i != 
in->static_array_elems->end(); i++)
 				if(*i != NULL) static_array_elems->push_back(fold_static_array_elem(*i));
 				else static_array_elems->push_back(0);
@@ -662,12 +664,12 @@
 // The user-defined folds
 // Override these methods to get specific functionality
 public:
-	virtual _PHP_script fold_impl_php_script(PHP_script* orig, 
List<_Statement>* statements) { assert(0); };
-	virtual _Class_def fold_impl_class_def(Class_def* orig, _Class_mod 
class_mod, _CLASS_NAME class_name, _CLASS_NAME extends, 
List<_INTERFACE_NAME>* implements, List<_Member>* members) { assert(0); };
+	virtual _PHP_script fold_impl_php_script(PHP_script* orig, 
_List<_Statement>* statements) { assert(0); };
+	virtual _Class_def fold_impl_class_def(Class_def* orig, _Class_mod 
class_mod, _CLASS_NAME class_name, _CLASS_NAME extends, 
_List<_INTERFACE_NAME>* implements, _List<_Member>* members) { 
assert(0); };
  	virtual _Class_mod fold_impl_class_mod(Class_mod* orig, bool 
is_abstract, bool is_final) { assert(0); };
-	virtual _Interface_def fold_impl_interface_def(Interface_def* orig, 
_INTERFACE_NAME interface_name, List<_INTERFACE_NAME>* extends, 
List<_Member>* members) { assert(0); };
-	virtual _Method fold_impl_method(Method* orig, _Signature signature, 
List<_Statement>* statements) { assert(0); };
-	virtual _Signature fold_impl_signature(Signature* orig, _Method_mod 
method_mod, bool is_ref, _METHOD_NAME method_name, 
List<_Formal_parameter>* formal_parameters) { assert(0); };
+	virtual _Interface_def fold_impl_interface_def(Interface_def* orig, 
_INTERFACE_NAME interface_name, _List<_INTERFACE_NAME>* extends, 
_List<_Member>* members) { assert(0); };
+	virtual _Method fold_impl_method(Method* orig, _Signature signature, 
_List<_Statement>* statements) { assert(0); };
+	virtual _Signature fold_impl_signature(Signature* orig, _Method_mod 
method_mod, bool is_ref, _METHOD_NAME method_name, 
_List<_Formal_parameter>* formal_parameters) { assert(0); };
  	virtual _Method_mod fold_impl_method_mod(Method_mod* orig, bool 
is_public, bool is_protected, bool is_private, bool is_static, bool 
is_abstract, bool is_final) { assert(0); };
  	virtual _Formal_parameter 
fold_impl_formal_parameter(Formal_parameter* orig, _Type type, bool 
is_ref, _Name_with_default var) { assert(0); };
  	virtual _Type fold_impl_type(Type* orig, _CLASS_NAME class_name) { 
assert(0); };
@@ -677,8 +679,8 @@
  	virtual _Return fold_impl_return(Return* orig, _Expr expr) { 
assert(0); };
  	virtual _Static_declaration 
fold_impl_static_declaration(Static_declaration* orig, 
_Name_with_default var) { assert(0); };
  	virtual _Global fold_impl_global(Global* orig, _Variable_name 
variable_name) { assert(0); };
-	virtual _Try fold_impl_try(Try* orig, List<_Statement>* statements, 
List<_Catch>* catches) { assert(0); };
-	virtual _Catch fold_impl_catch(Catch* orig, _CLASS_NAME class_name, 
_VARIABLE_NAME variable_name, List<_Statement>* statements) { 
assert(0); };
+	virtual _Try fold_impl_try(Try* orig, _List<_Statement>* statements, 
_List<_Catch>* catches) { assert(0); };
+	virtual _Catch fold_impl_catch(Catch* orig, _CLASS_NAME class_name, 
_VARIABLE_NAME variable_name, _List<_Statement>* statements) { 
assert(0); };
  	virtual _Throw fold_impl_throw(Throw* orig, _VARIABLE_NAME 
variable_name) { assert(0); };
  	virtual _Assign_var fold_impl_assign_var(Assign_var* orig, 
_VARIABLE_NAME lhs, bool is_ref, _Expr rhs) { assert(0); };
  	virtual _Assign_target fold_impl_assign_target(Assign_target* orig, 
_Target target, _Variable_name lhs, bool is_ref, _VARIABLE_NAME rhs) { 
assert(0); };
@@ -695,12 +697,12 @@
  	virtual _Bin_op fold_impl_bin_op(Bin_op* orig, _VARIABLE_NAME left, 
_OP op, _VARIABLE_NAME right) { assert(0); };
  	virtual _Constant fold_impl_constant(Constant* orig, _CLASS_NAME 
class_name, _CONSTANT_NAME constant_name) { assert(0); };
  	virtual _Instanceof fold_impl_instanceof(Instanceof* orig, 
_VARIABLE_NAME variable_name, _Class_name class_name) { assert(0); };
-	virtual _Method_invocation 
fold_impl_method_invocation(Method_invocation* orig, _Target target, 
_Method_name method_name, List<_Actual_parameter>* actual_parameters) { 
assert(0); };
+	virtual _Method_invocation 
fold_impl_method_invocation(Method_invocation* orig, _Target target, 
_Method_name method_name, _List<_Actual_parameter>* actual_parameters) 
{ assert(0); };
  	virtual _Variable_method fold_impl_variable_method(Variable_method* 
orig, _VARIABLE_NAME variable_name) { assert(0); };
-	virtual _Actual_parameter 
fold_impl_actual_parameter(Actual_parameter* orig, bool is_ref, _Target 
target, _Variable_name variable_name, List<_VARIABLE_NAME>* 
array_indices) { assert(0); };
-	virtual _New fold_impl_new(New* orig, _Class_name class_name, 
List<_Actual_parameter>* actual_parameters) { assert(0); };
+	virtual _Actual_parameter 
fold_impl_actual_parameter(Actual_parameter* orig, bool is_ref, _Target 
target, _Variable_name variable_name, _List<_VARIABLE_NAME>* 
array_indices) { assert(0); };
+	virtual _New fold_impl_new(New* orig, _Class_name class_name, 
_List<_Actual_parameter>* actual_parameters) { assert(0); };
  	virtual _Variable_class fold_impl_variable_class(Variable_class* 
orig, _VARIABLE_NAME variable_name) { assert(0); };
-	virtual _Static_array fold_impl_static_array(Static_array* orig, 
List<_Static_array_elem>* static_array_elems) { assert(0); };
+	virtual _Static_array fold_impl_static_array(Static_array* orig, 
_List<_Static_array_elem>* static_array_elems) { assert(0); };
  	virtual _Static_array_elem 
fold_impl_static_array_elem(Static_array_elem* orig, _Static_array_key 
key, bool is_ref, _Static_value val) { assert(0); };
  	virtual _Branch fold_impl_branch(Branch* orig, _VARIABLE_NAME 
variable_name, _LABEL_NAME iftrue, _LABEL_NAME iffalse) { assert(0); };
  	virtual _Goto fold_impl_goto(Goto* orig, _LABEL_NAME label_name) { 
assert(0); };
@@ -1119,7 +1121,7 @@
 	virtual ~Fold() {}
 };

-template<class T>
-class Uniform_fold : public Fold<T, T, T, T, T, T, T, T, T, T, T, T, 
T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, 
T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, 
T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T> {};
+template<class T, template <class _Tp, class _Alloc = allocator<_Tp> > 
class _List>
+class Uniform_fold : public Fold<T, T, T, T, T, T, T, T, T, T, T, T, 
T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, 
T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, 
T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, _List> {};
 }



More information about the phc-internals mailing list