mirror of https://github.com/acidanthera/audk.git
BaseTools: Check GUID C structure format
GUID C format must conform to {8,4,4,{2,2,2,2,2,2,2,2}} Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Yunhua Feng <yunhuax.feng@intel.com>
This commit is contained in:
parent
f316a26013
commit
85e5d3cf6b
|
@ -66,6 +66,13 @@ gHexPatternAll = re.compile(r'0[xX]{}+$'.format(_HexChar))
|
||||||
|
|
||||||
## Regular expressions for string identifier checking
|
## Regular expressions for string identifier checking
|
||||||
gIdentifierPattern = re.compile('^[a-zA-Z][a-zA-Z0-9_]*$', re.UNICODE)
|
gIdentifierPattern = re.compile('^[a-zA-Z][a-zA-Z0-9_]*$', re.UNICODE)
|
||||||
|
## Regular expression for GUID c structure format
|
||||||
|
_GuidCFormatPattern = r"{{\s*0[xX]{Hex}{{1,8}}\s*,\s*0[xX]{Hex}{{1,4}}\s*,\s*0[xX]{Hex}{{1,4}}" \
|
||||||
|
r"\s*,\s*{{\s*0[xX]{Hex}{{1,2}}\s*,\s*0[xX]{Hex}{{1,2}}" \
|
||||||
|
r"\s*,\s*0[xX]{Hex}{{1,2}}\s*,\s*0[xX]{Hex}{{1,2}}" \
|
||||||
|
r"\s*,\s*0[xX]{Hex}{{1,2}}\s*,\s*0[xX]{Hex}{{1,2}}" \
|
||||||
|
r"\s*,\s*0[xX]{Hex}{{1,2}}\s*,\s*0[xX]{Hex}{{1,2}}\s*}}\s*}}".format(Hex=_HexChar)
|
||||||
|
gGuidCFormatPattern = re.compile(r"{}".format(_GuidCFormatPattern))
|
||||||
|
|
||||||
#
|
#
|
||||||
# A global variable for whether current build in AutoGen phase or not.
|
# A global variable for whether current build in AutoGen phase or not.
|
||||||
|
|
|
@ -360,6 +360,8 @@ def GuidStructureByteArrayToGuidString(GuidValue):
|
||||||
# @retval string The GUID value in xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx format
|
# @retval string The GUID value in xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx format
|
||||||
#
|
#
|
||||||
def GuidStructureStringToGuidString(GuidValue):
|
def GuidStructureStringToGuidString(GuidValue):
|
||||||
|
if not GlobalData.gGuidCFormatPattern.match(GuidValue):
|
||||||
|
return ''
|
||||||
guidValueString = GuidValue.lower().replace("{", "").replace("}", "").replace(" ", "").replace(";", "")
|
guidValueString = GuidValue.lower().replace("{", "").replace("}", "").replace(" ", "").replace(";", "")
|
||||||
guidValueList = guidValueString.split(",")
|
guidValueList = guidValueString.split(",")
|
||||||
if len(guidValueList) != 11:
|
if len(guidValueList) != 11:
|
||||||
|
@ -1327,7 +1329,7 @@ def ParseFieldValue (Value):
|
||||||
Value = Value.split('(', 1)[1][:-1].strip()
|
Value = Value.split('(', 1)[1][:-1].strip()
|
||||||
if Value[0] == '{' and Value[-1] == '}':
|
if Value[0] == '{' and Value[-1] == '}':
|
||||||
TmpValue = GuidStructureStringToGuidString(Value)
|
TmpValue = GuidStructureStringToGuidString(Value)
|
||||||
if len(TmpValue) == 0:
|
if not TmpValue:
|
||||||
raise BadExpression("Invalid GUID value string %s" % Value)
|
raise BadExpression("Invalid GUID value string %s" % Value)
|
||||||
Value = TmpValue
|
Value = TmpValue
|
||||||
if Value[0] == '"' and Value[-1] == '"':
|
if Value[0] == '"' and Value[-1] == '"':
|
||||||
|
|
Loading…
Reference in New Issue