/* file: parallel_parser1.dat all directives */ fsm (fsm-id "parallel_parser_phrase_th.lex" ,fsm-filename parallel_parser_phrase_th ,fsm-namespace NS_parallel_parser_phrase_th ,fsm-class Cparallel_parser_phrase_th{ user-prefix-declaration using namespace NS_yacco2_terminals; #include "c:/yacco2/compiler/grammars/ws_eol_k.h" #include "c:/yacco2/compiler/grammars/identifier.h" #include "c:/yacco2/compiler/grammars/yacco2_syntax_code.h" #include "c:/yacco2/compiler/grammars/yacco2_code_end.h" #include "c:/yacco2/compiler/grammars/parallel_parser_attributes.h" *** user-declaration public: T_parallel_parser_phrase* parallel_parser_phrase_; std::map attributes_map_; void remove_attributes_from_map(); void add_attributes_to_map(CAbs_lr1_sym* Attributes); *** constructor parallel_parser_phrase_ = 0; *** destructor delete parallel_parser_phrase_; // stop_parse: clean up plastic dodos *** user-implementation void Cparallel_parser_phrase_th::remove_attributes_from_map(){ delete parallel_parser_phrase_; parallel_parser_phrase_ = 0; } void Cparallel_parser_phrase_th:: add_attributes_to_map(CAbs_lr1_sym* Attribute){ parallel_parser_phrase_->add_attribute_to_map(Attribute,abs_parser()); } *** op if(parallel_parser_phrase_ != 0){ delete parallel_parser_phrase_; parallel_parser_phrase_ = 0; } parallel_parser_phrase_ = new T_parallel_parser_phrase; parallel_parser_phrase_->rc(abs_parser()->start_token(),abs_parser()); *** } ,fsm-version "1.0",fsm-date "11 mar 2004",fsm-debug "true" ,fsm-comments "into the valley of ...") parallel-parser ( parallel-thread-function TH_parallel_parser_phrase_th *** parallel-la-boundary eolr - ||| - |.| *** code #include *** )