143 |
143 |
144 Data Type Analysis |
144 Data Type Analysis |
145 Pass 1: Analyses the possible data types each expression/literal/IL instruction/etc. may take |
145 Pass 1: Analyses the possible data types each expression/literal/IL instruction/etc. may take |
146 Implemented in -> stage3/fill_candidate_datatypes_c |
146 Implemented in -> stage3/fill_candidate_datatypes_c |
147 This will anotate the abstract syntax tree |
147 This will anotate the abstract syntax tree |
148 (Every object of in the abstract syntax tree that may have a data type, will have the variable 'candidate_datatypes' correctly filled in.) |
148 (Every object of in the abstract syntax tree that may have a data type, will have the variable 'candidate_datatypes' correctly filled in. |
149 Pass 2: Narrows all the possible data types each expression/literal/IL instruction/etc. may take down to a single data type |
149 Additionally, objects in the abstract syntax tree that represen function invocations will have the variable |
|
150 'candidate_functions' correctly filled in.) |
|
151 Pass 2: Narrows all the possible data types each expression/literal/IL instruction/etc. may take down to a single data type |
150 Implemented in -> stage3/narrow_candidate_datatypes_c |
152 Implemented in -> stage3/narrow_candidate_datatypes_c |
151 This will anotate the abstract syntax tree |
153 This will anotate the abstract syntax tree |
152 (Every object of in the abstract syntax tree that may have a data type, will have the variable 'datatype' correctly filled in. |
154 (Every object of in the abstract syntax tree that may have a data type, will have the variable 'datatype' correctly filled in. |
153 Additionally, objects in the abstract syntax tree that represen function invocations will have the variables |
155 Additionally, objects in the abstract syntax tree that represen function invocations will have the variables |
154 'called_function_declaration', 'extensible_param_count' and 'candidate_functions' correctly filled in. |
156 'called_function_declaration' and 'extensible_param_count' correctly filled in. |
155 Additionally, objects in the abstract syntax tree that represen function block (FB) invocations will have the variable |
157 Additionally, objects in the abstract syntax tree that represen function block (FB) invocations will have the variable |
156 'called_fb_declaration' correctly filled in.) |
158 'called_fb_declaration' correctly filled in.) |
157 Pass 2: Prints error messages in the event of the IEC 61131-3 source code being analysed contains semantic data type incompatibility errors. |
159 Pass 2: Prints error messages in the event of the IEC 61131-3 source code being analysed contains semantic data type incompatibility errors. |
158 Implemented in -> stage3/print_datatype_errors_c |
160 Implemented in -> stage3/print_datatype_errors_c |
159 |
161 |