absyntax_utils/search_var_instance_decl.hh
changeset 217 f5dfadf5de54
parent 202 da1a8186f86f
child 221 c6aed7e5f070
equal deleted inserted replaced
216:136d6ae70745 217:f5dfadf5de54
    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 */