You are here

class SassString in Sassy 7.3

Same name and namespace in other branches
  1. 7 phamlp/sass/script/literals/SassString.php \SassString

SassString class. Provides operations and type testing for Sass strings. @package PHamlP @subpackage Sass.script.literals

Hierarchy

Expanded class hierarchy of SassString

3 string references to 'SassString'
SassScriptFunctions::get_var in phpsass/script/SassScriptFunctions.php
Returns the variable whose name is the string.
SassScriptFunctions::quote in phpsass/script/SassScriptFunctions.php
Add quotes to a string if the string isn't quoted, or returns the same string if it is.
SassScriptFunctions::unquote in phpsass/script/SassScriptFunctions.php
Removes quotes from a string if the string is quoted, or returns the same string if it's not.

File

phpsass/script/literals/SassString.php, line 20

View source
class SassString extends SassLiteral {
  const MATCH = '/^(((["\'])(.*)(\\3))|(-[a-zA-Z][^\\s]*))/i';
  const _MATCH = '/^(["\'])(.*?)(\\1)?$/';

  // Used to match strings such as "Times New Roman",serif
  const VALUE = 2;
  const QUOTE = 3;

  /**
   * @var string string quote type; double or single quotes, or unquoted.
   */
  public $quote;

  /**
   * class constructor
   * @param string string
   * @return SassString
   */
  public function __construct($value) {
    preg_match(self::_MATCH, $value, $matches);
    if (isset($matches[self::QUOTE])) {
      $this->quote = $matches[self::QUOTE];
      $this->value = $matches[self::VALUE];
    }
    else {
      $this->quote = '';
      $this->value = $value;
    }
  }

  /**
   * String addition.
   * Concatenates this and other.
   * The resulting string will be quoted in the same way as this.
   * @param sassString string to add to this
   * @return sassString the string result
   */
  public function op_plus($other) {
    if (!$other instanceof SassString) {
      throw new SassStringException('Value must be a string', SassScriptParser::$context->node);
    }
    $this->value .= $other->value;
    return $this;
  }

  /**
   * String multiplication.
   * this is repeated other times
   * @param sassNumber the number of times to repeat this
   * @return sassString the string result
   */
  public function op_times($other) {
    if (!$other instanceof SassNumber || !$other
      ->isUnitless()) {
      throw new SassStringException('Value must be a unitless number', SassScriptParser::$context->node);
    }
    $this->value = str_repeat($this->value, $other->value);
    return $this;
  }

  /**
   * Returns the value of this string.
   * @return string the string
   */
  public function getValue() {
    return $this->value;
  }

  /**
   * Returns a string representation of the value.
   * @return string string representation of the value.
   */
  public function toString() {
    return $this->quote . $this->value . $this->quote;
  }
  public function toVar() {
    return SassScriptParser::$context
      ->getVariable($this->value);
  }

  /**
   * Returns a value indicating if a token of this type can be matched at
   * the start of the subject string.
   * @param string the subject string
   * @return mixed match at the start of the string or false if no match
   */
  public static function isa($subject) {
    return preg_match(self::MATCH, $subject, $matches) ? $matches[0] : false;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
SassLiteral::$typeOf public static property
SassLiteral::$value public property
SassLiteral::addChild public function Adds a child object to this.
SassLiteral::assertInRange public static function Asserts that the value of a literal is within the expected range
SassLiteral::assertType public static function Asserts that the literal is the expected type
SassLiteral::getTypeOf public function Returns the type of this
SassLiteral::op_and public function The SassScript and operation.
SassLiteral::op_assign public function
SassLiteral::op_bw_and public function Bitwise AND the value of other and this value 1
SassLiteral::op_bw_not public function Bitwise NOT the value of other and the value of this
SassLiteral::op_bw_or public function Bitwise OR the value of other and this value 1
SassLiteral::op_bw_xor public function Bitwise XOR the value of other and the value of this 1
SassLiteral::op_comma public function SassScript ',' operation.
SassLiteral::op_concat public function The SassScript default operation (e.g. $a $b, "foo" "bar").
SassLiteral::op_div public function SassScript '/' operation. 2
SassLiteral::op_eq public function The SassScript == operation. 1
SassLiteral::op_gt public function The SassScript > operation. 1
SassLiteral::op_gte public function The SassScript >= operation. 1
SassLiteral::op_lt public function The SassScript < operation. 1
SassLiteral::op_lte public function The SassScript <= operation. 1
SassLiteral::op_minus public function SassScript '-' operation. 2
SassLiteral::op_modulo public function SassScript '%' operation. 2
SassLiteral::op_neq public function The SassScript != operation.
SassLiteral::op_not public function The SassScript not operation. 1
SassLiteral::op_or public function The SassScript or operation.
SassLiteral::op_shiftl public function Shifts the value of this left by the number of bits given in value 1
SassLiteral::op_shiftr public function Shifts the value of this right by the number of bits given in value 1
SassLiteral::op_xor public function The SassScript xor operation.
SassLiteral::toBoolean public function Returns the boolean representation of the value of this
SassLiteral::__get public function Getter.
SassLiteral::__toString public function
SassString::$quote public property
SassString::getValue public function Returns the value of this string. Overrides SassLiteral::getValue
SassString::isa public static function Returns a value indicating if a token of this type can be matched at the start of the subject string. Overrides SassLiteral::isa
SassString::MATCH constant
SassString::op_plus public function String addition. Concatenates this and other. The resulting string will be quoted in the same way as this. Overrides SassLiteral::op_plus
SassString::op_times public function String multiplication. this is repeated other times Overrides SassLiteral::op_times
SassString::QUOTE constant
SassString::toString public function Returns a string representation of the value. Overrides SassLiteral::toString
SassString::toVar public function
SassString::VALUE constant
SassString::_MATCH constant
SassString::__construct public function class constructor Overrides SassLiteral::__construct