branch: externals/phps-mode
commit f8465bd50be6b11084174d3cb48c60941dde448f
Author: Christian Johansson <[email protected]>
Commit: Christian Johansson <[email protected]>
Fix for POW and POW assignment in lexer
---
phps-mode-lexer-generator.el | 4 ++--
phps-mode-lexer.el | 4 ++--
test/phps-mode-test-lexer.el | 9 +++++++++
3 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/phps-mode-lexer-generator.el b/phps-mode-lexer-generator.el
index d7eff3494a..fdba516223 100644
--- a/phps-mode-lexer-generator.el
+++ b/phps-mode-lexer-generator.el
@@ -852,13 +852,13 @@
(phps-mode-lexer-generator--add-rule
phps-mode-lexer-generator--table
'ST_IN_SCRIPTING
- (lambda() (looking-at "\\*\\\\\\*"))
+ (lambda() (looking-at "\\*\\*"))
(lambda() (phps-mode-lexer--return-token 'T_POW)))
(phps-mode-lexer-generator--add-rule
phps-mode-lexer-generator--table
'ST_IN_SCRIPTING
- (lambda() (looking-at "\\*\\\\\\*="))
+ (lambda() (looking-at "\\*\\*="))
(lambda() (phps-mode-lexer--return-token 'T_POW_EQUAL)))
(phps-mode-lexer-generator--add-rule
diff --git a/phps-mode-lexer.el b/phps-mode-lexer.el
index e41ba52829..c11e9f8ce9 100644
--- a/phps-mode-lexer.el
+++ b/phps-mode-lexer.el
@@ -9,8 +9,8 @@
;; 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 8.2 Lexer at
-;;
https://raw.githubusercontent.com/php/php-src/PHP-8.2/Zend/zend_language_scanner.l
+;; * Defines the lexer for this grammar based on the Zend PHP 8.3 Lexer at
+;;
https://raw.githubusercontent.com/php/php-src/PHP-8.3/Zend/zend_language_scanner.l
;; which is using re2c.
;;; Code:
diff --git a/test/phps-mode-test-lexer.el b/test/phps-mode-test-lexer.el
index 79a2b920cf..ff2c0d176f 100644
--- a/test/phps-mode-test-lexer.el
+++ b/test/phps-mode-test-lexer.el
@@ -332,6 +332,15 @@
'((T_OPEN_TAG 1 . 7) (T_VARIABLE 8 . 10) ("=" 11 . 12) (T_DNUMBER 13 .
16) (";" 16 . 17) (T_VARIABLE 19 . 21) ("=" 22 . 23) (T_DNUMBER 24 . 26) (";"
26 . 27))
)))
+ (phps-mode-test--with-buffer
+ "<?php\n\n$a = 3 ** 2;\n$a **= 2;"
+ "Exponentiation and assignment exponentiation"
+ (should
+ (equal
+ phps-mode-lex-analyzer--tokens
+ '((T_OPEN_TAG 1 . 7) (T_VARIABLE 8 . 10) ("=" 11 . 12) (T_LNUMBER 13 .
14) (T_POW 15 . 17) (T_LNUMBER 18 . 19) (";" 19 . 20) (T_VARIABLE 21 . 23)
(T_POW_EQUAL 24 . 27) (T_LNUMBER 28 . 29) (";" 29 . 30))
+ )))
+
)
(defun phps-mode-test-lexer--complex-tokens ()