You are here

class SassDebugNode in Sassy 7.3

Same name and namespace in other branches
  1. 7 phamlp/sass/tree/SassDebugNode.php \SassDebugNode

SassDebugNode class. Represents a Sass @debug or @warn directive. @package PHamlP @subpackage Sass.tree

Hierarchy

Expanded class hierarchy of SassDebugNode

File

phpsass/tree/SassDebugNode.php, line 18

View source
class SassDebugNode extends SassNode {
  const IDENTIFIER = '@';
  const MATCH = '/^@(?:debug|warn)\\s+(.+?)\\s*;?$/';
  const MESSAGE = 1;

  /**
   * @var string the debug/warning message
   */
  private $message;

  /**
   * @var array parameters for the message;
   * only used by internal warning messages
   */
  private $params;

  /**
   * @var boolean true if this is a warning
   */
  private $warning;

  /**
   * SassDebugNode.
   * @param object source token
   * @param mixed string: an internally generated warning message about the
   * source
   * boolean: the source token is a @debug or @warn directive containing the
   * message; True if this is a @warn directive
   * @param array parameters for the message
   * @return SassDebugNode
   */
  public function __construct($token, $message = false) {
    parent::__construct($token);
    if (is_string($message)) {
      $this->message = $message;
      $this->warning = true;
    }
    else {
      preg_match(self::MATCH, $token->source, $matches);
      $this->message = $matches[self::MESSAGE];
      $this->warning = $message;
    }
  }

  /**
   * Parse this node.
   * This raises an error.
   * @return array An empty array
   */
  public function parse($context) {
    if (!$this->warning || $this->root->parser->quiet === false) {
      set_error_handler(array(
        $this,
        'errorHandler',
      ));
      trigger_error($this->warning ? $this
        ->interpolate($this->message, $context) : $this
        ->evaluate($this->message, $context)
        ->toString());
      restore_error_handler();
    }
    return array();
  }

  /**
   * Error handler for degug and warning statements.
   * @param int Error number
   * @param string Message
   */
  public function errorHandler($errno, $message) {
    echo '<div style="background-color:#ce4dd6;border-bottom:1px dashed #88338d;color:white;font:10pt verdana;margin:0;padding:0.5em 2%;width:96%;"><p style="height:auto;margin:0.25em 0;padding:0;width:100%;"><span style="font-weight:bold;">SASS ' . ($this->warning ? 'WARNING' : 'DEBUG') . ":</span> {$message}</p><p style=\"margin:0.1em;padding:0;padding-left:0.5em;width:100%;\">{$this->filename}::{$this->line}</p><p style=\"margin:0.1em;padding:0;padding-left:0.5em;width:100%;\">Source: {$this->source}</p></div>";
  }

}

Members

Namesort descending Modifiers Type Description Overrides
SassDebugNode::$message private property
SassDebugNode::$params private property only used by internal warning messages
SassDebugNode::$warning private property
SassDebugNode::errorHandler public function Error handler for degug and warning statements.
SassDebugNode::IDENTIFIER constant
SassDebugNode::MATCH constant
SassDebugNode::MESSAGE constant
SassDebugNode::parse public function Parse this node. This raises an error.
SassDebugNode::__construct public function SassDebugNode. Overrides SassNode::__construct
SassNode::$children public property
SassNode::$parent public property 1
SassNode::$root public property
SassNode::$token public property
SassNode::addChild public function Adds a child to this node.
SassNode::addWarning public function Adds a warning to the node.
SassNode::evaluate public function Evaluates a SassScript expression.
SassNode::getChildren public function Returns the node's children
SassNode::getDebug_info public function Returns the debug_info option setting for this node
SassNode::getFilename public function Returns the filename for this node
SassNode::getLastChild public function Returns the last child node of this node.
SassNode::getLevel public function Returns the level of this node.
SassNode::getLine public function Returns the line number for this node
SassNode::getLine_numbers public function Returns the line_numbers option setting for this node
SassNode::getParent public function Returns the node's parent
SassNode::getParser public function Returns the Sass parser.
SassNode::getPropertySyntax public function Returns the property syntax being used.
SassNode::getRenderer public function Returns the renderer.
SassNode::getScript public function Returns the SassScript parser.
SassNode::getSource public function Returns the source for this node
SassNode::getStyle public function Returns the render style of the document tree.
SassNode::getVendor_properties public function Returns vendor specific properties
SassNode::hasChildren public function Returns a value indicating if this node has children
SassNode::hasParent public function Return a value indicating if this node has a parent
SassNode::inDirective public function Returns a value indicating whether this node is in a directive
SassNode::inSassScriptDirective public function Returns a value indicating whether this node is in a SassScript directive
SassNode::interpolate public function Replace interpolated SassScript contained in '#{}' with the parsed value.
SassNode::isa public static function Returns a value indicating if the token represents this type of node. 9
SassNode::isChildOf public function Returns a value indicating if this node is a child of the passed node. This just checks the levels of the nodes. If this node is at a greater level than the passed node if is a child of it.
SassNode::parseChildren public function Parse the children of the node.
SassNode::__clone public function Resets children when cloned
SassNode::__get public function Getter.
SassNode::__set public function Setter.