summaryrefslogtreecommitdiffstats
path: root/BaseTools/Source/Python/AutoGen/UniClassObject.py
diff options
context:
space:
mode:
authorCarsey, Jaben <jaben.carsey@intel.com>2018-04-28 06:32:22 +0800
committerYonghong Zhu <yonghong.zhu@intel.com>2018-05-04 13:03:00 +0800
commitc23ef28c205875f59f785e0028086e98ec58030c (patch)
treec51da57b6c8fc0b59f816f3b26c79687b36b366d /BaseTools/Source/Python/AutoGen/UniClassObject.py
parentc5419897415ad31fc83efa94b370a38f8a097aa5 (diff)
downloadedk2-c23ef28c205875f59f785e0028086e98ec58030c.tar.gz
edk2-c23ef28c205875f59f785e0028086e98ec58030c.tar.bz2
edk2-c23ef28c205875f59f785e0028086e98ec58030c.zip
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>
Diffstat (limited to 'BaseTools/Source/Python/AutoGen/UniClassObject.py')
-rw-r--r--BaseTools/Source/Python/AutoGen/UniClassObject.py29
1 files changed, 14 insertions, 15 deletions
diff --git a/BaseTools/Source/Python/AutoGen/UniClassObject.py b/BaseTools/Source/Python/AutoGen/UniClassObject.py
index 5b879d784d..4e16afec5c 100644
--- a/BaseTools/Source/Python/AutoGen/UniClassObject.py
+++ b/BaseTools/Source/Python/AutoGen/UniClassObject.py
@@ -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