absyntax_utils/search_var_instance_decl.hh
changeset 507 30b31d8f6d0f
parent 504 f8d422b98315
child 531 e7d6f28fc882
equal deleted inserted replaced
506:2b4e69c7ff8b 507:30b31d8f6d0f
    96     symbol_c *current_type_decl;
    96     symbol_c *current_type_decl;
    97 
    97 
    98     /* variable used to store the type of variable currently being processed... */
    98     /* variable used to store the type of variable currently being processed... */
    99     /* Will contain a single value of generate_c_vardecl_c::XXXX_vt */
    99     /* Will contain a single value of generate_c_vardecl_c::XXXX_vt */
   100     unsigned int current_vartype;
   100     unsigned int current_vartype;
       
   101     unsigned int current_option;
   101 
   102 
   102   public:
   103   public:
   103     search_var_instance_decl_c(symbol_c *search_scope);
   104     search_var_instance_decl_c(symbol_c *search_scope);
   104     symbol_c *get_decl(symbol_c *variable_instance_name);
   105     symbol_c *get_decl(symbol_c *variable_instance_name);
   105     
   106     
   106     unsigned int get_vartype(symbol_c *variable_instance_name);
   107     unsigned int get_vartype(symbol_c *variable_instance_name);
       
   108     unsigned int get_option(symbol_c *variable_instance_name);
   107 
   109 
   108   public:
   110   public:
   109 
   111 
   110     /* the types of variables that need to be processed... */
   112     /* the types of variables that need to be processed... */
   111     static const unsigned int none_vt     = 0x0000;
   113     static const unsigned int none_vt     = 0x0000;
   116     static const unsigned int temp_vt     = 0x0010;  // VAR_TEMP
   118     static const unsigned int temp_vt     = 0x0010;  // VAR_TEMP
   117     static const unsigned int external_vt = 0x0020;  // VAR_EXTERNAL
   119     static const unsigned int external_vt = 0x0020;  // VAR_EXTERNAL
   118     static const unsigned int global_vt   = 0x0040;  // VAR_GLOBAL
   120     static const unsigned int global_vt   = 0x0040;  // VAR_GLOBAL
   119     static const unsigned int located_vt  = 0x0080;  // VAR <var_name> AT <location>
   121     static const unsigned int located_vt  = 0x0080;  // VAR <var_name> AT <location>
   120 
   122 
       
   123     static const unsigned int none_opt        = 0x0000;
       
   124     static const unsigned int constant_opt    = 0x0001;
       
   125     static const unsigned int retain_opt      = 0x0002;
       
   126     static const unsigned int non_retain_opt  = 0x0003;
       
   127 
   121   private:
   128   private:
   122     /***************************/
   129     /***************************/
   123     /* B 0 - Programming Model */
   130     /* B 0 - Programming Model */
   124     /***************************/
   131     /***************************/
   125     void *visit(library_c *symbol);
   132     void *visit(library_c *symbol);
   129     /******************************************/
   136     /******************************************/
   130 
   137 
   131     /* edge -> The F_EDGE or R_EDGE directive */
   138     /* edge -> The F_EDGE or R_EDGE directive */
   132     // SYM_REF2(edge_declaration_c, edge, var1_list)
   139     // SYM_REF2(edge_declaration_c, edge, var1_list)
   133     // TODO
   140     // TODO
       
   141     void *visit(constant_option_c *symbol);
       
   142     void *visit(retain_option_c *symbol);
       
   143     void *visit(non_retain_option_c *symbol);
       
   144 
       
   145 
   134     void *visit(input_declarations_c *symbol);
   146     void *visit(input_declarations_c *symbol);
   135     /* VAR_OUTPUT [RETAIN | NON_RETAIN] var_init_decl_list END_VAR */
   147     /* VAR_OUTPUT [RETAIN | NON_RETAIN] var_init_decl_list END_VAR */
   136     /* option -> may be NULL ! */
   148     /* option -> may be NULL ! */
   137     void *visit(output_declarations_c *symbol);
   149     void *visit(output_declarations_c *symbol);
   138     /*  VAR_IN_OUT var_declaration_list END_VAR */
   150     /*  VAR_IN_OUT var_declaration_list END_VAR */