mirror of https://github.com/acidanthera/audk.git
BaseTools: AutoGen - share StripComments API
add the API root in one class file. delete the static API out of both classes. share it in the single location. Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Jaben Carsey <jaben.carsey@intel.com> Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
This commit is contained in:
parent
c541989741
commit
c23ef28c20
|
@ -22,6 +22,7 @@ from Common.LongFilePathSupport import LongFilePath
|
|||
import re
|
||||
import os
|
||||
from Common.GlobalData import gIdentifierPattern
|
||||
from UniClassObject import StripComments
|
||||
|
||||
IMAGE_TOKEN = re.compile('IMAGE_TOKEN *\(([A-Z0-9_]+) *\)', re.MULTILINE | re.UNICODE)
|
||||
|
||||
|
@ -91,7 +92,7 @@ class IdfFileClassObject(object):
|
|||
ImageFileList = []
|
||||
for Line in FileIn.splitlines():
|
||||
Line = Line.strip()
|
||||
Line = self.StripComments(Line)
|
||||
Line = StripComments(Line)
|
||||
if len(Line) == 0:
|
||||
continue
|
||||
|
||||
|
@ -121,22 +122,6 @@ class IdfFileClassObject(object):
|
|||
if ImageFileList:
|
||||
self.ImageFilesDict[File] = ImageFileList
|
||||
|
||||
def StripComments(self, Line):
|
||||
Comment = '//'
|
||||
CommentPos = Line.find(Comment)
|
||||
while CommentPos >= 0:
|
||||
# if there are non matched quotes before the comment header
|
||||
# then we are in the middle of a string
|
||||
# but we need to ignore the escaped quotes and backslashes.
|
||||
if ((Line.count('"', 0, CommentPos) - Line.count('\\"', 0, CommentPos)) & 1) == 1:
|
||||
CommentPos = Line.find (Comment, CommentPos + 1)
|
||||
else:
|
||||
return Line[:CommentPos].strip()
|
||||
return Line.strip()
|
||||
|
||||
def ImageDecoder(self, File):
|
||||
pass
|
||||
|
||||
def SearchImageID(ImageFileObject, FileList):
|
||||
if FileList == []:
|
||||
return ImageFileObject
|
||||
|
|
|
@ -218,6 +218,19 @@ class StringDefClassObject(object):
|
|||
self.StringValueByteList = UniToHexList(self.StringValue)
|
||||
self.Length = len(self.StringValueByteList)
|
||||
|
||||
def StripComments(Line):
|
||||
Comment = u'//'
|
||||
CommentPos = Line.find(Comment)
|
||||
while CommentPos >= 0:
|
||||
# if there are non matched quotes before the comment header
|
||||
# then we are in the middle of a string
|
||||
# but we need to ignore the escaped quotes and backslashes.
|
||||
if ((Line.count(u'"', 0, CommentPos) - Line.count(u'\\"', 0, CommentPos)) & 1) == 1:
|
||||
CommentPos = Line.find (Comment, CommentPos + 1)
|
||||
else:
|
||||
return Line[:CommentPos].strip()
|
||||
return Line.strip()
|
||||
|
||||
## UniFileClassObject
|
||||
#
|
||||
# A structure for .uni file definition
|
||||
|
@ -371,20 +384,6 @@ class UniFileClassObject(object):
|
|||
FileName = Item[Item.find(u'#include ') + len(u'#include ') :Item.find(u' ', len(u'#include '))][1:-1]
|
||||
self.LoadUniFile(FileName)
|
||||
|
||||
def StripComments(self, Line):
|
||||
Comment = u'//'
|
||||
CommentPos = Line.find(Comment)
|
||||
while CommentPos >= 0:
|
||||
# if there are non matched quotes before the comment header
|
||||
# then we are in the middle of a string
|
||||
# but we need to ignore the escaped quotes and backslashes.
|
||||
if ((Line.count(u'"', 0, CommentPos) - Line.count(u'\\"', 0, CommentPos)) & 1) == 1:
|
||||
CommentPos = Line.find (Comment, CommentPos + 1)
|
||||
else:
|
||||
return Line[:CommentPos].strip()
|
||||
return Line.strip()
|
||||
|
||||
|
||||
#
|
||||
# Pre-process before parse .uni file
|
||||
#
|
||||
|
@ -406,7 +405,7 @@ class UniFileClassObject(object):
|
|||
for Line in FileIn:
|
||||
Line = Line.strip()
|
||||
Line = Line.replace(u'\\\\', BACK_SLASH_PLACEHOLDER)
|
||||
Line = self.StripComments(Line)
|
||||
Line = StripComments(Line)
|
||||
|
||||
#
|
||||
# Ignore empty line
|
||||
|
|
Loading…
Reference in New Issue