Что означает «+» в представлении синтаксиса W3C для TTML timeExpression?

Я хочу понять допустимые форматы timeExpressions в TTML. В этом разделе спецификации описывается синтаксис. Вот выдержка:

<timeExpression>
  : clock-time
  | offset-time

clock-time
  : hours ":" minutes ":" seconds ( fraction | ":" frames ( "." sub-frames )? )?

offset-time
  : time-count fraction? metric

hours
  : <digit> <digit>
  | <digit> <digit> <digit>+

                                    -- ✂ --

I номенклатура документа в некоторой степени знакома, т.е. Я понимаю:

  • | означает ИЛИ
  • (...) группы
  • ? означает необязательный

а что значит +?


Я бы предположил, что это означает «один или несколько», как в регулярном выражении, но если бы это было так, почему спецификация читалась бы так:

hours
  : <digit> <digit>
  | <digit> <digit> <digit>+

Вместо просто:

hours
  : <digit> <digit>+

person Pocketsand    schedule 24.08.2017    source источник
comment
В этом документе говорится, что он использует операторы Клини, и в этой грамматике + означает один или несколько. Возможно, они выбрали 2 представления, чтобы было понятнее, что требуются начальные нули.   -  person Alex K.    schedule 24.08.2017
comment
Аааа, да, спасибо. Это имело бы смысл. Если вы хотите поместить это в ответ, я приму это.   -  person Pocketsand    schedule 24.08.2017


Ответы (2)


В документе указано, что:

Допустимое содержание информационного элемента отображается в виде грамматического фрагмента с использованием операторов Клини ?, * и +.

И в этой грамматике + действительно означает один или несколько.

Поскольку hours необходимо дополнить нулями для значений ‹ 10, возможно, два определения предназначены для иллюстрации этого.

person Alex K.    schedule 24.08.2017

+ означает, что может присутствовать один или несколько фрагментов. Причина, по которой проводится различие между часами, состоящими из 2 цифр, и компонентами, состоящими из 3 и более цифр, заключается в том, что я считаю намеком на то, что в некоторых временных базах часы могут быть только 2-значными, тогда как в других они могут быть больше. Однако в любом случае минимальное количество цифр равно 2. Я согласен, что простое отображение <digit> <digit>+ фактически означало бы то же самое, но не имело бы тонкой коннотации, что иногда максимальное количество цифр равно 2.

Причина, по которой запись «2 или более цифр» не говорит <digit> <digit> | <digit> <digit> <digit>*, заключается в том, что эти две цифры будут неразличимы, когда присутствуют 2 цифры. Хотя это приятно, насколько я могу судить.

person Nigel Megitt    schedule 30.08.2017