-- ==========================================================--
--
pgZeroOrMore :: Parser a -> Parser [a]

pgZeroOrMore p env toks
   = case p env toks of
     {
       PFail tok1 
         -> POk env toks [] ;
       POk env1 toks1 item1 
         -> case pgZeroOrMore p env1 toks1 of
            {
              PFail tok2 
                -> POk env1 toks1 [item1] ;
              POk env2 toks2 item2_list
                -> POk env2 toks2 (item1 : item2_list)
            }
     }
pgZeroOrMore :: Parser a -> Parser [a]
pgZeroOrMore p env toks
   = case p env toks of
     {
       PFail tok1 
         -> POk env toks [] ;
       POk env1 toks1 item1 
         -> case pgZeroOrMore p env1 toks1 of
            {
              PFail tok2 
                -> POk env1 toks1 [item1] ;
              POk env2 toks2 item2_list
                -> POk env2 toks2 (item1 : item2_list)
            }
     }
pgZeroOrMore p env toks
   = case p env toks of
     {
       PFail tok1 
         -> POk env toks [] ;
       POk env1 toks1 item1 
         -> case pgZeroOrMore p env1 toks1 of
            {
              PFail tok2 
                -> POk env1 toks1 [item1] ;
              POk env2 toks2 item2_list
                -> POk env2 toks2 (item1 : item2_list)
            }
     }