52 class array_dimension_iterator_c : public null_visitor_c { |
52 class array_dimension_iterator_c : public null_visitor_c { |
53 private: |
53 private: |
54 /* a pointer to the array_specification_c currently being analyzed */ |
54 /* a pointer to the array_specification_c currently being analyzed */ |
55 symbol_c *array_specification; |
55 symbol_c *array_specification; |
56 /* used when called to iterate() for a parameter */ |
56 /* used when called to iterate() for a parameter */ |
57 symbol_c *current_array_dimension; |
57 subrange_c *current_array_dimension; |
58 |
58 |
59 private: |
59 private: |
60 void* iterate_list(list_c *list); |
60 void* iterate_list(list_c *list); |
61 |
61 |
62 public: |
62 public: |
63 /* start off at the first dimension once again... */ |
63 /* start off at the first dimension once again... */ |
64 void reset(void); |
64 void reset(void); |
65 |
65 |
66 /* initialize the iterator object. |
66 /* initialize the iterator object. |
67 * We must be given a reference to a case_list_c that will be analyzed... |
67 * We must be given a reference to a array_specification_c that will be analyzed... |
68 */ |
68 */ |
69 array_dimension_iterator_c(symbol_c *symbol); |
69 array_dimension_iterator_c(symbol_c *symbol); |
70 |
70 |
71 /* Skip to the next subrange. After object creation, |
71 /* Skip to the next subrange. After object creation, |
72 * the object references on subrange _before_ the first, so |
72 * the object references on subrange _before_ the first, so |
73 * this function must be called once to get the object to |
73 * this function must be called once to get the object to |
74 * reference the first subrange... |
74 * reference the first subrange... |
75 * |
75 * |
76 * Returns the subrange symbol! |
76 * Returns the subrange symbol! |
77 */ |
77 */ |
78 symbol_c *next(void); |
78 subrange_c *next(void); |
|
79 |
79 |
80 |
80 private: |
81 private: |
81 |
82 |
82 /********************************/ |
83 /********************************/ |
83 /* B 1.3.3 - Derived data types */ |
84 /* B 1.3.3 - Derived data types */ |