stage1_2/iec_flex.ll
changeset 686 9b87606d4c07
parent 627 e7caa7d32ef5
child 737 f6bc5230aadd
equal deleted inserted replaced
685:5b19e376cc94 686:9b87606d4c07
   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!).