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

    Fixed lexer tokens for heredoc and nowdoc for parser
---
 phps-mode-lexer.el           | 36 +++++++++++++++++-------------------
 test/phps-mode-test-lexer.el | 34 +++++++++++++++++-----------------
 2 files changed, 34 insertions(+), 36 deletions(-)

diff --git a/phps-mode-lexer.el b/phps-mode-lexer.el
index 5b4a987d3e..814baab96b 100644
--- a/phps-mode-lexer.el
+++ b/phps-mode-lexer.el
@@ -124,10 +124,10 @@
 (defvar phps-mode-lexer--lambdas-by-state #s(hash-table size 65 test equal 
rehash-size 1.5 rehash-threshold 0.8125 data (ST_IN_SCRIPTING (((lambda nil 
(looking-at "exit")) (lambda nil (phps-mode-lexer--return-token-with-indent 
'T_EXIT))) ((lambda nil (looking-at "die")) (lambda nil 
(phps-mode-lexer--return-token-with-indent 'T_EXIT))) ((lambda nil (looking-at 
"fn")) (lambda nil (phps-mode-lexer--return-token-with-indent 'T_FN))) ((lambda 
nil (looking-at "function")) (lambda nil (phps-mod [...]
 
        ]*("))) (lambda nil (phps-mode-lexer--yyless (length "readonly")) 
(phps-mode-lexer--return-token-with-str 'T_STRING 0))) ((lambda nil (looking-at 
"unset")) (lambda nil (phps-mode-lexer--return-token-with-indent 'T_UNSET))) 
((lambda nil (looking-at "=>")) (lambda nil (phps-mode-lexer--return-token 
'T_DOUBLE_ARROW))) ((lambda nil (looking-at "list")) (lambda nil 
(phps-mode-lexer--return-token-with-indent 'T_LIST))) ((lambda nil (looking-at 
"array")) (lambda nil (phps-mode-lexer--return-tok [...]
 ]*" "\\(\\$\\|\\.\\.\\.\\)"))) (lambda nil (phps-mode-lexer--yyless 1) 
(phps-mode-lexer--return-token 'T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG 
(match-beginning 0) (- (match-end 0) 1)))) ((lambda nil (looking-at "&")) 
(lambda nil (phps-mode-lexer--return-token 
'T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG))) ((lambda nil (looking-at (concat 
"\\(" "]" "\\|" ")" "\\)"))) (lambda nil 
(phps-mode-lexer--return-exit-nesting-token))) ((lambda nil (looking-at (concat 
"\\(" "\\[" "\\|" "(" "\\)"))) (la [...]
-[       ]*" phps-mode-lexer--heredoc-label "\\|\\$" phps-mode-lexer--label 
"\\|{\\$" phps-mode-lexer--label "\\|\\${" phps-mode-lexer--label "\\)") nil 
t))) (if string-start (let* ((start (match-beginning 0)) (end (match-end 0)) 
(data (buffer-substring-no-properties start end))) (cond ((string-match-p 
(concat "
-[       ]*" phps-mode-lexer--heredoc-label) data) (search-forward-regexp "[    
 ]*") (phps-mode-lexer--return-token-with-val 'T_ENCAPSED_AND_WHITESPACE 
old-end start) (phps-mode-lexer--begin 'ST_END_HEREDOC)) (t 
(phps-mode-lexer--return-token-with-val 'T_ENCAPSED_AND_WHITESPACE old-end 
start)))) (progn (signal 'phps-lexer-error (list (format "Found no ending of 
heredoc starting at %d" old-start) old-start))))))))) ST_LOOKING_FOR_VARNAME 
(((lambda nil (looking-at (concat phps-mode-lexer--label "[ [...]
-
        '#]"))) (lambda nil (phps-mode-lexer--yyless 0) 
(phps-mode-lexer--yy-pop-state) (phps-mode-lexer--return-token-with-val 
'T_ENCAPSED_AND_WHITESPACE))) ((lambda nil (looking-at phps-mode-lexer--label)) 
(lambda nil (phps-mode-lexer--return-token-with-str 'T_STRING 0))) ((lambda nil 
(looking-at phps-mode-lexer--any-char)) (lambda nil (signal 'phps-lexer-error 
(list (format "Unexpected character at %d" (match-beginning 0)) 
(match-beginning 0)))))) quote (((lambda nil (looking-at (concat "#!.* [...]
-[       ]*" phps-mode-lexer--heredoc-label) nil t))) (if string-start (let* 
((start (match-beginning 0)) (end (match-end 0)) (_data 
(buffer-substring-no-properties start end))) 
(phps-mode-lexer--return-token-with-val 'T_ENCAPSED_AND_WHITESPACE 
phps-mode-lexer--generated-new-tokens-index start) (search-forward-regexp "[    
    ]*") (phps-mode-lexer--begin 'ST_END_HEREDOC)) (progn (signal 
'phps-lexer-error (list (format "Found no ending of nowdoc starting at %d" 
start) start)))))))))))
+[       ]*\\(" phps-mode-lexer--heredoc-label "\\)\\|\\$" 
phps-mode-lexer--label "\\|{\\$" phps-mode-lexer--label "\\|\\${" 
phps-mode-lexer--label "\\)") nil t))) (if string-start (let* ((start 
(match-beginning 0)) (end (match-end 0)) (data (match-string 0))) (cond 
((string-match-p (concat "
+[       ]*" phps-mode-lexer--heredoc-label) data) (setq start (match-beginning 
2)) (setq end (match-beginning 2)) (phps-mode-lexer--return-token-with-val 
'T_ENCAPSED_AND_WHITESPACE old-end start) (phps-mode-lexer--begin 
'ST_END_HEREDOC)) (t (phps-mode-lexer--return-token-with-val 
'T_ENCAPSED_AND_WHITESPACE old-end start)))) (progn (signal 'phps-lexer-error 
(list (format "Found no ending of heredoc starting at %d" old-start) 
old-start))))))))) ST_LOOKING_FOR_VARNAME (((lambda nil (looking-at ( [...]
+
        '#]"))) (lambda nil (phps-mode-lexer--yyless 0) 
(phps-mode-lexer--yy-pop-state) (phps-mode-lexer--return-token-with-val 
'T_ENCAPSED_AND_WHITESPACE))) ((lambda nil (looking-at phps-mode-lexer--label)) 
(lambda nil (phps-mode-lexer--return-token-with-str 'T_STRING 0))) ((lambda nil 
(looking-at phps-mode-lexer--any-char)) (lambda nil (signal 'phps-lexer-error 
(list (format "Unexpected character at %d" (match-beginning 0)) 
(match-beginning 0)))))) quote (((lambda nil (looking-at (concat "#!.* [...]
+[       ]*\\(" phps-mode-lexer--heredoc-label "\\)") nil t))) (if string-start 
(let* ((start (match-beginning 1)) (end (match-end 1)) (_data 
(buffer-substring-no-properties start end))) 
(phps-mode-lexer--return-token-with-val 'T_ENCAPSED_AND_WHITESPACE 
phps-mode-lexer--generated-new-tokens-index start) (phps-mode-lexer--begin 
'ST_END_HEREDOC)) (progn (signal 'phps-lexer-error (list (format "Found no 
ending of nowdoc starting at %d" start) start)))))))))))
   "Hash-table of lex-analyzer rules organized by state.")
 
 (defvar-local phps-mode-lexer--generated-tokens nil
@@ -1793,8 +1793,7 @@
    (let* ((start (match-beginning 0))
           (end (+ start
                   (length
-                   phps-mode-lexer--heredoc-label)
-                  1))
+                   phps-mode-lexer--heredoc-label)))
           (_data (buffer-substring-no-properties start end)))
      ;; (message "Found ending heredoc at %s, %s of %s" _data (thing-at-point 
'line) phps-mode-lexer--heredoc-label)
      (pop phps-mode-lexer--heredoc-label-stack)
@@ -1887,9 +1886,9 @@
      (let ((string-start
             (search-forward-regexp
              (concat
-              "\\(\n[\t ]*"
+              "\\(\n[\t ]*\\("
               phps-mode-lexer--heredoc-label
-              "\\|\\$"
+              "\\)\\|\\$"
               phps-mode-lexer--label
               "\\|{\\$"
               phps-mode-lexer--label
@@ -1902,7 +1901,7 @@
        (if string-start
            (let* ((start (match-beginning 0))
                   (end (match-end 0))
-                  (data (buffer-substring-no-properties start end)))
+                  (data (match-string 0)))
 
              (cond
 
@@ -1913,14 +1912,14 @@
                  )
                 data)
                ;; Skip possible white-spaces before label
-               (search-forward-regexp "[\t ]*")
+               (setq start (match-beginning 2))
+               (setq end (match-beginning 2))
                ;; (message "Found heredoc end at %s-%s" start end)
                (phps-mode-lexer--return-token-with-val
                 'T_ENCAPSED_AND_WHITESPACE
                 old-end
                 start)
-               (phps-mode-lexer--begin
-                'ST_END_HEREDOC))
+               (phps-mode-lexer--begin 'ST_END_HEREDOC))
 
               (t
                ;; (message "Found variable at '%s'.. Skipping forward to %s" 
data start)
@@ -1944,13 +1943,14 @@
      (let ((string-start
             (search-forward-regexp
              (concat
-              "\n[\t ]*"
-              phps-mode-lexer--heredoc-label)
+              "\n[\t ]*\\("
+              phps-mode-lexer--heredoc-label
+              "\\)")
              nil
              t)))
        (if string-start
-           (let* ((start (match-beginning 0))
-                  (end (match-end 0))
+           (let* ((start (match-beginning 1))
+                  (end (match-end 1))
                   (_data (buffer-substring-no-properties start end)))
              ;; (message "Found something ending at %s" _data)
              ;; (message "Found nowdoc end at %s-%s" start end)
@@ -1958,9 +1958,7 @@
               'T_ENCAPSED_AND_WHITESPACE
               phps-mode-lexer--generated-new-tokens-index
               start)
-             (search-forward-regexp "[\t ]*")
-             (phps-mode-lexer--begin
-              'ST_END_HEREDOC))
+             (phps-mode-lexer--begin 'ST_END_HEREDOC))
          (progn
            (signal
             'phps-lexer-error
diff --git a/test/phps-mode-test-lexer.el b/test/phps-mode-test-lexer.el
index 35d734ed3e..7fd8282c91 100644
--- a/test/phps-mode-test-lexer.el
+++ b/test/phps-mode-test-lexer.el
@@ -386,7 +386,7 @@
    (should
     (equal
      phps-mode-lex-analyzer--tokens
-     '((T_OPEN_TAG 1 . 7) (T_COMMENT 7 . 24) (T_ECHO 25 . 29) (T_START_HEREDOC 
30 . 37) (T_ENCAPSED_AND_WHITESPACE 37 . 59) (T_END_HEREDOC 59 . 63) (";" 63 . 
64) (T_COMMENT 66 . 92) (T_ECHO 93 . 97) (T_START_HEREDOC 98 . 105) 
(T_ENCAPSED_AND_WHITESPACE 105 . 125) (T_END_HEREDOC 125 . 129) (T_STRING 130 . 
133) (";" 133 . 134)))))
+     '((T_OPEN_TAG 1 . 7) (T_COMMENT 7 . 24) (T_ECHO 25 . 29) (T_START_HEREDOC 
30 . 37) (T_ENCAPSED_AND_WHITESPACE 37 . 60) (T_END_HEREDOC 60 . 63) (";" 63 . 
64) (T_COMMENT 66 . 92) (T_ECHO 93 . 97) (T_START_HEREDOC 98 . 105) 
(T_ENCAPSED_AND_WHITESPACE 105 . 130) (T_END_HEREDOC 130 . 133) (";" 133 . 
134)))))
 
   (phps-mode-test--with-buffer
    "<?php\necho <<<END\n  a\n b\nc\n   END;\n"
@@ -394,7 +394,7 @@
    (should
     (equal
      phps-mode-lex-analyzer--tokens
-     '((T_OPEN_TAG 1 . 7) (T_ECHO 7 . 11) (T_START_HEREDOC 12 . 19) 
(T_ENCAPSED_AND_WHITESPACE 19 . 27) (T_END_HEREDOC 27 . 31) (T_STRING 31 . 34) 
(";" 34 . 35)))))
+     '((T_OPEN_TAG 1 . 7) (T_ECHO 7 . 11) (T_START_HEREDOC 12 . 19) 
(T_ENCAPSED_AND_WHITESPACE 19 . 31) (T_END_HEREDOC 31 . 34) (";" 34 . 35)))))
 
   (phps-mode-test--with-buffer
    "<?php\n// All the following code do not work.\n\n// different indentation 
for body (spaces) ending marker (tabs)\n{\n    echo <<<END\n     a\n        
END;\n\n\n// mixing spaces and tabs in body\n{\n    echo <<<END\n        a\n    
 END;\n\n\n// mixing spaces and tabs in ending marker\n{\n    echo <<<END\n     
     a\n         END;\n\n"
@@ -402,7 +402,7 @@
    (should
     (equal
      phps-mode-lex-analyzer--tokens
-     '((T_OPEN_TAG 1 . 7) (T_COMMENT 7 . 45) (T_COMMENT 47 . 110) ("{" 111 . 
112) (T_ECHO 117 . 121) (T_START_HEREDOC 122 . 129) (T_ENCAPSED_AND_WHITESPACE 
129 . 135) (T_END_HEREDOC 135 . 139) (T_STRING 144 . 147) (";" 147 . 148) 
(T_COMMENT 151 . 184) ("{" 185 . 186) (T_ECHO 191 . 195) (T_START_HEREDOC 196 . 
203) (T_ENCAPSED_AND_WHITESPACE 203 . 212) (T_END_HEREDOC 212 . 216) (T_STRING 
218 . 221) (";" 221 . 222) (T_COMMENT 225 . 267) ("{" 268 . 269) (T_ECHO 274 . 
278) (T_START_HEREDOC 27 [...]
+     '((T_OPEN_TAG 1 . 7) (T_COMMENT 7 . 45) (T_COMMENT 47 . 110) ("{" 111 . 
112) (T_ECHO 117 . 121) (T_START_HEREDOC 122 . 129) (T_ENCAPSED_AND_WHITESPACE 
129 . 144) (T_END_HEREDOC 144 . 147) (";" 147 . 148) (T_COMMENT 151 . 184) ("{" 
185 . 186) (T_ECHO 191 . 195) (T_START_HEREDOC 196 . 203) 
(T_ENCAPSED_AND_WHITESPACE 203 . 218) (T_END_HEREDOC 218 . 221) (";" 221 . 222) 
(T_COMMENT 225 . 267) ("{" 268 . 269) (T_ECHO 274 . 278) (T_START_HEREDOC 279 . 
286) (T_ENCAPSED_AND_WHITESPACE 286 .  [...]
 
   (phps-mode-test--with-buffer
    "<?php\n$values = [<<<END\na\n  b\n    c\nEND, 'd e 
f'];\nvar_dump($values);\n"
@@ -410,7 +410,7 @@
    (should
     (equal
      phps-mode-lex-analyzer--tokens
-     '((T_OPEN_TAG 1 . 7) (T_VARIABLE 7 . 14) ("=" 15 . 16) ("[" 17 . 18) 
(T_START_HEREDOC 18 . 25) (T_ENCAPSED_AND_WHITESPACE 25 . 36) (T_END_HEREDOC 36 
. 40) ("," 40 . 41) (T_CONSTANT_ENCAPSED_STRING 42 . 49) ("]" 49 . 50) (";" 50 
. 51) (T_STRING 52 . 60) ("(" 60 . 61) (T_VARIABLE 61 . 68) (")" 68 . 69) (";" 
69 . 70)))))
+     '((T_OPEN_TAG 1 . 7) (T_VARIABLE 7 . 14) ("=" 15 . 16) ("[" 17 . 18) 
(T_START_HEREDOC 18 . 25) (T_ENCAPSED_AND_WHITESPACE 25 . 37) (T_END_HEREDOC 37 
. 40) ("," 40 . 41) (T_CONSTANT_ENCAPSED_STRING 42 . 49) ("]" 49 . 50) (";" 50 
. 51) (T_STRING 52 . 60) ("(" 60 . 61) (T_VARIABLE 61 . 68) (")" 68 . 69) (";" 
69 . 70)))))
 
   (phps-mode-test--with-buffer
    "<?php\n$values = [<<<END\na\nb\nEND ING\nEND, 'd e f'];\n"
@@ -418,7 +418,7 @@
    (should
     (equal
      phps-mode-lex-analyzer--tokens
-     '((T_OPEN_TAG 1 . 7) (T_VARIABLE 7 . 14) ("=" 15 . 16) ("[" 17 . 18) 
(T_START_HEREDOC 18 . 25) (T_ENCAPSED_AND_WHITESPACE 25 . 28) (T_END_HEREDOC 28 
. 32) (T_STRING 33 . 36) (T_STRING 37 . 40) ("," 40 . 41) 
(T_CONSTANT_ENCAPSED_STRING 42 . 49) ("]" 49 . 50) (";" 50 . 51)))))
+     '((T_OPEN_TAG 1 . 7) (T_VARIABLE 7 . 14) ("=" 15 . 16) ("[" 17 . 18) 
(T_START_HEREDOC 18 . 25) (T_ENCAPSED_AND_WHITESPACE 25 . 29) (T_END_HEREDOC 29 
. 32) (T_STRING 33 . 36) (T_STRING 37 . 40) ("," 40 . 41) 
(T_CONSTANT_ENCAPSED_STRING 42 . 49) ("]" 49 . 50) (";" 50 . 51)))))
 
   (phps-mode-test--with-buffer
    "<?php\nclass foo {\n    public $bar = <<<EOT\nbar\n    EOT;\n}\n// 
Identifier must not be indented\n?>\n"
@@ -426,7 +426,7 @@
    (should
     (equal
      phps-mode-lex-analyzer--tokens
-     '((T_OPEN_TAG 1 . 7) (T_CLASS 7 . 12) (T_STRING 13 . 16) ("{" 17 . 18) 
(T_PUBLIC 23 . 29) (T_VARIABLE 30 . 34) ("=" 35 . 36) (T_START_HEREDOC 37 . 44) 
(T_ENCAPSED_AND_WHITESPACE 44 . 47) (T_END_HEREDOC 47 . 51) (T_STRING 52 . 55) 
(";" 55 . 56) ("}" 57 . 58) (T_COMMENT 59 . 93) (T_CLOSE_TAG 94 . 96) 
(T_INLINE_HTML 96 . 97)))))
+     '((T_OPEN_TAG 1 . 7) (T_CLASS 7 . 12) (T_STRING 13 . 16) ("{" 17 . 18) 
(T_PUBLIC 23 . 29) (T_VARIABLE 30 . 34) ("=" 35 . 36) (T_START_HEREDOC 37 . 44) 
(T_ENCAPSED_AND_WHITESPACE 44 . 52) (T_END_HEREDOC 52 . 55) (";" 55 . 56) ("}" 
57 . 58) (T_COMMENT 59 . 93) (T_CLOSE_TAG 94 . 96) (T_INLINE_HTML 96 . 97)))))
 
   (phps-mode-test--with-buffer
    "<?php\nclass foo {\n    public $bar = <<<EOT\nbar\nEOT;\n}\n?>\n"
@@ -434,7 +434,7 @@
    (should
     (equal
      phps-mode-lex-analyzer--tokens
-     '((T_OPEN_TAG 1 . 7) (T_CLASS 7 . 12) (T_STRING 13 . 16) ("{" 17 . 18) 
(T_PUBLIC 23 . 29) (T_VARIABLE 30 . 34) ("=" 35 . 36) (T_START_HEREDOC 37 . 44) 
(T_ENCAPSED_AND_WHITESPACE 44 . 47) (T_END_HEREDOC 47 . 51) (";" 51 . 52) ("}" 
53 . 54) (T_CLOSE_TAG 55 . 57) (T_INLINE_HTML 57 . 58)))))
+     '((T_OPEN_TAG 1 . 7) (T_CLASS 7 . 12) (T_STRING 13 . 16) ("{" 17 . 18) 
(T_PUBLIC 23 . 29) (T_VARIABLE 30 . 34) ("=" 35 . 36) (T_START_HEREDOC 37 . 44) 
(T_ENCAPSED_AND_WHITESPACE 44 . 48) (T_END_HEREDOC 48 . 51) (";" 51 . 52) ("}" 
53 . 54) (T_CLOSE_TAG 55 . 57) (T_INLINE_HTML 57 . 58)))))
 
   (phps-mode-test--with-buffer
    "<?php\n$str = <<<EOD\nExample of string\nspanning multiple lines\nusing 
heredoc syntax.\nEOD;\n\n/* More complex example, with variables. */\nclass 
foo\n{\n    var $foo;\n    var $bar;\n\n    function __construct()\n    {\n     
   $this->foo = 'Foo';\n        $this->bar = array('Bar1', 'Bar2', 'Bar3');\n   
 }\n}\n\n$foo = new foo();\n$name = 'MyName';\n\necho <<<EOT\nMy name is 
\"$name\". I am printing some $foo->foo.\nNow, I am printing some 
{$foo->bar[1]}.\nThis should print a capi [...]
@@ -442,7 +442,7 @@
    (should
     (equal
      phps-mode-lex-analyzer--tokens
-     '((T_OPEN_TAG 1 . 7) (T_VARIABLE 7 . 11) ("=" 12 . 13) (T_START_HEREDOC 
14 . 21) (T_ENCAPSED_AND_WHITESPACE 21 . 84) (T_END_HEREDOC 84 . 88) (";" 88 . 
89) (T_COMMENT 91 . 134) (T_CLASS 135 . 140) (T_STRING 141 . 144) ("{" 145 . 
146) (T_VAR 151 . 154) (T_VARIABLE 155 . 159) (";" 159 . 160) (T_VAR 165 . 168) 
(T_VARIABLE 169 . 173) (";" 173 . 174) (T_FUNCTION 180 . 188) (T_STRING 189 . 
200) ("(" 200 . 201) (")" 201 . 202) ("{" 207 . 208) (T_VARIABLE 217 . 222) 
(T_OBJECT_OPERATOR 222 .  [...]
+     '((T_OPEN_TAG 1 . 7) (T_VARIABLE 7 . 11) ("=" 12 . 13) (T_START_HEREDOC 
14 . 21) (T_ENCAPSED_AND_WHITESPACE 21 . 85) (T_END_HEREDOC 85 . 88) (";" 88 . 
89) (T_COMMENT 91 . 134) (T_CLASS 135 . 140) (T_STRING 141 . 144) ("{" 145 . 
146) (T_VAR 151 . 154) (T_VARIABLE 155 . 159) (";" 159 . 160) (T_VAR 165 . 168) 
(T_VARIABLE 169 . 173) (";" 173 . 174) (T_FUNCTION 180 . 188) (T_STRING 189 . 
200) ("(" 200 . 201) (")" 201 . 202) ("{" 207 . 208) (T_VARIABLE 217 . 222) 
(T_OBJECT_OPERATOR 222 .  [...]
 
   (phps-mode-test--with-buffer
    "<?php\nvar_dump(array(<<<EOD\nfoobar!\nEOD\n));\n?>\n"
@@ -450,7 +450,7 @@
    (should
     (equal
      phps-mode-lex-analyzer--tokens
-     '((T_OPEN_TAG 1 . 7) (T_STRING 7 . 15) ("(" 15 . 16) (T_ARRAY 16 . 21) 
("(" 21 . 22) (T_START_HEREDOC 22 . 29) (T_ENCAPSED_AND_WHITESPACE 29 . 36) 
(T_END_HEREDOC 36 . 40) (")" 41 . 42) (")" 42 . 43) (";" 43 . 44) (T_CLOSE_TAG 
45 . 47) (T_INLINE_HTML 47 . 48)))))
+     '((T_OPEN_TAG 1 . 7) (T_STRING 7 . 15) ("(" 15 . 16) (T_ARRAY 16 . 21) 
("(" 21 . 22) (T_START_HEREDOC 22 . 29) (T_ENCAPSED_AND_WHITESPACE 29 . 37) 
(T_END_HEREDOC 37 . 40) (")" 41 . 42) (")" 42 . 43) (";" 43 . 44) (T_CLOSE_TAG 
45 . 47) (T_INLINE_HTML 47 . 48)))))
 
   (phps-mode-test--with-buffer
    "<?php\n// Static variables\nfunction foo()\n{\n    static $bar = 
<<<LABEL\nNothing in here...\nLABEL;\n}\n\n// Class properties/constants\nclass 
foo\n{\n    const BAR = <<<FOOBAR\nConstant example\nFOOBAR;\n\n    public $baz 
= <<<FOOBAR\nProperty example\nFOOBAR;\n}\n?>\n"
@@ -458,7 +458,7 @@
    (should
     (equal
      phps-mode-lex-analyzer--tokens
-     '((T_OPEN_TAG 1 . 7) (T_COMMENT 7 . 26) (T_FUNCTION 27 . 35) (T_STRING 36 
. 39) ("(" 39 . 40) (")" 40 . 41) ("{" 42 . 43) (T_STATIC 48 . 54) (T_VARIABLE 
55 . 59) ("=" 60 . 61) (T_START_HEREDOC 62 . 71) (T_ENCAPSED_AND_WHITESPACE 71 
. 89) (T_END_HEREDOC 89 . 95) (";" 95 . 96) ("}" 97 . 98) (T_COMMENT 100 . 129) 
(T_CLASS 130 . 135) (T_STRING 136 . 139) ("{" 140 . 141) (T_CONST 146 . 151) 
(T_STRING 152 . 155) ("=" 156 . 157) (T_START_HEREDOC 158 . 168) 
(T_ENCAPSED_AND_WHITESPACE 168 .  [...]
+     '((T_OPEN_TAG 1 . 7) (T_COMMENT 7 . 26) (T_FUNCTION 27 . 35) (T_STRING 36 
. 39) ("(" 39 . 40) (")" 40 . 41) ("{" 42 . 43) (T_STATIC 48 . 54) (T_VARIABLE 
55 . 59) ("=" 60 . 61) (T_START_HEREDOC 62 . 71) (T_ENCAPSED_AND_WHITESPACE 71 
. 90) (T_END_HEREDOC 90 . 95) (";" 95 . 96) ("}" 97 . 98) (T_COMMENT 100 . 129) 
(T_CLASS 130 . 135) (T_STRING 136 . 139) ("{" 140 . 141) (T_CONST 146 . 151) 
(T_STRING 152 . 155) ("=" 156 . 157) (T_START_HEREDOC 158 . 168) 
(T_ENCAPSED_AND_WHITESPACE 168 .  [...]
 
   (phps-mode-test--with-buffer
    "\n<?php\necho <<<\"FOOBAR\"\nHello World!\nFOOBAR;\n?>\n"
@@ -466,7 +466,7 @@
    (should
     (equal
      phps-mode-lex-analyzer--tokens
-     '((T_INLINE_HTML 1 . 2) (T_OPEN_TAG 2 . 8) (T_ECHO 8 . 12) 
(T_START_HEREDOC 13 . 25) (T_ENCAPSED_AND_WHITESPACE 25 . 37) (T_END_HEREDOC 37 
. 44) (";" 44 . 45) (T_CLOSE_TAG 46 . 48) (T_INLINE_HTML 48 . 49)))))
+     '((T_INLINE_HTML 1 . 2) (T_OPEN_TAG 2 . 8) (T_ECHO 8 . 12) 
(T_START_HEREDOC 13 . 25) (T_ENCAPSED_AND_WHITESPACE 25 . 38) (T_END_HEREDOC 38 
. 44) (";" 44 . 45) (T_CLOSE_TAG 46 . 48) (T_INLINE_HTML 48 . 49)))))
 
   (phps-mode-test--with-buffer
    "<?php\n$var = <<<QUERY\n    {\n        shop {\n            name\n        
}\n    }\n    QUERY;\n"
@@ -474,7 +474,7 @@
    (should
     (equal
      phps-mode-lex-analyzer--tokens
-     '((T_OPEN_TAG 1 . 7) (T_VARIABLE 7 . 11) ("=" 12 . 13) (T_START_HEREDOC 
14 . 23) (T_ENCAPSED_AND_WHITESPACE 23 . 76) (T_END_HEREDOC 76 . 82) (T_STRING 
82 . 86) (";" 86 . 87)))))
+     '((T_OPEN_TAG 1 . 7) (T_VARIABLE 7 . 11) ("=" 12 . 13) (T_START_HEREDOC 
14 . 23) (T_ENCAPSED_AND_WHITESPACE 23 . 81) (T_END_HEREDOC 81 . 86) (";" 86 . 
87)))))
 
 
   ;; NOWDOC
