263 if vartype_content["name"] == "derived": |
263 if vartype_content["name"] == "derived": |
264 var_type = vartype_content["value"].getname() |
264 var_type = vartype_content["value"].getname() |
265 # Variable type is a string type |
265 # Variable type is a string type |
266 elif vartype_content["name"] in ["string", "wstring"]: |
266 elif vartype_content["name"] in ["string", "wstring"]: |
267 var_type = vartype_content["name"].upper() |
267 var_type = vartype_content["name"].upper() |
|
268 # Variable type is an array |
|
269 elif vartype_content["name"] == "array": |
|
270 base_type = vartype_content["value"].baseType.getcontent() |
|
271 # Array derived directly from a user defined type |
|
272 if base_type["name"] == "derived": |
|
273 basetype_name = base_type["value"].getname() |
|
274 self.GenerateDataType(basetype_name) |
|
275 # Array derived directly from a string type |
|
276 elif base_type["name"] in ["string", "wstring"]: |
|
277 basetype_name = base_type["name"].upper() |
|
278 # Array derived directly from an elementary type |
|
279 else: |
|
280 basetype_name = base_type["name"] |
|
281 var_type = "ARRAY [%s] OF %s" % (",".join(map(lambda x : "%s..%s" % (dimension.getlower(), dimension.getupper()), vartype_content["value"].getdimension())), basetype_name) |
268 # Variable type is an elementary type |
282 # Variable type is an elementary type |
269 else: |
283 else: |
270 var_type = vartype_content["name"] |
284 var_type = vartype_content["name"] |
271 config += [(" ", ()), |
285 config += [(" ", ()), |
272 (var.getname(), (tagname, "variable", var_number, "name")), |
286 (var.getname(), (tagname, "variable", var_number, "name")), |
318 if vartype_content["name"] == "derived": |
332 if vartype_content["name"] == "derived": |
319 var_type = vartype_content["value"].getname() |
333 var_type = vartype_content["value"].getname() |
320 # Variable type is a string type |
334 # Variable type is a string type |
321 elif vartype_content["name"] in ["string", "wstring"]: |
335 elif vartype_content["name"] in ["string", "wstring"]: |
322 var_type = vartype_content["name"].upper() |
336 var_type = vartype_content["name"].upper() |
|
337 # Variable type is an array |
|
338 elif vartype_content["name"] == "array": |
|
339 base_type = vartype_content["value"].baseType.getcontent() |
|
340 # Array derived directly from a user defined type |
|
341 if base_type["name"] == "derived": |
|
342 basetype_name = base_type["value"].getname() |
|
343 self.GenerateDataType(basetype_name) |
|
344 # Array derived directly from a string type |
|
345 elif base_type["name"] in ["string", "wstring"]: |
|
346 basetype_name = base_type["name"].upper() |
|
347 # Array derived directly from an elementary type |
|
348 else: |
|
349 basetype_name = base_type["name"] |
|
350 var_type = "ARRAY [%s] OF %s" % (",".join(map(lambda x : "%s..%s" % (dimension.getlower(), dimension.getupper()), vartype_content["value"].getdimension())), basetype_name) |
323 # Variable type is an elementary type |
351 # Variable type is an elementary type |
324 else: |
352 else: |
325 var_type = vartype_content["name"] |
353 var_type = vartype_content["name"] |
326 resrce += [(" ", ()), |
354 resrce += [(" ", ()), |
327 (var.getname(), (tagname, "variable", var_number, "name")), |
355 (var.getname(), (tagname, "variable", var_number, "name")), |
586 initial_value = initial.getvalue() |
614 initial_value = initial.getvalue() |
587 else: |
615 else: |
588 initial_value = None |
616 initial_value = None |
589 address = var.getaddress() |
617 address = var.getaddress() |
590 if vartype_content["name"] in ["string", "wstring"]: |
618 if vartype_content["name"] in ["string", "wstring"]: |
591 if address is not None: |
619 var_type = vartype_content["name"].upper() |
592 located.append((vartype_content["name"].upper(), var.getname(), address, initial_value)) |
620 # Variable type is an array |
|
621 elif vartype_content["name"] == "array": |
|
622 base_type = vartype_content["value"].baseType.getcontent() |
|
623 # Array derived directly from a user defined type |
|
624 if base_type["name"] == "derived": |
|
625 basetype_name = base_type["value"].getname() |
|
626 self.GenerateDataType(basetype_name) |
|
627 # Array derived directly from a string type |
|
628 elif base_type["name"] in ["string", "wstring"]: |
|
629 basetype_name = base_type["name"].upper() |
|
630 # Array derived directly from an elementary type |
593 else: |
631 else: |
594 variables.append((vartype_content["name"].upper(), var.getname(), None, initial_value)) |
632 basetype_name = base_type["name"] |
595 elif address is not None: |
633 var_type = "ARRAY [%s] OF %s" % (",".join(map(lambda x : "%s..%s" % (x.getlower(), x.getupper()), vartype_content["value"].getdimension())), basetype_name) |
596 located.append((vartype_content["name"], var.getname(), address, initial_value)) |
|
597 else: |
634 else: |
598 variables.append((vartype_content["name"], var.getname(), None, initial_value)) |
635 var_type = vartype_content["name"] |
|
636 if address is not None: |
|
637 located.append((var_type, var.getname(), address, initial_value)) |
|
638 else: |
|
639 variables.append((var_type, var.getname(), None, initial_value)) |
599 if varlist["value"].getconstant(): |
640 if varlist["value"].getconstant(): |
600 option = "CONSTANT" |
641 option = "CONSTANT" |
601 elif varlist["value"].getretain(): |
642 elif varlist["value"].getretain(): |
602 option = "RETAIN" |
643 option = "RETAIN" |
603 elif varlist["value"].getnonretain(): |
644 elif varlist["value"].getnonretain(): |