There's been talk of alternative interfaces to Libmarpa, and multiple
interfaces are the real solution here. In fact, the SLIF only exists
because Peter Stuifzand decided my ways of interfacing Libmarpa in my
public examples weren't good enough, and took it upon himself to write
his own. Once he'd done so, I saw that Peter was right -- and the SLIF
is a direct descendant of Peter's interface. [ Though any feature of it
you don't like is probably my idea. :-) ]
-- jeffrey
On 02/25/2014 11:44 AM, Ruslan Shvedov wrote:
Thanks for explaining.
The thing was I thought if SLIF DSL could benefit from less
diverse/more strict — (pseudo-)rule/adverbs only — syntax and model, where
lexeme default statement becomes :lexeme default ::= pseudo rule
inaccessible statement becomes an adverb of
:default and/or :lexeme default pseudo-rules, e.g.
:default action => [name, values] inaccessible => ok
and
named event statement — event ( 'name' | name ) = ( completed |
nulled | predicted ) /symbol/ — becomes an adverb of the rule
whose LHS /symbol/ is, e.g.
event subtext = completed <subtext>
event 'A[]' = nulled <A>
event '^a' = predicted A
become
subtext ::= ... event completed => subtext
<A> ::= ... event nulled => 'A[]'
A ::= ... event predicted => '^a'
Heretic as it is, but I thought I'd better braindump it. :)
What do you think?
On Tue, Feb 25, 2014 at 8:11 PM, Jeffrey Kegler
<[email protected]
<mailto:[email protected]>> wrote:
The "logic" goes like this. Note the "=" instead of "::=". This
signals that the statement is not a rule, and is non-lexical --
it's location in the file does not matter. Since it's not a rule,
it does not take the form LHS ::= RHS2 ...
The initial colon was for pseudo-symbols. Since the lexeme
default statement is not a rule, it does not have a LHS, so what
appears before the equal sign ("=") is not considered symbol,
pseudo- or otherwise.
I am, frankly, less than 100% happy with this "logic" and my
design choices, but there they are.
In an ironic way, it does show Marpa's strength. Because it allows
and exploits ambiguity, I can "unpaint myself out of the corner",
by introducing new statements and syntax. Languages based on
other parsers cannot evolve in that way.
-- jeffrey
On 02/25/2014 08:25 AM, Ruslan Shvedov wrote:
Just caught myself thinking that
:default ::= action => [name, values]
:lexeme default ::= latm => 1
looks like a bit more consistent (well, for some definitions of
consistency at least) syntax than the current
:default ::= action => [name, values]
lexeme default = latm => 1
:default ::= ... and :lexeme ~ ... are pseudo-rules, but lexeme
default = ... is a statement. This is by design, so I'd
appreciate any information from those in the know.
--
You received this message because you are subscribed to the
Google Groups "marpa parser" group.
To unsubscribe from this group and stop receiving emails from it,
send an email to [email protected]
<mailto:[email protected]>.
For more options, visit https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to the Google
Groups "marpa parser" group.
To unsubscribe from this group and stop receiving emails from it,
send an email to [email protected]
<mailto:marpa-parser%[email protected]>.
For more options, visit https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to the Google
Groups "marpa parser" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to the Google Groups "marpa
parser" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.