branch: externals/parser-generator commit fa43f0578cdf3de3fb548ce246c27da078955d3e Author: Christian Johansson <christ...@cvj.se> Commit: Christian Johansson <christ...@cvj.se>
More cpu optimizations --- parser-generator-lr.el | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/parser-generator-lr.el b/parser-generator-lr.el index a101e79..732de8d 100644 --- a/parser-generator-lr.el +++ b/parser-generator-lr.el @@ -318,7 +318,9 @@ lr-item-set-index lr-items table-lr-items) - (setq goto-table-table nil) + (setq + goto-table-table + nil) ;; Build list of possible next-symbols ;; here that follows current set @@ -368,7 +370,7 @@ (let ((prefix-lr-items (parser-generator-lr--items-for-goto lr-items - symbol))) + symbol))) ;; TODO Optimize this ;; If a' = GOTO(a, X) is nonempty (when prefix-lr-items @@ -619,7 +621,10 @@ (let ((rhs-rest (append (cdr rhs) suffix))) (let ((rhs-rest-first (parser-generator--first - rhs-rest))) + rhs-rest + nil + t + t))) (parser-generator--debug (message "is non-terminal") (message "rhs-rest: %s from %s + %s" rhs-rest (cdr rhs) suffix)