Parsing of "{ip} except;" in Junos ACLs doesn't seem to be functioning

Example:

       term spambad { 
            /* This term counts the number of established SMTP connections coming from */ 
            /* external sources */
            from { 
                source-address { 
                    10.0.0.0/8 except; 
                    10.8.0.0/16 except; 
                    172.16.0.0/12 except; 
                    192.168.0.0/16 except; 
                    0.0.0.0/0; 
                } 
                destination-address { 
                    172.128.1.1/32; 
                } 
                protocol tcp; 
                tcp-established; 
                source-port 25; 
                destination-port 1024-65535; 
            }
        }

Results in:

    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "trigger/acl/parser.py", line 2082, in parse
        success, children, nextchar = parser.parse(data)
      File "simpleparse/baseparser.py", line 30, in parse
        value = tag( data, self.buildTagger( production, processor), start, stop )
      File "simpleparse/objectgenerator.py", line 535, in __call__
        raise error
    simpleparse.error.ParserSyntaxError: ParserSyntaxError: missing semicolon on line 59