diff options
author | Feng, Bob C <bob.c.feng@intel.com> | 2019-01-04 17:35:10 +0800 |
---|---|---|
committer | Feng, Bob C <bob.c.feng@intel.com> | 2019-02-01 11:09:25 +0800 |
commit | c60377d7f9ec80ecc7fe76c38b81ffd98b7ef2e4 (patch) | |
tree | ca1900169f93b4b97d9d833fe8975ca4a467f00d /BaseTools/Source/Python/Ecc/CodeFragmentCollector.py | |
parent | d943b0c339fe3d35ffdf9f580ccb7a55915c6854 (diff) | |
download | edk2-c60377d7f9ec80ecc7fe76c38b81ffd98b7ef2e4.tar.gz edk2-c60377d7f9ec80ecc7fe76c38b81ffd98b7ef2e4.tar.bz2 edk2-c60377d7f9ec80ecc7fe76c38b81ffd98b7ef2e4.zip |
BaseTools: ECC tool Python3 adaption
v2:
The python files under CParser4 are generated by antlr4 and for
python3 usage. They have python3 specific syntax, for example
the data type declaration for the arguments of a function. That
is not compitable with python2. this patch is to remove these syntax.
ECC tool Python3 adaption.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Diffstat (limited to 'BaseTools/Source/Python/Ecc/CodeFragmentCollector.py')
-rw-r--r-- | BaseTools/Source/Python/Ecc/CodeFragmentCollector.py | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/BaseTools/Source/Python/Ecc/CodeFragmentCollector.py b/BaseTools/Source/Python/Ecc/CodeFragmentCollector.py index d12232cc6f..21fed59cad 100644 --- a/BaseTools/Source/Python/Ecc/CodeFragmentCollector.py +++ b/BaseTools/Source/Python/Ecc/CodeFragmentCollector.py @@ -21,10 +21,16 @@ from __future__ import absolute_import import re
import Common.LongFilePathOs as os
import sys
+if sys.version_info.major == 3:
+ import antlr4 as antlr
+ from Ecc.CParser4.CLexer import CLexer
+ from Ecc.CParser4.CParser import CParser
+else:
+ import antlr3 as antlr
+ antlr.InputString = antlr.StringStream
+ from Ecc.CParser3.CLexer import CLexer
+ from Ecc.CParser3.CParser import CParser
-import antlr3
-from Ecc.CLexer import CLexer
-from Ecc.CParser import CParser
from Ecc import FileProfile
from Ecc.CodeFragment import Comment
@@ -503,9 +509,9 @@ class CodeFragmentCollector: FileStringContents = ''
for fileLine in self.Profile.FileLinesList:
FileStringContents += fileLine
- cStream = antlr3.StringStream(FileStringContents)
+ cStream = antlr.InputStream(FileStringContents)
lexer = CLexer(cStream)
- tStream = antlr3.CommonTokenStream(lexer)
+ tStream = antlr.CommonTokenStream(lexer)
parser = CParser(tStream)
parser.translation_unit()
@@ -516,9 +522,9 @@ class CodeFragmentCollector: FileStringContents = ''
for fileLine in self.Profile.FileLinesList:
FileStringContents += fileLine
- cStream = antlr3.StringStream(FileStringContents)
+ cStream = antlr.InputStream(FileStringContents)
lexer = CLexer(cStream)
- tStream = antlr3.CommonTokenStream(lexer)
+ tStream = antlr.CommonTokenStream(lexer)
parser = CParser(tStream)
parser.translation_unit()
|