Cтраница 1
![]() |
Дерево разбора. [1] |
Первичная фраза - это фраза, не содержащая никакой другой фразы, кроме самой себя, и содержащая по крайней мере один терминальный символ. [2]
Первичной фразой является фраза, которая содержит по крайней мере один определяющий символ и никакой другой первичной фразы, кроме самой себя. [3]
![]() |
Стек и входная строка до и после редукции. [4] |
Алгоритм разбора отыскивает самую левую первичную фразу и состоит в следующем. Часть стека от символа tt -, исключительно, до вершины стека, включительно, есть первичная фраза. [5]
Очевидно, выделение вместо основы первичной фразы приводит к неканоническому разбору. [6]
В этот момент в стеке выделяется первичная фраза, заключенная между отношениями и, по таблице порождающих правил отыскивается правило, правая часть которого совпадает с первичной фразой с точностью до нетер минальных символов, затем выполняется редукция и, если нужно, семантическая подпрограмма. [7]
В случае, когда приводимая строка имеет вид (5.43), самой левой первичной фразой может быть либо пара символов ViU, либо пара UTj, либо тройка V UTj. Читателю предлагается самостоятельно убедиться, что другие комбинации символов не могут образовать самую левую первичную фразу. [8]
Первичной фразой является фраза, которая содержит по крайней мере один определяющий символ и никакой другой первичной фразы, кроме самой себя. [9]
Алгоритм разбора использует только отношения терминальных символов и отыскивает для редукции не основу, а так называемую первичную фразу. [10]
Чтобы учесть неформализованные особенности языка, целесообразно иметь возможность вызова семантических подпрограмм не только при выделении основы ( или первичной фразы), но и при появлении некоторых символов. [11]
В этот момент в стеке выделяется первичная фраза, заключенная между отношениями и, по таблице порождающих правил отыскивается правило, правая часть которого совпадает с первичной фразой с точностью до нетер минальных символов, затем выполняется редукция и, если нужно, семантическая подпрограмма. [12]
Если F0xF2 принадлежит сентениальной форме s, a Fl - единственный определяющий символ, прнадлежащий строке х, и ewniF0 J Flt aFj F2, тогда строка х содержит первичную фразу. [13]
![]() |
Стек и входная строка до и после редукции. [14] |
Если нужно, вызывается семантическая подпрограмма, соответствующая правилу (5.30), которая обрабатывает строку х, переводя ее на выходной язык. Семантическая подпрограмма учитывает как терминальные, так и нетерминальные символы первичной фразы, поэтому в ней можно предусмотреть возможность устранения неоднозначности разбора. [15]