absyntax_utils/search_var_instance_decl.hh
changeset 507 30b31d8f6d0f
parent 504 f8d422b98315
child 531 e7d6f28fc882
--- a/absyntax_utils/search_var_instance_decl.hh	Sat Apr 14 16:53:35 2012 +0100
+++ b/absyntax_utils/search_var_instance_decl.hh	Sat Apr 14 18:05:50 2012 +0100
@@ -98,12 +98,14 @@
     /* variable used to store the type of variable currently being processed... */
     /* Will contain a single value of generate_c_vardecl_c::XXXX_vt */
     unsigned int current_vartype;
+    unsigned int current_option;
 
   public:
     search_var_instance_decl_c(symbol_c *search_scope);
     symbol_c *get_decl(symbol_c *variable_instance_name);
     
     unsigned int get_vartype(symbol_c *variable_instance_name);
+    unsigned int get_option(symbol_c *variable_instance_name);
 
   public:
 
@@ -118,6 +120,11 @@
     static const unsigned int global_vt   = 0x0040;  // VAR_GLOBAL
     static const unsigned int located_vt  = 0x0080;  // VAR <var_name> AT <location>
 
+    static const unsigned int none_opt        = 0x0000;
+    static const unsigned int constant_opt    = 0x0001;
+    static const unsigned int retain_opt      = 0x0002;
+    static const unsigned int non_retain_opt  = 0x0003;
+
   private:
     /***************************/
     /* B 0 - Programming Model */
@@ -131,6 +138,11 @@
     /* edge -> The F_EDGE or R_EDGE directive */
     // SYM_REF2(edge_declaration_c, edge, var1_list)
     // TODO
+    void *visit(constant_option_c *symbol);
+    void *visit(retain_option_c *symbol);
+    void *visit(non_retain_option_c *symbol);
+
+
     void *visit(input_declarations_c *symbol);
     /* VAR_OUTPUT [RETAIN | NON_RETAIN] var_init_decl_list END_VAR */
     /* option -> may be NULL ! */