Здравствуйте, night beast, Вы писали:
NB>Здравствуйте, Went, Вы писали:
W>>W>> size <widget> : .category {
W>> y_snap top y 64
W>> '/8|16|24|32|64/' <widget> : .option}
W>>
W>>эквивалентно:
W>>W>> size <widget> : .category
W>> {
W>> y_snap top y 64
W>> 8 <widget> : .option
W>> 16 <widget> : .option
W>> 24 <widget> : .option
W>> 32 <widget> : .option
W>> 64 <widget> : .option
W>> }
W>>
NB>а почему '/8|16|24|32|64/' дублирует именно <widget> : .option
NB>а не только <widget> или <widget> : .option}
Ну, это синтаксис языка такой.
'/8|16|24|32|64/' — это имя узла (как y_snap или y, их можно "в полной форме" писать как 'y_snap', 'y'), но так как оно ограничено слешами, то это мультиимя — отвечает на все перечисленные варианты.
<widget> — это признак узла, пометка для перечислений.
: .option — указание на то, что узел наследован от узла option, размещенного рядом (в нашем случае, у предка корневого узла size, отнаследованного в свою очередь от узла category).
То есть это не макрос, который при парсинге разворачивается в множество, а особое имя узла.