Sha256: 6a8b77f5c565d4bbcc3c84ca36dd62fe347db887020c2b7e30e8b7fa8671b5de
Contents?: true
Size: 1.89 KB
Versions: 1
Compression:
Stored size: 1.89 KB
Contents
#ifndef SASS_CHECK_NESTING_H #define SASS_CHECK_NESTING_H // sass.hpp must go before all system headers to get the // __EXTENSIONS__ fix on Solaris. #include "sass.hpp" #include "ast.hpp" #include "operation.hpp" #include <vector> namespace Sass { class CheckNesting : public Operation_CRTP<Statement*, CheckNesting> { std::vector<Statement*> parents; Backtraces traces; Statement* parent; Definition* current_mixin_definition; Statement* before(Statement*); Statement* visit_children(Statement*); public: CheckNesting(); ~CheckNesting() { } Statement* operator()(Block*); Statement* operator()(Definition*); Statement* operator()(If*); template <typename U> Statement* fallback(U x) { Statement* s = Cast<Statement>(x); if (s && this->should_visit(s)) { Block* b1 = Cast<Block>(s); Has_Block* b2 = Cast<Has_Block>(s); if (b1 || b2) return visit_children(s); } return s; } private: void invalid_content_parent(Statement*, AST_Node*); void invalid_charset_parent(Statement*, AST_Node*); void invalid_extend_parent(Statement*, AST_Node*); // void invalid_import_parent(Statement*); void invalid_mixin_definition_parent(Statement*, AST_Node*); void invalid_function_parent(Statement*, AST_Node*); void invalid_function_child(Statement*); void invalid_prop_child(Statement*); void invalid_prop_parent(Statement*, AST_Node*); void invalid_return_parent(Statement*, AST_Node*); void invalid_value_child(AST_Node*); bool is_transparent_parent(Statement*, Statement*); bool should_visit(Statement*); bool is_charset(Statement*); bool is_mixin(Statement*); bool is_function(Statement*); bool is_root_node(Statement*); bool is_at_root_node(Statement*); bool is_directive_node(Statement*); }; } #endif
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sassc-2.3.0 | ext/libsass/src/check_nesting.hpp |