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

    Finished reviewing lexer for PHP 8.4
---
 phps-mode-lexer-generator.el        | 23 +++++++++++++++++------
 phps-mode-syntax-color-generator.el |  1 +
 2 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/phps-mode-lexer-generator.el b/phps-mode-lexer-generator.el
index f654f15c6e..559ac6f871 100644
--- a/phps-mode-lexer-generator.el
+++ b/phps-mode-lexer-generator.el
@@ -967,8 +967,6 @@
    (lambda() (looking-at ">>"))
    (lambda() (phps-mode-lexer--return-token 'T_SR)))
 
-  ;; TODO WAS HERE
-
   (phps-mode-lexer-generator--add-rule
    phps-mode-lexer-generator--table
    'ST_IN_SCRIPTING
@@ -1174,6 +1172,12 @@
    (lambda() (looking-at "__FUNCTION__"))
    (lambda() (phps-mode-lexer--return-token-with-indent 'T_FUNC_C)))
 
+  (phps-mode-lexer-generator--add-rule
+   phps-mode-lexer-generator--table
+   'ST_IN_SCRIPTING
+   (lambda() (looking-at "__PROPERTY__"))
+   (lambda() (phps-mode-lexer--return-token-with-indent 'T_PROPERTY_C)))
+
   (phps-mode-lexer-generator--add-rule
    phps-mode-lexer-generator--table
    'ST_IN_SCRIPTING
@@ -1383,7 +1387,7 @@
    (lambda()
      (looking-at
       (concat "\\(" phps-mode-lexer--tokens
-              "\\|[{}\"`]\\)")))
+              "\\|[(){}\"`]\\)")))
    (lambda()
      (let* ((start (match-beginning 0))
             (end (match-end 0))
@@ -1513,6 +1517,15 @@
                 start)
                start))))))))
 
+  (phps-mode-lexer-generator--add-rule
+   phps-mode-lexer-generator--table
+   'ST_LOOKING_FOR_PROPERTY
+   (lambda() (looking-at phps-mode-lexer--any-char))
+   (lambda()
+     (phps-mode-lexer--yyless 0)
+     (phps-mode-lexer--yy-pop-state)
+     (phps-mode-lexer--restart)))
+  
   (phps-mode-lexer-generator--add-rule
    phps-mode-lexer-generator--table
    'ST_IN_SCRIPTING
@@ -1702,9 +1715,7 @@
   (phps-mode-lexer-generator--add-rule
    phps-mode-lexer-generator--table
    'ST_END_HEREDOC
-   (lambda()
-     (looking-at
-      (concat phps-mode-lexer--any-char)))
+   (lambda() (looking-at phps-mode-lexer--any-char))
    (lambda()
      (let* ((start (match-beginning 0))
             (end (+ start
diff --git a/phps-mode-syntax-color-generator.el 
b/phps-mode-syntax-color-generator.el
index 263cc7e8fa..df1209ff5e 100644
--- a/phps-mode-syntax-color-generator.el
+++ b/phps-mode-syntax-color-generator.el
@@ -129,6 +129,7 @@
                   (T_POW_EQUAL font-lock-constant-face table)
                   (T_PRINT font-lock-keyword-face table)
                   (T_PRIVATE font-lock-keyword-face table)
+                  (T_PROPERTY_C font-lock-constant-face table)
                   (T_PROTECTED font-lock-keyword-face table)
                   (T_PUBLIC font-lock-keyword-face table)
                   (T_READONLY font-lock-keyword-face table)

Reply via email to