Represents a variable.
Inheritance: extends SassNode
Example #1
0
 /**
  * Creates and returns the next SassNode.
  * The tpye of SassNode depends on the content of the SassToken.
  * @return SassNode a SassNode of the appropriate type. Null when no more
  * source to parse.
  */
 public function getNode($node)
 {
     $token = $this->getToken();
     if (empty($token)) {
         return null;
     }
     switch (true) {
         case SassDirectiveNode::isa($token):
             return $this->parseDirective($token, $node);
         case SassCommentNode::isa($token):
             return new SassCommentNode($token);
         case SassVariableNode::isa($token):
             return new SassVariableNode($token);
         case SassPropertyNode::isa(array('token' => $token, 'syntax' => $this->property_syntax)):
             return new SassPropertyNode($token, $this->property_syntax);
         case SassFunctionDefinitionNode::isa($token):
             return new SassFunctionDefinitionNode($token);
         case SassMixinDefinitionNode::isa($token):
             if ($this->syntax === SassFile::SCSS) {
                 if ($this->debug) {
                     throw new SassException('Mixin definition shortcut not allowed in SCSS', $this);
                 }
                 return;
             } else {
                 return new SassMixinDefinitionNode($token);
             }
         case SassMixinNode::isa($token):
             if ($this->syntax === SassFile::SCSS) {
                 if ($this->debug) {
                     throw new SassException('Mixin include shortcut not allowed in SCSS', $this);
                 }
                 return;
             } else {
                 return new SassMixinNode($token);
             }
         default:
             return new SassRuleNode($token);
             break;
     }
     // switch
 }
Example #2
0
 /**
  * Parses a variable
  * @param array line to parse
  * @return SassVariableNode variable node
  */
 private function parseVariable($line)
 {
     $matches = SassVariableNode::match($line);
     return new SassVariableNode($matches[SassVariableNode::NAME], $matches[SassVariableNode::VALUE], $matches[SassVariableNode::ASSIGNMENT] === SassVariableNode::IS_OPTIONAL);
 }
Example #3
0
 /**
  * Creates and returns the next SassNode.
  * The tpye of SassNode depends on the content of the SassToken.
  * @return SassNode a SassNode of the appropriate type. Null when no more
  * source to parse.
  */
 private function getNode($node)
 {
     $token = $this->getToken();
     if (empty($token)) {
         return null;
     }
     switch (true) {
         case SassDirectiveNode::isa($token):
             return $this->parseDirective($token, $node);
             break;
         case SassCommentNode::isa($token):
             return new SassCommentNode($token);
             break;
         case SassVariableNode::isa($token):
             return new SassVariableNode($token);
             break;
         case SassPropertyNode::isa($token, $this->property_syntax):
             return new SassPropertyNode($token, $this->property_syntax);
             break;
         case SassMixinDefinitionNode::isa($token):
             if ($this->syntax === SassFile::SCSS) {
                 throw new SassException('Mixin {which} shortcut not allowed in SCSS', array('{which}' => 'definition'), $this);
             }
             return new SassMixinDefinitionNode($token);
             break;
         case SassMixinNode::isa($token):
             if ($this->syntax === SassFile::SCSS) {
                 throw new SassException('Mixin {which} shortcut not allowed in SCSS', array('{which}' => 'include'), $this);
             }
             return new SassMixinNode($token);
             break;
         default:
             return new SassRuleNode($token);
             break;
     }
     // switch
 }
Example #4
0
 /**
  * Parses a variable
  * @param array line to parse
  * @return SassVariableNode variable node
  */
 private function parseVariable($line)
 {
     $matches = SassVariableNode::match($line, $this->options['propertySyntax']);
     return new SassVariableNode($matches[SassVariableNode::NAME], $matches[SassVariableNode::VALUE], $matches[SassVariableNode::ASSIGNMENT] === SassVariableNode::IS_OPTIONAL);
 }