3 //=============================================================================
7 * Extension of the AST_Decl class.
9 * @author Copyright 1994-1995 by Sun Microsystems
10 * @author Inc. and Aniruddha Gokhale
12 //=============================================================================
28 * The back end extension of the AST_Decl class. Provides an abstract
31 class be_decl
: public virtual AST_Decl
34 be_decl (AST_Decl::NodeType type
,
39 // Methods used by the interface type strategy.
40 /// Both the arguments should be non-null!!!. Applies prefix and
41 /// suffix to the local name and makes a flat name.
42 void compute_full_name (const char *prefix
,
46 /// Both the arguments should be non-null!!!. Applies prefix and
47 /// suffix to the local name and makes a flat name.
48 void compute_flat_name (const char *prefix
,
52 // End of Methods use by the interface type strategy.
54 /// Return the scope created by this node (if one exists).
55 virtual be_scope
*scope (void);
58 virtual int accept (be_visitor
*visitor
);
61 virtual void destroy (void);
63 /// Temporarily set this node's is_local_ flag.
64 void set_local (bool val
);
66 // Boolean methods to test if code was already generated.
67 bool cli_hdr_gen (void);
68 bool cli_stub_gen (void);
69 bool cli_inline_gen (void);
70 bool srv_hdr_gen (void);
71 bool impl_hdr_gen (void);
72 bool srv_skel_gen (void);
73 bool impl_skel_gen (void);
74 bool srv_inline_gen (void);
75 bool tie_skel_gen (void);
76 bool cli_hdr_any_op_gen (void);
77 bool cli_stub_any_op_gen (void);
78 bool cli_hdr_cdr_op_gen (void);
79 bool cli_stub_cdr_op_gen (void);
80 bool cli_inline_cdr_op_gen (void);
81 bool cli_inline_cdr_decl_gen (void);
82 bool cli_traits_gen (void);
83 bool cli_arg_traits_gen (void);
84 bool srv_arg_traits_gen (void);
85 bool srv_sarg_traits_gen (void);
86 bool cli_pragma_inst_gen (void);
87 bool cli_inarg_tmpl_class_gen (void);
88 bool cli_inarg_pragma_inst_gen (void);
89 bool cli_inoutarg_tmpl_class_gen (void);
90 bool cli_inoutarg_pragma_inst_gen (void);
91 bool cli_outarg_tmpl_class_gen (void);
92 bool cli_outarg_pragma_inst_gen (void);
93 bool cli_retarg_tmpl_class_gen (void);
94 bool cli_retarg_pragma_inst_gen (void);
95 bool srv_tmpl_class_gen (void);
96 bool srv_pragma_inst_gen (void);
97 bool srv_inarg_tmpl_class_gen (void);
98 bool srv_inarg_pragma_inst_gen (void);
99 bool srv_inoutarg_tmpl_class_gen (void);
100 bool srv_inoutarg_pragma_inst_gen (void);
101 bool srv_outarg_tmpl_class_gen (void);
102 bool srv_outarg_pragma_inst_gen (void);
103 bool srv_retarg_tmpl_class_gen (void);
104 bool srv_retarg_pragma_inst_gen (void);
105 bool ccm_pre_proc_gen (void);
106 bool ex_idl_facet_gen (void);
107 bool svnt_hdr_facet_gen (void);
108 bool svnt_src_facet_gen (void);
109 bool exec_hdr_facet_gen (void);
110 bool exec_src_facet_gen (void);
111 bool ami4ccm_ex_idl_gen (void);
113 // Set the flag indicating that code generation is done.
114 void cli_hdr_gen (bool);
115 void cli_stub_gen (bool);
116 void cli_inline_gen (bool);
117 void srv_hdr_gen (bool);
118 void impl_hdr_gen (bool);
119 void srv_skel_gen (bool);
120 void impl_skel_gen (bool);
121 void srv_inline_gen (bool);
122 void tie_skel_gen (bool);
123 void cli_hdr_any_op_gen (bool);
124 void cli_stub_any_op_gen (bool);
125 void cli_hdr_cdr_op_gen (bool);
126 void cli_stub_cdr_op_gen (bool);
127 void cli_inline_cdr_op_gen (bool);
128 void cli_inline_cdr_decl_gen (bool);
129 void cli_traits_gen (bool);
130 void cli_arg_traits_gen (bool);
131 void srv_arg_traits_gen (bool);
132 void srv_sarg_traits_gen (bool);
133 void cli_pragma_inst_gen (bool);
134 void cli_inarg_tmpl_class_gen (bool);
135 void cli_inarg_pragma_inst_gen (bool);
136 void cli_inoutarg_tmpl_class_gen (bool);
137 void cli_inoutarg_pragma_inst_gen (bool);
138 void cli_outarg_tmpl_class_gen (bool);
139 void cli_outarg_pragma_inst_gen (bool);
140 void cli_retarg_tmpl_class_gen (bool);
141 void cli_retarg_pragma_inst_gen (bool);
142 void srv_tmpl_class_gen (bool);
143 void srv_pragma_inst_gen (bool);
144 void srv_inarg_tmpl_class_gen (bool);
145 void srv_inarg_pragma_inst_gen (bool);
146 void srv_inoutarg_tmpl_class_gen (bool);
147 void srv_inoutarg_pragma_inst_gen (bool);
148 void srv_outarg_tmpl_class_gen (bool);
149 void srv_outarg_pragma_inst_gen (bool);
150 void srv_retarg_tmpl_class_gen (bool);
151 void srv_retarg_pragma_inst_gen (bool);
152 void ccm_pre_proc_gen (bool);
153 void ex_idl_facet_gen (bool);
154 void svnt_hdr_facet_gen (bool);
155 void svnt_src_facet_gen (bool);
156 void exec_hdr_facet_gen (bool);
157 void exec_src_facet_gen (bool);
158 void ami4ccm_ex_idl_gen (bool);
162 DEF_NARROW_FROM_DECL (be_decl
);
165 // Variables that indicate if the code generation for that node is already
166 // been done. This way we avoid regenerating same code.
169 bool cli_inline_gen_
;
174 bool srv_inline_gen_
;
176 bool cli_hdr_any_op_gen_
;
177 bool cli_stub_any_op_gen_
;
178 bool cli_hdr_cdr_op_gen_
;
179 bool cli_stub_cdr_op_gen_
;
180 bool cli_inline_cdr_op_gen_
;
181 bool cli_inline_cdr_decl_gen_
;
182 bool cli_traits_gen_
;
183 bool cli_arg_traits_gen_
;
184 bool srv_arg_traits_gen_
;
185 bool srv_sarg_traits_gen_
;
186 bool cli_pragma_inst_gen_
;
187 bool cli_inarg_tmpl_class_gen_
;
188 bool cli_inarg_pragma_inst_gen_
;
189 bool cli_inoutarg_tmpl_class_gen_
;
190 bool cli_inoutarg_pragma_inst_gen_
;
191 bool cli_outarg_tmpl_class_gen_
;
192 bool cli_outarg_pragma_inst_gen_
;
193 bool cli_retarg_tmpl_class_gen_
;
194 bool cli_retarg_pragma_inst_gen_
;
195 bool srv_tmpl_class_gen_
;
196 bool srv_pragma_inst_gen_
;
197 bool srv_inarg_tmpl_class_gen_
;
198 bool srv_inarg_pragma_inst_gen_
;
199 bool srv_inoutarg_tmpl_class_gen_
;
200 bool srv_inoutarg_pragma_inst_gen_
;
201 bool srv_outarg_tmpl_class_gen_
;
202 bool srv_outarg_pragma_inst_gen_
;
203 bool srv_retarg_tmpl_class_gen_
;
204 bool srv_retarg_pragma_inst_gen_
;
205 bool ccm_pre_proc_gen_
;
206 bool ex_idl_facet_gen_
;
207 bool svnt_hdr_facet_gen_
;
208 bool svnt_src_facet_gen_
;
209 bool exec_hdr_facet_gen_
;
210 bool exec_src_facet_gen_
;
211 bool ami4ccm_ex_idl_gen_
;
214 #endif // if !defined