#include "UNKNOWN.h"



int Cd_graph::check_inductiveness(  )
{
  DEM_TRACE("Cd_graph","int Cd_graph::check_inductiveness()");
  int return_val =  1 ;

  this->check_inductiveness_( return_val );
  return return_val;
}
//  Cd_graph  = <adjacencies > Adjacency_Nlist 
//            [ <terminal_sets > Vertex_Comma_list  ] .
void Cd_graph::check_inductiveness_( int& return_val )
{
  DEM_TRACE("Cd_graph","void Cd_graph::check_inductiveness_(int& return_val)");
  // variables for carrying in and out
  Cd_graph*  graph =  this ;
  int num_viols ;
  Ind_list*  ilist ;

  // assignments for carrying in

  // prefix class wrappers
 cout << endl
                     << "Checking the Inductiveness Axiom ..."
                     << endl;
                num_viols = 0;
              

  // outgoing calls
  // construction edge prefix wrappers
  this->get_adjacencies()->check_inductiveness_( return_val, graph ,  num_viols ,  ilist  );
  // construction edge suffix wrappers

  // suffix class wrappers
 if (num_viols > 0) {
                  cout << endl << endl << "Warning: There are " << num_viols
                       << " violations of the Inductiveness Axiom" << endl;
                  return_val = 0;
                }
              

  // assignments for carrying out
}

//  Adjacency  = <source > Vertex 
//             [ <parameters > Vertex_Comma_list  ] 
//            <ns > Neighbors 
//            "." 
//            *l.
void Adjacency::check_inductiveness_( int& return_val, Cd_graph*  graph,int&  num_viols,Ind_list* &  ilist )
{
  DEM_TRACE("Adjacency","void Adjacency::check_inductiveness_(int& return_val,Cd_graph*  graph,int&  num_viols,Ind_list* &  ilist)");
  // variables for carrying in and out

  // assignments for carrying in

  // prefix class wrappers

                ilist = new Ind_list;
                ilist->append(this->get_source());
              
                if (this->check_inductiveness1(graph, this->get_source(), ilist)) {
                  cout << endl << "\tThere are no non-cyclic objects for the "
                       << "following classes:"
                       << endl << "\t";
                  ilist->g_print();
                  num_viols++;
                  return_val = 0;
                }
              

  // outgoing calls
  // construction edge prefix wrappers
  this->get_ns()->check_inductiveness_( return_val );
  // construction edge suffix wrappers

  // suffix class wrappers
 
                delete ilist;
              

  // assignments for carrying out
}

//  Neighbors  : Neighbors_wc   |
//            Repetit_n 
//           *common* .
void Neighbors::check_inductiveness_( int& return_val )
{
  DEM_TRACE("Neighbors","void Neighbors::check_inductiveness_(int& return_val)");
#ifndef NOTRACE
   DemTrace demTraceEmptyMethod(__FILE__,__LINE__,"Neighbors",form(" at %s , ***  PREMATURELY TERMINATED *** ", this->get_type()));
#endif

}

//  Neighbors_wc  : Construct_ns   |
//               Alternat_ns 
//           *common* +
//                    <construct_ns > Any_vertex_List 
//                    -.
void Neighbors_wc::check_inductiveness_( int& return_val )
{
  DEM_TRACE("Neighbors_wc","void Neighbors_wc::check_inductiveness_(int& return_val)");
#ifndef NOTRACE
   DemTrace demTraceEmptyMethod(__FILE__,__LINE__,"Neighbors_wc",form(" at %s , ***  PREMATURELY TERMINATED *** ", this->get_type()));
#endif

}

//  Construct_ns  = "=" .
void Construct_ns::check_inductiveness_( int& return_val )
{
  DEM_TRACE("Construct_ns","void Construct_ns::check_inductiveness_(int& return_val)");
  // variables for carrying in and out

  // assignments for carrying in



  // prefix class wrappers

  // outgoing calls

  // suffix class wrappers

  // assignments for carrying out


}

//  Any_vertex  : Opt_labeled_term   |
//             Optional_term   |
//             Syntax_vertex   |
//             Inherit_term 
//           *common* .
void Any_vertex::check_inductiveness_( int& return_val )
{
  DEM_TRACE("Any_vertex","void Any_vertex::check_inductiveness_(int& return_val)");
#ifndef NOTRACE
   DemTrace demTraceEmptyMethod(__FILE__,__LINE__,"Any_vertex",form(" at %s , ***  PREMATURELY TERMINATED *** ", this->get_type()));
#endif

}

