HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux wordpress-ubuntu-s-2vcpu-4gb-fra1-01 5.4.0-169-generic #187-Ubuntu SMP Thu Nov 23 14:52:28 UTC 2023 x86_64
User: root (0)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/zaklada/html/node_modules/node-sass/src/libsass/src/to_c.cpp
#include "sass.hpp"
#include "to_c.hpp"
#include "ast.hpp"

namespace Sass {

  union Sass_Value* To_C::fallback_impl(AST_Node_Ptr n)
  { return sass_make_error("unknown type for C-API"); }

  union Sass_Value* To_C::operator()(Boolean_Ptr b)
  { return sass_make_boolean(b->value()); }

  union Sass_Value* To_C::operator()(Number_Ptr n)
  { return sass_make_number(n->value(), n->unit().c_str()); }

  union Sass_Value* To_C::operator()(Custom_Warning_Ptr w)
  { return sass_make_warning(w->message().c_str()); }

  union Sass_Value* To_C::operator()(Custom_Error_Ptr e)
  { return sass_make_error(e->message().c_str()); }

  union Sass_Value* To_C::operator()(Color_Ptr c)
  { return sass_make_color(c->r(), c->g(), c->b(), c->a()); }

  union Sass_Value* To_C::operator()(String_Constant_Ptr s)
  {
    if (s->quote_mark()) {
      return sass_make_qstring(s->value().c_str());
    } else {
      return sass_make_string(s->value().c_str());
    }
  }

  union Sass_Value* To_C::operator()(String_Quoted_Ptr s)
  { return sass_make_qstring(s->value().c_str()); }

  union Sass_Value* To_C::operator()(List_Ptr l)
  {
    union Sass_Value* v = sass_make_list(l->length(), l->separator(), l->is_bracketed());
    for (size_t i = 0, L = l->length(); i < L; ++i) {
      sass_list_set_value(v, i, (*l)[i]->perform(this));
    }
    return v;
  }

  union Sass_Value* To_C::operator()(Map_Ptr m)
  {
    union Sass_Value* v = sass_make_map(m->length());
    int i = 0;
    for (auto key : m->keys()) {
      sass_map_set_key(v, i, key->perform(this));
      sass_map_set_value(v, i, m->at(key)->perform(this));
      i++;
    }
    return v;
  }

  union Sass_Value* To_C::operator()(Arguments_Ptr a)
  {
    union Sass_Value* v = sass_make_list(a->length(), SASS_COMMA, false);
    for (size_t i = 0, L = a->length(); i < L; ++i) {
      sass_list_set_value(v, i, (*a)[i]->perform(this));
    }
    return v;
  }

  union Sass_Value* To_C::operator()(Argument_Ptr a)
  { return a->value()->perform(this); }

  // not strictly necessary because of the fallback
  union Sass_Value* To_C::operator()(Null_Ptr n)
  { return sass_make_null(); }

};