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

    Work on bookkeeping global variables
---
 phps-mode-parser-sdt.el | 68 ++++++++++++++++++++-----------------------------
 1 file changed, 28 insertions(+), 40 deletions(-)

diff --git a/phps-mode-parser-sdt.el b/phps-mode-parser-sdt.el
index c79fdef75a..6fe350a325 100644
--- a/phps-mode-parser-sdt.el
+++ b/phps-mode-parser-sdt.el
@@ -752,11 +752,11 @@
               (phps-mode-parser-sdt--get-symbol-uri
                symbol-name
                symbol-scope)))
-        ;; (message
-        ;;  "assign symbol uri: %S from %S + %S"
-        ;;  symbol-uri
-        ;;  symbol-name
-        ;;  symbol-scope)
+        (message
+         "assign symbol uri: %S from %S + %S"
+         symbol-uri
+         symbol-name
+         symbol-scope)
         (if (gethash symbol-uri phps-mode-parser-sdt-bookkeeping)
             (puthash
              symbol-uri
@@ -788,44 +788,37 @@
              (symbol-uri
               (phps-mode-parser-sdt--get-symbol-uri
                symbol-name
-               symbol-scope)))
-        ;; (message
-        ;;  "reference symbol uri: %S from %S + %S"
-        ;;  symbol-uri
-        ;;  symbol-name
-        ;;  symbol-scope)
+               symbol-scope))
+             (symbol-hit 0))
         (cond
 
          ;; Super-global variable
          ((gethash
            symbol-name
            phps-mode-parser-sdt--bookkeeping--superglobal-variable-p)
-          (puthash
-           (list
-            symbol-start
-            symbol-end)
-           1
-           phps-mode-parser-sdt-bookkeeping))
+          (setq symbol-hit 1))
 
          ;; Declared variable
          ((gethash
            symbol-uri
            phps-mode-parser-sdt-bookkeeping)
-          (puthash
-           (list
-            symbol-start
-            symbol-end)
-           1
-           phps-mode-parser-sdt-bookkeeping))
-
-         ;; Undeclared variable
-         (t
-          (puthash
-           (list
-            symbol-start
-            symbol-end)
-           0
-           phps-mode-parser-sdt-bookkeeping)))))
+          (setq symbol-hit 1)))
+
+        (puthash
+         (list
+          symbol-start
+          symbol-end)
+         symbol-hit
+         phps-mode-parser-sdt-bookkeeping)
+
+        (message
+         "reference symbol uri: %S from %S + %S, start: %S, end: %S, hit?: %S"
+         symbol-uri
+         symbol-name
+         symbol-scope
+         symbol-start
+         symbol-end
+         symbol-hit)))
     (setq
      phps-mode-parser-sdt--bookkeeping-symbol-stack
      nil)))
@@ -1699,6 +1692,8 @@
 (puthash
  155
  (lambda(args _terminals)
+   (dolist (stack-item phps-mode-parser-sdt--bookkeeping-symbol-stack)
+     (push '(global) (nth 1 stack-item)))
    (let ((global-var-list (nth 1 args)))
      (dolist (global-var global-var-list)
        (let ((global-var-type (plist-get global-var 'ast-type)))
@@ -1713,14 +1708,7 @@
                phps-mode-parser-sdt--bookkeeping-namespace
                variable-start
                variable-end)
-              phps-mode-parser-sdt--bookkeeping-symbol-assignment-stack)
-             (push
-              (list
-               variable-name
-               '((global))
-               variable-start
-               variable-end)
-              phps-mode-parser-sdt--bookkeeping-symbol-stack)))))))
+              phps-mode-parser-sdt--bookkeeping-symbol-assignment-stack)))))))
    `(
      ast-type
      global-statement

Reply via email to