Blame include/sass2scss.h

Packit bfcc33
/**
Packit bfcc33
 * sass2scss
Packit bfcc33
 * Licensed under the MIT License
Packit bfcc33
 * Copyright (c) Marcel Greter
Packit bfcc33
 */
Packit bfcc33
Packit bfcc33
#ifndef SASS2SCSS_H
Packit bfcc33
#define SASS2SCSS_H
Packit bfcc33
Packit bfcc33
#ifdef _WIN32
Packit bfcc33
Packit bfcc33
  /* You should define ADD_EXPORTS *only* when building the DLL. */
Packit bfcc33
  #ifdef ADD_EXPORTS
Packit bfcc33
    #define ADDAPI __declspec(dllexport)
Packit bfcc33
	#define ADDCALL __cdecl
Packit bfcc33
  #else
Packit bfcc33
    #define ADDAPI
Packit bfcc33
	#define ADDCALL
Packit bfcc33
  #endif
Packit bfcc33
Packit bfcc33
#else /* _WIN32 not defined. */
Packit bfcc33
Packit bfcc33
  /* Define with no value on non-Windows OSes. */
Packit bfcc33
  #define ADDAPI
Packit bfcc33
  #define ADDCALL
Packit bfcc33
Packit bfcc33
#endif
Packit bfcc33
Packit bfcc33
#ifdef __cplusplus
Packit bfcc33
Packit bfcc33
#include <stack>
Packit bfcc33
#include <string>
Packit bfcc33
#include <cstring>
Packit bfcc33
#include <sstream>
Packit bfcc33
#include <iostream>
Packit bfcc33
Packit bfcc33
#ifndef SASS2SCSS_VERSION
Packit bfcc33
// Hardcode once the file is copied from
Packit bfcc33
// https://github.com/mgreter/sass2scss
Packit bfcc33
#define SASS2SCSS_VERSION "1.1.0"
Packit bfcc33
#endif
Packit bfcc33
Packit bfcc33
// add namespace for c++
Packit bfcc33
namespace Sass
Packit bfcc33
{
Packit bfcc33
Packit bfcc33
	// pretty print options
Packit bfcc33
	const int SASS2SCSS_PRETTIFY_0 = 0;
Packit bfcc33
	const int SASS2SCSS_PRETTIFY_1 = 1;
Packit bfcc33
	const int SASS2SCSS_PRETTIFY_2 = 2;
Packit bfcc33
	const int SASS2SCSS_PRETTIFY_3 = 3;
Packit bfcc33
Packit bfcc33
	// remove one-line comment
Packit bfcc33
	const int SASS2SCSS_KEEP_COMMENT    =  32;
Packit bfcc33
	// remove multi-line comments
Packit bfcc33
	const int SASS2SCSS_STRIP_COMMENT   =  64;
Packit bfcc33
	// convert one-line to multi-line
Packit bfcc33
	const int SASS2SCSS_CONVERT_COMMENT = 128;
Packit bfcc33
Packit bfcc33
	// String for finding something interesting
Packit bfcc33
	const std::string SASS2SCSS_FIND_WHITESPACE = " \t\n\v\f\r";
Packit bfcc33
Packit bfcc33
	// converter struct
Packit bfcc33
	// holding all states
Packit bfcc33
	struct converter
Packit bfcc33
	{
Packit bfcc33
		// bit options
Packit bfcc33
		int options;
Packit bfcc33
		// is selector
Packit bfcc33
		bool selector;
Packit bfcc33
		// concat lists
Packit bfcc33
		bool comma;
Packit bfcc33
		// has property
Packit bfcc33
		bool property;
Packit bfcc33
		// has semicolon
Packit bfcc33
		bool semicolon;
Packit bfcc33
		// comment context
Packit bfcc33
		std::string comment;
Packit bfcc33
		// flag end of file
Packit bfcc33
		bool end_of_file;
Packit bfcc33
		// whitespace buffer
Packit bfcc33
		std::string whitespace;
Packit bfcc33
		// context/block stack
Packit bfcc33
		std::stack<std::string> indents;
Packit bfcc33
	};
Packit bfcc33
Packit bfcc33
	// function only available in c++ code
Packit bfcc33
	char* sass2scss (const std::string& sass, const int options);
Packit bfcc33
Packit bfcc33
}
Packit bfcc33
// EO namespace
Packit bfcc33
Packit bfcc33
// declare for c
Packit bfcc33
extern "C" {
Packit bfcc33
#endif
Packit bfcc33
Packit bfcc33
	// prettyfy print options
Packit bfcc33
	#define SASS2SCSS_PRETTIFY_0   0
Packit bfcc33
	#define SASS2SCSS_PRETTIFY_1   1
Packit bfcc33
	#define SASS2SCSS_PRETTIFY_2   2
Packit bfcc33
	#define SASS2SCSS_PRETTIFY_3   3
Packit bfcc33
Packit bfcc33
	// keep one-line comments
Packit bfcc33
	#define SASS2SCSS_KEEP_COMMENT     32
Packit bfcc33
	// remove multi-line comments
Packit bfcc33
	#define SASS2SCSS_STRIP_COMMENT    64
Packit bfcc33
	// convert one-line to multi-line
Packit bfcc33
	#define SASS2SCSS_CONVERT_COMMENT  128
Packit bfcc33
Packit bfcc33
	// available to c and c++ code
Packit bfcc33
	ADDAPI char* ADDCALL sass2scss (const char* sass, const int options);
Packit bfcc33
Packit bfcc33
	// Get compiled sass2scss version
Packit bfcc33
	ADDAPI const char* ADDCALL sass2scss_version(void);
Packit bfcc33
Packit bfcc33
#ifdef __cplusplus
Packit bfcc33
} // __cplusplus defined.
Packit bfcc33
#endif
Packit bfcc33
Packit bfcc33
#endif