]> rtime.felk.cvut.cz Git - CanFestival-3.git/commitdiff
Some instance type test improved
authorlbessard <lbessard>
Thu, 28 Aug 2008 12:28:41 +0000 (12:28 +0000)
committerlbessard <lbessard>
Thu, 28 Aug 2008 12:28:41 +0000 (12:28 +0000)
Bug with $NODEID not in uppercase fixed

objdictgen/eds_utils.py
objdictgen/node.py

index 05fb083742a810abbd8577fc032e7d66924b5837..f966c70940720925b5965165f09e4164076e56b8 100644 (file)
@@ -391,12 +391,12 @@ def ParseEDSFile(filepath):
                     attributes = "Attribute \"%s\" is"%unsupported[0]
                 raise SyntaxError, "Error on section \"[%s]\":\n%s unsupported for a%s entry"%(section_name, attributes, ENTRY_TYPES[values["OBJECTTYPE"]]["name"])
             
-            VerifyValue(values, "ParameterValue")
-            VerifyValue(values, "DefaultValue")
+            VerifyValue(values, section_name, "ParameterValue")
+            VerifyValue(values, section_name, "DefaultValue")
             
     return eds_dict
 
-def VerifyValue(values, param):
+def VerifyValue(values, section_name, param):
     if param.upper() in values:
         try:
             if values["DATATYPE"] in (0x09, 0x0A, 0x0B, 0x0F):
@@ -406,7 +406,7 @@ def VerifyValue(values, param):
             elif values["DATATYPE"] == 0x01:
                 values[param.upper()] = {0 : False, 1 : True}[values[param.upper()]]
             else:
-                if type(values[param.upper()]) != IntType and values[param.upper()].find("$NODEID") == -1:
+                if not isinstance(values[param.upper()], (IntType, LongType)) and values[param.upper()].upper().find("$NODEID") == -1:
                     raise
         except:
             raise SyntaxError, "Error on section \"[%s]\":\n%s incompatible with DataType"%(section_name, param)
index 38ae5b0175a35d9f77759b6394c875108867adec..2d846ba93f4b1e07ba314fb2da566ddabec17745 100755 (executable)
@@ -917,12 +917,12 @@ class Node:
         return result
             
     def CompileValue(self, value, index, compute = True):
-        if type(value) == StringType and value.find("$NODEID") != -1:
+        if isinstance(value, (StringType, UnicodeType)) and value.find("$NODEID") != -1:
             base = self.GetBaseIndex(index)
             try:
                 raw = eval(value)
                 if compute:
-                    return eval(raw.replace("$NODEID","self.ID"))
+                    return eval(raw.upper().replace("$NODEID","self.ID"))
                 return raw
             except:
                 return 0