//  Opt_labeled_term  : Labeled   |
//                   Regular 
//           *common*  [ <staticspec > StaticSpec  ] 
//                     [ <accessorspec > AccessorSpec  ] 
//                    <vertex > Term .
void Opt_labeled_term::check_inductiveness_( int& return_val )
{
  DEM_TRACE("Opt_labeled_term","void Opt_labeled_term::check_inductiveness_(int& return_val)");
#ifndef NOTRACE
   DemTrace demTraceEmptyMethod(__FILE__,__LINE__,"Opt_labeled_term",form(" at %s , ***  PREMATURELY TERMINATED *** ", this->get_type()));
#endif

}

//  Regular  = .
void Regular::check_inductiveness_( int& return_val )
{
  DEM_TRACE("Regular","void Regular::check_inductiveness_(int& return_val)");
  // variables for carrying in and out

  // assignments for carrying in



  // prefix class wrappers

  // outgoing calls
  // inheritance edge prefix wrappers
  // construction edge prefix wrappers
  this->get_vertex()->check_inductiveness_( return_val );
  // construction edge suffix wrappers
  // inheritance edge prefix wrappers

  // suffix class wrappers

  // assignments for carrying out


}

//  Labeled  = "<" 
//          <label_name > DemIdent 
//          ">" .
void Labeled::check_inductiveness_( int& return_val )
{
  DEM_TRACE("Labeled","void Labeled::check_inductiveness_(int& return_val)");
  // variables for carrying in and out

  // assignments for carrying in



  // prefix class wrappers

  // outgoing calls
  // inheritance edge prefix wrappers
  // construction edge prefix wrappers
  this->get_vertex()->check_inductiveness_( return_val );
  // construction edge suffix wrappers
  // inheritance edge prefix wrappers

  // suffix class wrappers

  // assignments for carrying out


}

//  Inherit_term  = "*inherit*" 
//               <inherited > Term_Comma_list .
void Inherit_term::check_inductiveness_( int& return_val )
{
  DEM_TRACE("Inherit_term","void Inherit_term::check_inductiveness_(int& return_val)");
  // variables for carrying in and out

  // assignments for carrying in


  // prefix class wrappers

  // outgoing calls
  // construction edge prefix wrappers
  this->get_inherited()->check_inductiveness_( return_val );
  // construction edge suffix wrappers

  // suffix class wrappers

  // assignments for carrying out

}

//  Term  : Normal   |
//       CppTerm 
//           *common* <vertex > Vertex 
//                    <moduleRef > TermRef 
//                     [ <actual_parameters > Term_Comma_list  ] .
void Term::check_inductiveness_( int& return_val )
{
  DEM_TRACE("Term","void Term::check_inductiveness_(int& return_val)");
  // variables for carrying in and out

  // assignments for carrying in

  // prefix class wrappers


  // suffix class wrappers

  // assignments for carrying out
}

//  CppTerm  = "$" .
void CppTerm::check_inductiveness_( int& return_val )
{
  DEM_TRACE("CppTerm","void CppTerm::check_inductiveness_(int& return_val)");
  // variables for carrying in and out

  // assignments for carrying in


  // prefix class wrappers

  // outgoing calls
  // inheritance edge prefix wrappers
  if ( this->get_actual_parameters() != NULL )
  {
  // construction edge prefix wrappers
    this->get_actual_parameters()->check_inductiveness_( return_val );
  // construction edge prefix wrappers
  }
  // inheritance edge prefix wrappers

  // suffix class wrappers

  // assignments for carrying out

}

//  Normal  = .
void Normal::check_inductiveness_( int& return_val )
{
  DEM_TRACE("Normal","void Normal::check_inductiveness_(int& return_val)");
  // variables for carrying in and out

  // assignments for carrying in


  // prefix class wrappers

  // outgoing calls
  // inheritance edge prefix wrappers
  if ( this->get_actual_parameters() != NULL )
  {
  // construction edge prefix wrappers
    this->get_actual_parameters()->check_inductiveness_( return_val );
  // construction edge prefix wrappers
  }
  // inheritance edge prefix wrappers

  // suffix class wrappers

  // assignments for carrying out

}

//  Optional_term  = "[" 
//                <opt > Opt_labeled_term_Sandwich 
//                "]" .
void Optional_term::check_inductiveness_( int& return_val )
{
  DEM_TRACE("Optional_term","void Optional_term::check_inductiveness_(int& return_val)");
  // variables for carrying in and out

  // assignments for carrying in


  // prefix class wrappers

  // outgoing calls
  // construction edge prefix wrappers
  this->get_opt()->check_inductiveness_( return_val );
  // construction edge suffix wrappers

  // suffix class wrappers

  // assignments for carrying out

}

