Domain-Specific Language for To-Do Items
So at first you think:
To_Do_Item ::= Done Item
Done ::= boolean
Item ::= String
But then you think:
To_Do_Item ::= Done Item Due
Due ::= DateTime
And then you think:
Due ::= DateTime | RecurrencePattern | DatePattern
DatePattern -- “next Tuesday” “3rd Fridays of the Month” etc...
And you're also thinking:
To_Do_Item …
more ...