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

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

[elpa] externals/phps-mode d037aa09bc 023/212: Added bookkeeping via par


From: Christian Johansson
Subject: [elpa] externals/phps-mode d037aa09bc 023/212: Added bookkeeping via parser SDT foreach ($x as $y) {}
Date: Wed, 26 Jan 2022 01:50:17 -0500 (EST)

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

    Added bookkeeping via parser SDT foreach ($x as $y) {}
---
 phps-mode-ast.el | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/phps-mode-ast.el b/phps-mode-ast.el
index 1774c69227..883c4d18b6 100644
--- a/phps-mode-ast.el
+++ b/phps-mode-ast.el
@@ -161,6 +161,23 @@
    (car args))
  phps-mode-parser--table-translations)
 
+;; statement -> (T_FOREACH "(" expr T_AS foreach_variable ")" 
foreach_statement)
+(puthash
+ 156
+ (lambda(args _terminals)
+   (let ((ast-object
+          (list
+           'ast-type
+           'foreach
+           'expression
+           (nth 2 args)
+           'as
+           (nth 4 args)
+           'children
+           (nth 6 args))))
+     ast-object))
+ phps-mode-parser--table-translations)
+
 ;; function_declaration_statement -> (function returns_ref T_STRING 
backup_doc_comment "(" parameter_list ")" return_type backup_fn_flags "{" 
inner_statement_list "}" backup_fn_flags)
 (puthash
  174
@@ -766,6 +783,33 @@
                     condition)
                    bookkeeping-stack))))
 
+             ((equal type 'foreach)
+              (let ((id (format
+                         "%s id %s"
+                         variable-namespace
+                         (plist-get (plist-get item 'as) 'name)))
+                    (object (list
+                             (plist-get (plist-get item 'as) 'start)
+                             (plist-get (plist-get item 'as) 'end))))
+                (puthash
+                 id
+                 1
+                 bookkeeping)
+                (puthash
+                 object
+                 1
+                 bookkeeping))
+              (let ((children (reverse (plist-get item 'children))))
+                (dolist (child children)
+                  (push
+                   (list
+                    (list
+                     class
+                     function
+                     namespace)
+                    child)
+                   bookkeeping-stack))))
+
              ((equal type 'assign-variable)
               (let ((id (format
                          "%s id %s"



reply via email to

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