RetList.append(Item)\r
return RetList\r
\r
+def IsValidCString(Str):\r
+ ValidString = re.compile(r'[_a-zA-Z][_0-9a-zA-Z]*$')\r
+ if not ValidString.match(Str):\r
+ return False\r
+ return True\r
+\r
## ReplaceExprMacro\r
#\r
def ReplaceExprMacro(String, Macros, ExceptionList = None):\r
for Index, Item in enumerate(PcdValueList):\r
# compute byte offset of every LABEL\r
Item = Item.strip()\r
- try:\r
- LabelList = ReLabel.findall(Item)\r
+ LabelList = ReLabel.findall(Item)\r
+ if LabelList:\r
for Label in LabelList:\r
+ if not IsValidCString(Label):\r
+ raise BadExpression('%s is not a valid c variable name' % Label)\r
if Label not in LabelDict.keys():\r
LabelDict[Label] = str(LabelOffset)\r
- except:\r
- pass\r
if Item.startswith('UINT8'):\r
LabelOffset = LabelOffset + 1\r
elif Item.startswith('UINT16'):\r