3 //=============================================================================
7 * Concrete visitor for components
8 * This one provides the generic visitor for the be_component node.
10 * @author Jeff Parsons
12 //=============================================================================
14 #ifndef _BE_VISITOR_COMPONENT_COMPONENT_H_
15 #define _BE_VISITOR_COMPONENT_COMPONENT_H_
18 * @class be_visitor_component
20 * @brief be_visitor_component
22 * This is a concrete visitor for component
23 * that abstracts all common tasks.
25 class be_visitor_component
: public be_visitor_interface
29 be_visitor_component (be_visitor_context
*ctx
);
31 ~be_visitor_component (void);
33 /// This is the only type of declaration a component may contain.
34 virtual int visit_attribute (be_attribute
*node
);
36 /// Operations are created by the back end for 'provides', 'uses', 'emits',
37 /// 'publishes' and 'consumes' declarations.
38 virtual int visit_operation (be_operation
*node
);
40 /// Structs and sequences are created by the back end for 'uses multiple'
42 virtual int visit_structure (be_structure
*node
);
43 virtual int visit_typedef (be_typedef
*node
);
45 /// Overridden to pick up attribute declarations from a porrttype.
46 virtual int visit_extended_port (be_extended_port
*node
);
47 virtual int visit_mirror_port (be_mirror_port
*node
);
50 #endif /* _BE_VISITOR_MODULE_MODULE_H_ */