64 |
64 |
65 /* variable used to store the type of variable currently being processed... */ |
65 /* variable used to store the type of variable currently being processed... */ |
66 /* Will contain a single value of generate_c_vardecl_c::XXXX_vt */ |
66 /* Will contain a single value of generate_c_vardecl_c::XXXX_vt */ |
67 unsigned int current_vartype; |
67 unsigned int current_vartype; |
68 |
68 |
|
69 /* variable used to store the qualifier of variable currently being processed... */ |
|
70 /* Will contain a single value of generate_c_vardecl_c::XXXX_vq */ |
|
71 unsigned int current_varqualifier; |
|
72 |
69 public: |
73 public: |
70 search_var_instance_decl_c(symbol_c *search_scope); |
74 search_var_instance_decl_c(symbol_c *search_scope); |
71 symbol_c *get_decl(symbol_c *variable_instance_name); |
75 symbol_c *get_decl(symbol_c *variable_instance_name); |
72 unsigned int get_vartype(); |
76 unsigned int get_vartype(); |
|
77 unsigned int get_varqualifier(); |
73 |
78 |
74 public: |
79 public: |
75 |
80 |
76 /* the types of variables that need to be processed... */ |
81 /* the types of variables that need to be processed... */ |
77 static const unsigned int none_vt = 0x0000; |
82 static const unsigned int none_vt = 0x0000; |
82 static const unsigned int temp_vt = 0x0010; // VAR_TEMP |
87 static const unsigned int temp_vt = 0x0010; // VAR_TEMP |
83 static const unsigned int external_vt = 0x0020; // VAR_EXTERNAL |
88 static const unsigned int external_vt = 0x0020; // VAR_EXTERNAL |
84 static const unsigned int global_vt = 0x0040; // VAR_GLOBAL |
89 static const unsigned int global_vt = 0x0040; // VAR_GLOBAL |
85 static const unsigned int located_vt = 0x0080; // VAR <var_name> AT <location> |
90 static const unsigned int located_vt = 0x0080; // VAR <var_name> AT <location> |
86 |
91 |
|
92 /* the qualifier of variables that need to be processed... */ |
|
93 static const unsigned int none_vq = 0x0000; |
|
94 static const unsigned int constant_vq = 0x0001; // CONSTANT |
|
95 static const unsigned int retain_vq = 0x0002; // RETAIN |
|
96 static const unsigned int non_retain_vq = 0x0002; // NON_RETAIN |
|
97 |
87 private: |
98 private: |
88 /***************************/ |
99 /***************************/ |
89 /* B 0 - Programming Model */ |
100 /* B 0 - Programming Model */ |
90 /***************************/ |
101 /***************************/ |
91 void *visit(library_c *symbol); |
102 void *visit(library_c *symbol); |
92 |
103 |
93 /******************************************/ |
104 /******************************************/ |
94 /* B 1.4.3 - Declaration & Initialisation */ |
105 /* B 1.4.3 - Declaration & Initialisation */ |
95 /******************************************/ |
106 /******************************************/ |
|
107 |
|
108 void *visit(constant_option_c *symbol); |
|
109 void *visit(retain_option_c *symbol); |
|
110 void *visit(non_retain_option_c *symbol); |
96 /* edge -> The F_EDGE or R_EDGE directive */ |
111 /* edge -> The F_EDGE or R_EDGE directive */ |
97 // SYM_REF2(edge_declaration_c, edge, var1_list) |
112 // SYM_REF2(edge_declaration_c, edge, var1_list) |
98 // TODO |
113 // TODO |
99 void *visit(input_declarations_c *symbol); |
114 void *visit(input_declarations_c *symbol); |
100 /* VAR_OUTPUT [RETAIN | NON_RETAIN] var_init_decl_list END_VAR */ |
115 /* VAR_OUTPUT [RETAIN | NON_RETAIN] var_init_decl_list END_VAR */ |