Follow-up Comment #3, bug #59973 (project groff):

Your "while" (non)loop expressed in pseudocode is:

      while (1) {
       if (A)
         if (B)
           break;
       error(...);
       break;
      }

Neither "if" having an "else," this should be equivalent to:

      while (1) {
       if (A && B)
         break;
       error(...);
       break;
      }

This further seems to be equivalent to the lower-level pseudocode:

       if (A && B)
         goto NEXT;
       error(...)
       goto NEXT;
      NEXT:

which basically reduces to:

      if !(A && B)
        error(...)

I confess I'm no C++ coder, so I could be overlooking any number of
language-specific gotchas.  And I don't know what you mean by "complicating
the boolean conditional afterward," the thing you were trying to avoid.  But
naively tracing the code path, I don't understand the need for the "while" at
all.

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?59973>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/


Reply via email to