absyntax_utils/function_param_iterator.hh
changeset 625 c0bda77b37a0
parent 448 1bd18fc06911
child 662 b1b11dd09a54
equal deleted inserted replaced
412:aad38592bdde 625:c0bda77b37a0
   103     /* Which operation of the class was called...
   103     /* Which operation of the class was called...
   104      * Search a parameter, or iterate to the next parameter.
   104      * Search a parameter, or iterate to the next parameter.
   105      */
   105      */
   106     typedef enum {iterate_op, search_op} operation_t;
   106     typedef enum {iterate_op, search_op} operation_t;
   107     operation_t current_operation;
   107     operation_t current_operation;
   108 
   108     
       
   109     /* the last parameter/value returned by search() or next() */
       
   110     symbol_c *last_returned_parameter; 
       
   111     
   109   private:
   112   private:
   110     int   cmp_extparam_names(const char* s1, const char* s2);
   113     int   cmp_extparam_names(const char* s1, const char* s2);
   111     void* handle_param_list(list_c *list);
   114     void* handle_param_list(list_c *list);
   112     void* handle_single_param(symbol_c *var_name);
   115     void* handle_single_param(symbol_c *var_name);
   113 
   116 
   141      * It will, however, affect the internal state necessary to correctly
   144      * It will, however, affect the internal state necessary to correctly
   142      * return the param_type(), default_value() and is_en_eno_param_implicit()
   145      * return the param_type(), default_value() and is_en_eno_param_implicit()
   143      * of the found parameter.
   146      * of the found parameter.
   144      */
   147      */
   145     identifier_c *search(symbol_c *param_name);
   148     identifier_c *search(symbol_c *param_name);
       
   149     identifier_c *search(const char *param_name);
   146 
   150 
   147     /* Returns the currently referenced parameter's default value,
   151     /* Returns the currently referenced parameter's default value,
   148      * or NULL if none is specified in the function declrataion itself.
   152      * or NULL if none is specified in the function declrataion itself.
   149      */
   153      */
   150     symbol_c *default_value(void);
   154     symbol_c *default_value(void);