php-parser
Version:
Parse PHP code from JS and returns its AST
76 lines (68 loc) • 1.72 kB
JavaScript
/**
* Copyright (C) 2018 Glayzzle (BSD3 License)
* @authors https://github.com/glayzzle/php-parser/graphs/contributors
* @url http://glayzzle.com
*/
;
const Literal = require("./literal");
const KIND = "encapsed";
/**
* Defines an encapsed string (contains expressions)
* @constructor Encapsed
* @memberOf module:php-parser
* @extends {Literal}
* @property {String} type - Defines the type of encapsed string (shell, heredoc, string)
* @property {String|Null} label - The heredoc label, defined only when the type is heredoc
* @property {EncapsedPart[]} value
*/
const Encapsed = Literal.extends(
KIND,
function Encapsed(value, raw, type, docs, location) {
Literal.apply(this, [KIND, value, raw, docs, location]);
this.type = type;
},
);
/**
* The node is a double quote string :
* ```php
* <?php
* echo "hello $world";
* ```
* @constant {String} Encapsed#TYPE_STRING - `string`
* @memberOf module:php-parser
*/
Encapsed.TYPE_STRING = "string";
/**
* The node is a shell execute string :
* ```php
* <?php
* echo `ls -larth $path`;
* ```
* @constant {String} Encapsed#TYPE_SHELL - `shell`
* @memberOf module:php-parser
*/
Encapsed.TYPE_SHELL = "shell";
/**
* The node is a shell execute string :
* ```php
* <?php
* echo <<<STR
* Hello $world
* STR
* ;
* ```
* @constant {String} Encapsed#TYPE_HEREDOC - `heredoc`
* @memberOf module:php-parser
*/
Encapsed.TYPE_HEREDOC = "heredoc";
/**
* The node contains a list of constref / variables / expr :
* ```php
* <?php
* echo $foo->bar_$baz;
* ```
* @constant {String} Encapsed#TYPE_OFFSET - `offset`
* @memberOf module:php-parser
*/
Encapsed.TYPE_OFFSET = "offset";
module.exports = Encapsed;