Книга: Технология XSLT
Старшинство операций
Старшинство операций
Теперь, когда мы изучили все типы операций XPath, можно дать синтаксическое определение выражению и выстроить все операции в порядке старшинства.
Выражению, как самой общей конструкции XPath, соответствует продукция Expr
, которая определяется следующим образом:
[XP14] Expr ::= OrExpr
То есть, фактически, выражение в XPath определяется через логическое выражение. Естественно, выражения не обязаны быть логическими. Просто в иерархии синтаксических правил логическое выражение "или" находится выше всего. Верхние правила определяются через более примитивные правила и так далее. В итоге иерархия выражений выстраивается следующим образом (в скобках приведены названия EBNF-правил):
? выражения (Expr
);
? логические выражения "или" (OrExpr
);
? логические выражения "и" (AndExpr
);
? выражения равенства и неравенства (EqualityExpr
);
? выражения сравнения (RelationalExpr
);
? выражения сложения и вычитания (AdditiveExpr
);
? выражения умножения и деления (MultiplicativeExpr
);
? унарные выражения (UnaryExpr
);
? выражения объединения множеств (UnionExpr
);
? выражения путей выборки (PathExpr
);
? пути выборки (LocationPath
), фильтрация множеств (FilterExpr
), относительные пути выборки (RelativeLocationPath
).
По этой схеме несложно выяснить старшинство операций — чем ниже выражение находится в этой иерархии, тем выше его приоритет. Для полной ясности, перечислим операции в порядке старшинства от старших, с большим приоритетом, к младшим, с меньшим приоритетом выполнения:
? операции с путями выборки;
? операция объединения множеств (|
);
? унарная операция отрицания (-
);
? умножение, деление и вычисление остатка от деления (*
, div
и mod
);
? операции сложения и вычитания (+
и -
);
? операции сравнения (<
, >
, <=
, =>
);
? операции проверки равенства и неравенства (=
и !=
);
? операция "и" (and
);
? операция "или" (or
).
Операции одного порядка имеют левую ассоциативность, как это было показано на примере с операциями сравнения (3 > 2 > 1
равносильно (3 > 2) >1
).
- 4. Свойства унарных операций
- 3. Свойства бинарных операций
- 4. Варианты операций соединения
- При неудачном выполнении некоторых операций Windows динамик издает пронзительный звук. Можно ли заставить его замолчать?
- Контроль операций NTP
- Отношения и сигнатуры операций
- Отладка атомарных операций
- Порядок выполнения операций процессором
- Выполнение основных операций с файловой системой
- Операторы побитовых логических операций и сдвига
- 12.8. Команды выполнения математических операций
- Исключения, возникающие при выполнении операций над числами с плавающей точкой