//  Adjacency_Nlist  ~ Adjacency  { Adjacency  }. .
void Adjacency_Nlist::check_inductiveness_( int& return_val, Cd_graph*  graph,int&  num_viols,Ind_list* &  ilist )
{
  DEM_TRACE("Adjacency_Nlist","void Adjacency_Nlist::check_inductiveness_(int& return_val,Cd_graph*  graph,int&  num_viols,Ind_list* &  ilist)");
  // variables for carrying in and out

  // assignments for carrying in

  // prefix class wrappers

  // outgoing calls
  Adjacency_list_iterator	next_Adjacency(*this);
  Adjacency*		each_Adjacency;

  while ( each_Adjacency = next_Adjacency() )
  {
  // repetition edge prefix wrappers
    each_Adjacency->check_inductiveness_( return_val, graph ,  num_viols ,  ilist  );
  // repetition edge suffix wrappers
  }

  // suffix class wrappers

  // assignments for carrying out
}

//  Any_vertex_List  ~  { Any_vertex  }. .
void Any_vertex_List::check_inductiveness_( int& return_val )
{
  DEM_TRACE("Any_vertex_List","void Any_vertex_List::check_inductiveness_(int& return_val)");
  // variables for carrying in and out

  // assignments for carrying in

  // prefix class wrappers

  // outgoing calls
  Any_vertex_list_iterator	next_Any_vertex(*this);
  Any_vertex*		each_Any_vertex;

  while ( each_Any_vertex = next_Any_vertex() )
  {
  // repetition edge prefix wrappers
    each_Any_vertex->check_inductiveness_( return_val );
  // repetition edge suffix wrappers
  }

  // suffix class wrappers

  // assignments for carrying out
}

//  Term_Comma_list  ~ Term  { Term  }. .
void Term_Comma_list::check_inductiveness_( int& return_val )
{
  DEM_TRACE("Term_Comma_list","void Term_Comma_list::check_inductiveness_(int& return_val)");
  // variables for carrying in and out

  // assignments for carrying in

  // prefix class wrappers

  // outgoing calls
  Term_list_iterator	next_Term(*this);
  Term*		each_Term;

  while ( each_Term = next_Term() )
  {
  // repetition edge prefix wrappers
    each_Term->check_inductiveness_( return_val );
  // repetition edge suffix wrappers
  }

  // suffix class wrappers

  // assignments for carrying out
}

//  Opt_labeled_term_Sandwich  = <first > Syntax_vertex_List 
//                            <inner > Opt_labeled_term 
//                            <second > Syntax_vertex_List .
void Opt_labeled_term_Sandwich::check_inductiveness_( int& return_val )
{
  DEM_TRACE("Opt_labeled_term_Sandwich","void Opt_labeled_term_Sandwich::check_inductiveness_(int& return_val)");
  // variables for carrying in and out

  // assignments for carrying in

  // prefix class wrappers

  // outgoing calls
  // construction edge prefix wrappers
  this->get_inner()->check_inductiveness_( return_val );
  // construction edge suffix wrappers

  // suffix class wrappers

  // assignments for carrying out
}

int Adjacency::check_inductiveness1( Cd_graph*  graph,Vertex*  src,Ind_list*  ilist )
{
  DEM_TRACE("Adjacency","int Adjacency::check_inductiveness1(Cd_graph*  graph,Vertex*  src,Ind_list*  ilist)");
  int return_val =  0 ;

  this->check_inductiveness1_( return_val, graph ,  src ,  ilist  );
  return return_val;
}
//  Adjacency  = <source > Vertex 
//             [ <parameters > Vertex_Comma_list  ] 
//            <ns > Neighbors 
//            "." 
//            *l.
void Adjacency::check_inductiveness1_( int& return_val, Cd_graph*  graph,Vertex*  src,Ind_list*  ilist )
{
  DEM_TRACE("Adjacency","void Adjacency::check_inductiveness1_(int& return_val,Cd_graph*  graph,Vertex*  src,Ind_list*  ilist)");
  // variables for carrying in and out

  // assignments for carrying in

  // prefix class wrappers

  // outgoing calls
  // construction edge prefix wrappers
  this->get_ns()->check_inductiveness1_( return_val, graph ,  src ,  ilist  );
  // construction edge suffix wrappers

  // suffix class wrappers

  // assignments for carrying out
}

//  Neighbors  : Neighbors_wc   |
//            Repetit_n 
//           *common* .
void Neighbors::check_inductiveness1_( int& return_val, Cd_graph*  graph,Vertex*  src,Ind_list*  ilist )
{
  DEM_TRACE("Neighbors","void Neighbors::check_inductiveness1_(int& return_val,Cd_graph*  graph,Vertex*  src,Ind_list*  ilist)");
#ifndef NOTRACE
   DemTrace demTraceEmptyMethod(__FILE__,__LINE__,"Neighbors",form(" at %s , ***  PREMATURELY TERMINATED *** ", this->get_type()));
#endif

}

//  Neighbors_wc  : Construct_ns   |
//               Alternat_ns 
//           *common* +
//                    <construct_ns > Any_vertex_List 
//                    -.
void Neighbors_wc::check_inductiveness1_( int& return_val, Cd_graph*  graph,Vertex*  src,Ind_list*  ilist )
{
  DEM_TRACE("Neighbors_wc","void Neighbors_wc::check_inductiveness1_(int& return_val,Cd_graph*  graph,Vertex*  src,Ind_list*  ilist)");
#ifndef NOTRACE
   DemTrace demTraceEmptyMethod(__FILE__,__LINE__,"Neighbors_wc",form(" at %s , ***  PREMATURELY TERMINATED *** ", this->get_type()));
#endif

}

//  Construct_ns  = "=" .
void Construct_ns::check_inductiveness1_( int& return_val, Cd_graph*  graph,Vertex*  src,Ind_list*  ilist )
{
  DEM_TRACE("Construct_ns","void Construct_ns::check_inductiveness1_(int& return_val,Cd_graph*  graph,Vertex*  src,Ind_list*  ilist)");
  // variables for carrying in and out

  // assignments for carrying in



  // prefix class wrappers
 
                if (this->check_inductiveness3(graph, src, ilist)) {
                  return_val = 1;
                }
              

  // outgoing calls

  // suffix class wrappers

  // assignments for carrying out


}

//  Alternat_ns  = ":" 
//              +
//              <alternat_ns > Term_Bar_list 
//              -
//               [ <common > Common  ] .
void Alternat_ns::check_inductiveness1_( int& return_val, Cd_graph*  graph,Vertex*  src,Ind_list*  ilist )
{
  DEM_TRACE("Alternat_ns","void Alternat_ns::check_inductiveness1_(int& return_val,Cd_graph*  graph,Vertex*  src,Ind_list*  ilist)");
  // variables for carrying in and out

  // assignments for carrying in



  // prefix class wrappers
 
                if (this->check_inductiveness2(graph, src, ilist)) {
                  return_val = 1;
                }
              

  // outgoing calls

  // suffix class wrappers

  // assignments for carrying out


}

int Alternat_ns::check_inductiveness2( Cd_graph*  graph,Vertex*  src,Ind_list*  ilist )
{
  DEM_TRACE("Alternat_ns","int Alternat_ns::check_inductiveness2(Cd_graph*  graph,Vertex*  src,Ind_list*  ilist)");
  int return_val =  1 ;

  this->check_inductiveness2_( return_val, graph ,  src ,  ilist  );
  return return_val;
}
//  Alternat_ns  = ":" 
//              +
//              <alternat_ns > Term_Bar_list 
//              -
//               [ <common > Common  ] .
void Alternat_ns::check_inductiveness2_( int& return_val, Cd_graph*  graph,Vertex*  src,Ind_list*  ilist )
{
  DEM_TRACE("Alternat_ns","void Alternat_ns::check_inductiveness2_(int& return_val,Cd_graph*  graph,Vertex*  src,Ind_list*  ilist)");
  // variables for carrying in and out

  // assignments for carrying in

  // prefix class wrappers

  // outgoing calls
  // construction edge prefix wrappers
  this->get_alternat_ns()->check_inductiveness2_( return_val, graph ,  src ,  ilist  );
  // construction edge suffix wrappers

  // suffix class wrappers

  // assignments for carrying out
}

