On 10 June 2015 at 12:45, Tim Lewis <tim.le...@insyde.com> wrote: > There is already an example in the VFR specification. But there is no > comment to indicate which is “TRUE” and which is “FALSE” >
Just adding my 2 cents here: I think it's ludicrous to adopt the C syntax for a conditional expression (i.e., ? and :) but invert the meaning. Is there anything that could be done about that? > > > From: Gao, Liming [mailto:liming....@intel.com] > Sent: Wednesday, June 10, 2015 6:04 PM > To: edk2-devel@lists.sourceforge.net > Cc: Lawrence Chiu > Subject: Re: [edk2] "cond" vs. ? > > > > Tim: > > How about add one example in VFR spec to explain it? > > > > Thanks > > Liming > > > > From: Tim Lewis [mailto:tim.le...@insyde.com] > Sent: Wednesday, June 10, 2015 5:11 PM > To: edk2-devel@lists.sourceforge.net > Cc: Lawrence Chiu > Subject: Re: [edk2] "cond" vs. ? > > > > Yes. But this is confusing because the VFR specification is not clear. As a > result, many programmers assume that the cond() operator will work like the > C ? operator. > > > > How do we get the VFR specification updated? > > > > Thanks, > > > > Tim > > > > From: Gao, Liming [mailto:liming....@intel.com] > Sent: Wednesday, June 10, 2015 5:01 PM > To: edk2-devel@lists.sourceforge.net > Cc: Lawrence Chiu > Subject: Re: [edk2] "cond" vs. ? > > > > Lewis: > > Second way. If (expr1) then x = expr3 else expr2 > > > > Thanks > > Liming > > From: Tim Lewis [mailto:tim.le...@insyde.com] > Sent: Wednesday, June 10, 2015 10:48 AM > To: edk2-devel@lists.sourceforge.net > Cc: Lawrence Chiu > Subject: [edk2] "cond" vs. ? > > > > Folks – > > > > It appears that the VFR spec is not clear about how the 2nd and 3rd > parameters of the “cond” operator are handled. > > > > cond(expr1, expr2, expr3) > > > > Is it: if (expr1) then x = expr2 else expr3 > > > > Or > > > > If (expr1) then x = expr3 else expr2 > > > > We have seen alternate implementations in the wild. > > > > Thanks, > > > > Tim > > > > The VFR spec says: > > > > conditionalExp ::= > > "cond" > > "(" > > vfrStatementExpression > > "?" > > vfrStatementExpression > > ":" > > vfrStatementExpression > > ")" > > BEHAVIORS AND RESTRICTIONS: > > Generates EFI_IFR_CONDITIONAL op-codes.VFR Description in BNF 52 > > Example: > > numeric varid = MyData.Data, > > prompt = STRING_TOKEN(STR_PROMPT), > > help = STRING_TOKEN(STR_HELP), > > minimum = 0, > > maximum = 255, > > default value = cond(2 == 1 ? 5 : 10), > > endnumeric; > > > > > > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/edk2-devel > ------------------------------------------------------------------------------ _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel