#\r
# Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>\r
#\r
-# This program and the accompanying materials are licensed and made available \r
-# under the terms and conditions of the BSD License which accompanies this \r
-# distribution. The full text of the license may be found at \r
+# This program and the accompanying materials are licensed and made available\r
+# under the terms and conditions of the BSD License which accompanies this\r
+# distribution. The full text of the license may be found at\r
# http://opensource.org/licenses/bsd-license.php\r
#\r
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
self.Expression = ''\r
self.ErrorNumber = ''\r
self.ErrorMessage = []\r
- \r
+\r
def FromXml(self, Item, Key):\r
self.ValidValueList = XmlElement(Item, '%s/ValidValueList' % Key)\r
self.ValidValueListLang = \\r
ErrorMessageLang = \\r
XmlAttribute(XmlNode(ErrMsg, 'ErrorMessage'), 'Lang')\r
self.ErrorMessage.append((ErrorMessageLang, ErrorMessageString))\r
- \r
+\r
Error = PcdErrorObject()\r
Error.SetValidValue(self.ValidValueList)\r
Error.SetValidValueLang(self.ValidValueListLang)\r
Error.SetExpression(self.Expression)\r
Error.SetErrorNumber(self.ErrorNumber)\r
Error.SetErrorMessageList(self.ErrorMessage)\r
- \r
+\r
return Error\r
\r
def ToXml(self, PcdError, Key):\r
CreateXmlElement('ErrorMessage', Item[1], [], [['Lang', Item[0]]])\r
NodeList.append(Element)\r
Root = CreateXmlElement('%s' % Key, '', NodeList, AttributeList)\r
- \r
+\r
return Root\r
- \r
+\r
def TransferValidRange2Expr(self, TokenSpaceGuidCName, CName, ValidRange):\r
if self.Expression:\r
pass\r
for MatchObj in HexMatch2.finditer(ValidRange):\r
MatchStr = MatchObj.group()\r
TransferedRangeStr = ' '.join(['', PcdName, MatchStr.strip()])\r
- ValidRange = ValidRange.replace(MatchStr, TransferedRangeStr) \r
+ ValidRange = ValidRange.replace(MatchStr, TransferedRangeStr)\r
#\r
# Convert INT2 format range\r
#\r
for MatchObj in IntMatch2.finditer(ValidRange):\r
MatchStr = MatchObj.group()\r
TransferedRangeStr = ' '.join(['', PcdName, MatchStr.strip()])\r
- ValidRange = ValidRange.replace(MatchStr, TransferedRangeStr) \r
+ ValidRange = ValidRange.replace(MatchStr, TransferedRangeStr)\r
#\r
# Convert HEX1 format range\r
#\r
if HexMatch1:\r
HexMatchedList += HexMatch1.findall(ValidRange)\r
- \r
+\r
for MatchStr in HexMatchedList:\r
RangeItemList = MatchStr.strip().split('-')\r
TransferedRangeStr = '(%s GE %s) AND (%s LE %s)' % \\r
(PcdName, RangeItemList[0].strip(), PcdName, RangeItemList[1].strip())\r
- ValidRange = ValidRange.replace(MatchStr, TransferedRangeStr) \r
+ ValidRange = ValidRange.replace(MatchStr, TransferedRangeStr)\r
#\r
# Convert INT1 format range\r
#\r
if IntMatch1:\r
IntMatchedList += IntMatch1.findall(ValidRange)\r
- \r
+\r
for MatchStr in IntMatchedList:\r
RangeItemList = MatchStr.strip().split('-')\r
TransferedRangeStr = '(%s GE %s) AND (%s LE %s)' % \\r
(PcdName, RangeItemList[0].strip(), PcdName, RangeItemList[1].strip())\r
- ValidRange = ValidRange.replace(MatchStr, TransferedRangeStr) \r
- \r
+ ValidRange = ValidRange.replace(MatchStr, TransferedRangeStr)\r
+\r
return ValidRange\r
- \r
+\r
def TransferValidEpxr2ValidRange(self, ValidRangeExpr):\r
if self.Expression:\r
pass\r
- \r
+\r
PCD_PATTERN = \\r
'[\t\s]*[_a-zA-Z][a-zA-Z0-9_]*[\t\s]*\.[\t\s]*[_a-zA-Z][a-zA-Z0-9_]*[\t\s]*'\r
IntPattern1 = \\r
PCD_PATTERN+'[\t\s]+LE[\t\s]+\d+[\t\s]*\)'\r
IntPattern1 = IntPattern1.replace(' ', '')\r
IntPattern2 = '[\t\s]*'+PCD_PATTERN+'[\t\s]+(LT|GT|LE|GE|XOR|EQ)[\t\s]+\d+[\t\s]*'\r
- \r
+\r
HexPattern1 = \\r
'[\t\s]*\([\t\s]*'+PCD_PATTERN+'[\t\s]+GE[\t\s]+0[xX][0-9a-fA-F]+[\t\s]*\)[\t\s]+AND[\t\s]+\([\t\s]*'+\\r
PCD_PATTERN+'[\t\s]+LE[\t\s]+0[xX][0-9a-fA-F]+[\t\s]*\)'\r
HexPattern1 = HexPattern1.replace(' ', '')\r
HexPattern2 = '[\t\s]*'+PCD_PATTERN+'[\t\s]+(LT|GT|LE|GE|XOR|EQ)[\t\s]+0[xX][0-9a-zA-Z]+[\t\s]*'\r
- \r
+\r
#\r
# Do the Hex1 conversion\r
- # \r
+ #\r
HexMatchedList = re.compile(HexPattern1).findall(ValidRangeExpr)\r
HexRangeDict = {}\r
for HexMatchedItem in HexMatchedList:\r
#\r
RangeItemList = re.compile('[\t\s]*0[xX][0-9a-fA-F]+[\t\s]*').findall(HexMatchedItem)\r
if RangeItemList and len(RangeItemList) == 2:\r
- HexRangeDict[HexMatchedItem] = RangeItemList \r
- \r
+ HexRangeDict[HexMatchedItem] = RangeItemList\r
+\r
for Key in HexRangeDict.keys():\r
MaxItem = MixItem = ''\r
if int(HexRangeDict[Key][0], 16) > int(HexRangeDict[Key][1], 16):\r
else:\r
MaxItem = HexRangeDict[Key][1]\r
MixItem = HexRangeDict[Key][0]\r
- \r
+\r
Range = ' %s - %s' % (MixItem.strip(), MaxItem.strip())\r
ValidRangeExpr = ValidRangeExpr.replace(Key, Range)\r
#\r
# To match items on both sides of '-'\r
#\r
RangeItemList = re.compile('[\t\s]*\d+[\t\s]*').findall(MatchedItem)\r
- if RangeItemList and len(RangeItemList) == 2: \r
+ if RangeItemList and len(RangeItemList) == 2:\r
IntRangeDict[MatchedItem] = RangeItemList\r
- \r
+\r
for Key in IntRangeDict.keys():\r
MaxItem = MixItem = ''\r
if int(IntRangeDict[Key][0]) > int(IntRangeDict[Key][1]):\r
else:\r
MaxItem = IntRangeDict[Key][1]\r
MixItem = IntRangeDict[Key][0]\r
- \r
+\r
Range = ' %s - %s' % (MixItem.strip(), MaxItem.strip())\r
ValidRangeExpr = ValidRangeExpr.replace(Key, Range)\r
#\r
- # Do the HEX2 conversion \r
+ # Do the HEX2 conversion\r
#\r
for MatchObj in re.compile(HexPattern2).finditer(ValidRangeExpr):\r
MatchStr = MatchObj.group()\r
ValidRangeExpr = ValidRangeExpr.replace(MatchStr, Range)\r
\r
return ValidRangeExpr\r
- \r
- \r
+\r
+\r
\r
def __str__(self):\r
return "ValidValueList = %s ValidValueListLang = %s ValidValueRange \\r
\r
##\r
# AsBuilt will use FromXml\r
- # \r
+ #\r
def FromXml(self, Item, Key):\r
self.PcdItemType = \\r
XmlAttribute(XmlNode(Item, '%s' % Key), 'PcdItemType')\r
self.Value = XmlElement(Item, '%s/Value' % Key)\r
self.Offset = XmlElement(Item, '%s/Offset' % Key)\r
self.CommonDefines.FromXml(XmlNode(Item, '%s' % Key), Key)\r
- \r
+\r
for HelpTextItem in XmlList(Item, '%s/HelpText' % Key):\r
HelpTextObj = HelpTextXml()\r
HelpTextObj.FromXml(HelpTextItem, '%s/HelpText' % Key)\r
PcdErrorObjXml = PcdErrorXml()\r
PcdErrorObj = PcdErrorObjXml.FromXml(PcdErrorItem, 'PcdError')\r
self.PcdError.append(PcdErrorObj)\r
- \r
+\r
self.DefaultValue = ConvertNOTEQToNE(self.DefaultValue)\r
- \r
+\r
PcdEntry = PcdObject()\r
PcdEntry.SetSupArchList(self.CommonDefines.SupArchList)\r
PcdEntry.SetTokenSpaceGuidCName(self.TokenSpaceGuidCName)\r
\r
PcdEntry.SetHelpTextList(GetHelpTextList(self.HelpText))\r
PcdEntry.SetPcdErrorsList(self.PcdError)\r
- \r
+\r
return PcdEntry\r
##\r
# Package will use FromXml2\r
- # \r
+ #\r
def FromXml2(self, Item, Key):\r
self.TokenSpaceGuidCName = \\r
XmlElement(Item, '%s/TokenSpaceGuidCname' % Key)\r
PcdErrorObjXml = PcdErrorXml()\r
PcdErrorObj = PcdErrorObjXml.FromXml(PcdErrorItem, 'PcdError')\r
self.PcdError.append(PcdErrorObj)\r
- \r
+\r
self.DefaultValue = ConvertNOTEQToNE(self.DefaultValue)\r
- \r
+\r
PcdEntry = PcdObject()\r
PcdEntry.SetSupArchList(self.CommonDefines.SupArchList)\r
PcdEntry.SetSupModuleList(self.CommonDefines.SupModList)\r
PcdEntry.SetDefaultValue(self.DefaultValue)\r
PcdEntry.SetMaxDatumSize(self.MaxDatumSize)\r
PcdEntry.SetFeatureFlag(ConvertNOTEQToNE(self.CommonDefines.FeatureFlag))\r
- \r
+\r
PcdEntry.SetPromptList(GetPromptList(self.Prompt))\r
PcdEntry.SetHelpTextList(GetHelpTextList(self.HelpText))\r
PcdEntry.SetPcdErrorsList(self.PcdError)\r
- \r
+\r
return PcdEntry\r
\r
##\r
PcdErrorObj = PcdErrorXml()\r
PcdErrorObj.FromXml(PcdErrorItem, 'PcdError')\r
self.PcdError.append(PcdErrorObj)\r
- \r
+\r
self.DefaultValue = ConvertNOTEQToNE(self.DefaultValue)\r
- \r
+\r
PcdEntry = PcdObject()\r
PcdEntry.SetSupArchList(self.CommonDefines.SupArchList)\r
PcdEntry.SetTokenSpaceGuidCName(self.TokenSpaceGuidCName)\r
\r
PcdEntry.SetHelpTextList(GetHelpTextList(self.HelpText))\r
PcdEntry.SetPcdErrorsList(self.PcdError)\r
- \r
+\r
return PcdEntry\r
- \r
+\r
def ToXml(self, PcdEntry, Key):\r
if self.PcdCName:\r
pass\r
- \r
+\r
DefaultValue = ConvertNEToNOTEQ(PcdEntry.GetDefaultValue())\r
- \r
+\r
AttributeList = \\r
[['SupArchList', GetStringOfList(PcdEntry.GetSupArchList())], \\r
['PcdUsage', PcdEntry.GetValidUsage()], \\r
]\r
NodeList = [['TokenSpaceGuidCname', PcdEntry.GetTokenSpaceGuidCName()],\r
['TokenSpaceGuidValue', PcdEntry.GetTokenSpaceGuidValue()],\r
- ['Token', PcdEntry.GetToken()], \r
+ ['Token', PcdEntry.GetToken()],\r
['CName', PcdEntry.GetCName()],\r
['DatumType', PcdEntry.GetDatumType()],\r
['ValidUsage', GetStringOfList(PcdEntry.GetValidUsage())],\r
['MaxDatumSize', PcdEntry.GetMaxDatumSize()],\r
['Offset', PcdEntry.GetOffset()],\r
]\r
- \r
+\r
for Item in PcdEntry.GetHelpTextList():\r
Tmp = HelpTextXml()\r
NodeList.append(Tmp.ToXml(Item))\r
for Item in PcdEntry.GetPcdErrorsList():\r
Tmp = PcdErrorXml()\r
NodeList.append(Tmp.ToXml(Item, 'PcdError'))\r
- \r
+\r
Root = CreateXmlElement('%s' % Key, '', NodeList, AttributeList)\r
- \r
+\r
return Root\r
##\r
# Package will use ToXml2\r
- # \r
+ #\r
def ToXml2(self, PcdEntry, Key):\r
if self.PcdCName:\r
pass\r
- \r
+\r
DefaultValue = ConvertNEToNOTEQ(PcdEntry.GetDefaultValue())\r
- \r
+\r
AttributeList = \\r
[['SupArchList', GetStringOfList(PcdEntry.GetSupArchList())], \\r
['SupModList', GetStringOfList(PcdEntry.GetSupModuleList())]\r
for Item in PcdEntry.GetPromptList():\r
Tmp = PromptXml()\r
NodeList.append(Tmp.ToXml(Item))\r
- \r
+\r
for Item in PcdEntry.GetHelpTextList():\r
Tmp = HelpTextXml()\r
NodeList.append(Tmp.ToXml(Item))\r
for Item in PcdEntry.GetPcdErrorsList():\r
Tmp = PcdErrorXml()\r
NodeList.append(Tmp.ToXml(Item, 'PcdError'))\r
- \r
+\r
Root = CreateXmlElement('%s' % Key, '', NodeList, AttributeList)\r
- \r
+\r
return Root\r
##\r
# Module will use ToXml3\r
def ToXml3(self, PcdEntry, Key):\r
if self.PcdCName:\r
pass\r
- \r
+\r
DefaultValue = ConvertNEToNOTEQ(PcdEntry.GetDefaultValue())\r
- \r
+\r
AttributeList = \\r
[['SupArchList', GetStringOfList(PcdEntry.GetSupArchList())], \\r
['PcdUsage', PcdEntry.GetValidUsage()], \\r
['TokenSpaceGuidCName', PcdEntry.GetTokenSpaceGuidCName()],\r
['DefaultValue', DefaultValue],\r
]\r
- \r
+\r
for Item in PcdEntry.GetHelpTextList():\r
Tmp = HelpTextXml()\r
NodeList.append(Tmp.ToXml(Item))\r
for Item in PcdEntry.GetPcdErrorsList():\r
Tmp = PcdErrorXml()\r
NodeList.append(Tmp.ToXml(Item, 'PcdError'))\r
- \r
+\r
Root = CreateXmlElement('%s' % Key, '', NodeList, AttributeList)\r
- \r
+\r
return Root\r
- \r
+\r
##\r
# AsBuild Module will use ToXml4\r
#\r
def ToXml4(self, PcdEntry, Key):\r
if self.PcdCName:\r
pass\r
- \r
+\r
DefaultValue = ConvertNEToNOTEQ(PcdEntry.GetDefaultValue())\r
- \r
+\r
AttributeList = []\r
- \r
+\r
NodeList = [\r
['TokenSpaceGuidValue', PcdEntry.GetTokenSpaceGuidValue()],\r
['PcdCName', PcdEntry.GetCName()],\r
['Value', DefaultValue],\r
['Offset', PcdEntry.GetOffset()]\r
]\r
- \r
+\r
for Item in PcdEntry.GetHelpTextList():\r
Tmp = HelpTextXml()\r
NodeList.append(Tmp.ToXml(Item))\r
for Item in PcdEntry.GetPcdErrorsList():\r
Tmp = PcdErrorXml()\r
NodeList.append(Tmp.ToXml(Item, 'PcdError'))\r
- \r
+\r
Root = CreateXmlElement('%s' % Key, '', NodeList, AttributeList)\r
- \r
+\r
return Root\r
- \r
+\r
\r
def __str__(self):\r
Str = \\r