//  Term  : Normal   |
//       CppTerm 
//           *common* <vertex > Vertex 
//                    <moduleRef > TermRef 
//                     [ <actual_parameters > Term_Comma_list  ] .
void Term::check_inductiveness2_( int& return_val, Cd_graph*  graph,Vertex*  src,Ind_list*  ilist )
{
  DEM_TRACE("Term","void Term::check_inductiveness2_(int& return_val,Cd_graph*  graph,Vertex*  src,Ind_list*  ilist)");
  // variables for carrying in and out

  // assignments for carrying in

  // prefix class wrappers
 
                if (return_val == 1) {
                  if (!ilist->check_inductiveness4(this->get_vertex())) {
                    Adjacency* adjclass = graph->find_adjacency(this->get_vertex());
                    if (adjclass != NULL) {
                      ilist->append(this->get_vertex());
                      if (!adjclass->check_inductiveness1(graph, src, ilist)) {
                          return_val = 0;
                      }

                    }
                  }
                  else if (this->find_line_number() <= 
                           src->get_vertex_name()->get_line_number()) { 
                    return_val = 0;
                  }
                }
              


  // suffix class wrappers

  // assignments for carrying out
}

//  CppTerm  = "$" .
void CppTerm::check_inductiveness2_( int& return_val, Cd_graph*  graph,Vertex*  src,Ind_list*  ilist )
{
  DEM_TRACE("CppTerm","void CppTerm::check_inductiveness2_(int& return_val,Cd_graph*  graph,Vertex*  src,Ind_list*  ilist)");
  // variables for carrying in and out

  // assignments for carrying in


  // prefix class wrappers
 
                if (return_val == 1) {
                  if (!ilist->check_inductiveness4(this->get_vertex())) {
                    Adjacency* adjclass = graph->find_adjacency(this->get_vertex());
                    if (adjclass != NULL) {
                      ilist->append(this->get_vertex());
                      if (!adjclass->check_inductiveness1(graph, src, ilist)) {
                          return_val = 0;
                      }

                    }
                  }
                  else if (this->find_line_number() <= 
                           src->get_vertex_name()->get_line_number()) { 
                    return_val = 0;
                  }
                }
              

  // outgoing calls
  // inheritance edge prefix wrappers
  if ( this->get_actual_parameters() != NULL )
  {
  // construction edge prefix wrappers
    this->get_actual_parameters()->check_inductiveness2_( return_val, graph ,  src ,  ilist  );
  // construction edge prefix wrappers
  }
  // inheritance edge prefix wrappers

  // suffix class wrappers

  // assignments for carrying out

}

//  Normal  = .
void Normal::check_inductiveness2_( int& return_val, Cd_graph*  graph,Vertex*  src,Ind_list*  ilist )
{
  DEM_TRACE("Normal","void Normal::check_inductiveness2_(int& return_val,Cd_graph*  graph,Vertex*  src,Ind_list*  ilist)");
  // variables for carrying in and out

  // assignments for carrying in


  // prefix class wrappers
 
                if (return_val == 1) {
                  if (!ilist->check_inductiveness4(this->get_vertex())) {
                    Adjacency* adjclass = graph->find_adjacency(this->get_vertex());
                    if (adjclass != NULL) {
                      ilist->append(this->get_vertex());
                      if (!adjclass->check_inductiveness1(graph, src, ilist)) {
                          return_val = 0;
                      }

                    }
                  }
                  else if (this->find_line_number() <= 
                           src->get_vertex_name()->get_line_number()) { 
                    return_val = 0;
                  }
                }
              

  // outgoing calls
  // inheritance edge prefix wrappers
  if ( this->get_actual_parameters() != NULL )
  {
  // construction edge prefix wrappers
    this->get_actual_parameters()->check_inductiveness2_( return_val, graph ,  src ,  ilist  );
  // construction edge prefix wrappers
  }
  // inheritance edge prefix wrappers

  // suffix class wrappers

  // assignments for carrying out

}

//  Term_Bar_list  ~ Term  { Term  }. .
void Term_Bar_list::check_inductiveness2_( int& return_val, Cd_graph*  graph,Vertex*  src,Ind_list*  ilist )
{
  DEM_TRACE("Term_Bar_list","void Term_Bar_list::check_inductiveness2_(int& return_val,Cd_graph*  graph,Vertex*  src,Ind_list*  ilist)");
  // variables for carrying in and out

  // assignments for carrying in

  // prefix class wrappers

  // outgoing calls
  Term_list_iterator	next_Term(*this);
  Term*		each_Term;

  while ( each_Term = next_Term() )
  {
  // repetition edge prefix wrappers
    each_Term->check_inductiveness2_( return_val, graph ,  src ,  ilist  );
  // repetition edge suffix wrappers
  }

  // suffix class wrappers

  // assignments for carrying out
}

