[Remind-Fans] Parser deficiency (was Re: jump forward by x working days)

David F. Skoll dfs at roaringpenguin.com
Thu Jun 11 11:24:42 EDT 2009


Tarlika Elisabeth Schmitz wrote:

> Why does the expression in the SATISFY clause have to be put in square
> brackets?

> The example from the manual does not use square brackets:
> REM 13 SATISFY wkdaynum(trigdate()) == 5

Because the expression parser gets confused by:

REM 13 SATISFY wkdaynum(trigdate()) == 5 MSG foo

It's still in "expression-parsing" mode when it encounters MSG
and it has no idea what to do with it.

This version clearly indicates the end of expression-parsing mode:

REM 13 SATISFY [wkdaynum(trigdate()) == 5] MSG foo

I wrote the Remind parser back in around 1992, when I'd never heard of lex,
yacc, recursive-descent parsers, grammars, etc. :-(  It's a rather naive
brute-force hard-coded parser.

Regards,

David



More information about the Remind-fans mailing list