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

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

[elpa] externals/phps-mode a9d0e941df 066/212: Started on SDT for static


From: Christian Johansson
Subject: [elpa] externals/phps-mode a9d0e941df 066/212: Started on SDT for static variables statement
Date: Wed, 26 Jan 2022 01:50:48 -0500 (EST)

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

    Started on SDT for static variables statement
---
 phps-mode-ast-bookkeeping.el | 21 +++++++++++++++
 phps-mode-parser-sdt.el      | 61 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 82 insertions(+)

diff --git a/phps-mode-ast-bookkeeping.el b/phps-mode-ast-bookkeeping.el
index f372160d7e..77f853866c 100644
--- a/phps-mode-ast-bookkeeping.el
+++ b/phps-mode-ast-bookkeeping.el
@@ -282,6 +282,27 @@
                defined-p
                bookkeeping)))
 
+           ((equal type 'static-variables-statement)
+            (when-let ((variables (reverse (plist-get item 'static-var-list))))
+              (dolist (variable variables)
+                (let ((ids
+                       
(phps-mode-ast-bookkeeping--generate-variable-scope-string
+                        scope
+                        (plist-get variable 'name)))
+                      (object
+                       (list
+                        (plist-get variable 'start)
+                        (plist-get variable 'end))))
+                  (dolist (id ids)
+                    (puthash
+                     id
+                     1
+                     bookkeeping))
+                  (puthash
+                   object
+                   1
+                   bookkeeping)))))
+
            ((equal type 'function)
             (let ((name (plist-get item 'name))
                   (sub-scope scope))
diff --git a/phps-mode-parser-sdt.el b/phps-mode-parser-sdt.el
index bb651cf501..1919616bb2 100644
--- a/phps-mode-parser-sdt.el
+++ b/phps-mode-parser-sdt.el
@@ -181,6 +181,17 @@
      ast-object))
  phps-mode-parser--table-translations)
 
+;; statement -> (T_STATIC static_var_list ";")
+(puthash
+ 151
+ (lambda(args _terminals)
+   `(
+     ast-type
+     static-variables-statement
+     static-var-list
+     ,(nth 1 args)))
+ phps-mode-parser--table-translations)
+
 ;; statement -> (T_ECHO echo_expr_list ";")
 (puthash
  152
@@ -489,6 +500,56 @@
    (nth 1 args))
  phps-mode-parser--table-translations)
 
+;; static_var_list -> (static_var_list "," static_var)
+(puthash
+ 272
+ (lambda(args _terminals)
+   (append (nth 0 args) (list (nth 2 args))))
+ phps-mode-parser--table-translations)
+
+;; static_var_list -> (static_var)
+(puthash
+ 273
+ (lambda(args _terminals)
+   (list args))
+ phps-mode-parser--table-translations)
+
+;; static_var -> (T_VARIABLE)
+(puthash
+ 274
+ (lambda(args terminals)
+   `(
+     ast-type
+     variable
+     name
+     ,(nth 0 args)
+     index
+     ,(car (cdr (nth 0 terminals)))
+     start
+     ,(car (cdr (nth 0 terminals)))
+     end
+     ,(cdr (cdr (nth 0 terminals)))))
+ phps-mode-parser--table-translations)
+
+;; static_var -> (T_VARIABLE "=" expr)
+(puthash
+ 275
+ (lambda(args terminals)
+   `(
+     ast-type
+     variable
+     name
+     ,(nth 0 args)
+     expr
+     ,(nth 2 args)
+     index
+     ,(car (cdr (nth 0 terminals)))
+     start
+     ,(car (cdr (nth 0 terminals)))
+     end
+     ,(cdr (cdr (nth 0 terminals)))))
+ phps-mode-parser--table-translations)
+
 ;; class_statement_list -> (class_statement_list class_statement)
 (puthash
  276



reply via email to

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