Carsey, Jaben
0a014fba41
BaseTools: use in to compare single chars
...
instead if 3 Startswith for single chars, just use in with a list of chars
Cc: Yonghong Zhu <yonghong.zhu@intel.com >
Cc: Liming Gao <liming.gao@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 >
2018-03-30 09:16:27 +08:00
Carsey, Jaben
0944818a19
BaseTools: no need to do int() API work for it
...
int() with base=0 will already auto determine base from preceeding 0x/0X
Cc: Yonghong Zhu <yonghong.zhu@intel.com >
Cc: Liming Gao <liming.gao@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 >
2018-03-30 09:16:01 +08:00
Carsey, Jaben
cc0321f22a
BaseTools: refactor repeated RegExp when no special searching is needed.
...
use str.replace and try/except.
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 >
2018-03-29 16:33:55 +08:00
Carsey, Jaben
e52aed0d85
BaseTools: dont use enumerate when un-needed
...
Since we only use the item from the list and not the numeric value,
dont bother with enumerate()
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 >
2018-03-29 16:31:24 +08:00
Carsey, Jaben
38504ad3e3
BaseTools: move regular expression compile out of function call.
...
move to the root of the file and dont recompile.
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 >
2018-03-29 16:28:43 +08:00
Carsey, Jaben
663b9e061e
BaseTools: expression can use single in instead of 3 API calls.
...
change 3 StartsWith() calls to a single 'in' operation.
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 >
2018-03-29 16:28:11 +08:00
Carsey, Jaben
56326323e6
BaseTools: remove local hex number regular expression
...
Change to using the new shared hex number regular expression
Cc: Yonghong Zhu <yonghong.zhu@intel.com >
Cc: Liming Gao <liming.gao@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 >
2018-03-29 16:26:38 +08:00
Carsey, Jaben
b1a9e404d4
BaseTools: use new shared GUID regular expressions
...
remove local variables that are GUID matching and replace with shared
expression.
Cc: Yonghong Zhu <yonghong.zhu@intel.com >
Cc: Liming Gao <liming.gao@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 >
2018-03-29 16:18:29 +08:00
Carsey, Jaben
47f7040ddb
BaseTools: Expression - remove variable
...
The InArary variable serves no purpose. just do the work immediately.
Cc: Yonghong Zhu <yonghong.zhu@intel.com >
Cc: Liming Gao <liming.gao@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 >
2018-03-19 09:26:21 +08:00
Carsey, Jaben
3e8bab960e
BaseTools: Expression - change from series of if to elif
...
since the first character of the string cannot be found by multiple if
statements, use elif to optomize the behavior.
Cc: Yonghong Zhu <yonghong.zhu@intel.com >
Cc: Liming Gao <liming.gao@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 >
2018-03-19 09:25:33 +08:00
Carsey, Jaben
1f901a89f0
BaseTools: Expression refactor function
...
The function is about C Names, not C Strings.
Move the re.compile outside the function call
Cc: Yonghong Zhu <yonghong.zhu@intel.com >
Cc: Liming Gao <liming.gao@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 >
2018-03-19 09:25:06 +08:00
Carsey, Jaben
ae4cc2b084
BaseTools: Expression - remove redundant variable
...
Str is created and not needed.
Cc: Yonghong Zhu <yonghong.zhu@intel.com >
Cc: Liming Gao <liming.gao@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 >
2018-03-19 09:24:31 +08:00
Feng, YunhuaX
b31501c90a
BaseTools: Fix parse OFFSET_OF get wrong offset
...
Fix parse OFFSET_OF get wrong offset
Cc: Liming Gao <liming.gao@intel.com >
Cc: Yonghong Zhu <yonghong.zhu@intel.com >
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yunhua Feng <yunhuax.feng@intel.com >
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com >
2018-03-09 17:34:10 +08:00
Yonghong Zhu
8565b5829c
BaseTools: Update --pcd parser to support flexible pcd format
...
This patch update --pcd parser to support flexible pcd format.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com >
Reviewed-by: Liming Gao <liming.gao@intel.com >
2018-03-09 16:34:37 +08:00
Feng, YunhuaX
5ac0a5450b
BaseTools: report error if flag in LABEL() invalid
...
Flag in LABEL() is not valid C variable name, will report error.
Cc: Liming Gao <liming.gao@intel.com >
Cc: Yonghong Zhu <yonghong.zhu@intel.com >
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yunhua Feng <yunhuax.feng@intel.com >
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com >
2018-03-02 10:18:50 +08:00
Feng, YunhuaX
ea927d2f3f
BaseTools: Fix flexible PCD single quote and double quote bugs
...
1.The " and ' inside the string, must use escape character format
(\", \')
2.'string' and L'string' format in --pcd, it must be double quoted
first.
Some examples that to match --pcd format and DSC format
--pcd DSC format
L"ABC" L"ABC"
"AB\\\"C" "AB\"C"
"AB\\\'C" "AB\'C"
L"\'AB\\\"C\'" L'AB\"C'
"\'AB\\\'C\'" 'AB\'C'
H"{0, L\"AB\\\"B\", \'ab\\\"c\'}" {0, L"AB\"B", 'ab\"c'}
Cc: Liming Gao <liming.gao@intel.com >
Cc: Yonghong Zhu <yonghong.zhu@intel.com >
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yunhua Feng <yunhuax.feng@intel.com >
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com >
2018-02-28 08:47:11 +08:00
Feng, YunhuaX
3be421e987
BaseTools: Update ValueExpressionEx for flexible PCD
...
1. Byte array number should less than 0xFF.
2. Add SplitPcdValueString for PCD split
Cc: Liming Gao <liming.gao@intel.com >
Cc: Yonghong Zhu <yonghong.zhu@intel.com >
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yunhua Feng <yunhuax.feng@intel.com >
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com >
2018-02-25 16:04:23 +08:00
Kinney, Michael D
8bd72d7c05
BaseTools/Expression: Use 2nd passes on PCD values
...
Use 2 passes when evaluating PCD values to discover
all the LABEL() operators and compute the byte offset
of each LABEL(). The 2nd pass then has the information
to replace the OFFSET_OF() operator with the computed
byte offset. The 2 passes allows OFFSET_OF() to be used
before a LABEL() is declared.
fixes:https://bugzilla.tianocore.org/show_bug.cgi?id=880
Cc: Liming Gao <liming.gao@intel.com >
Cc: Yonghong Zhu <yonghong.zhu@intel.com >
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com >
2018-02-25 16:03:14 +08:00
Feng, YunhuaX
a35918caae
BaseTools: Fix VOID* type bug
...
Code miss UINT32 and UINT64 value type setting in
VOID*, like as {UINT32({TRUE})}
Cc: Liming Gao <liming.gao@intel.com >
Cc: Yonghong Zhu <yonghong.zhu@intel.com >
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yunhua Feng <yunhuax.feng@intel.com >
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com >
2018-02-10 19:55:13 +08:00
Yunhua Feng
9efe8d6040
BaseTools: Update Expression.py for string comparison and MACRO replace issue
...
1. Fix string comparison incorrect issue, we expected "ABC" is greater than
"AAD" since the second char 'B' is greater than 'A'.
2. fix MACRO not replace issue.
Cc: Liming Gao <liming.gao@intel.com >
Cc: Yonghong Zhu <yonghong.zhu@intel.com >
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yunhua Feng <yunhuax.feng@intel.com >
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com >
2018-02-09 08:34:36 +08:00
Feng, YunhuaX
0e6b86731e
BaseTools: Update Expression.py for VOID* to support L'a' and 'a'
...
Original VOID* type support L"string" and "string" format, now we also
add support for single quote string that without null terminator.
Type VOID* support L'a' and 'a', the value transfer to c style value.
L'a' --> {0x61, 0x00}
L'ab' --> {0x61, 0x00, 0x62, 0x00}
'a' --> {0x61}
'ab' --> {0x61, 0x62}
when the value is L'' or '' that not include any character, tool will
report error.
Cc: Liming Gao <liming.gao@intel.com >
Cc: Yonghong Zhu <yonghong.zhu@intel.com >
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yunhua Feng <yunhuax.feng@intel.com >
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com >
2018-02-04 11:19:39 +08:00
Feng, Bob C
6f49996ced
BaseTools: Structure Pcd in CommandLine.
...
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Bob Feng <bob.c.feng@intel.com >
Cc: Liming Gao <liming.gao@intel.com >
Reviewed-by: Liming Gao <liming.gao@intel.com >
2018-02-01 09:21:47 +08:00
Yunhua Feng
35f613d96c
BaseTools: Enhance parse performance by optimize ValueExpressionEx
...
Optimize ValueExpressionEx function to enhance meta-data file parse
performance.
Cc: Liming Gao <liming.gao@intel.com >
Cc: Yonghong Zhu <yonghong.zhu@intel.com >
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yunhua Feng <yunhuax.feng@intel.com >
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com >
Reviewed-by: Liming Gao <liming.gao@intel.com >
2018-01-30 22:44:59 +08:00
Zhu, Yonghong
f13f306b3b
BaseTools: Fix the bug for QuarkPlatformPkg build failure
...
The issue is that the string 'LPC' starts with the 'L' character and
this is being confused with L" or L' for a Unicode string or Unicode
character.
Fixes:https://bugzilla.tianocore.org/show_bug.cgi?id=831
Cc: Liming Gao <liming.gao@intel.com >
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com >
Reviewed-by: Liming Gao <liming.gao@intel.com >
2017-12-29 11:07:56 +08:00
Yonghong Zhu
726c501c2c
BaseTools: Support PCD flexible values format
...
https://bugzilla.tianocore.org/show_bug.cgi?id=541
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yunhua Feng <yunhuax.feng@intel.com >
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com >
Reviewed-by: Liming Gao <liming.gao@intel.com >
2017-12-27 14:43:27 +08:00