SassParser::parseDirective PHP Method

parseDirective() public method

Parses a directive
public parseDirective ( stdClass $token, SassNode $parent ) : SassNode
$token stdClass token to parse
$parent SassNode parent node
return SassNode a Sass directive node
    public function parseDirective($token, $parent)
    {
        switch (SassDirectiveNode::extractDirective($token)) {
            case '@charset':
                return new SassCharsetNode($token);
                break;
            case '@content':
                return new SassContentNode($token);
                break;
            case '@extend':
                return new SassExtendNode($token);
                break;
            case '@function':
                return new SassFunctionDefinitionNode($token);
                break;
            case '@return':
                return new SassReturnNode($token);
                break;
            case '@media':
            case '@supports':
                return new SassMediaNode($token);
                break;
            case '@mixin':
                return new SassMixinDefinitionNode($token);
                break;
            case '@include':
                return new SassMixinNode($token);
                break;
            case '@import':
                if ($this->syntax == SassFile::SASS) {
                    $i = 0;
                    $source = '';
                    while (sizeof($this->source) > $i && empty($source) && isset($this->source[$i + 1])) {
                        $source = $this->source[$i++];
                    }
                    if (!empty($source) && $this->getLevel($source) > $token->level) {
                        if ($this->debug) {
                            throw new SassException('Nesting not allowed beneath @import directive', $token);
                        }
                    }
                }
                return new SassImportNode($token, $parent);
                break;
            case '@each':
                return new SassEachNode($token);
                break;
            case '@for':
                return new SassForNode($token);
                break;
            case '@if':
                return new SassIfNode($token);
                break;
            case '@else':
                // handles else and else if directives
                return new SassElseNode($token);
                break;
            case '@do':
            case '@while':
                return new SassWhileNode($token);
                break;
            case '@warn':
                return new SassWarnNode($token);
                break;
            case '@debug':
                return new SassDebugNode($token);
                break;
            default:
                return new SassDirectiveNode($token);
                break;
        }
    }