//  Term_Comma_list  ~ Term  { Term  }. .
void Term_Comma_list::check_inductiveness2_( int& return_val, Cd_graph*  graph,Vertex*  src,Ind_list*  ilist )
{
  DEM_TRACE("Term_Comma_list","void Term_Comma_list::check_inductiveness2_(int& return_val,Cd_graph*  graph,Vertex*  src,Ind_list*  ilist)");
  // variables for carrying in and out

  // assignments for carrying in

  // prefix class wrappers

  // outgoing calls
  Term_list_iterator	next_Term(*this);
  Term*		each_Term;

  while ( each_Term = next_Term() )
  {
  // repetition edge prefix wrappers
    each_Term->check_inductiveness2_( return_val, graph ,  src ,  ilist  );
  // repetition edge suffix wrappers
  }

  // suffix class wrappers

  // assignments for carrying out
}

int Construct_ns::check_inductiveness3( Cd_graph*  graph,Vertex*  src,Ind_list*  ilist )
{
  DEM_TRACE("Construct_ns","int Construct_ns::check_inductiveness3(Cd_graph*  graph,Vertex*  src,Ind_list*  ilist)");
  int return_val =  0 ;

  this->check_inductiveness3_( return_val, graph ,  src ,  ilist  );
  return return_val;
}
//  Neighbors_wc  : Construct_ns   |
//               Alternat_ns 
//           *common* +
//                    <construct_ns > Any_vertex_List 
//                    -.
void Neighbors_wc::check_inductiveness3_( int& return_val, Cd_graph*  graph,Vertex*  src,Ind_list*  ilist )
{
  DEM_TRACE("Neighbors_wc","void Neighbors_wc::check_inductiveness3_(int& return_val,Cd_graph*  graph,Vertex*  src,Ind_list*  ilist)");
#ifndef NOTRACE
   DemTrace demTraceEmptyMethod(__FILE__,__LINE__,"Neighbors_wc",form(" at %s , ***  PREMATURELY TERMINATED *** ", this->get_type()));
#endif

}

//  Construct_ns  = "=" .
void Construct_ns::check_inductiveness3_( int& return_val, Cd_graph*  graph,Vertex*  src,Ind_list*  ilist )
{
  DEM_TRACE("Construct_ns","void Construct_ns::check_inductiveness3_(int& return_val,Cd_graph*  graph,Vertex*  src,Ind_list*  ilist)");
  // variables for carrying in and out

  // assignments for carrying in


  // prefix class wrappers

  // outgoing calls
  // inheritance edge prefix wrappers
  // construction edge prefix wrappers
  this->get_construct_ns()->check_inductiveness3_( return_val, graph ,  src ,  ilist  );
  // construction edge suffix wrappers
  // inheritance edge prefix wrappers

  // suffix class wrappers

  // assignments for carrying out

}

//  Any_vertex  : Opt_labeled_term   |
//             Optional_term   |
//             Syntax_vertex   |
//             Inherit_term 
//           *common* .
void Any_vertex::check_inductiveness3_( int& return_val, Cd_graph*  graph,Vertex*  src,Ind_list*  ilist )
{
  DEM_TRACE("Any_vertex","void Any_vertex::check_inductiveness3_(int& return_val,Cd_graph*  graph,Vertex*  src,Ind_list*  ilist)");
#ifndef NOTRACE
   DemTrace demTraceEmptyMethod(__FILE__,__LINE__,"Any_vertex",form(" at %s , ***  PREMATURELY TERMINATED *** ", this->get_type()));
#endif

}

//  Opt_labeled_term  : Labeled   |
//                   Regular 
//           *common*  [ <staticspec > StaticSpec  ] 
//                     [ <accessorspec > AccessorSpec  ] 
//                    <vertex > Term .
void Opt_labeled_term::check_inductiveness3_( int& return_val, Cd_graph*  graph,Vertex*  src,Ind_list*  ilist )
{
  DEM_TRACE("Opt_labeled_term","void Opt_labeled_term::check_inductiveness3_(int& return_val,Cd_graph*  graph,Vertex*  src,Ind_list*  ilist)");
#ifndef NOTRACE
   DemTrace demTraceEmptyMethod(__FILE__,__LINE__,"Opt_labeled_term",form(" at %s , ***  PREMATURELY TERMINATED *** ", this->get_type()));
#endif

}

//  Regular  = .
void Regular::check_inductiveness3_( int& return_val, Cd_graph*  graph,Vertex*  src,Ind_list*  ilist )
{
  DEM_TRACE("Regular","void Regular::check_inductiveness3_(int& return_val,Cd_graph*  graph,Vertex*  src,Ind_list*  ilist)");
  // variables for carrying in and out

  // assignments for carrying in



  // prefix class wrappers

  // outgoing calls
  // inheritance edge prefix wrappers
  // construction edge prefix wrappers
  this->get_vertex()->check_inductiveness3_( return_val, graph ,  src ,  ilist  );
  // construction edge suffix wrappers
  // inheritance edge prefix wrappers

  // suffix class wrappers

  // assignments for carrying out


}

