Blame src/ast_fwd_decl.cpp
|
Packit |
bfcc33 |
#include "ast.hpp"
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
namespace Sass {
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
#define IMPLEMENT_BASE_CAST(T) \
|
|
Packit |
bfcc33 |
template<> \
|
|
Packit |
bfcc33 |
T* Cast(AST_Node* ptr) { \
|
|
Packit |
bfcc33 |
return dynamic_cast<T*>(ptr); \
|
|
Packit |
bfcc33 |
}; \
|
|
Packit |
bfcc33 |
\
|
|
Packit |
bfcc33 |
template<> \
|
|
Packit |
bfcc33 |
const T* Cast(const AST_Node* ptr) { \
|
|
Packit |
bfcc33 |
return dynamic_cast<const T*>(ptr); \
|
|
Packit |
bfcc33 |
}; \
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
IMPLEMENT_BASE_CAST(AST_Node)
|
|
Packit |
bfcc33 |
IMPLEMENT_BASE_CAST(Expression)
|
|
Packit |
bfcc33 |
IMPLEMENT_BASE_CAST(Statement)
|
|
Packit |
bfcc33 |
IMPLEMENT_BASE_CAST(Has_Block)
|
|
Packit |
bfcc33 |
IMPLEMENT_BASE_CAST(PreValue)
|
|
Packit |
bfcc33 |
IMPLEMENT_BASE_CAST(Value)
|
|
Packit |
bfcc33 |
IMPLEMENT_BASE_CAST(List)
|
|
Packit |
bfcc33 |
IMPLEMENT_BASE_CAST(String)
|
|
Packit |
bfcc33 |
IMPLEMENT_BASE_CAST(String_Constant)
|
|
Packit |
bfcc33 |
IMPLEMENT_BASE_CAST(Supports_Condition)
|
|
Packit |
bfcc33 |
IMPLEMENT_BASE_CAST(Selector)
|
|
Packit |
bfcc33 |
IMPLEMENT_BASE_CAST(Simple_Selector)
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
}
|