PLCGenerator.py
changeset 307 fd1f6ae26d4f
parent 295 c6ef6d92ce16
child 340 5a305b7c6735
--- a/PLCGenerator.py	Mon Jan 19 17:07:03 2009 +0100
+++ b/PLCGenerator.py	Mon Jan 19 17:08:17 2009 +0100
@@ -86,7 +86,7 @@
 class ProgramGenerator:
 
     # Create a new PCL program generator
-    def __init__(self, controler, project):
+    def __init__(self, controler, project, errors, warnings):
         # Keep reference of the controler and project
         self.Controler = controler
         self.Project = project
@@ -94,6 +94,8 @@
         self.Program = []
         self.DatatypeComputed = {}
         self.PouComputed = {}
+        self.Errors = errors
+        self.Warnings = warnings
 
     # Compute value according to type given
     def ComputeValue(self, value, var_type):
@@ -222,7 +224,7 @@
             # Verify that POU type exists
             if pou_type in pouTypeNames:
                 # Create a POU program generator
-                pou_program = PouProgramGenerator(self, pou.getname(), pouTypeNames[pou_type])
+                pou_program = PouProgramGenerator(self, pou.getname(), pouTypeNames[pou_type], self.Errors, self.Warnings)
                 program = pou_program.GenerateProgram(pou)
                 self.Program += program
             else:
@@ -420,7 +422,7 @@
 class PouProgramGenerator:
     
     # Create a new POU program generator
-    def __init__(self, parent, name, type):
+    def __init__(self, parent, name, type, errors, warnings):
         # Keep Reference to the parent generator
         self.ParentGenerator = parent
         self.Name = name
@@ -438,6 +440,8 @@
         self.SFCComputedBlocks = []
         self.ActionNumber = 0
         self.Program = []
+        self.Errors = errors
+        self.Warnings = warnings
     
     def GetBlockType(self, type):
         return self.ParentGenerator.Controler.GetBlockType(type)
@@ -1208,8 +1212,8 @@
         program += [("END_%s\n\n"%self.Type, ())]
         return program
 
-def GenerateCurrentProgram(controler, project):
-    generator = ProgramGenerator(controler, project)
+def GenerateCurrentProgram(controler, project, errors, warnings):
+    generator = ProgramGenerator(controler, project, errors, warnings)
     generator.GenerateProgram()
     return generator.GetGeneratedProgram()