Если я понял ваш вопрос, «вставляя действия в грамматику», вы подразумеваете вставку семантических действий в грамматику, чтобы они выполнялись «inline» (например, во время фазы синтаксического анализа при анализе ввода).
Анализаторы Earley не подходят для этого, потому что они позволяют любые (даже двусмысленные) контекстно-свободные языковые грамматики. См.: http://en.wikipedia.org/wiki/Earley_algorithm
В принципе: для данного исполнения и данных состояния анализатор «Эрли» содержит все возможные состояния синтаксического анализа. Традиционный подход (например, Yacc/Bison) заключается в выполнении семантического действия после завершения правила или частичного ввода. Но при анализе неоднозначной грамматики (например, с конфликтом «Уменьшение/Уменьшение») и анализатором «Эрли» позаботится обо всех «сокращениях», но из-за двусмысленности не будет известно, какое действие должно быть выполнено.
Обычный способ использования синтаксических анализаров Эрли состоит в том, чтобы проанализировать входные данные и получить лес деревьев синтаксического анализа, на котором вы позже выполняете требуемые действия (например, отбрасывание тех, кого вы знаете, недействительны или применение некоторых семантических действий на них).
Однако, там были некоторые исследования по этой теме, пытаясь выполнить некоторые действия рядными (извините, только нашли эту ссылку) http://www.springerlink.com/content/602270808666074p/
Ну, говоря от имени (JFlex) и быстрого взгляда на документации, которую я бы говорят, что это только лексер, а часть синтаксического анализа отсутствует. – 2008-12-03 16:20:50