PLCGenerator.py
changeset 864 bf4f7f0801b9
parent 854 c10f2092c43a
child 883 235a9ec83b95
--- a/PLCGenerator.py	Fri Oct 19 18:10:31 2012 +0200
+++ b/PLCGenerator.py	Sun Oct 21 16:53:46 2012 +0200
@@ -192,6 +192,21 @@
                     if element_type["name"] == "derived":
                         elementtype_name = element_type["value"].getname()
                         self.GenerateDataType(elementtype_name)
+                    elif element_type["name"] == "array":
+                        base_type = element_type["value"].baseType.getcontent()
+                        # Array derived directly from a user defined type 
+                        if base_type["name"] == "derived":
+                            basetype_name = base_type["value"].getname()
+                            self.GenerateDataType(basetype_name)
+                        # Array derived directly from a string type 
+                        elif base_type["name"] in ["string", "wstring"]:
+                            basetype_name = base_type["name"].upper()
+                        # Array derived directly from an elementary type 
+                        else:
+                            basetype_name = base_type["name"]
+                        dimensions = ["%s..%s" % (dimension.getlower(), dimension.getupper())
+                                      for dimension in element_type["value"].getdimension()]
+                        elementtype_name = "ARRAY [%s] OF %s" % (",".join(dimensions), basetype_name)
                     # Structure element derived directly from a string type 
                     elif element_type["name"] in ["string", "wstring"]:
                         elementtype_name = element_type["name"].upper()