Walter Bright wrote:
Sean Kelly wrote:
I've found that once I created one lexer it could be re-used pretty easily for other languages too. And recursive descent parsers are trivial to write. It may be overkill for command-line parameters, but for anything remotely structured it's generally worth using.

When I was looking into parsing date strings, I thought it would be much easier if I adopted a lex/parse style approach. The result is in std.dateparse. The payoff is I've had very little trouble with it.

Ah, seems you can't parse dates in Nepal.

Read dateparse.d, and found this in line 81:

        if (
            year == year.init ||
            (month < 1 || month > 12) ||
            (day < 1 || day > 31) ||
            (hours < 0 || hours > 23) ||
            (minutes < 0 || minutes > 59) ||
            (seconds < 0 || seconds > 59) ||
            (tzcorrection != int.min &&
             ((tzcorrection < -2300 || tzcorrection > 2300) ||
              (tzcorrection % 10)))
            )

The last line here causes timezones that are not at full 10 minutes, to fail.

Kathmandu, Nepal is UTC+5:45, according to Wikipedia TimeZone.

Reply via email to