branch: externals/phps-mode
commit f8465bd50be6b11084174d3cb48c60941dde448f
Author: Christian Johansson <christ...@cvj.se>
Commit: Christian Johansson <christ...@cvj.se>

    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 ()

Reply via email to