In current implementation, the "endif" opcode for suppressif has an end ";" for the statement opcode, but not for the option opcode. This is not a user friendly grammar. So this patch fixed this issue. Add an optional ";" end for option opcode to keep consistent with existed code. The same case also existed for grayoutif/disableif/inconsistentif/nosubmitif/warningif.
Cc: Liming Gao <[email protected]> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eric Dong <[email protected]> --- BaseTools/Source/C/VfrCompile/VfrSyntax.g | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/BaseTools/Source/C/VfrCompile/VfrSyntax.g b/BaseTools/Source/C/VfrCompile/VfrSyntax.g index ad839b2..d74fec8 100644 --- a/BaseTools/Source/C/VfrCompile/VfrSyntax.g +++ b/BaseTools/Source/C/VfrCompile/VfrSyntax.g @@ -3256,39 +3256,39 @@ vfrStatementInconsistentIf : << CIfrInconsistentIf IIObj; >> L:InconsistentIf << IIObj.SetLineNo(L->getLine()); >> Prompt "=" "STRING_TOKEN" "\(" S:Number "\)" "," << IIObj.SetError (_STOSID(S->getText(), S->getLine())); >> { FLAGS "=" flagsField ( "\|" flagsField )* "," } vfrStatementExpression[0] - E:EndIf << CRT_END_OP (E); >> + E:EndIf {";"} << CRT_END_OP (E); >> ; vfrStatementNoSubmitIf : << CIfrNoSubmitIf NSIObj; >> L:NoSubmitIf << NSIObj.SetLineNo(L->getLine()); >> Prompt "=" "STRING_TOKEN" "\(" S:Number "\)" "," << NSIObj.SetError (_STOSID(S->getText(), S->getLine())); >> { FLAGS "=" flagsField ( "\|" flagsField )* "," } vfrStatementExpression[0] - E:EndIf << CRT_END_OP (E); >> + E:EndIf {";"} << CRT_END_OP (E); >> ; vfrStatementWarningIf : << CIfrWarningIf WIObj; >> L:WarningIf << WIObj.SetLineNo(L->getLine()); >> Prompt "=" "STRING_TOKEN" "\(" S:Number "\)" "," << WIObj.SetWarning (_STOSID(S->getText(), S->getLine())); >> {Timeout "=" T:Number "," << WIObj.SetTimeOut (_STOU8(T->getText(), T->getLine())); >>} vfrStatementExpression[0] - E:EndIf << CRT_END_OP (E); >> + E:EndIf {";"} << CRT_END_OP (E); >> ; vfrStatementDisableIfQuest : << CIfrDisableIf DIObj; >> L:DisableIf << DIObj.SetLineNo(L->getLine()); >> vfrStatementExpression[0] ";" vfrStatementQuestionOptionList - E:EndIf << CRT_END_OP (E); >> + E:EndIf {";"} << CRT_END_OP (E); >> ; vfrStatementRefresh : << CIfrRefresh RObj; >> L:Refresh << RObj.SetLineNo(L->getLine()); >> @@ -3314,20 +3314,20 @@ vfrStatementSuppressIfQuest : << CIfrSuppressIf SIObj; >> L:SuppressIf << SIObj.SetLineNo(L->getLine()); >> { FLAGS "=" flagsField ( "\|" flagsField )* "," } vfrStatementExpression[0] ";" vfrStatementQuestionOptionList - E:EndIf << CRT_END_OP (E); >> + E:EndIf {";"} << CRT_END_OP (E); >> ; vfrStatementGrayOutIfQuest : << CIfrGrayOutIf GOIObj; >> L:GrayOutIf << GOIObj.SetLineNo(L->getLine()); >> { FLAGS "=" flagsField ( "\|" flagsField )* "," } vfrStatementExpression[0] ";" vfrStatementQuestionOptionList - E:EndIf << CRT_END_OP (E); >> + E:EndIf {";"} << CRT_END_OP (E); >> ; vfrStatementOptions : vfrStatementOneOfOption ; -- 1.9.5.msysgit.1 _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

