In some of the logic, I need to determine if two semantics are "the
same". Comparing semantics is straightforward when they are in the
form of actions names (Perl strings). Alternatives, such as code
references, quickly get me into matters of definition, and I found it
easiest and safest to stick to action names.
Not to say that this matter can't be approached differently. You can
create your own interface to Marpa::R2, perhaps in the form of a DSL.
(I take this route myself. Note that
when
I added precedence parsing to Marpa, I did not add it to the Marpa::R2
interface -- instead I wrote a DSL.) Alternative interfaces to
Marpa can go through the Marpa::R2::Thin interface, so they don't even
need to pay a performance penalty -- they might in fast be faster than
Marpa::R2.
-- jeffrey