Commit 5969010f by Aaron Leung

More automatic flag stuff.

parent 28b57ace
...@@ -64,9 +64,6 @@ namespace Sass { ...@@ -64,9 +64,6 @@ namespace Sass {
private: private:
friend class Node_Factory; friend class Node_Factory;
Node_Impl* ip_; Node_Impl* ip_;
// private constructors; must use a Node_Factory
Node();
Node(Node_Impl* ip);
public: public:
enum Type { enum Type {
...@@ -152,6 +149,8 @@ namespace Sass { ...@@ -152,6 +149,8 @@ namespace Sass {
assignment assignment
}; };
Node(Node_Impl* ip = 0);
Type type() const; Type type() const;
bool has_children() const; bool has_children() const;
...@@ -160,13 +159,14 @@ namespace Sass { ...@@ -160,13 +159,14 @@ namespace Sass {
bool has_expansions() const; bool has_expansions() const;
bool has_backref() const; bool has_backref() const;
bool from_variable() const; bool from_variable() const;
bool should_eval() const; bool& should_eval() const;
bool is_unquoted() const; bool is_unquoted() const;
bool is_numeric() const; bool is_numeric() const;
string& file_name() const; string& file_name() const;
size_t line_number() const; size_t line_number() const;
size_t size() const; size_t size() const;
bool empty() const;
Node& at(size_t i) const; Node& at(size_t i) const;
Node& operator[](size_t i) const; Node& operator[](size_t i) const;
...@@ -232,7 +232,7 @@ namespace Sass { ...@@ -232,7 +232,7 @@ namespace Sass {
{ {
children.push_back(n); children.push_back(n);
has_children = true; has_children = true;
switch (type) switch (n.type())
{ {
case Node::comment: case Node::comment:
case Node::css_import: case Node::css_import:
...@@ -240,8 +240,10 @@ namespace Sass { ...@@ -240,8 +240,10 @@ namespace Sass {
case Node::propset: has_statements = true; break; case Node::propset: has_statements = true; break;
case Node::ruleset: has_blocks = true; break; case Node::ruleset: has_blocks = true; break;
case Node::expansion: has_expansions = true; break; case Node::expansion: has_expansions = true; break;
case Node::backref: has_backref = true; break;
default: break; default: break;
} }
if (n.has_backref()) has_backref = true;
} }
void pop_back() void pop_back()
...@@ -271,13 +273,14 @@ namespace Sass { ...@@ -271,13 +273,14 @@ namespace Sass {
inline bool Node::has_expansions() const { return ip_->has_expansions; } inline bool Node::has_expansions() const { return ip_->has_expansions; }
inline bool Node::has_backref() const { return ip_->has_backref; } inline bool Node::has_backref() const { return ip_->has_backref; }
inline bool Node::from_variable() const { return ip_->from_variable; } inline bool Node::from_variable() const { return ip_->from_variable; }
inline bool Node::should_eval() const { return ip_->should_eval; } inline bool& Node::should_eval() const { return ip_->should_eval; }
inline bool Node::is_unquoted() const { return ip_->is_unquoted; } inline bool Node::is_unquoted() const { return ip_->is_unquoted; }
inline bool Node::is_numeric() const { return ip_->is_numeric(); } inline bool Node::is_numeric() const { return ip_->is_numeric(); }
inline string& Node::file_name() const { return ip_->file_name; } inline string& Node::file_name() const { return ip_->file_name; }
inline size_t Node::line_number() const { return ip_->line_number; } inline size_t Node::line_number() const { return ip_->line_number; }
inline size_t Node::size() const { return ip_->size(); } inline size_t Node::size() const { return ip_->size(); }
inline bool Node::empty() const { return ip_->empty(); }
inline Node& Node::at(size_t i) const { return ip_->at(i); } inline Node& Node::at(size_t i) const { return ip_->at(i); }
inline Node& Node::operator[](size_t i) const { return at(i); } inline Node& Node::operator[](size_t i) const { return at(i); }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment