Mensajes de Warning

Sometimes, you want to detect problems, but not invalidate the entire parse as a result. For those occasions, the module provides a less stringent form of error reporting: the <warning:...> directive.

This directive is exactly the same as an <error:...> in every respect except that it does not induce a failure to match at the point it appears.

The directive is, therefore, useful for reporting non-fatal problems in a parse. For example:

       qr{ \A            # ...Match only at start of input
           <ArithExpr>   # ...Match a valid arithmetic expression

           (?:
               # Should be at end of input...
               \s* \Z
             |
               # If not, report the fact but don't fail...
               <warning: Expected end-of-input>
               <warning: (?{ "Extra junk at index $INDEX: $CONTEXT" })>
           )

           # Rule definitions here...
       }xms;

Note that, because they do not induce failure, two or more <warning:...> directives can be "stacked" in sequence, as in the previous example.

Casiano Rodríguez León
2009-12-09