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

Reply via email to