#token MapTitle("maptitle") "maptitle"\r
#token MapGuid("mapguid") "mapguid"\r
#token Subtitle("subtitle") "subtitle"\r
+#token EndSubtitle("endsubtitle") "endsubtitle"\r
#token Help("help") "help"\r
#token Text("text") "text"\r
#token Option("option") "option"\r
#token Goto("goto") "goto"\r
#token FormSetGuid("formsetguid") "formsetguid"\r
#token InconsistentIf("inconsistentif") "inconsistentif"\r
+#token WarningIf("warningif") "warningif"\r
#token NoSubmitIf("nosubmitif") "nosubmitif"\r
#token EndIf("endif") "endif"\r
#token Key("key") "key"\r
<<\r
EFI_GUID Guid;\r
CIfrVarStoreNameValue VSNVObj;\r
- EFI_VARSTORE_ID VarStoreId;\r
+ EFI_VARSTORE_ID VarStoreId = EFI_VARSTORE_ID_INVALID;\r
+ BOOLEAN Created = FALSE;\r
>>\r
L:NameValueVarStore << VSNVObj.SetLineNo(L->getLine()); >>\r
- SN:StringIdentifier "," << _PCATCH(mCVfrDataStorage.DeclareNameVarStoreBegin (SN->getText()), SN); >>\r
+ SN:StringIdentifier ","\r
+ {\r
+ VarId "=" ID:Number "," <<\r
+ _PCATCH(\r
+ (INTN)(VarStoreId = _STOU16(ID->getText())) != 0,\r
+ (INTN)TRUE,\r
+ ID,\r
+ "varid 0 is not allowed."\r
+ );\r
+ >>\r
+ }\r
(\r
- Name "=" "STRING_TOKEN" "\(" N:Number "\)" "," << _PCATCH(mCVfrDataStorage.NameTableAddItem (_STOSID(N->getText())), SN); >>\r
+ Name "=" "STRING_TOKEN" "\(" N:Number "\)" "," << \r
+ if (!Created) {\r
+ _PCATCH(mCVfrDataStorage.DeclareNameVarStoreBegin (SN->getText(), VarStoreId), SN);\r
+ Created = TRUE;\r
+ }\r
+ _PCATCH(mCVfrDataStorage.NameTableAddItem (_STOSID(N->getText())), SN); \r
+ >>\r
)+\r
Uuid "=" guidDefinition[Guid] << _PCATCH(mCVfrDataStorage.DeclareNameVarStoreEnd (&Guid), SN); >>\r
<<\r
{\r
"," FLAGS "=" vfrSubtitleFlags[SObj]\r
}\r
- { vfrStatementStatTagList "," }\r
- E:";" << CRT_END_OP (E); >>\r
+ (\r
+ {vfrStatementStatTagList "," }\r
+ E:";" << CRT_END_OP (E); >>\r
+ |\r
+ { "," vfrStatementStatTagList}\r
+ { "," (vfrStatementStat | vfrStatementQuestions)*}\r
+ E: EndSubtitle ";" << CRT_END_OP (E); >>\r
+ )\r
;\r
\r
vfrSubtitleFlags [CIfrSubtitle & SObj] :\r
vfrStatementRefresh |\r
vfrStatementVarstoreDevice |\r
vfrStatementExtension |\r
- vfrStatementRefreshEvent\r
+ vfrStatementRefreshEvent |\r
+ vfrStatementWarningIf\r
;\r
\r
vfrStatementQuestionTagList :\r
E:EndIf << CRT_END_OP (E); >>\r
;\r
\r
+vfrStatementWarningIf :\r
+ << CIfrWarningIf WIObj; >>\r
+ L:WarningIf << WIObj.SetLineNo(L->getLine()); >>\r
+ Prompt "=" "STRING_TOKEN" "\(" S:Number "\)" "," << WIObj.SetWarning (_STOSID(S->getText())); >>\r
+ {Timeout "=" T:Number "," << WIObj.SetTimeOut (_STOU8(T->getText())); >>}\r
+ vfrStatementExpression[0]\r
+ E:EndIf << CRT_END_OP (E); >>\r
+ ;\r
+\r
vfrStatementDisableIfQuest :\r
<< \r
CIfrDisableIf DIObj; \r