//  Labeled  = "<" 
//          <label_name > DemIdent 
//          ">" .
void Labeled::check_inductiveness3_( int& return_val, Cd_graph*  graph,Vertex*  src,Ind_list*  ilist )
{
  DEM_TRACE("Labeled","void Labeled::check_inductiveness3_(int& return_val,Cd_graph*  graph,Vertex*  src,Ind_list*  ilist)");
  // variables for carrying in and out

  // assignments for carrying in



  // prefix class wrappers

  // outgoing calls
  // inheritance edge prefix wrappers
  // construction edge prefix wrappers
  this->get_vertex()->check_inductiveness3_( return_val, graph ,  src ,  ilist  );
  // construction edge suffix wrappers
  // inheritance edge prefix wrappers

  // suffix class wrappers

  // assignments for carrying out


}

//  Inherit_term  = "*inherit*" 
//               <inherited > Term_Comma_list .
void Inherit_term::check_inductiveness3_( int& return_val, Cd_graph*  graph,Vertex*  src,Ind_list*  ilist )
{
  DEM_TRACE("Inherit_term","void Inherit_term::check_inductiveness3_(int& return_val,Cd_graph*  graph,Vertex*  src,Ind_list*  ilist)");
  // variables for carrying in and out

  // assignments for carrying in


  // prefix class wrappers

  // outgoing calls
  // construction edge prefix wrappers
  this->get_inherited()->check_inductiveness3_( return_val, graph ,  src ,  ilist  );
  // construction edge suffix wrappers

  // suffix class wrappers

  // assignments for carrying out

}

//  Term  : Normal   |
//       CppTerm 
//           *common* <vertex > Vertex 
//                    <moduleRef > TermRef 
//                     [ <actual_parameters > Term_Comma_list  ] .
void Term::check_inductiveness3_( int& return_val, Cd_graph*  graph,Vertex*  src,Ind_list*  ilist )
{
  DEM_TRACE("Term","void Term::check_inductiveness3_(int& return_val,Cd_graph*  graph,Vertex*  src,Ind_list*  ilist)");
  // variables for carrying in and out

  // assignments for carrying in

  // prefix class wrappers
 
                if (return_val == 0) {
                  if (ilist->check_inductiveness4(this->get_vertex())) {
                    if (this->find_line_number() > 
                        src->get_vertex_name()->get_line_number()) {
                      return_val = 1;
                    }
                  }
                  else {
                    Adjacency* adjclass = graph->find_adjacency(this->get_vertex());
                    if (adjclass != NULL) {
                      ilist->append(this->get_vertex());
                      if (adjclass->check_inductiveness1(graph, src, ilist)) {
                        return_val = 1;
                      }                      
                    }
                  }
                }
              


  // suffix class wrappers

  // assignments for carrying out
}

//  CppTerm  = "$" .
void CppTerm::check_inductiveness3_( int& return_val, Cd_graph*  graph,Vertex*  src,Ind_list*  ilist )
{
  DEM_TRACE("CppTerm","void CppTerm::check_inductiveness3_(int& return_val,Cd_graph*  graph,Vertex*  src,Ind_list*  ilist)");
  // variables for carrying in and out

  // assignments for carrying in


  // prefix class wrappers
 
                if (return_val == 0) {
                  if (ilist->check_inductiveness4(this->get_vertex())) {
                    if (this->find_line_number() > 
                        src->get_vertex_name()->get_line_number()) {
                      return_val = 1;
                    }
                  }
                  else {
                    Adjacency* adjclass = graph->find_adjacency(this->get_vertex());
                    if (adjclass != NULL) {
                      ilist->append(this->get_vertex());
                      if (adjclass->check_inductiveness1(graph, src, ilist)) {
                        return_val = 1;
                      }                      
                    }
                  }
                }
              

  // outgoing calls
  // inheritance edge prefix wrappers
  if ( this->get_actual_parameters() != NULL )
  {
  // construction edge prefix wrappers
    this->get_actual_parameters()->check_inductiveness3_( return_val, graph ,  src ,  ilist  );
  // construction edge prefix wrappers
  }
  // inheritance edge prefix wrappers

  // suffix class wrappers

  // assignments for carrying out

}

