From b1a9e404d4e91729b99d690fa849451269dd3a47 Mon Sep 17 00:00:00 2001 From: "Carsey, Jaben" Date: Sat, 17 Mar 2018 07:27:41 +0800 Subject: [PATCH] BaseTools: use new shared GUID regular expressions remove local variables that are GUID matching and replace with shared expression. Cc: Yonghong Zhu Cc: Liming Gao Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Jaben Carsey Reviewed-by: Yonghong Zhu --- BaseTools/Source/Python/Common/Expression.py | 3 +-- BaseTools/Source/Python/Common/FdfParserLite.py | 3 ++- BaseTools/Source/Python/Common/RangeExpression.py | 12 +++++------- BaseTools/Source/Python/GenFds/FdfParser.py | 2 +- 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/BaseTools/Source/Python/Common/Expression.py b/BaseTools/Source/Python/Common/Expression.py index 4f0f377f37..287dddfbbc 100644 --- a/BaseTools/Source/Python/Common/Expression.py +++ b/BaseTools/Source/Python/Common/Expression.py @@ -214,7 +214,6 @@ class ValueExpression(object): PcdPattern = re.compile(r'[_a-zA-Z][0-9A-Za-z_]*\.[_a-zA-Z][0-9A-Za-z_]*$') HexPattern = re.compile(r'0[xX][0-9a-fA-F]+$') - RegGuidPattern = re.compile(r'[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}') SymbolPattern = re.compile("(" "\$\([A-Z][A-Z0-9_]*\)|\$\(\w+\.\w+\)|\w+\.\w+|" @@ -725,7 +724,7 @@ class ValueExpression(object): self._Token = '' if Expr: Ch = Expr[0] - Match = self.RegGuidPattern.match(Expr) + Match = gGuidPattern.match(Expr) if Match and not Expr[Match.end():Match.end()+1].isalnum() \ and Expr[Match.end():Match.end()+1] != '_': self._Idx += Match.end() diff --git a/BaseTools/Source/Python/Common/FdfParserLite.py b/BaseTools/Source/Python/Common/FdfParserLite.py index 806fdd8aa5..b7b5e21a9e 100644 --- a/BaseTools/Source/Python/Common/FdfParserLite.py +++ b/BaseTools/Source/Python/Common/FdfParserLite.py @@ -22,6 +22,7 @@ import CommonDataClass.FdfClass from Common.LongFilePathSupport import OpenLongFilePath as open from Common.MultipleWorkspace import MultipleWorkspace as mws from Common.RangeExpression import RangeExpression +from Common.GlobalData import * ##define T_CHAR_SPACE ' ' ##define T_CHAR_NULL '\0' @@ -934,7 +935,7 @@ class FdfParser(object): if not self.__GetNextToken(): return False - if RangeExpression.RegGuidPattern.match(self.__Token) != None: + if gGuidPattern.match(self.__Token) != None: return True else: self.__UndoToken() diff --git a/BaseTools/Source/Python/Common/RangeExpression.py b/BaseTools/Source/Python/Common/RangeExpression.py index 3449711dcc..540f957280 100644 --- a/BaseTools/Source/Python/Common/RangeExpression.py +++ b/BaseTools/Source/Python/Common/RangeExpression.py @@ -211,8 +211,6 @@ class RangeExpression(object): PcdPattern = re.compile(r'[_a-zA-Z][0-9A-Za-z_]*\.[_a-zA-Z][0-9A-Za-z_]*$') HexPattern = re.compile(r'0[xX][0-9a-fA-F]+') - RegGuidPattern = re.compile(r'[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}') - ExRegGuidPattern = re.compile(r'[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$') RangePattern = re.compile(r'[0-9]+ - [0-9]+') @@ -341,18 +339,18 @@ class RangeExpression(object): def Eval(self, Operator, Oprand1, Oprand2 = None): if Operator in ["!", "NOT", "not"]: - if not self.RegGuidPattern.match(Oprand1.strip()): + if not gGuidPattern.match(Oprand1.strip()): raise BadExpression(ERR_STRING_EXPR % Operator) return self.NegtiveRange(Oprand1) else: if Operator in ["==", ">=", "<=", ">", "<", '^']: return self.EvalRange(Operator, Oprand1) elif Operator == 'and' : - if not self.ExRegGuidPattern.match(Oprand1.strip()) or not self.ExRegGuidPattern.match(Oprand2.strip()): + if not gGuidPatternEnd.match(Oprand1.strip()) or not gGuidPatternEnd.match(Oprand2.strip()): raise BadExpression(ERR_STRING_EXPR % Operator) return self.Rangeintersection(Oprand1, Oprand2) elif Operator == 'or': - if not self.ExRegGuidPattern.match(Oprand1.strip()) or not self.ExRegGuidPattern.match(Oprand2.strip()): + if not gGuidPatternEnd.match(Oprand1.strip()) or not gGuidPatternEnd.match(Oprand2.strip()): raise BadExpression(ERR_STRING_EXPR % Operator) return self.Rangecollections(Oprand1, Oprand2) else: @@ -410,7 +408,7 @@ class RangeExpression(object): # check if the expression does not need to evaluate if RealValue and Depth == 0: self._Token = self._Expr - if self.ExRegGuidPattern.match(self._Expr): + if gGuidPatternEnd.match(self._Expr): return [self.operanddict[self._Expr] ] self._Idx = 0 @@ -657,7 +655,7 @@ class RangeExpression(object): self._Token = '' if Expr: Ch = Expr[0] - Match = self.RegGuidPattern.match(Expr) + Match = gGuidPattern.match(Expr) if Match and not Expr[Match.end():Match.end() + 1].isalnum() \ and Expr[Match.end():Match.end() + 1] != '_': self._Idx += Match.end() diff --git a/BaseTools/Source/Python/GenFds/FdfParser.py b/BaseTools/Source/Python/GenFds/FdfParser.py index 08429cd72a..9903e9570c 100644 --- a/BaseTools/Source/Python/GenFds/FdfParser.py +++ b/BaseTools/Source/Python/GenFds/FdfParser.py @@ -1136,7 +1136,7 @@ class FdfParser: if not self.__GetNextToken(): return False - if RangeExpression.RegGuidPattern.match(self.__Token) != None: + if gGuidPattern.match(self.__Token) != None: return True else: self.__UndoToken() -- 2.39.2