function(expect, isBinary = false) {
    let node = this.node("encapsed");
    this.next();
    const start = this.lexer.yylloc.prev_offset - (isBinary ? 1 : 0);
    const value = [];
    let type = null;

    if (expect === "`") {
      type = this.ast.encapsed.TYPE_SHELL;
    } else if (expect === '"') {
      type = this.ast.encapsed.TYPE_STRING;
    } else {
      type = this.ast.encapsed.TYPE_HEREDOC;
    }

    // reading encapsed parts
    while (this.token !== expect && this.token !== this.EOF) {
      value.push(this.read_encapsed_string_item(true));
    }

    this.expect(expect) && this.next();
    node = node(
      value,
      this.lexer._input.substring(start - 1, this.lexer.yylloc.first_offset),
      type
    );

    if (expect === this.tok.T_END_HEREDOC) {
      node.label = this.lexer.heredoc_label;
    }
    return node;
  }
function(expect, isBinary = false) {
    let node = this.node("encapsed");
    this.next();
    const start = this.lexer.yylloc.prev_offset - (isBinary ? 1 : 0);
    const value = [];
    let type = null;

    if (expect === "`") {
      type = this.ast.encapsed.TYPE_SHELL;
    } else if (expect === '"') {
      type = this.ast.encapsed.TYPE_STRING;
    } else {
      type = this.ast.encapsed.TYPE_HEREDOC;
    }

    
    while (this.token !== expect && this.token !== this.EOF) {
      value.push(this.read_encapsed_string_item(true));
    }

    this.expect(expect) && this.next();
    node = node(
      value,
      this.lexer._input.substring(start - 1, this.lexer.yylloc.first_offset),
      type
    );

    if (expect === this.tok.T_END_HEREDOC) {
      node.label = this.lexer.heredoc_label;
    }
    return node;
  }
function ( expect , isBinary = false ) { let node = this . node ( "encapsed" ) ; this . next ( ) ; const start = this . lexer . yylloc . prev_offset - ( isBinary ? 1 : 0 ) ; const value = [ ] ; let type = null ; if ( expect === "`" ) { type = this . ast . encapsed . TYPE_SHELL ; } else if ( expect === '"' ) { type = this . ast . encapsed . TYPE_STRING ; } else { type = this . ast . encapsed . TYPE_HEREDOC ; } // reading encapsed parts while ( this . token !== expect && this . token !== this . EOF ) { value . push ( this . read_encapsed_string_item ( true ) ) ; } this . expect ( expect ) && this . next ( ) ; node = node ( value , this . lexer . _input . substring ( start - 1 , this . lexer . yylloc . first_offset ) , type ) ; if ( expect === this . tok . T_END_HEREDOC ) { node . label = this . lexer . heredoc_label ; } return node ; }
Reads an encapsed string
Reads an encapsed string