//  Normal  = .
void Normal::check_inductiveness3_( int& return_val, Cd_graph*  graph,Vertex*  src,Ind_list*  ilist )
{
  DEM_TRACE("Normal","void Normal::check_inductiveness3_(int& return_val,Cd_graph*  graph,Vertex*  src,Ind_list*  ilist)");
  // variables for carrying in and out

  // assignments for carrying in


  // prefix class wrappers
 
                if (return_val == 0) {
                  if (ilist->check_inductiveness4(this->get_vertex())) {
                    if (this->find_line_number() > 
                        src->get_vertex_name()->get_line_number()) {
                      return_val = 1;
                    }
                  }
                  else {
                    Adjacency* adjclass = graph->find_adjacency(this->get_vertex());
                    if (adjclass != NULL) {
                      ilist->append(this->get_vertex());
                      if (adjclass->check_inductiveness1(graph, src, ilist)) {
                        return_val = 1;
                      }                      
                    }
                  }
                }
              

  // outgoing calls
  // inheritance edge prefix wrappers
  if ( this->get_actual_parameters() != NULL )
  {
  // construction edge prefix wrappers
    this->get_actual_parameters()->check_inductiveness3_( return_val, graph ,  src ,  ilist  );
  // construction edge prefix wrappers
  }
  // inheritance edge prefix wrappers

  // suffix class wrappers

  // assignments for carrying out

}

//  Any_vertex_List  ~  { Any_vertex  }. .
void Any_vertex_List::check_inductiveness3_( int& return_val, Cd_graph*  graph,Vertex*  src,Ind_list*  ilist )
{
  DEM_TRACE("Any_vertex_List","void Any_vertex_List::check_inductiveness3_(int& return_val,Cd_graph*  graph,Vertex*  src,Ind_list*  ilist)");
  // variables for carrying in and out

  // assignments for carrying in

  // prefix class wrappers

  // outgoing calls
  Any_vertex_list_iterator	next_Any_vertex(*this);
  Any_vertex*		each_Any_vertex;

  while ( each_Any_vertex = next_Any_vertex() )
  {
  // repetition edge prefix wrappers
    each_Any_vertex->check_inductiveness3_( return_val, graph ,  src ,  ilist  );
  // repetition edge suffix wrappers
  }

  // suffix class wrappers

  // assignments for carrying out
}

//  Term_Comma_list  ~ Term  { Term  }. .
void Term_Comma_list::check_inductiveness3_( int& return_val, Cd_graph*  graph,Vertex*  src,Ind_list*  ilist )
{
  DEM_TRACE("Term_Comma_list","void Term_Comma_list::check_inductiveness3_(int& return_val,Cd_graph*  graph,Vertex*  src,Ind_list*  ilist)");
  // variables for carrying in and out

  // assignments for carrying in

  // prefix class wrappers

  // outgoing calls
  Term_list_iterator	next_Term(*this);
  Term*		each_Term;

  while ( each_Term = next_Term() )
  {
  // repetition edge prefix wrappers
    each_Term->check_inductiveness3_( return_val, graph ,  src ,  ilist  );
  // repetition edge suffix wrappers
  }

  // suffix class wrappers

  // assignments for carrying out
}

int Ind_list::check_inductiveness4( Vertex*  v )
{
  DEM_TRACE("Ind_list","int Ind_list::check_inductiveness4(Vertex*  v)");
  int return_val =  0 ;

  this->check_inductiveness4_( return_val, v  );
  return return_val;
}
//  Vertex  = <vertex_name > DemIdent .
void Vertex::check_inductiveness4_( int& return_val, Vertex*  v )
{
  DEM_TRACE("Vertex","void Vertex::check_inductiveness4_(int& return_val,Vertex*  v)");
  // variables for carrying in and out

  // assignments for carrying in

  // prefix class wrappers
 if (this->g_equal(v)) return_val = 1; 

  // outgoing calls

  // suffix class wrappers

  // assignments for carrying out
}

//  Ind_list  ~  { Vertex  }. .
void Ind_list::check_inductiveness4_( int& return_val, Vertex*  v )
{
  DEM_TRACE("Ind_list","void Ind_list::check_inductiveness4_(int& return_val,Vertex*  v)");
  // variables for carrying in and out

  // assignments for carrying in

  // prefix class wrappers

  // outgoing calls
  Vertex_list_iterator	next_Vertex(*this);
  Vertex*		each_Vertex;

  while ( each_Vertex = next_Vertex() )
  {
  // repetition edge prefix wrappers
    each_Vertex->check_inductiveness4_( return_val, v  );
  // repetition edge suffix wrappers
  }

  // suffix class wrappers

  // assignments for carrying out
}


