Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / vendor / nikic / php-parser / lib / PhpParser / Node.php
index 6925fd726fea6e7f7d89d3975c79df8c1563c1a4..7f04c3432c301130456eb10c9bc52faae827adc5 100644 (file)
@@ -1,4 +1,4 @@
-<?php
+<?php declare(strict_types=1);
 
 namespace PhpParser;
 
@@ -9,30 +9,88 @@ interface Node
      *
      * @return string Type of the node
      */
-    public function getType();
+    public function getType() : string;
 
     /**
      * Gets the names of the sub nodes.
      *
      * @return array Names of sub nodes
      */
-    public function getSubNodeNames();
+    public function getSubNodeNames() : array;
+
+    /**
+     * Gets line the node started in (alias of getStartLine).
+     *
+     * @return int Start line (or -1 if not available)
+     */
+    public function getLine() : int;
 
     /**
      * Gets line the node started in.
      *
-     * @return int Line
+     * Requires the 'startLine' attribute to be enabled in the lexer (enabled by default).
+     *
+     * @return int Start line (or -1 if not available)
+     */
+    public function getStartLine() : int;
+
+    /**
+     * Gets the line the node ended in.
+     *
+     * Requires the 'endLine' attribute to be enabled in the lexer (enabled by default).
+     *
+     * @return int End line (or -1 if not available)
+     */
+    public function getEndLine() : int;
+
+    /**
+     * Gets the token offset of the first token that is part of this node.
+     *
+     * The offset is an index into the array returned by Lexer::getTokens().
+     *
+     * Requires the 'startTokenPos' attribute to be enabled in the lexer (DISABLED by default).
+     *
+     * @return int Token start position (or -1 if not available)
+     */
+    public function getStartTokenPos() : int;
+
+    /**
+     * Gets the token offset of the last token that is part of this node.
+     *
+     * The offset is an index into the array returned by Lexer::getTokens().
+     *
+     * Requires the 'endTokenPos' attribute to be enabled in the lexer (DISABLED by default).
+     *
+     * @return int Token end position (or -1 if not available)
+     */
+    public function getEndTokenPos() : int;
+
+    /**
+     * Gets the file offset of the first character that is part of this node.
+     *
+     * Requires the 'startFilePos' attribute to be enabled in the lexer (DISABLED by default).
+     *
+     * @return int File start position (or -1 if not available)
      */
-    public function getLine();
+    public function getStartFilePos() : int;
 
     /**
-     * Sets line the node started in.
+     * Gets the file offset of the last character that is part of this node.
      *
-     * @param int $line Line
+     * Requires the 'endFilePos' attribute to be enabled in the lexer (DISABLED by default).
      *
-     * @deprecated
+     * @return int File end position (or -1 if not available)
      */
-    public function setLine($line);
+    public function getEndFilePos() : int;
+
+    /**
+     * Gets all comments directly preceding this node.
+     *
+     * The comments are also available through the "comments" attribute.
+     *
+     * @return Comment[]
+     */
+    public function getComments() : array;
 
     /**
      * Gets the doc comment of the node.
@@ -58,7 +116,7 @@ interface Node
      * @param string $key
      * @param mixed  $value
      */
-    public function setAttribute($key, $value);
+    public function setAttribute(string $key, $value);
 
     /**
      * Returns whether an attribute exists.
@@ -67,7 +125,7 @@ interface Node
      *
      * @return bool
      */
-    public function hasAttribute($key);
+    public function hasAttribute(string $key) : bool;
 
     /**
      * Returns the value of an attribute.
@@ -77,12 +135,19 @@ interface Node
      *
      * @return mixed
      */
-    public function &getAttribute($key, $default = null);
+    public function getAttribute(string $key, $default = null);
 
     /**
-     * Returns all attributes for the given node.
+     * Returns all the attributes of this node.
      *
      * @return array
      */
-    public function getAttributes();
-}
\ No newline at end of file
+    public function getAttributes() : array;
+
+    /**
+     * Replaces all the attributes of this node.
+     *
+     * @param array $attributes
+     */
+    public function setAttributes(array $attributes);
+}