Hi Ron, cool stuff! I like this: > By generating byte-codes for an interpreter, supporting multiple parsing > algorithms became a matter of slightly expanding the number of opcodes. This > also appears to be an easier structure (for me) to understand and inspect.
That is interesting...can the interpreter fetch/exec loop fit in L1 cache? maybe... i was thinking SLR(0) also instead of the prec climbing thing for expressions. I'll think about this hard. Ter On Feb 21, 2010, at 6:20 PM, Ron Burk wrote: > Of possible distant peripheral interest, I've been working on using > SLR(0) combined with operator precedence algorithms to handle > expressions in a (mostly) LL(1) parser generator in the smallest > possible space (both generated code and specification syntax). > The SLR(0) automaton ends up with innumerable shift/reduce > conflicts, all of which can be correctly (and cheaply) decided > by the operator precedence tables at runtime. Works great on > my whiteboard; time will tell how it works in practice. > > http://code.google.com/p/blacc/wiki/DesignGuideIntro > > Sample syntax in first code example on that page. Probably been > done somewhere before, as virtually everything to do with parsing > has. :-) > > One pleasant result of using SLR(0) with op prec is it seems like it > keeps me within spitting distance of provable correctness. If the > SLR(0) automaton contains any reduce-reduce conflicts, then the > user has asked me to do something I'm unwilling to support. If > operator precedence should ever claim to have found a handle > when the SLR(0) automaton is not in an accepting state, there's > either a bug or a great lapse in understanding on my part of the > two algorithms. > > One minor complication is the need to switch back to LL(1) parsing > from the midst of the bottom-up parser (e.g., to handle C's cast > operator), but this seems fairly confinable as, once again, > the SLR(0) automaton has the information needed (e.g.) > to know it's reached the point of expecting a nonterminal that exists > outside its own tiny, highly constrained portion of the grammar. > Thoroughly tested on my whiteboard, only the detail of implementation > remains. :-) List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address -- You received this message because you are subscribed to the Google Groups "il-antlr-interest" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.
