You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
676 B
29 lines
676 B
#include "ast.hpp"
|
|
|
|
namespace Sass {
|
|
|
|
#define IMPLEMENT_BASE_CAST(T) \
|
|
template<> \
|
|
T* Cast(AST_Node* ptr) { \
|
|
return dynamic_cast<T*>(ptr); \
|
|
}; \
|
|
\
|
|
template<> \
|
|
const T* Cast(const AST_Node* ptr) { \
|
|
return dynamic_cast<const T*>(ptr); \
|
|
}; \
|
|
|
|
IMPLEMENT_BASE_CAST(AST_Node)
|
|
IMPLEMENT_BASE_CAST(Expression)
|
|
IMPLEMENT_BASE_CAST(Statement)
|
|
IMPLEMENT_BASE_CAST(Has_Block)
|
|
IMPLEMENT_BASE_CAST(PreValue)
|
|
IMPLEMENT_BASE_CAST(Value)
|
|
IMPLEMENT_BASE_CAST(List)
|
|
IMPLEMENT_BASE_CAST(String)
|
|
IMPLEMENT_BASE_CAST(String_Constant)
|
|
IMPLEMENT_BASE_CAST(Supports_Condition)
|
|
IMPLEMENT_BASE_CAST(Selector)
|
|
IMPLEMENT_BASE_CAST(Simple_Selector)
|
|
|
|
}
|
|
|