X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lalr-el.scm;h=be9392af8f729111ff50abfe512c63b56bf5de52;hb=eb9783f46dee7de4c9372e428a26e384e04d60f8;hp=5fe35e1cf3ca27cc4f7e20f580edc6096995edf9;hpb=12bb43b32a791cf55b701bd49fc5ee0294535102;p=elisp%2Fflim.git diff --git a/lalr-el.scm b/lalr-el.scm index 5fe35e1..be9392a 100644 --- a/lalr-el.scm +++ b/lalr-el.scm @@ -308,6 +308,25 @@ (define ngotos #f) (define token-set-size #f) +(define (gen-larl1 gram output-file header footer . opt) + (define (conv-rule-right rr) + (if (null? rr) + '() + (cons (reverse (car rr)) + (cons (cadr rr) + (cons (caddr rr) + (conv-rule-right (cdddr rr))))))) + (apply gen-lalr1 + (map + (lambda (elt) + (if (symbol? elt) + elt + (cons (car elt) (conv-rule-right (cdr elt))))) + gram) + output-file + header + footer + opt)) (define (gen-lalr1 gram output-file header footer . opt) (initialize-all)