Carsey, Jaben
9e7790a352
BaseTools: Add new RegExp for future use
...
Add a precompiled RegExp for 4 hex chars.
v2: fixed incorrect numbers of {}
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 08:55:09 +08:00
Carsey, Jaben
256e2d885b
BaseTools: Regular Expressions refactor out the hex char for later reuse
...
move hex character info from GUID expressions into seperate variable to
facilitate reuse.
I had a type with insufficient {} in the first version.
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 08:54:35 +08:00
Carsey, Jaben
cd67d66484
BaseTools: add GUID pattern to global data
...
add a shared global regular expression for GUID matching
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 08:36:06 +08:00
Carsey, Jaben
0f17c9fef1
BaseTools: GlobalData share same MACRO name definition
...
use the same MACRO name definition across shared regular expression patterns.
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 08:35:17 +08:00
Carsey, Jaben
4d603daa3a
BaseTools: FdfParser and FdfParserLite share reg exp
...
FdfParser can share regular expression from FdfParserLite.
reduce overlap and reduce recompile of the same expression.
v2: fix missed replacement of Pattern with shared variable
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 08:34:09 +08:00
Carsey, Jaben
2eb370ffdb
BaseTools: FdfParser & FdfParserLite refactor regular expression for GUIDs
...
Instead of recompiling it each time the API is called, just use
the global one that exists.
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-21 13:40:15 +08:00
Carsey, Jaben
c1e732344a
BaseTools: RangeExpression - remove unused variable
...
remove a never used variable.
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:27: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
Yonghong Zhu
316b43dee5
BaseTools: Fix bug for VOID* DynamicDefault Pcd use Flexible format
...
define a flexible pcd format in Dyanmic/DynamicExDefault section,
it cause build error.
[PcdsDynamicExDefault.common.DEFAULT]
pcdToken.Name|{GUID("11111111-2222-42eb-b5eb-fef31d207cb4")}
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-18 15:01:07 +08:00
Carsey, Jaben
7878f706e7
BaseTools: GlobalData remove unused variable
...
gWideStringPattern is not used.
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-09 17:39:38 +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
Yonghong Zhu
6ee9c68912
BaseTools: Fix the bug for display incorrect *M flag in report
...
The root cause is the byte array value in the driver Pcd, some bytes
have additional space character, while the value in DSC file doesn't
have this space, it cause the string compare return false, so we remove
the extra space.
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-02 10:06:21 +08:00
Feng, YunhuaX
4faf13222e
BaseTools: Fix eval parse string issue
...
eval argument start with " or ', but it is unicode string,
will encounter error:
List = list(eval(Value)) # translate escape character
File "<string>", line 1
'j??=????????F??
^
SyntaxError: EOL while scanning string literal
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:05:03 +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
Yonghong Zhu
8aaa8f7bc0
BaseTools: Fix the bug to display the single SKUID info
...
when defined SKUID_IDENTIFIER = DEFAULT|TEST in DSC [Defines] section,
per spec it means current SKUID is single, the bug is build report print
both DEFAULT and TEST info, it should only print TEST.
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-02-23 18:48:03 +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
4344a788c4
BaseTools: Report error when GUID format is incorrect
...
Flexible GUID format of PCD value support following format, so tool should report
error when it is not correct.
1. { GUID("11E13869-1896-4A07-8B21-D8B23DD2A2B4") }
2. { GUID({ 0x11e13869, 0x1896, 0x4a07,{
0x8b, 0x21, 0xd8, 0xb2, 0x3d, 0xd2, 0xa2, 0xb4 } }) }
3. { GUID(gEfiBlockIoProtocolGuid) }
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-07 09:29:08 +08:00