branch: externals/phps-mode
commit 569505e019b2b473421b32ee0c2ad30f7e654e69
Author: Christian Johansson <[email protected]>
Commit: Christian Johansson <[email protected]>
Added parser header and fixed byte-compilation for parser
---
admin/phps-mode-automation.el | 5 ++++-
phps-mode-automation-grammar.el | 10 ++++++++++
phps-mode-parser.el | 3 +++
test/phps-mode-test-parser.el | 13 +++++++++++++
4 files changed, 30 insertions(+), 1 deletion(-)
diff --git a/admin/phps-mode-automation.el b/admin/phps-mode-automation.el
index 5aef02c..2c04dd6 100644
--- a/admin/phps-mode-automation.el
+++ b/admin/phps-mode-automation.el
@@ -176,7 +176,10 @@
;; NOTE This does not work if functions above are byte-compiled
;; Export
- (let ((export (parser-generator-lr-export-to-elisp "phps-mode-parser")))
+ (let ((export
+ (parser-generator-lr-export-to-elisp
+ "phps-mode-parser"
+ phps-mode-automation-grammar--header)))
(generate-new-buffer "*PHP Parser*")
(switch-to-buffer "*PHP Parser*")
(insert export)
diff --git a/phps-mode-automation-grammar.el b/phps-mode-automation-grammar.el
index 5f515ac..2e595ec 100644
--- a/phps-mode-automation-grammar.el
+++ b/phps-mode-automation-grammar.el
@@ -26,6 +26,11 @@
(require 'phps-mode-lexer)
+(defvar
+ phps-mode-parser-lex-analyzer--function
+ nil
+ "Just placeholder to pass byte-compilation.")
+
(defconst
phps-mode-automation-grammar--context-sensitive-attributes
'(%prec)
@@ -1434,6 +1439,11 @@
"The productions of grammar.")
(defconst
+ phps-mode-automation-grammar--header
+ "(require 'phps-mode-lexer)\n(require 'semantic)\n(require 'semantic/lex)\n"
+ "Header contents for parser.")
+
+(defconst
phps-mode-automation-grammar--start
'start
"The entry-point of grammar.")
diff --git a/phps-mode-parser.el b/phps-mode-parser.el
index 66adf7e..b8a9192 100644
--- a/phps-mode-parser.el
+++ b/phps-mode-parser.el
@@ -6,6 +6,9 @@
;;; Code:
+(require 'phps-mode-lexer)
+(require 'semantic)
+(require 'semantic/lex)
;;; Constants:
diff --git a/test/phps-mode-test-parser.el b/test/phps-mode-test-parser.el
index 7db67aa..57b853d 100644
--- a/test/phps-mode-test-parser.el
+++ b/test/phps-mode-test-parser.el
@@ -160,4 +160,17 @@
(provide 'phps-mode-test-parser)
+;; TODO
+;; phps-mode-parser.el:65:167: Warning: reference to free variable
+;; ‘phps-mode-lexer--generated-new-tokens-index’
+;; phps-mode-parser.el:65:322: Warning: reference to free variable
+;; ‘phps-mode-lexer--generated-new-tokens’
+;; phps-mode-parser.el:65:406: Warning: reference to free variable
+;; ‘semantic-lex-end-point’
+
+;; In end of data:
+;; phps-mode-parser.el:65:271: Warning: the function ‘phps-mode-lexer--re2c’ is
+;; not known to be defined.
+
+
;;; phps-mode-test-parser.el ends here