[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/phps-mode 924fb345ec 06/15: Minor tweaks in parser gene
From: |
Christian Johansson |
Subject: |
[elpa] externals/phps-mode 924fb345ec 06/15: Minor tweaks in parser generation automation |
Date: |
Sat, 26 Feb 2022 02:06:35 -0500 (EST) |
branch: externals/phps-mode
commit 924fb345ec2c973b9a15b7a7011c45a115d311f0
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
Minor tweaks in parser generation automation
---
Makefile | 7 ++-----
admin/phps-mode-automation.el | 42 +++++++++++++++++++++++++++---------------
2 files changed, 29 insertions(+), 20 deletions(-)
diff --git a/Makefile b/Makefile
index a1b068a775..6a7b376b34 100644
--- a/Makefile
+++ b/Makefile
@@ -9,11 +9,8 @@ clean:
find . -name "*.elc" -exec rm -f {} \;
.PHONY: parser
-parser: clean generate-parser
-
-.PHONY: generate-parser
-generate-parser:
- $(EMACS_CMD) -L ~/.emacs.d/emacs-parser-generator/ -l
phps-mode-lexer.el -l admin/phps-mode-automation.el -eval "(progn (require
'parser-generator-lr-export)(setq debug-on-signal t)(setq debug-on-error
t)(phps-mode-automation))"
+parser:
+ rm phps-mode-automation-grammar.elc; $(EMACS_CMD) -L
~/.emacs.d/emacs-parser-generator/ -l phps-mode-lexer.el -l
admin/phps-mode-automation.el -l resume.el -eval "(progn (require
'parser-generator-lr-export)(setq debug-on-signal t)(setq debug-on-error
t)(phps-mode-automation))"
.PHONY: compile
compile:
diff --git a/admin/phps-mode-automation.el b/admin/phps-mode-automation.el
index 44b2afd769..a95cb0f0bb 100644
--- a/admin/phps-mode-automation.el
+++ b/admin/phps-mode-automation.el
@@ -1,4 +1,4 @@
-;;; phps-mode-automation --- Generate a Wisent Parser file -*-
lexical-binding: t -*-
+;;; phps-mode-automation --- Generate a parser file -*- lexical-binding: t -*-
;; Copyright (C) 2018-2022 Free Software Foundation, Inc.
@@ -7,13 +7,12 @@
;;; Uses a parser-generator library to convert LALR(1) YACC grammar into a
Canonical LR(1) Parser
-;; This does not work if some variables are byte-compiled
-;; therefore we delete byte-compiled files in `make parser' command
+;; This does not work if some variables are byte-compiled therefore we delete
byte-compiled files in `make parser' command
;; To resume use command: `make parser &> output.txt'
;; and to extract Emacs-Lisp data to separate file run `cat output.txt | grep
-F "-resume" - > resume.el'
;; and then to resume parser-generation run
-;; `rm phps-mode-automation-grammar.elc; emacs -Q -batch -L . -L
~/.emacs.d/emacs-parser-generator -l phps-mode-lexer.el -l
admin/phps-mode-automation.el -eval "(progn (require
'parser-generator-lr)(require 'parser-generator-lr-export))" -l resume.el -eval
"(phps-mode-automation)"'
+;; `rm phps-mode-automation-grammar.elc; emacs -Q -batch -L . -L
~/.emacs.d/emacs-parser-generator -l phps-mode-lexer.el -l
admin/phps-mode-automation.el -eval "(progn (require
'parser-generator-lr)(require 'parser-generator-lr-export))" -eval
"(phps-mode-automation)"'
;;; Code:
@@ -32,10 +31,14 @@
gc-cons-threshold
(* 1024 1024 256))
- (let* ((global-declaration
(phps-mode-automation-parser-generator--global-declaration))
- (attributes phps-mode-automation-parser-generator--attributes)
- (grammar (phps-mode-automation-parser-generator--grammar))
- (context-sensitive-attributes
phps-mode-automation-parser-generator--context-sensitive-attributes))
+ (let* ((global-declaration
+ (phps-mode-automation-parser-generator--global-declaration))
+ (attributes
+ phps-mode-automation-parser-generator--attributes)
+ (grammar
+ (phps-mode-automation-parser-generator--grammar))
+ (context-sensitive-attributes
+
phps-mode-automation-parser-generator--context-sensitive-attributes))
(message ";; Generated Grammar:\n%S" grammar)
@@ -48,19 +51,25 @@
(setq
parser-generator--context-sensitive-attributes
context-sensitive-attributes)
- (message "(setq parser-generator--context-sensitive-attributes
%S)" parser-generator--context-sensitive-attributes))
+ (message
+ "(setq parser-generator--context-sensitive-attributes %S)"
+ parser-generator--context-sensitive-attributes))
(when (boundp
'parser-generator-lr--context-sensitive-precedence-attribute)
(setq
parser-generator-lr--context-sensitive-precedence-attribute
(car context-sensitive-attributes))
- (message "(setq
parser-generator-lr--context-sensitive-precedence-attribute %S)"
parser-generator-lr--context-sensitive-precedence-attribute))
+ (message
+ "(setq
parser-generator-lr--context-sensitive-precedence-attribute %S)"
+ parser-generator-lr--context-sensitive-precedence-attribute))
(when (boundp 'parser-generator--global-declaration)
(setq
parser-generator--global-declaration
global-declaration)
- (message "(setq parser-generator--global-declaration %S)"
parser-generator--global-declaration))
+ (message
+ "(setq parser-generator--global-declaration %S)"
+ parser-generator--global-declaration))
(when (boundp 'parser-generator--global-attributes)
(setq
@@ -71,7 +80,9 @@
(setq
parser-generator-lr--global-precedence-attributes
attributes)
- (message "(setq parser-generator-lr--global-precedence-attributes
%S)" parser-generator-lr--global-precedence-attributes)))
+ (message
+ "(setq parser-generator-lr--global-precedence-attributes %S)"
+ parser-generator-lr--global-precedence-attributes)))
(when (fboundp 'parser-generator-set-look-ahead-number)
(parser-generator-set-look-ahead-number
@@ -189,6 +200,7 @@
(message
"(setq
parser-generator-lr--distinct-action-tables-resume %S)"
parser-generator-lr--distinct-action-tables))))))))
+ (message "\n")
;; Export
(let ((export
@@ -200,9 +212,9 @@
(generate-new-buffer "*PHP Parser*")
(switch-to-buffer "*PHP Parser*")
(insert export)
- (write-file parser-file-name)
- (kill-buffer)
- (message ";; export: %s" export))
+ (message ";; export: %s" export)
+ (write-file parser-file-name) ;; NOTE Will cause Debugger
entered--Lisp error: (void-variable vc-logentry-check-hook)
+ (kill-buffer))
(message ";; Automation completed"))
(error "Emacs parser generator must be available!")))
- [elpa] externals/phps-mode updated (a42188a24f -> be18349ec9), Christian Johansson, 2022/02/26
- [elpa] externals/phps-mode 0f355f6f4d 05/15: Formatted automation output as elisp comments, Christian Johansson, 2022/02/26
- [elpa] externals/phps-mode ccbb452889 04/15: Fixed automatic grammar translation from PHP 8.1 YACC, Christian Johansson, 2022/02/26
- [elpa] externals/phps-mode 2122f23ad1 01/15: Added failing indentation case, Christian Johansson, 2022/02/26
- [elpa] externals/phps-mode 924fb345ec 06/15: Minor tweaks in parser generation automation,
Christian Johansson <=
- [elpa] externals/phps-mode b82471b38a 09/15: Removed TODO item, Christian Johansson, 2022/02/26
- [elpa] externals/phps-mode 85eed0d30e 07/15: Updated parser to PHP 8.1, Christian Johansson, 2022/02/26
- [elpa] externals/phps-mode bc2ecad56a 11/15: More work on PHP 8.1, Christian Johansson, 2022/02/26
- [elpa] externals/phps-mode b5fcf0e7b7 02/15: Updated automation for PHP 8.1, Christian Johansson, 2022/02/26
- [elpa] externals/phps-mode 3e1142c30c 14/15: Passing bookkeeping tests with PHP 8.1 parser and AST, Christian Johansson, 2022/02/26
- [elpa] externals/phps-mode be18349ec9 15/15: Updated version, date and TODO, Christian Johansson, 2022/02/26
- [elpa] externals/phps-mode fe89129aaa 03/15: More work on PHP 8.1 automation, Christian Johansson, 2022/02/26
- [elpa] externals/phps-mode 10336eed90 08/15: Parser now handles multiple alternative cases switch case statement, Christian Johansson, 2022/02/26
- [elpa] externals/phps-mode d7ae56f698 10/15: Passing imenu-tests for PHP 8.1, Christian Johansson, 2022/02/26
- [elpa] externals/phps-mode faf6632911 13/15: Improved SDT for more infix operators, Christian Johansson, 2022/02/26