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

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

[elpa] externals/phps-mode b9f74656ad 02/17: Added ONUM regex


From: Christian Johansson
Subject: [elpa] externals/phps-mode b9f74656ad 02/17: Added ONUM regex
Date: Tue, 26 Jul 2022 08:44:18 -0400 (EDT)

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

    Added ONUM regex
---
 phps-mode-lexer.el | 35 +++++++++++++++++++++++++++--------
 1 file changed, 27 insertions(+), 8 deletions(-)

diff --git a/phps-mode-lexer.el b/phps-mode-lexer.el
index 679ef90256..a53596ed83 100644
--- a/phps-mode-lexer.el
+++ b/phps-mode-lexer.el
@@ -52,14 +52,6 @@
   2147483648
   "Limit for 32-bit integer.")
 
-(defconst phps-mode-lexer--bnum
-  "0b[01]+"
-  "Boolean number.")
-
-(defconst phps-mode-lexer--hnum
-  "0x[0-9a-fA-F]+"
-  "Hexadecimal number.")
-
 (defconst phps-mode-lexer--lnum
   "[0-9]+"
   "Long number.")
@@ -75,6 +67,20 @@
           phps-mode-lexer--lnum)
   "Exponent double number.")
 
+;; TODO Fix this
+(defconst phps-mode-lexer--hnum
+  "0x[0-9a-fA-F]+"
+  "Hexadecimal number.")
+
+;; TODO Fix this
+(defconst phps-mode-lexer--bnum
+  "0b[01]+"
+  "Boolean number.")
+
+(defconst phps-mode-lexer--onum
+  "0o[0-7]+\\(_[0-7]+\\)*"
+  "Octal number.")
+
 (defconst phps-mode-lexer--label
   "[A-Za-z_[:nonascii:]][0-9A-Za-z_[:nonascii:]]*"
   "Labels are used for names.")
@@ -1250,6 +1256,19 @@
          (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)
+                 8)))
+     (if (> data phps-mode-lexer--long-limit)
+         (phps-mode-lexer--return-token 'T_DNUMBER)
+       (phps-mode-lexer--return-token 'T_LNUMBER))))
+
   (phps-mode-lexer--match-macro
    ST_IN_SCRIPTING
    (looking-at phps-mode-lexer--lnum)



reply via email to

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