ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Однако, в ряде ситуаций описанный способ разрешенияКонфликтов приводит к нужному результату. Например, рассмот- Рим фрагмент грамматики языка программирования, описывающий условный оператор: оператор: if '(' условие ')' оператор /*1*/ | if '(' условие ')' оператор else оператор; /*2*/ Входная строка вида: If(C1) if(C2) S1 else S2 вызвала бы при разборе конфликт сдвиг/свертка в момент - 22 - Просмотра символа else. Введенная часть строки к этому вре- мени имеет вид: If (условие) if (условие) оператор Если выполнить свертку второй части конструкции по правилу (1), то строка сведется к: If (условие) оператор (Заметим, что применить еще раз правило(1) мешает просмот- Ренный заранее символ else). После ввода конструкции S2 и замены ее нетерминалом оператор к строке: If (условие) оператор else оператор Будет применено правило (2). Полученный разбор соответствует следующей интерпретации входной строки: if (C1) {if(C2) S1} else S2 При альтернативном подходе в случае применения сдвига в Момент появления else входная строка была бы введена пол- ностью: If (условие) if (условие) оператор Else оператор Ко второй части строки можно применить правило (2), а затем свернуть полученную конструкцию: If (условие) оператор По правилу (1). Такой разбор соответствует второй возможной интерпретации входной строки: if (C1) {if(C2) S1 else S2} Как известно, в большинстве языков программирования принята Не нашли, что искали? Воспользуйтесь поиском:
|