absyntax_utils/array_dimension_iterator.cc
changeset 840 60cea9fea6e6
parent 830 6f45ec6ed011
child 1041 56ebe2a31b5b
equal deleted inserted replaced
839:99d9ef4d210b 840:60cea9fea6e6
    86    *        e.g. Code that handles a non array variable as an array!
    86    *        e.g. Code that handles a non array variable as an array!
    87    *               VAR  v1, v2: int; END_VAR
    87    *               VAR  v1, v2: int; END_VAR
    88    *               v1 := v2[33, 45];
    88    *               v1 := v2[33, 45];
    89    *       The above error will be caught by the datatype checking algorithms!
    89    *       The above error will be caught by the datatype checking algorithms!
    90    */
    90    */
    91   array_specification_c* array_spec = dynamic_cast<array_specification_c*>(symbol);
    91   array_spec_init_c    * array_spec_init = dynamic_cast<array_spec_init_c    *>(symbol); 
       
    92   if (NULL != array_spec_init)    symbol = array_spec_init->array_specification;
       
    93   array_specification_c* array_spec      = dynamic_cast<array_specification_c*>(symbol);
    92   // if (NULL == array_spec) ERROR;
    94   // if (NULL == array_spec) ERROR;
    93 
    95 
    94   /* OK. Now initialize this object... */
    96   /* OK. Now initialize this object... */
    95   this->array_specification = array_spec; // Set to array_spec and not symbol => will be NULL if not an array_specification_c* !!
    97   this->array_specification = array_spec; // Set to array_spec and not symbol => will be NULL if not an array_specification_c* !!
    96   reset();
    98   reset();