Старшинство операций
Старшинство операций
Теперь, когда мы изучили все типы операций 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).
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Контроль операций NTP
Контроль операций NTP Помимо визуального контроля показаний часов с помощью программы xclock, для мониторинга операций NTP часто применяется программа ntpq. После вызова эта программа запрашивает команды, определяющие ее дальнейшую работу. Команды вводятся в текстовом режиме.
36. Перегрузка операций
36. Перегрузка операций Часто программы имеют дело с объектами, которые являются представлениями абстрактных понятий. К примеру, тип данных int в C++ вместе с операциями +, —, *, / и т. д. является реализацией математического понятия целых чисел. Подобные понятия чаще всего
12.4.2. Совмещение операций
12.4.2. Совмещение операций В главе 5 сравнивались протоколы РОРЗ и IMAP для опроса удаленных почтовых серверов. При этом было отмечено, что IMAP-запросы (в отличие от РОРЗ-запросов) маркируются идентификатором запроса, сгенерированным клиентом. Сервер, отправляя обратно ответ,
12.4.2. Совмещение операций
12.4.2. Совмещение операций В главе 5 сравнивались протоколы POP3 и IMAP для опроса удаленных почтовых серверов. При этом было отмечено, что IMAP-запросы (в отличие от POP3-запросов) маркируются идентификатором запроса, сгенерированным клиентом. Сервер, отправляя обратно ответ,
Перегрузка операций
Перегрузка операций В C#, как и в любом другом языке программирования, есть свой ограниченный набор лексем, используемых для выполнения базовых операций со встроенными типами. Так, вы знаете, что операция + применима к двум целым числам и в результате дает их сумму.//
Роль кодов операций CIL
Роль кодов операций CIL После определения компоновочного блока .NET, пространства имен и набора типов в терминах GIL с использованием различных директив и связанных атрибутов остается одно – предложить программную логику реализации типа. Это является задачей кодов
Анализ кодов операций CIL
Анализ кодов операций CIL Заключительной темой нашего обсуждения в этой главе в отношении программного кода CIL будет роль кодов операций. Напомним, что код операции – это просто лексема CIL, используемая для построения логики реализации данного члена. Полный набор кодов
10.5.2. Старшинство предложения COLLATE
10.5.2. Старшинство предложения COLLATE Предложение COLLATE имеет высокое старшинство (выше, чем ||), так следующие два выражения эквивалентны:x || y COLLATE zx || (y COLLATE
Старшинство операций
Старшинство операций Теперь, когда мы изучили все типы операций XPath, можно дать синтаксическое определение выражению и выстроить все операции в порядке старшинства.Выражению, как самой общей конструкции XPath, соответствует продукция Expr, которая определяется следующим
Приоритет операций
Приоритет операций Приоритет определяет порядок выполнения операций в выражении. Первыми выполняются операции, имеющие высший приоритет. Операции, имеющие одинаковый приоритет, выполняются слева направо.Таблица приоритетов операций @, not, ^, +, - (унарные), new 1
Использование операций
Использование операций Представления стека при всех их различиях объединяет то, что они описывают структуру "хранения" (т.е. структуру, используемую для хранения других объектов), к которой применяются определенные операции, обладающие определенными свойствами.
Статус универсальных операций
Статус универсальных операций Последние комментарии частично прояснили вопрос о статусе универсальных операций clone, copy, equal, is_equal, deep_clone, deep_equal.Эти операции не являются языковыми конструкциями, невзирая на их фундаментальную значимость для практики. Они поставляются