Skip to content

Quoted heredoc delimiter gives parse error #104

@Sjord

Description

@Sjord
<?php

$header = <<<"EOD"
this is it
EOD;

var_dump($header);

Expected:

(program [0, 0] - [7, 0]
  (php_tag [0, 0] - [0, 5])
  (expression_statement [2, 0] - [4, 4]
    (assignment_expression [2, 0] - [4, 3]
      left: (variable_name [2, 0] - [2, 7]
        (name [2, 1] - [2, 7]))
      right: (heredoc [2, 9] - [4, 3])))
  (expression_statement [6, 0] - [6, 18]
    (function_call_expression [6, 0] - [6, 17]
      function: (name [6, 0] - [6, 8])
      arguments: (arguments [6, 8] - [6, 17]
        (argument [6, 9] - [6, 16]
          (variable_name [6, 9] - [6, 16]
            (name [6, 10] - [6, 16])))))))

Actual:

(program [0, 0] - [7, 0]
  (php_tag [0, 0] - [0, 5])
  (expression_statement [2, 0] - [4, 4]
    (binary_expression [2, 0] - [4, 3]
      left: (variable_name [2, 0] - [2, 7]
        (name [2, 1] - [2, 7]))
      (ERROR [2, 8] - [2, 11])
      (ERROR [2, 13] - [3, 10]
        (encapsed_string [2, 13] - [2, 18]
          (string [2, 14] - [2, 17]))
        (name [3, 0] - [3, 4])
        (name [3, 5] - [3, 7])
        (name [3, 8] - [3, 10]))
      right: (name [4, 0] - [4, 3])))
  (expression_statement [6, 0] - [6, 18]
    (function_call_expression [6, 0] - [6, 17]
      function: (name [6, 0] - [6, 8])
      arguments: (arguments [6, 8] - [6, 17]
        (argument [6, 9] - [6, 16]
          (variable_name [6, 9] - [6, 16]
            (name [6, 10] - [6, 16])))))))
test2.php	0 ms	(ERROR [2, 8] - [2, 11])

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions