726 * milliseconds ::= fixed_point 'ms' |
726 * milliseconds ::= fixed_point 'ms' |
727 |
727 |
728 */ |
728 */ |
729 |
729 |
730 interval_ms_X ({integer_0_999}(\.{integer})?)ms |
730 interval_ms_X ({integer_0_999}(\.{integer})?)ms |
731 interval_s_X {integer_0_59}s(_?{interval_ms_X})? |
731 interval_s_X {integer_0_59}s(_?{interval_ms_X})?|({integer_0_59}(\.{integer})?s) |
732 interval_m_X {integer_0_59}m(_?{interval_s_X})? |
732 interval_m_X {integer_0_59}m(_?{interval_s_X})?|({integer_0_59}(\.{integer})?m) |
733 interval_h_X {integer_0_23}h(_?{interval_m_X})? |
733 interval_h_X {integer_0_23}h(_?{interval_m_X})?|({integer_0_23}(\.{integer})?h) |
734 |
734 |
735 interval_ms {integer}ms|({fixed_point}ms) |
735 interval_ms {integer}ms|({fixed_point}ms) |
736 interval_s {integer}s(_?{interval_ms_X})?|({fixed_point}s) |
736 interval_s {integer}s(_?{interval_ms_X})?|({fixed_point}s) |
737 interval_m {integer}m(_?{interval_s_X})?|({fixed_point}m) |
737 interval_m {integer}m(_?{interval_s_X})?|({fixed_point}m) |
738 interval_h {integer}h(_?{interval_m_X})?|({fixed_point}h) |
738 interval_h {integer}h(_?{interval_m_X})?|({fixed_point}h) |
739 interval_d {integer}d(_?{interval_h_X})?|({fixed_point}d) |
739 interval_d {integer}d(_?{interval_h_X})?|({fixed_point}d) |
740 |
740 |
741 interval {interval_ms}|{interval_s}|{interval_m}|{interval_h}|{interval_d} |
741 interval {interval_ms}|{interval_s}|{interval_m}|{interval_h}|{interval_d} |
|
742 |
742 |
743 |
743 /* to help provide nice error messages, we also parse an incorrect but plausible interval... */ |
744 /* to help provide nice error messages, we also parse an incorrect but plausible interval... */ |
744 /* NOTE that this erroneous interval will be parsed outside the time_literal_state, so must not |
745 /* NOTE that this erroneous interval will be parsed outside the time_literal_state, so must not |
745 * be able to parse any other legal lexcial construct (besides a legal interval, but that |
746 * be able to parse any other legal lexcial construct (besides a legal interval, but that |
746 * is OK as this rule will appear _after_ the rule to parse legal intervals!). |
747 * is OK as this rule will appear _after_ the rule to parse legal intervals!). |