emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/phps-mode d766293a8d 04/17: Added support for underscor


From: Christian Johansson
Subject: [elpa] externals/phps-mode d766293a8d 04/17: Added support for underscores
Date: Tue, 26 Jul 2022 08:44:19 -0400 (EDT)

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

    Added support for underscores
---
 phps-mode-lexer.el | 32 +++++++++++++++++++++++++-------
 1 file changed, 25 insertions(+), 7 deletions(-)

diff --git a/phps-mode-lexer.el b/phps-mode-lexer.el
index b923c6f96f..4a5dbbc286 100644
--- a/phps-mode-lexer.el
+++ b/phps-mode-lexer.el
@@ -1251,21 +1251,27 @@
    (looking-at phps-mode-lexer--bnum)
    (let* ((start (match-beginning 0))
           (end (match-end 0))
-          (data (buffer-substring-no-properties (+ start 2) end))
+          (data
+           (replace-regexp-in-string
+            "_"
+            ""
+            (buffer-substring-no-properties (+ start 2) end)))
           (long-number (string-to-number data 2)))
      ;; (message "Binary number %s from %s" long-number data)
      (if (> long-number phps-mode-lexer--long-limit)
          (phps-mode-lexer--return-token 'T_DNUMBER)
        (phps-mode-lexer--return-token 'T_LNUMBER))))
 
-  ;; TODO ONUM here
   (phps-mode-lexer--match-macro
    ST_IN_SCRIPTING
    (looking-at phps-mode-lexer--onum)
    (let* ((start (match-beginning 0))
           (end (match-end 0))
           (data (string-to-number
-                 (buffer-substring-no-properties start end)
+                 (replace-regexp-in-string
+                  "_"
+                  ""
+                  (buffer-substring-no-properties start end))
                  8)))
      (if (> data phps-mode-lexer--long-limit)
          (phps-mode-lexer--return-token 'T_DNUMBER)
@@ -1276,7 +1282,11 @@
    (looking-at phps-mode-lexer--lnum)
    (let* ((start (match-beginning 0))
           (end (match-end 0))
-          (data (string-to-number (buffer-substring-no-properties start end))))
+          (data (string-to-number
+                 (replace-regexp-in-string
+                  "_"
+                  ""
+                  (buffer-substring-no-properties start end)))))
      ;; (message "Long number: %d" data)
      (if (> data phps-mode-lexer--long-limit)
          (phps-mode-lexer--return-token 'T_DNUMBER)
@@ -1287,7 +1297,11 @@
    (looking-at phps-mode-lexer--hnum)
    (let* ((start (match-beginning 0))
           (end (match-end 0))
-          (data (buffer-substring-no-properties (+ start 2) end))
+          (data
+           (replace-regexp-in-string
+            "_"
+            ""
+            (buffer-substring-no-properties (+ start 2) end)))
           (long-number (string-to-number data 16)))
      ;; (message "Hexadecimal number %s from %s" long-number data)
      (if (> long-number phps-mode-lexer--long-limit)
@@ -1305,7 +1319,8 @@
     (concat "\\("
             phps-mode-lexer--lnum "\\|"
             phps-mode-lexer--hnum "\\|"
-            phps-mode-lexer--bnum "\\)"))
+            phps-mode-lexer--bnum "\\|"
+            phps-mode-lexer--onum "\\)"))
    (phps-mode-lexer--return-token 'T_NUM_STRING))
 
   (phps-mode-lexer--match-macro
@@ -1396,13 +1411,14 @@
    (let ((start (match-beginning 0))
          (end (match-end 0)))
 
-     ;; Allow <?php followed by end of file.
      (cond
 
+      ;; Allow <?php followed by end of file.
       ((equal end (point-max))
        (phps-mode-lexer--begin 'ST_IN_SCRIPTING)
        (phps-mode-lexer--return-or-skip-token 'T_OPEN_TAG))
 
+      ;; Degenerate case: <?phpX is interpreted as <? phpX with short tags
       ((phps-mode-lexer--CG 'short-tags)
        (phps-mode-lexer--yyless 2)
        (setq end (- end 2))
@@ -1449,6 +1465,8 @@
     (match-beginning 0)
     (- (match-end 0) 3)))
 
+  ;; TODO Was here
+
   (phps-mode-lexer--match-macro
    (ST_DOUBLE_QUOTES ST_HEREDOC ST_BACKQUOTE)
    (looking-at



reply via email to

[Prev in Thread] Current Thread [Next in Thread]