@@ -485,7 +485,7 @@
    (should
     (equal
      phps-mode-lex-analyzer--tokens
-     '((T_OPEN_TAG 1 . 7) (T_ECHO 7 . 11) (T_START_HEREDOC 12 . 21) 
(T_ENCAPSED_AND_WHITESPACE 21 . 140) (T_END_HEREDOC 140 . 144) (";" 144 . 
145)))))
+     '((T_OPEN_TAG 1 . 7) (T_ECHO 7 . 11) (T_START_HEREDOC 12 . 21) 
(T_ENCAPSED_AND_WHITESPACE 21 . 141) (T_END_HEREDOC 141 . 144) (";" 144 . 
145)))))
 
   (phps-mode-test--with-buffer
    "<?php\nclass foo\n{\n    public $foo;\n    public $bar;\n\n    function 
__construct()\n    {\n        $this->foo = 'Foo';\n        $this->bar = 
array('Bar1', 'Bar2', 'Bar3');\n    }\n}\n\n$foo = new foo();\n$name = 
'MyName';\n\necho <<<'EOT'\nMy name is \"$name\". I am printing some 
$foo->foo.\nNow, I am printing some {$foo->bar[1]}.\nThis should not print a 
capital 'A': \x41\nEOT;\n?>\n"
@@ -493,7 +493,7 @@
    (should
     (equal
      phps-mode-lex-analyzer--tokens
-     '((T_OPEN_TAG 1 . 7) (T_CLASS 7 . 12) (T_STRING 13 . 16) ("{" 17 . 18) 
(T_PUBLIC 23 . 29) (T_VARIABLE 30 . 34) (";" 34 . 35) (T_PUBLIC 40 . 46) 
(T_VARIABLE 47 . 51) (";" 51 . 52) (T_FUNCTION 58 . 66) (T_STRING 67 . 78) ("(" 
78 . 79) (")" 79 . 80) ("{" 85 . 86) (T_VARIABLE 95 . 100) (T_OBJECT_OPERATOR 
100 . 102) (T_STRING 102 . 105) ("=" 106 . 107) (T_CONSTANT_ENCAPSED_STRING 108 
. 113) (";" 113 . 114) (T_VARIABLE 123 . 128) (T_OBJECT_OPERATOR 128 . 130) 
(T_STRING 130 . 133) ("=" 134 [...]
+     '((T_OPEN_TAG 1 . 7) (T_CLASS 7 . 12) (T_STRING 13 . 16) ("{" 17 . 18) 
(T_PUBLIC 23 . 29) (T_VARIABLE 30 . 34) (";" 34 . 35) (T_PUBLIC 40 . 46) 
(T_VARIABLE 47 . 51) (";" 51 . 52) (T_FUNCTION 58 . 66) (T_STRING 67 . 78) ("(" 
78 . 79) (")" 79 . 80) ("{" 85 . 86) (T_VARIABLE 95 . 100) (T_OBJECT_OPERATOR 
100 . 102) (T_STRING 102 . 105) ("=" 106 . 107) (T_CONSTANT_ENCAPSED_STRING 108 
. 113) (";" 113 . 114) (T_VARIABLE 123 . 128) (T_OBJECT_OPERATOR 128 . 130) 
(T_STRING 130 . 133) ("=" 134 [...]
 
   (phps-mode-test--with-buffer
    "<?php\nclass foo {\n    public $bar = <<<'EOT'\nbar\nEOT;\n}\n?>\n"
@@ -501,7 +501,7 @@
    (should
     (equal
      phps-mode-lex-analyzer--tokens
-     '((T_OPEN_TAG 1 . 7) (T_CLASS 7 . 12) (T_STRING 13 . 16) ("{" 17 . 18) 
(T_PUBLIC 23 . 29) (T_VARIABLE 30 . 34) ("=" 35 . 36) (T_START_HEREDOC 37 . 46) 
(T_ENCAPSED_AND_WHITESPACE 46 . 49) (T_END_HEREDOC 49 . 53) (";" 53 . 54) ("}" 
55 . 56) (T_CLOSE_TAG 57 . 59) (T_INLINE_HTML 59 . 60)))))
+     '((T_OPEN_TAG 1 . 7) (T_CLASS 7 . 12) (T_STRING 13 . 16) ("{" 17 . 18) 
(T_PUBLIC 23 . 29) (T_VARIABLE 30 . 34) ("=" 35 . 36) (T_START_HEREDOC 37 . 46) 
(T_ENCAPSED_AND_WHITESPACE 46 . 50) (T_END_HEREDOC 50 . 53) (";" 53 . 54) ("}" 
55 . 56) (T_CLOSE_TAG 57 . 59) (T_INLINE_HTML 59 . 60)))))
 
   (phps-mode-test--with-buffer
    "<?php\n\nclass MyClass\n{\n    public const MY_CONSTANT = <<<'DELIMITER'\n 
   {\n        some {\n            json\n        }\n    }\n    DELIMITER;\n}\n"
