[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/phps-mode 6b9c1a4 40/96: More pasing of grammar
From: |
Christian Johansson |
Subject: |
[elpa] externals/phps-mode 6b9c1a4 40/96: More pasing of grammar |
Date: |
Fri, 29 Oct 2021 11:14:43 -0400 (EDT) |
branch: externals/phps-mode
commit 6b9c1a4fd8838725a189800f021e077620babf46
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
More pasing of grammar
---
admin/phps-mode-grammar-parser-generator.el | 34 ++++++++++++++++++-----------
1 file changed, 21 insertions(+), 13 deletions(-)
diff --git a/admin/phps-mode-grammar-parser-generator.el
b/admin/phps-mode-grammar-parser-generator.el
index 967098a..a5b9d78 100644
--- a/admin/phps-mode-grammar-parser-generator.el
+++ b/admin/phps-mode-grammar-parser-generator.el
@@ -50,20 +50,20 @@
(parser-generator-set-grammar
'(
(Start Productions-Block Productions-Delimiter Productions Productions
Production LHS RHSS RHS RHS-Symbol Comment Logic Symbol)
- (productions-delimiter ":" "|" ";" comment logic symbol)
+ (productions-delimiter ":" "|" ";" comment logic symbol literal)
(
(Start Productions-Block)
(Productions-Block (Productions-Delimiter Productions
Productions-Delimiter))
- (Productions-Delimiter productions-delimiter)
- (Productions Production (Productions Production))
- (Production (Comment Production) (LHS ":" RHSS ";"))
+ (Productions-Delimiter (productions-delimiter (lambda(args) "")))
+ (Productions Production (Productions Production (lambda(args) (format
"%s\n\n%s" (nth 0 args) (nth 1 args)))))
+ (Production (Comment Production) (LHS ":" RHSS ";" (lambda(args) (format
"(%s\n %s\n)" (nth 0 args) (nth 2 args)))))
(LHS Symbol)
- (RHSS RHS (RHSS "|" RHS))
+ (RHSS RHS (RHSS "|" RHS (lambda(args) (format "%s\n %s" (nth 0 args)
(nth 2 args)))))
(RHS RHS-Symbol (RHS RHS-Symbol))
(RHS-Symbol Comment Logic Symbol)
- (Comment comment)
- (Logic logic)
- (Symbol symbol)
+ (Comment (comment (lambda(args) "")))
+ (Logic (logic (lambda(args) "")))
+ (Symbol symbol (literal (lambda(args) (format "%S" (substring args 1
2)))))
)
Start))
@@ -173,16 +173,24 @@
token
`(productions-delimiter ,(match-beginning 0) . ,(match-end 0))))
- ((looking-at "\\([%a-zA-Z_]+\\|'.'\\)")
+ ((looking-at "\\([%a-zA-Z_]+\\)")
(setq
token
- `(symbol ,(match-beginning 0) . ,(match-end 0))))))
+ `(symbol ,(match-beginning 0) . ,(match-end 0))))
+
+ ((looking-at "\\('.'\\)")
+ (setq
+ token
+ `(literal ,(match-beginning 0) . ,(match-end 0))))
+
+ ))
(when token
(let ((token-data
(buffer-substring-no-properties
(car (cdr token))
- (cdr (cdr token)))))))
+ (cdr (cdr token)))))
+ (message "Token: %S = %S" token token-data)))
token))))
(setq
@@ -216,8 +224,8 @@
(let ((delimiter-start (search-forward "%%")))
(kill-region delimiter-start (point-max)))
(goto-char (point-min))
- (let ((parse (parser-generator-lr-parse)))
- (message "parse: %S" parse))))
+ (let ((translation (parser-generator-lr-translate)))
+ (message "translation:\n%S" translation))))
(provide 'phps-mode-grammar-parser-generator)
;;; phps-mode-grammar-parser-generator.el ends here
- [elpa] externals/phps-mode b714471 21/96: Added parse function in lex-analyzer and a test for it, (continued)
- [elpa] externals/phps-mode b714471 21/96: Added parse function in lex-analyzer and a test for it, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode 50a014a 18/96: Using same lexer buffer for parser as the lex-analyzer is using, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode fb9905f 19/96: Added basic translation test, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode ec18c1e 22/96: Using parser to be able to implement incremental parser, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode 1ee3094 28/96: More refactoring of the parsers lex-analyzer, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode 2ceb6e5 23/96: Added potential support for incremental parsing, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode e59d30e 26/96: Improvements in lex-analyzer for parser, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode c62ec64 27/96: Started refactor of parsers lex-analyzer, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode 9acda54 33/96: Added more passing tests for parser, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode c470e37 38/96: More work on grammar parser generator, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode 6b9c1a4 40/96: More pasing of grammar,
Christian Johansson <=
- [elpa] externals/phps-mode 3fa1b13 41/96: Translation of productions now working, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode b0ad204 44/96: Improved YACC grammar parser for productions, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode 3824d7d 46/96: More work on automatically parsing YACC grammar, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode 42c4e0e 48/96: Work on automatically generating terminals, non-terminals and start from YACC grammar, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode f56ba64 49/96: Terminals, non-terminals and start is automatically generated from YACC, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode 7323416 31/96: Added failing test for parser, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode 7c66145 30/96: Refactor of parsers lex-analyzer complete, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode 0e89b6e 35/96: Fixed bug in automation grammar, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode 65152f4 36/96: Added TODO item, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode add17a7 24/96: T_COMMENT and T_DOC_COMMENT are excluded from parser, Christian Johansson, 2021/10/29