BaseTool/UPT: Add supporting of decimal numbers for INF_VERSION and DEC_SPECIFICATION

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18868 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Hess Chen 2015-11-18 05:38:35 +00:00 committed by hchen30
parent b9335cf562
commit 48b77f5ea9
3 changed files with 15 additions and 8 deletions

View File

@ -656,7 +656,7 @@ _("Wrong define section format, must be KEY = Value.")
ERR_DECPARSE_DEFINE_UNKNOWKEY = \ ERR_DECPARSE_DEFINE_UNKNOWKEY = \
_("Unknown key [%s] in define section.") _("Unknown key [%s] in define section.")
ERR_DECPARSE_DEFINE_SPEC = \ ERR_DECPARSE_DEFINE_SPEC = \
_("Specification value must be HEX numbers.") _("Specification value must be HEX numbers or decimal numbers.")
ERR_DECPARSE_DEFINE_PKGNAME = \ ERR_DECPARSE_DEFINE_PKGNAME = \
_("Package name must be AlphaNumeric characters.") _("Package name must be AlphaNumeric characters.")
ERR_DECPARSE_DEFINE_PKGGUID = \ ERR_DECPARSE_DEFINE_PKGGUID = \

View File

@ -340,16 +340,21 @@ class InfDefSection(InfDefSectionOptionRomInfo):
ErrorInInf(ST.ERR_INF_PARSER_NOT_SUPPORT_EDKI_INF, ErrorInInf(ST.ERR_INF_PARSER_NOT_SUPPORT_EDKI_INF,
ErrorCode=ToolError.EDK1_INF_ERROR, ErrorCode=ToolError.EDK1_INF_ERROR,
LineInfo=self.CurrentLine) LineInfo=self.CurrentLine)
elif IsValidDecVersionVal(InfVersion):
self.InfVersion = InfDefMember() if (InfVersion < 65541):
self.InfVersion.SetValue(InfVersion) ErrorInInf(ST.ERR_INF_PARSER_NOT_SUPPORT_EDKI_INF,
self.InfVersion.Comments = Comments ErrorCode=ToolError.EDK1_INF_ERROR,
return True LineInfo=self.CurrentLine)
else: else:
ErrorInInf(ST.ERR_INF_PARSER_DEFINE_FROMAT_INVALID%(InfVersion), ErrorInInf(ST.ERR_INF_PARSER_DEFINE_FROMAT_INVALID%(InfVersion),
LineInfo=self.CurrentLine) LineInfo=self.CurrentLine)
return False return False
self.InfVersion = InfDefMember()
self.InfVersion.SetValue(InfVersion)
self.InfVersion.Comments = Comments
return True
## GetInfVersion ## GetInfVersion
# #
def GetInfVersion(self): def GetInfVersion(self):

View File

@ -29,6 +29,7 @@ from Library.ParserValidate import IsValidIdString
from Library.ParserValidate import IsValidUserId from Library.ParserValidate import IsValidUserId
from Library.ParserValidate import IsValidArch from Library.ParserValidate import IsValidArch
from Library.ParserValidate import IsValidWord from Library.ParserValidate import IsValidWord
from Library.ParserValidate import IsValidDecVersionVal
from Parser.DecParserMisc import TOOL_NAME from Parser.DecParserMisc import TOOL_NAME
from Parser.DecParserMisc import CleanString from Parser.DecParserMisc import CleanString
from Parser.DecParserMisc import IsValidPcdDatum from Parser.DecParserMisc import IsValidPcdDatum
@ -452,7 +453,8 @@ class _DecDefine(_DecBase):
if self.ItemObject.GetPackageSpecification(): if self.ItemObject.GetPackageSpecification():
self._LoggerError(ST.ERR_DECPARSE_DEFINE_DEFINED % DT.TAB_DEC_DEFINES_DEC_SPECIFICATION) self._LoggerError(ST.ERR_DECPARSE_DEFINE_DEFINED % DT.TAB_DEC_DEFINES_DEC_SPECIFICATION)
if not IsValidToken('0[xX][0-9a-fA-F]{8}', Token): if not IsValidToken('0[xX][0-9a-fA-F]{8}', Token):
self._LoggerError(ST.ERR_DECPARSE_DEFINE_SPEC) if not IsValidDecVersionVal(Token):
self._LoggerError(ST.ERR_DECPARSE_DEFINE_SPEC)
self.ItemObject.SetPackageSpecification(Token) self.ItemObject.SetPackageSpecification(Token)
def _SetPackageName(self, Token): def _SetPackageName(self, Token):