@@ -509,7 +509,7 @@
    (should
     (equal
      phps-mode-lex-analyzer--tokens
-     '((T_OPEN_TAG 1 . 7) (T_CLASS 8 . 13) (T_STRING 14 . 21) ("{" 22 . 23) 
(T_PUBLIC 28 . 34) (T_CONST 35 . 40) (T_STRING 41 . 52) ("=" 53 . 54) 
(T_START_HEREDOC 55 . 70) (T_ENCAPSED_AND_WHITESPACE 70 . 123) (T_END_HEREDOC 
123 . 133) (T_STRING 133 . 137) (";" 137 . 138) ("}" 139 . 140)))))
+     '((T_OPEN_TAG 1 . 7) (T_CLASS 8 . 13) (T_STRING 14 . 21) ("{" 22 . 23) 
(T_PUBLIC 28 . 34) (T_CONST 35 . 40) (T_STRING 41 . 52) ("=" 53 . 54) 
(T_START_HEREDOC 55 . 70) (T_ENCAPSED_AND_WHITESPACE 70 . 128) (T_END_HEREDOC 
128 . 137) (";" 137 . 138) ("}" 139 . 140)))))
 
   ;; Backquotes
   (phps-mode-test--with-buffer
@@ -571,7 +571,7 @@
    (should
     (equal
      phps-mode-lex-analyzer--tokens
-     '((T_OPEN_TAG 1 . 7) (T_VARIABLE 7 . 11) ("=" 12 . 13) (T_START_HEREDOC 
14 . 21) (T_ENCAPSED_AND_WHITESPACE 21 . 28) (T_CURLY_OPEN 28 . 29) (T_VARIABLE 
29 . 35) ("[" 35 . 36) (T_CONSTANT_ENCAPSED_STRING 36 . 43) ("]" 43 . 44) 
(T_OBJECT_OPERATOR 44 . 46) (T_STRING 46 . 54) ("}" 54 . 55) 
(T_ENCAPSED_AND_WHITESPACE 55 . 62) (T_CURLY_OPEN 62 . 63) (T_VARIABLE 63 . 69) 
(T_OBJECT_OPERATOR 69 . 71) (T_STRING 71 . 75) ("(" 75 . 76) (")" 76 . 77) ("}" 
77 . 78) (T_ENCAPSED_AND_WHITESPACE 78 . [...]
+     '((T_OPEN_TAG 1 . 7) (T_VARIABLE 7 . 11) ("=" 12 . 13) (T_START_HEREDOC 
14 . 21) (T_ENCAPSED_AND_WHITESPACE 21 . 28) (T_CURLY_OPEN 28 . 29) (T_VARIABLE 
29 . 35) ("[" 35 . 36) (T_CONSTANT_ENCAPSED_STRING 36 . 43) ("]" 43 . 44) 
(T_OBJECT_OPERATOR 44 . 46) (T_STRING 46 . 54) ("}" 54 . 55) 
(T_ENCAPSED_AND_WHITESPACE 55 . 62) (T_CURLY_OPEN 62 . 63) (T_VARIABLE 63 . 69) 
(T_OBJECT_OPERATOR 69 . 71) (T_STRING 71 . 75) ("(" 75 . 76) (")" 76 . 77) ("}" 
77 . 78) (T_ENCAPSED_AND_WHITESPACE 78 . [...]
 
   (phps-mode-test--with-buffer
    "<?php echo \"\\\"$string\\\"\";"

Reply via email to