[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/phps-mode 0f11914 83/96: Fixed lexer issue with wrong t
From: |
Christian Johansson |
Subject: |
[elpa] externals/phps-mode 0f11914 83/96: Fixed lexer issue with wrong token for expressions inside double quoted strings |
Date: |
Fri, 29 Oct 2021 11:15:02 -0400 (EDT) |
branch: externals/phps-mode
commit 0f119143b6c0690b2e61d118c521836ed459e7f6
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
Fixed lexer issue with wrong token for expressions inside double quoted
strings
---
phps-mode-lexer.el | 10 +++++-----
test/phps-mode-test-lexer.el | 26 +++++++++++++-------------
test/phps-mode-test-parser.el | 34 ++++++++++------------------------
3 files changed, 28 insertions(+), 42 deletions(-)
diff --git a/phps-mode-lexer.el b/phps-mode-lexer.el
index f9f51df..bed22e5 100644
--- a/phps-mode-lexer.el
+++ b/phps-mode-lexer.el
@@ -24,9 +24,9 @@
;; any higher order meta-lexer logic goes into `phps-mode-lex-analyzer.el'.
;;
;; Features:
-;; * Defines the lexer for this grammar based on the Zend PHP Lexer at
-;; `https://github.com/php/php-src/blob/master/Zend/zend_language_scanner.l'
-;; which is using re2c.
+;; * Defines the lexer for this grammar based on the Zend PHP 8.0 Lexer at
+;;
https://raw.githubusercontent.com/php/php-src/php-8.0.0/Zend/zend_language_parser.y
+;; which is using re2c.
;;; Code:
@@ -1681,12 +1681,12 @@
;; (message "Found starting expression inside
double-quoted string at: %s %s" start variable-start)
(phps-mode-lexer--return-token-with-val
- 'T_CONSTANT_ENCAPSED_STRING
+ 'T_ENCAPSED_AND_WHITESPACE
start
variable-start)))
(progn
(phps-mode-lexer--return-token-with-val
- 'T_CONSTANT_ENCAPSED_STRING
+ 'T_ENCAPSED_AND_WHITESPACE
start
end)
;; (message "Found end of quote at %s-%s, moving ahead
after '%s'" start end (buffer-substring-no-properties start end))
diff --git a/test/phps-mode-test-lexer.el b/test/phps-mode-test-lexer.el
index 385d44e..4c6ec87 100644
--- a/test/phps-mode-test-lexer.el
+++ b/test/phps-mode-test-lexer.el
@@ -78,7 +78,7 @@
;; (message "Tokens: %s" phps-mode-lex-analyzer--tokens)
(should (equal
phps-mode-lex-analyzer--tokens
- '((T_OPEN_TAG 1 . 7) (T_VARIABLE 8 . 10) ("=" 11 . 12)
(T_CONSTANT_ENCAPSED_STRING 13 . 18) (";" 18 . 19) (T_ECHO 21 . 25) ("\"" 26 .
27) (T_CONSTANT_ENCAPSED_STRING 27 . 32) (T_CURLY_OPEN 32 . 33) (T_VARIABLE 33
. 35) ("}" 35 . 36) (T_CONSTANT_ENCAPSED_STRING 36 . 38) ("\"" 38 . 39) (";" 39
. 40)))))
+ '((T_OPEN_TAG 1 . 7) (T_VARIABLE 8 . 10) ("=" 11 . 12)
(T_CONSTANT_ENCAPSED_STRING 13 . 18) (";" 18 . 19) (T_ECHO 21 . 25) ("\"" 26 .
27) (T_ENCAPSED_AND_WHITESPACE 27 . 32) (T_CURLY_OPEN 32 . 33) (T_VARIABLE 33 .
35) ("}" 35 . 36) (T_ENCAPSED_AND_WHITESPACE 36 . 38) ("\"" 38 . 39) (";" 39 .
40)))))
)
@@ -215,7 +215,7 @@
(should
(equal
phps-mode-lex-analyzer--tokens
- '((T_OPEN_TAG 1 . 7) (T_ECHO 7 . 11) (T_VARIABLE 12 . 18) ("[" 18 . 19)
(T_CONSTANT_ENCAPSED_STRING 19 . 24) ("]" 24 . 25) (";" 25 . 26) (T_ECHO 27 .
31) ("\"" 32 . 33) (T_CONSTANT_ENCAPSED_STRING 33 . 36) (T_VARIABLE 36 . 42)
("[" 42 . 43) (T_NUM_STRING 43 . 45) ("]" 45 . 46) (T_CONSTANT_ENCAPSED_STRING
46 . 63) ("\"" 63 . 64) (";" 64 . 65)))))
+ '((T_OPEN_TAG 1 . 7) (T_ECHO 7 . 11) (T_VARIABLE 12 . 18) ("[" 18 . 19)
(T_CONSTANT_ENCAPSED_STRING 19 . 24) ("]" 24 . 25) (";" 25 . 26) (T_ECHO 27 .
31) ("\"" 32 . 33) (T_ENCAPSED_AND_WHITESPACE 33 . 36) (T_VARIABLE 36 . 42)
("[" 42 . 43) (T_NUM_STRING 43 . 45) ("]" 45 . 46) (T_ENCAPSED_AND_WHITESPACE
46 . 63) ("\"" 63 . 64) (";" 64 . 65)))))
(phps-mode-test--with-buffer
"<?php\n/*my comment */\n/** my doc comment */"
@@ -318,7 +318,7 @@
(should
(equal
phps-mode-lex-analyzer--tokens
- '((T_OPEN_TAG 1 . 7) (T_ECHO 7 . 11) ("\"" 12 . 13)
(T_CONSTANT_ENCAPSED_STRING 13 . 16) (T_VARIABLE 16 . 25)
(T_CONSTANT_ENCAPSED_STRING 25 . 33) ("\"" 33 . 34) (";" 34 . 35) (T_ECHO 36 .
40) (T_CONSTANT_ENCAPSED_STRING 41 . 51) (";" 51 . 52)))))
+ '((T_OPEN_TAG 1 . 7) (T_ECHO 7 . 11) ("\"" 12 . 13)
(T_ENCAPSED_AND_WHITESPACE 13 . 16) (T_VARIABLE 16 . 25)
(T_ENCAPSED_AND_WHITESPACE 25 . 33) ("\"" 33 . 34) (";" 34 . 35) (T_ECHO 36 .
40) (T_CONSTANT_ENCAPSED_STRING 41 . 51) (";" 51 . 52)))))
(phps-mode-test--with-buffer
"<?php echo \"My ${variable} is here 1\";"
@@ -326,7 +326,7 @@
(should
(equal
phps-mode-lex-analyzer--tokens
- '((T_OPEN_TAG 1 . 7) (T_ECHO 7 . 11) ("\"" 12 . 13)
(T_CONSTANT_ENCAPSED_STRING 13 . 16) (T_DOLLAR_OPEN_CURLY_BRACES 16 . 18)
(T_STRING_VARNAME 18 . 26) ("}" 26 . 27) (T_CONSTANT_ENCAPSED_STRING 27 . 37)
("\"" 37 . 38) (";" 38 . 39)))))
+ '((T_OPEN_TAG 1 . 7) (T_ECHO 7 . 11) ("\"" 12 . 13)
(T_ENCAPSED_AND_WHITESPACE 13 . 16) (T_DOLLAR_OPEN_CURLY_BRACES 16 . 18)
(T_STRING_VARNAME 18 . 26) ("}" 26 . 27) (T_ENCAPSED_AND_WHITESPACE 27 . 37)
("\"" 37 . 38) (";" 38 . 39)))))
(phps-mode-test--with-buffer
"<?php echo \"Mine {$first_variable} is here and my $second is there.\";"
@@ -334,7 +334,7 @@
(should
(equal
phps-mode-lex-analyzer--tokens
- '((T_OPEN_TAG 1 . 7) (T_ECHO 7 . 11) ("\"" 12 . 13)
(T_CONSTANT_ENCAPSED_STRING 13 . 18) (T_CURLY_OPEN 18 . 19) (T_VARIABLE 19 .
34) ("}" 34 . 35) (T_CONSTANT_ENCAPSED_STRING 35 . 51) (T_VARIABLE 51 . 58)
(T_CONSTANT_ENCAPSED_STRING 58 . 68) ("\"" 68 . 69) (";" 69 . 70)))))
+ '((T_OPEN_TAG 1 . 7) (T_ECHO 7 . 11) ("\"" 12 . 13)
(T_ENCAPSED_AND_WHITESPACE 13 . 18) (T_CURLY_OPEN 18 . 19) (T_VARIABLE 19 . 34)
("}" 34 . 35) (T_ENCAPSED_AND_WHITESPACE 35 . 51) (T_VARIABLE 51 . 58)
(T_ENCAPSED_AND_WHITESPACE 58 . 68) ("\"" 68 . 69) (";" 69 . 70)))))
(phps-mode-test--with-buffer
"<?php echo \" Hello $variable[0], how are you?\";"
@@ -342,7 +342,7 @@
(should
(equal
phps-mode-lex-analyzer--tokens
- '((T_OPEN_TAG 1 . 7) (T_ECHO 7 . 11) ("\"" 12 . 13)
(T_CONSTANT_ENCAPSED_STRING 13 . 20) (T_VARIABLE 20 . 29) ("[" 29 . 30)
(T_NUM_STRING 30 . 31) ("]" 31 . 32) (T_CONSTANT_ENCAPSED_STRING 32 . 46) ("\""
46 . 47) (";" 47 . 48)))))
+ '((T_OPEN_TAG 1 . 7) (T_ECHO 7 . 11) ("\"" 12 . 13)
(T_ENCAPSED_AND_WHITESPACE 13 . 20) (T_VARIABLE 20 . 29) ("[" 29 . 30)
(T_NUM_STRING 30 . 31) ("]" 31 . 32) (T_ENCAPSED_AND_WHITESPACE 32 . 46) ("\""
46 . 47) (";" 47 . 48)))))
;; HEREDOC
@@ -454,7 +454,7 @@
(should
(equal
phps-mode-lex-analyzer--tokens
- '((T_OPEN_TAG 1 . 7) (T_VARIABLE 7 . 11) ("=" 12 . 13) ("\"" 14 . 15)
(T_CONSTANT_ENCAPSED_STRING 15 . 39) (T_VARIABLE 39 . 44) (T_OBJECT_OPERATOR 44
. 46) (T_STRING 46 . 51) (T_CONSTANT_ENCAPSED_STRING 51 . 64) ("\"" 64 . 65)
("." 65 . 66) (T_VARIABLE 66 . 69) ("." 69 . 70) (T_CONSTANT_ENCAPSED_STRING 70
. 73) (";" 73 . 74) (T_CLOSE_TAG 75 . 77)))))
+ '((T_OPEN_TAG 1 . 7) (T_VARIABLE 7 . 11) ("=" 12 . 13) ("\"" 14 . 15)
(T_ENCAPSED_AND_WHITESPACE 15 . 39) (T_VARIABLE 39 . 44) (T_OBJECT_OPERATOR 44
. 46) (T_STRING 46 . 51) (T_ENCAPSED_AND_WHITESPACE 51 . 64) ("\"" 64 . 65)
("." 65 . 66) (T_VARIABLE 66 . 69) ("." 69 . 70) (T_CONSTANT_ENCAPSED_STRING 70
. 73) (";" 73 . 74) (T_CLOSE_TAG 75 . 77)))))
(phps-mode-test--with-buffer
"<?php $wpdb->get_var(\"SELECT post_parent FROM $wpdb->posts WHERE ID =
'\".$id.\"'\"); ?>"
@@ -463,7 +463,7 @@
(should
(equal
phps-mode-lex-analyzer--tokens
- '((T_OPEN_TAG 1 . 7) (T_VARIABLE 7 . 12) (T_OBJECT_OPERATOR 12 . 14)
(T_STRING 14 . 21) ("(" 21 . 22) ("\"" 22 . 23) (T_CONSTANT_ENCAPSED_STRING 23
. 47) (T_VARIABLE 47 . 52) (T_OBJECT_OPERATOR 52 . 54) (T_STRING 54 . 59)
(T_CONSTANT_ENCAPSED_STRING 59 . 72) ("\"" 72 . 73) ("." 73 . 74) (T_VARIABLE
74 . 77) ("." 77 . 78) (T_CONSTANT_ENCAPSED_STRING 78 . 81) (")" 81 . 82) (";"
82 . 83) (T_CLOSE_TAG 84 . 86)))))
+ '((T_OPEN_TAG 1 . 7) (T_VARIABLE 7 . 12) (T_OBJECT_OPERATOR 12 . 14)
(T_STRING 14 . 21) ("(" 21 . 22) ("\"" 22 . 23) (T_ENCAPSED_AND_WHITESPACE 23 .
47) (T_VARIABLE 47 . 52) (T_OBJECT_OPERATOR 52 . 54) (T_STRING 54 . 59)
(T_ENCAPSED_AND_WHITESPACE 59 . 72) ("\"" 72 . 73) ("." 73 . 74) (T_VARIABLE 74
. 77) ("." 77 . 78) (T_CONSTANT_ENCAPSED_STRING 78 . 81) (")" 81 . 82) (";" 82
. 83) (T_CLOSE_TAG 84 . 86)))))
(phps-mode-test--with-buffer
"<?php $this->add($option['style']['selectors'], array('background' =>
\"{$value['color']} url('{$value['image']}')\"));"
@@ -472,7 +472,7 @@
(should
(equal
phps-mode-lex-analyzer--tokens
- '((T_OPEN_TAG 1 . 7) (T_VARIABLE 7 . 12) (T_OBJECT_OPERATOR 12 . 14)
(T_STRING 14 . 17) ("(" 17 . 18) (T_VARIABLE 18 . 25) ("[" 25 . 26)
(T_CONSTANT_ENCAPSED_STRING 26 . 33) ("]" 33 . 34) ("[" 34 . 35)
(T_CONSTANT_ENCAPSED_STRING 35 . 46) ("]" 46 . 47) ("," 47 . 48) (T_ARRAY 49 .
54) ("(" 54 . 55) (T_CONSTANT_ENCAPSED_STRING 55 . 67) (T_DOUBLE_ARROW 68 . 70)
("\"" 71 . 72) (T_CURLY_OPEN 72 . 73) (T_VARIABLE 73 . 79) ("[" 79 . 80)
(T_CONSTANT_ENCAPSED_STRING 80 . 87) ("]" 87 . 88) (" [...]
+ '((T_OPEN_TAG 1 . 7) (T_VARIABLE 7 . 12) (T_OBJECT_OPERATOR 12 . 14)
(T_STRING 14 . 17) ("(" 17 . 18) (T_VARIABLE 18 . 25) ("[" 25 . 26)
(T_CONSTANT_ENCAPSED_STRING 26 . 33) ("]" 33 . 34) ("[" 34 . 35)
(T_CONSTANT_ENCAPSED_STRING 35 . 46) ("]" 46 . 47) ("," 47 . 48) (T_ARRAY 49 .
54) ("(" 54 . 55) (T_CONSTANT_ENCAPSED_STRING 55 . 67) (T_DOUBLE_ARROW 68 . 70)
("\"" 71 . 72) (T_CURLY_OPEN 72 . 73) (T_VARIABLE 73 . 79) ("[" 79 . 80)
(T_CONSTANT_ENCAPSED_STRING 80 . 87) ("]" 87 . 88) (" [...]
(phps-mode-test--with-buffer
"<?php\n$var = <<<EOD\nrandom {$value['color']->property} again
{$value->head()}; random\nEOD;\n"
@@ -490,7 +490,7 @@
(should
(equal
phps-mode-lex-analyzer--tokens
- '((T_OPEN_TAG 1 . 7) (T_ECHO 7 . 11) ("\"" 12 . 13)
(T_CONSTANT_ENCAPSED_STRING 13 . 15) (T_VARIABLE 15 . 22)
(T_CONSTANT_ENCAPSED_STRING 22 . 24) ("\"" 24 . 25) (";" 25 . 26)))))
+ '((T_OPEN_TAG 1 . 7) (T_ECHO 7 . 11) ("\"" 12 . 13)
(T_ENCAPSED_AND_WHITESPACE 13 . 15) (T_VARIABLE 15 . 22)
(T_ENCAPSED_AND_WHITESPACE 22 . 24) ("\"" 24 . 25) (";" 25 . 26)))))
(phps-mode-test--with-buffer
"<?php $var = \"\\\\\";"
@@ -507,7 +507,7 @@
(should
(equal
phps-mode-lex-analyzer--tokens
- '((T_OPEN_TAG 1 . 7) (T_VARIABLE 8 . 15) ("=" 16 . 17) (T_OBJECT_CAST 18
. 26) (T_ARRAY 27 . 32) ("(" 32 . 33) (T_CONSTANT_ENCAPSED_STRING 38 . 52)
(T_DOUBLE_ARROW 53 . 55) (T_LNUMBER 56 . 58) (")" 59 . 60) (";" 60 . 61)
(T_VARIABLE 62 . 68) ("=" 69 . 70) (T_CONSTANT_ENCAPSED_STRING 71 . 79) (";" 79
. 80) (T_ECHO 81 . 85) (T_VARIABLE 86 . 93) (T_OBJECT_OPERATOR 93 . 95) ("{" 95
. 96) ("\"" 96 . 97) (T_CONSTANT_ENCAPSED_STRING 97 . 103) (T_VARIABLE 103 .
109) ("\"" 109 . 110) ("}" 11 [...]
+ '((T_OPEN_TAG 1 . 7) (T_VARIABLE 8 . 15) ("=" 16 . 17) (T_OBJECT_CAST 18
. 26) (T_ARRAY 27 . 32) ("(" 32 . 33) (T_CONSTANT_ENCAPSED_STRING 38 . 52)
(T_DOUBLE_ARROW 53 . 55) (T_LNUMBER 56 . 58) (")" 59 . 60) (";" 60 . 61)
(T_VARIABLE 62 . 68) ("=" 69 . 70) (T_CONSTANT_ENCAPSED_STRING 71 . 79) (";" 79
. 80) (T_ECHO 81 . 85) (T_VARIABLE 86 . 93) (T_OBJECT_OPERATOR 93 . 95) ("{" 95
. 96) ("\"" 96 . 97) (T_ENCAPSED_AND_WHITESPACE 97 . 103) (T_VARIABLE 103 .
109) ("\"" 109 . 110) ("}" 110 [...]
(phps-mode-test--with-buffer
"<?php\nclass MyClass { function myFunction() { return 'hello'; }}\n$class
= new MyClass();\n$function = \"Function\";\necho $class->{\"my$function\"}();"
@@ -515,7 +515,7 @@
(should
(equal
phps-mode-lex-analyzer--tokens
- '((T_OPEN_TAG 1 . 7) (T_CLASS 7 . 12) (T_STRING 13 . 20) ("{" 21 . 22)
(T_FUNCTION 23 . 31) (T_STRING 32 . 42) ("(" 42 . 43) (")" 43 . 44) ("{" 45 .
46) (T_RETURN 47 . 53) (T_CONSTANT_ENCAPSED_STRING 54 . 61) (";" 61 . 62) ("}"
63 . 64) ("}" 64 . 65) (T_VARIABLE 66 . 72) ("=" 73 . 74) (T_NEW 75 . 78)
(T_STRING 79 . 86) ("(" 86 . 87) (")" 87 . 88) (";" 88 . 89) (T_VARIABLE 90 .
99) ("=" 100 . 101) (T_CONSTANT_ENCAPSED_STRING 102 . 112) (";" 112 . 113)
(T_ECHO 114 . 118) (T_VARIABLE 1 [...]
+ '((T_OPEN_TAG 1 . 7) (T_CLASS 7 . 12) (T_STRING 13 . 20) ("{" 21 . 22)
(T_FUNCTION 23 . 31) (T_STRING 32 . 42) ("(" 42 . 43) (")" 43 . 44) ("{" 45 .
46) (T_RETURN 47 . 53) (T_CONSTANT_ENCAPSED_STRING 54 . 61) (";" 61 . 62) ("}"
63 . 64) ("}" 64 . 65) (T_VARIABLE 66 . 72) ("=" 73 . 74) (T_NEW 75 . 78)
(T_STRING 79 . 86) ("(" 86 . 87) (")" 87 . 88) (";" 88 . 89) (T_VARIABLE 90 .
99) ("=" 100 . 101) (T_CONSTANT_ENCAPSED_STRING 102 . 112) (";" 112 . 113)
(T_ECHO 114 . 118) (T_VARIABLE 1 [...]
(phps-mode-test--with-buffer
"<?php\n$product_path = \"${filename[0]}/${filename[1]}/\";\n echo
'here';\n"
@@ -524,7 +524,7 @@
(should
(equal
phps-mode-lex-analyzer--tokens
- '((T_OPEN_TAG 1 . 7) (T_VARIABLE 7 . 20) ("=" 21 . 22) ("\"" 23 . 24)
(T_DOLLAR_OPEN_CURLY_BRACES 24 . 26) (T_STRING_VARNAME 26 . 34) ("[" 34 . 35)
(T_LNUMBER 35 . 36) ("]" 36 . 37) ("}" 37 . 38) (T_CONSTANT_ENCAPSED_STRING 38
. 39) (T_DOLLAR_OPEN_CURLY_BRACES 39 . 41) (T_STRING_VARNAME 41 . 49) ("[" 49 .
50) (T_LNUMBER 50 . 51) ("]" 51 . 52) ("}" 52 . 53) (T_CONSTANT_ENCAPSED_STRING
53 . 54) ("\"" 54 . 55) (";" 55 . 56) (T_ECHO 61 . 65)
(T_CONSTANT_ENCAPSED_STRING 66 . 72) (";" 72 [...]
+ '((T_OPEN_TAG 1 . 7) (T_VARIABLE 7 . 20) ("=" 21 . 22) ("\"" 23 . 24)
(T_DOLLAR_OPEN_CURLY_BRACES 24 . 26) (T_STRING_VARNAME 26 . 34) ("[" 34 . 35)
(T_LNUMBER 35 . 36) ("]" 36 . 37) ("}" 37 . 38) (T_ENCAPSED_AND_WHITESPACE 38 .
39) (T_DOLLAR_OPEN_CURLY_BRACES 39 . 41) (T_STRING_VARNAME 41 . 49) ("[" 49 .
50) (T_LNUMBER 50 . 51) ("]" 51 . 52) ("}" 52 . 53) (T_ENCAPSED_AND_WHITESPACE
53 . 54) ("\"" 54 . 55) (";" 55 . 56) (T_ECHO 61 . 65)
(T_CONSTANT_ENCAPSED_STRING 66 . 72) (";" 72 . 73)))))
)
diff --git a/test/phps-mode-test-parser.el b/test/phps-mode-test-parser.el
index bdb3ed1..5ae0b81 100644
--- a/test/phps-mode-test-parser.el
+++ b/test/phps-mode-test-parser.el
@@ -254,19 +254,17 @@
(lambda()
(phps-mode-parser-parse)))
- ;; TODO Make this work
- ;; (phps-mode-test-parser--buffer-contents
- ;; "<?php\necho $array['abc'];\necho \"My $array[12] random statement\";\n"
- ;; "Long inside array offset"
- ;; (lambda()
- ;; (phps-mode-parser-parse)))
+ (phps-mode-test-parser--buffer-contents
+ "<?php\necho \"My $array[12] random statement\";\n"
+ "Long inside array offset"
+ (lambda()
+ (phps-mode-parser-parse)))
- ;; TODO Make this work
- ;; (phps-mode-test-parser--buffer-contents
- ;; "<?php\n\n$k = 'key';\n\necho \"\\$a['{$k}']\";"
- ;; "A tricky case where variable inside double quote is escaped"
- ;; (lambda()
- ;; (phps-mode-parser-parse)))
+ (phps-mode-test-parser--buffer-contents
+ "<?php\n\necho \"\\$a['{$k}']\";"
+ "A tricky case where variable inside double quote is escaped"
+ (lambda()
+ (phps-mode-parser-parse)))
(message "\n-- Ran tests for parser boundaries. --"))
@@ -283,17 +281,5 @@
(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
- [elpa] externals/phps-mode 1789d15 60/96: Fixed bug in gramamr automation, (continued)
- [elpa] externals/phps-mode 1789d15 60/96: Fixed bug in gramamr automation, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode 08e1325 74/96: Test of parser not dependent on buffer name, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode eced7be 77/96: Parser now not dependent on lex-analyzer variables, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode 4f7126b 70/96: Fixed automation grammar setting of lex-analyzer functions, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode ce5e28e 72/96: Added generated grammar in output of automation, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode e698a2e 64/96: Re-generated parser with automated grammar, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode 128868c 75/96: Added another parse test, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode f44577a 79/96: More testing integrating parser and lex-analyzer, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode 7cfa35c 81/96: Improved error-reporting for parser errors, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode 91b425f 73/96: Update of parsers lex-analyzer function to not depend on lexer buffer, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode 0f11914 83/96: Fixed lexer issue with wrong token for expressions inside double quoted strings,
Christian Johansson <=
- [elpa] externals/phps-mode 50c9b31 84/96: Added 2 TODO items, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode c9f6fdb 82/96: Mode-line status now signals parser errors, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode e007ea7 88/96: Fixed parser-mode issue with parser and lex-analyzer integration, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode bc8306f 71/96: Fix in automation grammar to support exporting, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode 238f967 76/96: Cleaned up lex function, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode 5e375e3 80/96: Parser is not blocking lexer anymore, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode 7b62779 86/96: Added another TODO item, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode c5058c5 87/96: Fixed issue with async.el support for parser, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode 8e263fe 85/96: Removed T_DIE as token as it's replaced by T_EXIT, Christian Johansson, 2021/10/29
- [elpa] externals/phps-mode 3489f9d 90/96: Parser parse function now ignores creating a SDT, Christian Johansson, 2021/10/29