title: pyparsing: when ignoring comments, parseAll=True does not throw a ParseException
body: <p>I noticed a weird side-effect in pyparsing: </p>
  
  <p>When using .ignore() on a superset of a parser, parseString(... , parseAll = True) stops examining the whole string at the comment symbol. Better explained by code below.</p>
  
  <p>How do I fix that without using stringEnd? </p>
  
  <p>example:</p>
  
  <pre><code>def test():        
      import pyparsing as p
      unquoted_exclude = "\\\"" + "':/|&lt;&gt;,;#"   
      unquoted_chars = ''.join(set(p.printables) - set(unquoted_exclude))
      unquotedkey = p.Word(unquoted_chars)
  
      more = p.OneOrMore(unquotedkey)
      more.ignore("#" + p.restOfLine) 
      # ^^ "more" should ignore comments, but not "unquotedkey" !!
  
      def parse(parser, input_, parseAll=True):
          try: 
              print input_
              print parser.parseString(input_, parseAll).asList()
          except Exception as err:
              print err
  
  
      parse(unquotedkey, "abc#d")
      parse(unquotedkey, "abc|d")
  
      withstringend = unquotedkey + p.stringEnd 
      parse(withstringend, "abc#d", False)
      parse(withstringend, "abc|d", False)
  </code></pre>
  
  <p>Output:</p>
  
  <blockquote>
  <pre><code>abc#d     
  ['abc'] &lt;--- should throw an exception but does not  
  abc|d
  Expected end of text (at char 3), (line:1, col:4)
  abc#d
  Expected stringEnd (at char 3), (line:1, col:4)
  abc|d
  Expected stringEnd (at char 3), (line:1, col:4)
  </code></pre>
  </blockquote>