ifndef SASS_AST2C_H define SASS_AST2C_H

include “ast_fwd_decl.hpp” include “operation.hpp” include “sass/values.h”

namespace Sass {

class AST2C : public Operation_CRTP<union Sass_Value*, AST2C> {

public:

  AST2C() { }
  ~AST2C() { }

  union Sass_Value* operator()(Boolean*);
  union Sass_Value* operator()(Number*);
  union Sass_Value* operator()(Color_RGBA*);
  union Sass_Value* operator()(Color_HSLA*);
  union Sass_Value* operator()(String_Constant*);
  union Sass_Value* operator()(String_Quoted*);
  union Sass_Value* operator()(Custom_Warning*);
  union Sass_Value* operator()(Custom_Error*);
  union Sass_Value* operator()(List*);
  union Sass_Value* operator()(Map*);
  union Sass_Value* operator()(Null*);
  union Sass_Value* operator()(Arguments*);
  union Sass_Value* operator()(Argument*);

  // return sass error if type is not supported
  union Sass_Value* fallback(AST_Node* x)
  { return sass_make_error("unknown type for C-API"); }

};

}

endif