extern int finalresult; void Kernel_Sandwich::check_syntax() { first->check_syntax(); inner->check_syntax(); second->check_syntax(); } void Kernel::check_syntax() { repeated->check_syntax(); } void Term_Sandwich::check_syntax() { first->check_syntax(); second->check_syntax(); } void Syntax_vertex_List::check_syntax() { Syntax_vertex_list_iterator next_arg(*this); Syntax_vertex* each_arg; while ( each_arg = next_arg() ) each_arg->check_syntax(); } void Syntax_vertex::check_syntax() { } void Regular_syntax::check_syntax() { char * syntax = string->get_val(); if (syntax) { if (strcmp(syntax,"(@")==0) { finalresult += PAREN_ATSIGN_ERROR; cout << "Error: cannot use \"(@\" as concrete syntax." << endl; } else if (strcmp(syntax,"\"")==0) { finalresult += PAREN_ATSIGN_ERROR; cout << "Error: cannot use \" as concrete syntax." << endl; } } else { cout << "The object is not correct!" << endl; } cout << "CHECKING "; this->pp(); cout << endl; } void Optional_term::check_syntax() { opt->check_syntax(); } void Opt_labeled_term_Sandwich::check_syntax() { first->check_syntax(); second->check_syntax(); } void Any_vertex_List::check_syntax() { cout << "void Any_vertex_List::check_syntax()" << endl; Any_vertex_list_iterator next_arg(*this); Any_vertex* each_arg; while ( each_arg = next_arg() ) each_arg->check_syntax(); } void Any_vertex::check_syntax() { }