hlibsass 0.1.0.0 → 0.1.1.0
raw patch · 15 files changed
+943/−942 lines, 15 filessetup-changed
Files
- Binding/Libsass.hs +0/−19
- Binding/Libsass/Context.hs +0/−358
- Binding/Libsass/Functions.hs +0/−156
- Binding/Libsass/Types.hs +0/−127
- Binding/Libsass/Values.hs +0/−234
- Binding/Libsass/Wrappers.hs +0/−34
- Bindings/Libsass.hs +19/−0
- Bindings/Libsass/Context.hs +358/−0
- Bindings/Libsass/Functions.hs +156/−0
- Bindings/Libsass/Types.hs +127/−0
- Bindings/Libsass/Values.hs +234/−0
- Bindings/Libsass/Wrappers.hs +34/−0
- Setup.hs +6/−6
- hlibsass.cabal +8/−7
- tests/Main.hs +1/−1
− Binding/Libsass.hs
@@ -1,19 +0,0 @@--- |--- This is the main module of the library - it reexports rest of the library, so--- you should only import this one.--{-# LANGUAGE ForeignFunctionInterface #-}-module Binding.Libsass- (- libsass_version- , module Libsass- ) where--import Binding.Libsass.Context as Libsass-import Binding.Libsass.Functions as Libsass-import Binding.Libsass.Types as Libsass-import Binding.Libsass.Wrappers as Libsass-import Binding.Libsass.Values as Libsass-import Foreign.C.String--foreign import ccall unsafe "sass.h" libsass_version :: CString
− Binding/Libsass/Context.hs
@@ -1,358 +0,0 @@-{-# LANGUAGE ForeignFunctionInterface #-}-module Binding.Libsass.Context where--import Binding.Libsass.Types-import Foreign-import Foreign.C.String-import Foreign.C.Types--foreign import ccall unsafe "sass_context.h" sass_make_options- :: IO (Ptr SassOptions)--foreign import ccall unsafe "sass_context.h" sass_make_file_context- :: CString- -> IO (Ptr SassFileContext)---- | Creates and initializes a data context, ie. context that parses string--- instead of a file.------ WARNING! The string that this function takes is released by the libsass--- during cleanup. You must not deallocate it.-foreign import ccall unsafe "sass_context.h" sass_make_data_context- :: CString- -> IO (Ptr SassDataContext)--foreign import ccall safe "sass_context.h" sass_compile_file_context- :: Ptr SassFileContext- -> IO CInt--foreign import ccall safe "sass_context.h" sass_compile_data_context- :: Ptr SassDataContext- -> IO CInt--foreign import ccall unsafe "sass_context.h" sass_make_file_compiler- :: Ptr SassFileContext- -> IO (Ptr SassCompiler)--foreign import ccall unsafe "sass_context.h" sass_make_data_compiler- :: Ptr SassDataContext- -> IO (Ptr SassCompiler)--foreign import ccall safe "sass_context.h" sass_compiler_parse- :: Ptr SassCompiler- -> IO CInt--foreign import ccall safe "sass_context.h" sass_compiler_execute- :: Ptr SassCompiler- -> IO CInt--foreign import ccall unsafe "sass_context.h" sass_delete_compiler- :: Ptr SassCompiler- -> IO ()--foreign import ccall unsafe "sass_context.h" sass_delete_file_context- :: Ptr SassFileContext- -> IO ()--foreign import ccall unsafe "sass_context.h" sass_delete_data_context- :: Ptr SassDataContext- -> IO ()--foreign import ccall unsafe "sass_context.h" sass_file_context_get_context- :: Ptr SassFileContext- -> Ptr SassContext--foreign import ccall unsafe "sass_context.h" sass_data_context_get_context- :: Ptr SassDataContext- -> Ptr SassContext--foreign import ccall unsafe "sass_context.h" sass_context_get_options- :: Ptr SassContext- -> Ptr SassOptions--foreign import ccall unsafe "sass_context.h" sass_file_context_get_options- :: Ptr SassFileContext- -> Ptr SassOptions--foreign import ccall unsafe "sass_context.h" sass_data_context_get_options- :: Ptr SassDataContext- -> Ptr SassOptions--foreign import ccall unsafe "sass_context.h" sass_file_context_set_options- :: Ptr SassFileContext- -> Ptr SassOptions- -> IO ()--foreign import ccall unsafe "sass_context.h" sass_data_context_set_options- :: Ptr SassDataContext- -> Ptr SassOptions- -> IO ()--foreign import ccall unsafe "sass_context.h" sass_option_get_precision- :: Ptr SassOptions- -> IO CInt--foreign import ccall unsafe "sass_context.h" sass_option_get_output_style- :: Ptr SassOptions- -> IO CInt -- ^ Returns 'SassOutputStyle'--foreign import ccall unsafe "sass_context.h" sass_option_get_source_comments- :: Ptr SassOptions- -> IO Bool--foreign import ccall unsafe "sass_context.h" sass_option_get_source_map_embed- :: Ptr SassOptions- -> IO Bool--foreign import ccall unsafe "sass_context.h" sass_option_get_source_map_contents- :: Ptr SassOptions- -> IO Bool--foreign import ccall unsafe "sass_context.h" sass_option_get_omit_source_map_url- :: Ptr SassOptions- -> IO Bool--foreign import ccall unsafe "sass_context.h" sass_option_get_is_indented_syntax_src- :: Ptr SassOptions- -> IO Bool--foreign import ccall unsafe "sass_context.h" sass_option_get_indent- :: Ptr SassOptions- -> IO CString--foreign import ccall unsafe "sass_context.h" sass_option_get_linefeed- :: Ptr SassOptions- -> IO CString--foreign import ccall unsafe "sass_context.h" sass_option_get_input_path- :: Ptr SassOptions- -> IO CString--foreign import ccall unsafe "sass_context.h" sass_option_get_output_path- :: Ptr SassOptions- -> IO CString--foreign import ccall unsafe "sass_context.h" sass_option_get_plugin_path- :: Ptr SassOptions- -> IO CString--foreign import ccall unsafe "sass_context.h" sass_option_get_include_path- :: Ptr SassOptions- -> IO CString--foreign import ccall unsafe "sass_context.h" sass_option_get_source_map_file- :: Ptr SassOptions- -> IO CString--foreign import ccall unsafe "sass_context.h" sass_option_get_source_map_root- :: Ptr SassOptions- -> IO CString--foreign import ccall unsafe "sass_context.h" sass_option_get_c_headers- :: Ptr SassOptions- -> IO SassImporterList--foreign import ccall unsafe "sass_context.h" sass_option_get_c_importers- :: Ptr SassOptions- -> IO SassImporterList--foreign import ccall unsafe "sass_context.h" sass_option_get_c_functions- :: Ptr SassOptions- -> IO SassFunctionList--foreign import ccall unsafe "sass_context.h" sass_option_set_precision- :: Ptr SassOptions- -> CInt- -> IO ()--foreign import ccall unsafe "sass_context.h" sass_option_set_output_style- :: Ptr SassOptions- -> CInt -- ^ 'SassOutputStyle'- -> IO ()--foreign import ccall unsafe "sass_context.h" sass_option_set_source_comments- :: Ptr SassOptions- -> Bool- -> IO ()--foreign import ccall unsafe "sass_context.h" sass_option_set_source_map_embed- :: Ptr SassOptions- -> Bool- -> IO ()--foreign import ccall unsafe "sass_context.h" sass_option_set_source_map_contents- :: Ptr SassOptions- -> Bool- -> IO ()--foreign import ccall unsafe "sass_context.h" sass_option_set_omit_source_map_url- :: Ptr SassOptions- -> Bool- -> IO ()--foreign import ccall unsafe "sass_context.h" sass_option_set_is_indented_syntax_src- :: Ptr SassOptions- -> Bool- -> IO ()--foreign import ccall unsafe "sass_context.h" sass_option_set_indent- :: Ptr SassOptions- -> CString- -> IO ()--foreign import ccall unsafe "sass_context.h" sass_option_set_linefeed- :: Ptr SassOptions- -> CString- -> IO ()--foreign import ccall unsafe "sass_context.h" sass_option_set_input_path- :: Ptr SassOptions- -> CString- -> IO ()--foreign import ccall unsafe "sass_context.h" sass_option_set_output_path- :: Ptr SassOptions- -> CString- -> IO ()--foreign import ccall unsafe "sass_context.h" sass_option_set_plugin_path- :: Ptr SassOptions- -> CString- -> IO ()--foreign import ccall unsafe "sass_context.h" sass_option_set_include_path- :: Ptr SassOptions- -> CString- -> IO ()--foreign import ccall unsafe "sass_context.h" sass_option_set_source_map_file- :: Ptr SassOptions- -> CString- -> IO ()--foreign import ccall unsafe "sass_context.h" sass_option_set_source_map_root- :: Ptr SassOptions- -> CString- -> IO ()--foreign import ccall unsafe "sass_context.h" sass_option_set_c_headers- :: Ptr SassOptions- -> SassImporterList- -> IO ()--foreign import ccall unsafe "sass_context.h" sass_option_set_c_importers- :: Ptr SassOptions- -> SassImporterList- -> IO ()--foreign import ccall unsafe "sass_context.h" sass_option_set_c_functions- :: Ptr SassOptions- -> SassFunctionList- -> IO ()--foreign import ccall unsafe "sass_context.h" sass_context_get_output_string- :: Ptr SassContext- -> IO CString--foreign import ccall unsafe "sass_context.h" sass_context_get_error_status- :: Ptr SassContext- -> IO CInt--foreign import ccall unsafe "sass_context.h" sass_context_get_error_json- :: Ptr SassContext- -> IO CString--foreign import ccall unsafe "sass_context.h" sass_context_get_error_text- :: Ptr SassContext- -> IO CString--foreign import ccall unsafe "sass_context.h" sass_context_get_error_message- :: Ptr SassContext- -> IO CString--foreign import ccall unsafe "sass_context.h" sass_context_get_error_file- :: Ptr SassContext- -> IO CString--foreign import ccall unsafe "sass_context.h" sass_context_get_error_src- :: Ptr SassContext- -> IO CString--foreign import ccall unsafe "sass_context.h" sass_context_get_error_line- :: Ptr SassContext- -> IO CSize--foreign import ccall unsafe "sass_context.h" sass_context_get_error_column- :: Ptr SassContext- -> IO CSize--foreign import ccall unsafe "sass_context.h" sass_context_get_source_map_string- :: Ptr SassContext- -> IO CString--foreign import ccall unsafe "sass_context.h" sass_context_get_included_files- :: Ptr SassContext- -> IO (Ptr CString)--foreign import ccall unsafe "sass_context.h" sass_context_get_included_files_size- :: Ptr SassContext- -> IO CSize--foreign import ccall unsafe "sass_context.h" sass_context_take_error_json- :: Ptr SassContext- -> IO CString--foreign import ccall unsafe "sass_context.h" sass_context_take_error_text- :: Ptr SassContext- -> IO CString--foreign import ccall unsafe "sass_context.h" sass_context_take_error_message- :: Ptr SassContext- -> IO CString--foreign import ccall unsafe "sass_context.h" sass_context_take_error_file- :: Ptr SassContext- -> IO CString--foreign import ccall unsafe "sass_context.h" sass_context_take_output_string- :: Ptr SassContext- -> IO CString--foreign import ccall unsafe "sass_context.h" sass_context_take_source_map_string- :: Ptr SassContext- -> IO CString--foreign import ccall unsafe "sass_context.h" sass_context_take_included_files- :: Ptr SassContext- -> IO (Ptr CString)--foreign import ccall unsafe "sass_context.h" sass_compiler_get_state- :: Ptr SassCompiler- -> IO CInt -- ^ Retruns 'SassCompilerState'--foreign import ccall unsafe "sass_context.h" sass_compiler_get_context- :: Ptr SassCompiler- -> IO (Ptr SassContext)--foreign import ccall unsafe "sass_context.h" sass_compiler_get_import_stack_size- :: Ptr SassCompiler- -> IO CSize--foreign import ccall unsafe "sass_context.h" sass_compiler_get_last_import- :: Ptr SassCompiler- -> IO SassImportEntry--foreign import ccall unsafe "sass_context.h" sass_compiler_get_import_entry- :: Ptr SassCompiler- -> CSize- -> IO SassImportEntry--foreign import ccall unsafe "sass_context.h" sass_option_push_plugin_path- :: Ptr SassOptions- -> CString- -> IO ()--foreign import ccall unsafe "sass_context.h" sass_option_push_include_path- :: Ptr SassOptions- -> CString- -> IO ()
− Binding/Libsass/Functions.hs
@@ -1,156 +0,0 @@-{-# LANGUAGE ForeignFunctionInterface #-}-module Binding.Libsass.Functions where--import Binding.Libsass.Types-import Foreign-import Foreign.C--foreign import ccall unsafe "sass_function.h" sass_make_importer_list- :: CSize- -> IO SassImporterList---- Libsass lacks implementation of these functions.---- foreign import ccall unsafe "sass_function.h" sass_importer_get_list_entry--- :: SassImporterList--- -> CSize--- -> IO SassImporterEntry---- foreign import ccall unsafe "sass_function.h" sass_importer_set_list_entry--- :: SassImporterList--- -> CSize--- -> SassImporterEntry--- -> IO ()--foreign import ccall unsafe "sass_function.h" sass_make_importer- :: SassImporterFn- -> CDouble- -> Ptr ()- -> IO SassImporterEntry--foreign import ccall unsafe "sass_function.h" sass_importer_get_function- :: SassImporterEntry- -> IO SassImporterFn--foreign import ccall unsafe "sass_function.h" sass_importer_get_priority- :: SassImporterEntry- -> IO CDouble-foreign import ccall unsafe "sass_function.h" sass_importer_get_cookie- :: SassImporterEntry- -> IO (Ptr ())--foreign import ccall unsafe "sass_function.h" sass_delete_importer- :: SassImporterEntry- -> IO ()--foreign import ccall unsafe "sass_function.h" sass_make_import_list- :: CSize- -> IO SassImportList--foreign import ccall unsafe "sass_function.h" sass_make_import_entry- :: CString- -> CString- -> CString- -> IO SassImportEntry--foreign import ccall unsafe "sass_function.h" sass_make_import- :: CString- -> CString- -> CString- -> CString- -> IO SassImportEntry--foreign import ccall unsafe "sass_function.h" sass_import_set_error- :: SassImportEntry- -> CString- -> CSize- -> CSize- -> IO SassImportEntry--foreign import ccall unsafe "sass_function.h" sass_import_set_list_entry- :: SassImportList- -> CSize- -> SassImportEntry- -> IO ()--foreign import ccall unsafe "sass_function.h" sass_import_get_list_entry- :: SassImportList- -> CSize- -> IO SassImportEntry--foreign import ccall unsafe "sass_function.h" sass_import_get_path- :: SassImportEntry- -> IO CString--foreign import ccall unsafe "sass_function.h" sass_import_get_base- :: SassImportEntry- -> IO CString--foreign import ccall unsafe "sass_function.h" sass_import_get_source- :: SassImportEntry- -> IO CString--foreign import ccall unsafe "sass_function.h" sass_import_get_srcmap- :: SassImportEntry- -> IO CString--foreign import ccall unsafe "sass_function.h" sass_import_take_source- :: SassImportEntry- -> IO CString--foreign import ccall unsafe "sass_function.h" sass_import_take_srcmap- :: SassImportEntry- -> IO CString--foreign import ccall unsafe "sass_function.h" sass_import_get_error_line- :: SassImportEntry- -> IO CSize--foreign import ccall unsafe "sass_function.h" sass_import_get_error_column- :: SassImportEntry- -> IO CSize--foreign import ccall unsafe "sass_function.h" sass_import_get_error_message- :: SassImportEntry- -> IO CString--foreign import ccall unsafe "sass_function.h" sass_delete_import_list- :: SassImportList- -> IO ()--foreign import ccall unsafe "sass_function.h" sass_delete_import- :: SassImportEntry- -> IO ()--foreign import ccall unsafe "sass_function.h" sass_make_function_list- :: CSize- -> IO SassFunctionList--foreign import ccall unsafe "sass_function.h" sass_make_function- :: CString- -> SassFunctionFn- -> Ptr ()- -> IO SassFunctionEntry--foreign import ccall unsafe "sass_function.h" sass_function_get_list_entry- :: SassFunctionList- -> CSize- -> IO SassFunctionEntry--foreign import ccall unsafe "sass_function.h" sass_function_set_list_entry- :: SassFunctionList- -> CSize- -> SassFunctionEntry- -> IO ()--foreign import ccall unsafe "sass_function.h" sass_function_get_signature- :: SassFunctionEntry- -> IO CString--foreign import ccall unsafe "sass_function.h" sass_function_get_function- :: SassFunctionEntry- -> IO SassFunctionFn--foreign import ccall unsafe "sass_function.h" sass_function_get_cookie- :: SassFunctionEntry- -> IO (Ptr ())
− Binding/Libsass/Types.hs
@@ -1,127 +0,0 @@-{-# LANGUAGE EmptyDataDecls #-}-module Binding.Libsass.Types where--import Foreign-import Foreign.C.String---- From sass.h---- | Defines output style of compiled CSS.-data SassOutputStyle = SassStyleNested- | SassStyleExpanded- | SassStyleCompact- | SassStyleCompressed- deriving (Eq, Show)--instance Enum SassOutputStyle where- fromEnum SassStyleNested = 0- fromEnum SassStyleExpanded = 1- fromEnum SassStyleCompact = 2- fromEnum SassStyleCompressed = 3-- toEnum 0 = SassStyleNested- toEnum 1 = SassStyleExpanded- toEnum 2 = SassStyleCompact- toEnum 3 = SassStyleCompressed- toEnum u = error ("SassOutputStyle.toEnum: Cannot match " ++ show u)---- From sass_context.h--data SassCompiler-data SassOptions-data SassContext-data SassFileContext-data SassDataContext--data SassCompilerState = SassCompilerCreated- | SassCompilerParsed- | SassCompilerExecuted- deriving (Show, Eq)--instance Enum SassCompilerState where- fromEnum SassCompilerCreated = 0- fromEnum SassCompilerParsed = 1- fromEnum SassCompilerExecuted = 2-- toEnum 0 = SassCompilerCreated- toEnum 1 = SassCompilerParsed- toEnum 2 = SassCompilerExecuted- toEnum u = error ("SassCompilerState.toEnum: Cannot match " ++ show u)---- From sass_functions.h--data SassImport-data SassImporter-data SassFunction--type SassImportEntry = Ptr SassImport-type SassImportList = Ptr (Ptr SassImport)-type SassImporterEntry = Ptr SassImporter-type SassImporterList = Ptr (Ptr SassImporter)--type SassImporterFnType = - CString- -> SassImporterEntry- -> Ptr SassCompiler- -> IO SassImportList-type SassImporterFn = FunPtr SassImporterFnType--type SassFunctionEntry = Ptr SassFunction-type SassFunctionList = Ptr (Ptr SassFunction)--type SassFunctionFnType =- Ptr SassValue- -> SassFunctionEntry- -> Ptr SassOptions- -> IO (Ptr SassValue)-type SassFunctionFn = FunPtr SassFunctionFnType---- From sass_values.h--data SassValue--data SassTag = SassBoolean- | SassNumber- | SassColor- | SassString- | SassList- | SassMap- | SassNull- | SassError- | SassWarning- deriving (Eq, Show)--instance Enum SassTag where- fromEnum SassBoolean = 0- fromEnum SassNumber = 1- fromEnum SassColor = 2- fromEnum SassString = 3- fromEnum SassList = 4- fromEnum SassMap = 5- fromEnum SassNull = 6- fromEnum SassError = 7- fromEnum SassWarning = 8-- toEnum 0 = SassBoolean- toEnum 1 = SassNumber- toEnum 2 = SassColor- toEnum 3 = SassString- toEnum 4 = SassList- toEnum 5 = SassMap- toEnum 6 = SassNull- toEnum 7 = SassError- toEnum 8 = SassWarning- toEnum u = error ("SassTag.toEnum: Cannot match " ++ show u)---- ^ Separator used in Sass lists.-data SassSeparator = SassSeparatorComma- | SassSeparatorSpace- deriving (Eq, Show)--instance Enum SassSeparator where- fromEnum SassSeparatorComma = 0- fromEnum SassSeparatorSpace = 1-- toEnum 0 = SassSeparatorComma- toEnum 1 = SassSeparatorSpace- toEnum u = error ("SassSeparator.toEnum: Cannot match " ++ show u)
− Binding/Libsass/Values.hs
@@ -1,234 +0,0 @@-{-# LANGUAGE ForeignFunctionInterface #-}-module Binding.Libsass.Values where--import Binding.Libsass.Types-import Foreign-import Foreign.C--foreign import ccall unsafe "sass_values.h" sass_value_get_tag- :: Ptr SassValue- -> IO CInt -- ^ Returns 'SassTag'--foreign import ccall unsafe "sass_values.h" sass_value_is_null- :: Ptr SassValue- -> IO Bool--foreign import ccall unsafe "sass_values.h" sass_value_is_number- :: Ptr SassValue- -> IO Bool--foreign import ccall unsafe "sass_values.h" sass_value_is_string- :: Ptr SassValue- -> IO Bool--foreign import ccall unsafe "sass_values.h" sass_value_is_boolean- :: Ptr SassValue- -> IO Bool--foreign import ccall unsafe "sass_values.h" sass_value_is_color- :: Ptr SassValue- -> IO Bool--foreign import ccall unsafe "sass_values.h" sass_value_is_list- :: Ptr SassValue- -> IO Bool--foreign import ccall unsafe "sass_values.h" sass_value_is_map- :: Ptr SassValue- -> IO Bool--foreign import ccall unsafe "sass_values.h" sass_value_is_error- :: Ptr SassValue- -> IO Bool--foreign import ccall unsafe "sass_values.h" sass_value_is_warning- :: Ptr SassValue- -> IO Bool--foreign import ccall unsafe "sass_values.h" sass_number_get_value- :: Ptr SassValue- -> IO CDouble--foreign import ccall unsafe "sass_values.h" sass_number_set_value- :: Ptr SassValue- -> CDouble- -> IO ()--foreign import ccall unsafe "sass_values.h" sass_number_get_unit- :: Ptr SassValue- -> IO CString--foreign import ccall unsafe "sass_values.h" sass_number_set_unit- :: Ptr SassValue- -> CString- -> IO ()--foreign import ccall unsafe "sass_values.h" sass_string_get_value- :: Ptr SassValue- -> IO CString--foreign import ccall unsafe "sass_values.h" sass_string_set_value- :: Ptr SassValue- -> CString- -> IO ()--foreign import ccall unsafe "sass_values.h" sass_boolean_get_value- :: Ptr SassValue- -> IO Bool--foreign import ccall unsafe "sass_values.h" sass_boolean_set_value- :: Ptr SassValue- -> Bool- -> IO ()--foreign import ccall unsafe "sass_values.h" sass_color_get_r- :: Ptr SassValue- -> IO CDouble--foreign import ccall unsafe "sass_values.h" sass_color_set_r- :: Ptr SassValue- -> CDouble- -> IO ()--foreign import ccall unsafe "sass_values.h" sass_color_get_g- :: Ptr SassValue- -> IO CDouble--foreign import ccall unsafe "sass_values.h" sass_color_set_g- :: Ptr SassValue- -> CDouble- -> IO ()--foreign import ccall unsafe "sass_values.h" sass_color_get_b- :: Ptr SassValue- -> IO CDouble--foreign import ccall unsafe "sass_values.h" sass_color_set_b- :: Ptr SassValue- -> CDouble- -> IO ()--foreign import ccall unsafe "sass_values.h" sass_color_get_a- :: Ptr SassValue- -> IO CDouble--foreign import ccall unsafe "sass_values.h" sass_color_set_a- :: Ptr SassValue- -> CDouble- -> IO ()--foreign import ccall unsafe "sass_values.h" sass_list_get_length- :: Ptr SassValue- -> IO CSize--foreign import ccall unsafe "sass_values.h" sass_list_get_separator- :: Ptr SassValue- -> IO CInt -- ^ Retrurns 'SassSeparator'--foreign import ccall unsafe "sass_values.h" sass_list_set_separator- :: Ptr SassValue- -> CInt -- ^ 'SassSeparator'- -> IO ()--foreign import ccall unsafe "sass_values.h" sass_list_get_value- :: Ptr SassValue- -> CSize- -> IO (Ptr SassValue)--foreign import ccall unsafe "sass_values.h" sass_list_set_value- :: Ptr SassValue- -> CSize- -> Ptr SassValue- -> IO ()--foreign import ccall unsafe "sass_values.h" sass_map_get_length- :: Ptr SassValue- -> IO CSize--foreign import ccall unsafe "sass_values.h" sass_map_get_key- :: Ptr SassValue- -> CSize- -> IO (Ptr SassValue)--foreign import ccall unsafe "sass_values.h" sass_map_set_key- :: Ptr SassValue- -> CSize- -> Ptr SassValue- -> IO ()--foreign import ccall unsafe "sass_values.h" sass_map_get_value- :: Ptr SassValue- -> CSize- -> IO (Ptr SassValue)--foreign import ccall unsafe "sass_values.h" sass_map_set_value- :: Ptr SassValue- -> CSize- -> Ptr SassValue- -> IO ()--foreign import ccall unsafe "sass_values.h" sass_error_get_message- :: Ptr SassValue- -> IO CString--foreign import ccall unsafe "sass_values.h" sass_error_set_message- :: Ptr SassValue- -> CString- -> IO ()--foreign import ccall unsafe "sass_values.h" sass_warning_get_message- :: Ptr SassValue- -> IO CString--foreign import ccall unsafe "sass_values.h" sass_warning_set_message- :: Ptr SassValue- -> CString- -> IO ()--foreign import ccall unsafe "sass_values.h" sass_make_null- :: IO (Ptr SassValue)--foreign import ccall unsafe "sass_values.h" sass_make_boolean- :: Bool- -> IO (Ptr SassValue)--foreign import ccall unsafe "sass_values.h" sass_make_string- :: CString- -> IO (Ptr SassValue)--foreign import ccall unsafe "sass_values.h" sass_make_number- :: CDouble- -> CString- -> IO (Ptr SassValue)--foreign import ccall unsafe "sass_values.h" sass_make_color- :: CDouble- -> CDouble- -> CDouble- -> CDouble- -> IO (Ptr SassValue)--foreign import ccall unsafe "sass_values.h" sass_make_list- :: CSize- -> CInt -- ^ 'SassSeparator'- -> IO (Ptr SassValue)--foreign import ccall unsafe "sass_values.h" sass_make_map- :: CSize- -> IO (Ptr SassValue)--foreign import ccall unsafe "sass_values.h" sass_make_error- :: CString- -> IO (Ptr SassValue)--foreign import ccall unsafe "sass_values.h" sass_make_warning- :: CString- -> IO (Ptr SassValue)--foreign import ccall unsafe "sass_values.h" sass_delete_value- :: Ptr SassValue- -> IO ()--foreign import ccall unsafe "sass_values.h" sass_clone_value- :: Ptr SassValue- -> IO (Ptr SassValue)
− Binding/Libsass/Wrappers.hs
@@ -1,34 +0,0 @@-{-# LANGUAGE ForeignFunctionInterface #-}-module Binding.Libsass.Wrappers where--import Binding.Libsass.Types-import Foreign--foreign import ccall safe "wrapper" mkSassImporterFn- :: SassImporterFnType- -> IO SassImporterFn--foreign import ccall safe "wrapper" mkSassFunctionFn- :: SassFunctionFnType- -> IO SassFunctionFn--foreign import ccall "sass_context.h &sass_delete_compiler"- p_sass_delete_compiler :: FunPtr (Ptr SassCompiler -> IO ())--foreign import ccall "sass_context.h &sass_delete_file_context"- p_sass_delete_file_context :: FunPtr (Ptr SassFileContext -> IO ())--foreign import ccall "sass_context.h &sass_delete_data_context"- p_sass_delete_data_context :: FunPtr (Ptr SassDataContext -> IO ())--foreign import ccall "sass_function.h &sass_delete_import_list"- p_sass_delete_import_list :: FunPtr (SassImportList -> IO ())--foreign import ccall "sass_function.h &sass_delete_import"- p_sass_delete_import :: FunPtr (SassImportEntry -> IO ())--foreign import ccall "sass_function.h &sass_delete_importer"- p_sass_delete_importer :: FunPtr (SassImporterEntry -> IO ())--foreign import ccall "sass_values.h &sass_delete_value"- p_sass_delete_value :: FunPtr (Ptr SassValue -> IO ())
+ Bindings/Libsass.hs view
@@ -0,0 +1,19 @@+-- |+-- This is the main module of the library - it reexports rest of the library, so+-- you should only import this one.++{-# LANGUAGE ForeignFunctionInterface #-}+module Bindings.Libsass+ (+ libsass_version+ , module Libsass+ ) where++import Bindings.Libsass.Context as Libsass+import Bindings.Libsass.Functions as Libsass+import Bindings.Libsass.Types as Libsass+import Bindings.Libsass.Wrappers as Libsass+import Bindings.Libsass.Values as Libsass+import Foreign.C.String++foreign import ccall unsafe "sass.h" libsass_version :: CString
+ Bindings/Libsass/Context.hs view
@@ -0,0 +1,358 @@+{-# LANGUAGE ForeignFunctionInterface #-}+module Bindings.Libsass.Context where++import Bindings.Libsass.Types+import Foreign+import Foreign.C.String+import Foreign.C.Types++foreign import ccall unsafe "sass_context.h" sass_make_options+ :: IO (Ptr SassOptions)++foreign import ccall unsafe "sass_context.h" sass_make_file_context+ :: CString+ -> IO (Ptr SassFileContext)++-- | Creates and initializes a data context, ie. context that parses string+-- instead of a file.+--+-- WARNING! The string that this function takes is released by the libsass+-- during cleanup. You must not deallocate it.+foreign import ccall unsafe "sass_context.h" sass_make_data_context+ :: CString+ -> IO (Ptr SassDataContext)++foreign import ccall safe "sass_context.h" sass_compile_file_context+ :: Ptr SassFileContext+ -> IO CInt++foreign import ccall safe "sass_context.h" sass_compile_data_context+ :: Ptr SassDataContext+ -> IO CInt++foreign import ccall unsafe "sass_context.h" sass_make_file_compiler+ :: Ptr SassFileContext+ -> IO (Ptr SassCompiler)++foreign import ccall unsafe "sass_context.h" sass_make_data_compiler+ :: Ptr SassDataContext+ -> IO (Ptr SassCompiler)++foreign import ccall safe "sass_context.h" sass_compiler_parse+ :: Ptr SassCompiler+ -> IO CInt++foreign import ccall safe "sass_context.h" sass_compiler_execute+ :: Ptr SassCompiler+ -> IO CInt++foreign import ccall unsafe "sass_context.h" sass_delete_compiler+ :: Ptr SassCompiler+ -> IO ()++foreign import ccall unsafe "sass_context.h" sass_delete_file_context+ :: Ptr SassFileContext+ -> IO ()++foreign import ccall unsafe "sass_context.h" sass_delete_data_context+ :: Ptr SassDataContext+ -> IO ()++foreign import ccall unsafe "sass_context.h" sass_file_context_get_context+ :: Ptr SassFileContext+ -> Ptr SassContext++foreign import ccall unsafe "sass_context.h" sass_data_context_get_context+ :: Ptr SassDataContext+ -> Ptr SassContext++foreign import ccall unsafe "sass_context.h" sass_context_get_options+ :: Ptr SassContext+ -> Ptr SassOptions++foreign import ccall unsafe "sass_context.h" sass_file_context_get_options+ :: Ptr SassFileContext+ -> Ptr SassOptions++foreign import ccall unsafe "sass_context.h" sass_data_context_get_options+ :: Ptr SassDataContext+ -> Ptr SassOptions++foreign import ccall unsafe "sass_context.h" sass_file_context_set_options+ :: Ptr SassFileContext+ -> Ptr SassOptions+ -> IO ()++foreign import ccall unsafe "sass_context.h" sass_data_context_set_options+ :: Ptr SassDataContext+ -> Ptr SassOptions+ -> IO ()++foreign import ccall unsafe "sass_context.h" sass_option_get_precision+ :: Ptr SassOptions+ -> IO CInt++foreign import ccall unsafe "sass_context.h" sass_option_get_output_style+ :: Ptr SassOptions+ -> IO CInt -- ^ Returns 'SassOutputStyle'++foreign import ccall unsafe "sass_context.h" sass_option_get_source_comments+ :: Ptr SassOptions+ -> IO Bool++foreign import ccall unsafe "sass_context.h" sass_option_get_source_map_embed+ :: Ptr SassOptions+ -> IO Bool++foreign import ccall unsafe "sass_context.h" sass_option_get_source_map_contents+ :: Ptr SassOptions+ -> IO Bool++foreign import ccall unsafe "sass_context.h" sass_option_get_omit_source_map_url+ :: Ptr SassOptions+ -> IO Bool++foreign import ccall unsafe "sass_context.h" sass_option_get_is_indented_syntax_src+ :: Ptr SassOptions+ -> IO Bool++foreign import ccall unsafe "sass_context.h" sass_option_get_indent+ :: Ptr SassOptions+ -> IO CString++foreign import ccall unsafe "sass_context.h" sass_option_get_linefeed+ :: Ptr SassOptions+ -> IO CString++foreign import ccall unsafe "sass_context.h" sass_option_get_input_path+ :: Ptr SassOptions+ -> IO CString++foreign import ccall unsafe "sass_context.h" sass_option_get_output_path+ :: Ptr SassOptions+ -> IO CString++foreign import ccall unsafe "sass_context.h" sass_option_get_plugin_path+ :: Ptr SassOptions+ -> IO CString++foreign import ccall unsafe "sass_context.h" sass_option_get_include_path+ :: Ptr SassOptions+ -> IO CString++foreign import ccall unsafe "sass_context.h" sass_option_get_source_map_file+ :: Ptr SassOptions+ -> IO CString++foreign import ccall unsafe "sass_context.h" sass_option_get_source_map_root+ :: Ptr SassOptions+ -> IO CString++foreign import ccall unsafe "sass_context.h" sass_option_get_c_headers+ :: Ptr SassOptions+ -> IO SassImporterList++foreign import ccall unsafe "sass_context.h" sass_option_get_c_importers+ :: Ptr SassOptions+ -> IO SassImporterList++foreign import ccall unsafe "sass_context.h" sass_option_get_c_functions+ :: Ptr SassOptions+ -> IO SassFunctionList++foreign import ccall unsafe "sass_context.h" sass_option_set_precision+ :: Ptr SassOptions+ -> CInt+ -> IO ()++foreign import ccall unsafe "sass_context.h" sass_option_set_output_style+ :: Ptr SassOptions+ -> CInt -- ^ 'SassOutputStyle'+ -> IO ()++foreign import ccall unsafe "sass_context.h" sass_option_set_source_comments+ :: Ptr SassOptions+ -> Bool+ -> IO ()++foreign import ccall unsafe "sass_context.h" sass_option_set_source_map_embed+ :: Ptr SassOptions+ -> Bool+ -> IO ()++foreign import ccall unsafe "sass_context.h" sass_option_set_source_map_contents+ :: Ptr SassOptions+ -> Bool+ -> IO ()++foreign import ccall unsafe "sass_context.h" sass_option_set_omit_source_map_url+ :: Ptr SassOptions+ -> Bool+ -> IO ()++foreign import ccall unsafe "sass_context.h" sass_option_set_is_indented_syntax_src+ :: Ptr SassOptions+ -> Bool+ -> IO ()++foreign import ccall unsafe "sass_context.h" sass_option_set_indent+ :: Ptr SassOptions+ -> CString+ -> IO ()++foreign import ccall unsafe "sass_context.h" sass_option_set_linefeed+ :: Ptr SassOptions+ -> CString+ -> IO ()++foreign import ccall unsafe "sass_context.h" sass_option_set_input_path+ :: Ptr SassOptions+ -> CString+ -> IO ()++foreign import ccall unsafe "sass_context.h" sass_option_set_output_path+ :: Ptr SassOptions+ -> CString+ -> IO ()++foreign import ccall unsafe "sass_context.h" sass_option_set_plugin_path+ :: Ptr SassOptions+ -> CString+ -> IO ()++foreign import ccall unsafe "sass_context.h" sass_option_set_include_path+ :: Ptr SassOptions+ -> CString+ -> IO ()++foreign import ccall unsafe "sass_context.h" sass_option_set_source_map_file+ :: Ptr SassOptions+ -> CString+ -> IO ()++foreign import ccall unsafe "sass_context.h" sass_option_set_source_map_root+ :: Ptr SassOptions+ -> CString+ -> IO ()++foreign import ccall unsafe "sass_context.h" sass_option_set_c_headers+ :: Ptr SassOptions+ -> SassImporterList+ -> IO ()++foreign import ccall unsafe "sass_context.h" sass_option_set_c_importers+ :: Ptr SassOptions+ -> SassImporterList+ -> IO ()++foreign import ccall unsafe "sass_context.h" sass_option_set_c_functions+ :: Ptr SassOptions+ -> SassFunctionList+ -> IO ()++foreign import ccall unsafe "sass_context.h" sass_context_get_output_string+ :: Ptr SassContext+ -> IO CString++foreign import ccall unsafe "sass_context.h" sass_context_get_error_status+ :: Ptr SassContext+ -> IO CInt++foreign import ccall unsafe "sass_context.h" sass_context_get_error_json+ :: Ptr SassContext+ -> IO CString++foreign import ccall unsafe "sass_context.h" sass_context_get_error_text+ :: Ptr SassContext+ -> IO CString++foreign import ccall unsafe "sass_context.h" sass_context_get_error_message+ :: Ptr SassContext+ -> IO CString++foreign import ccall unsafe "sass_context.h" sass_context_get_error_file+ :: Ptr SassContext+ -> IO CString++foreign import ccall unsafe "sass_context.h" sass_context_get_error_src+ :: Ptr SassContext+ -> IO CString++foreign import ccall unsafe "sass_context.h" sass_context_get_error_line+ :: Ptr SassContext+ -> IO CSize++foreign import ccall unsafe "sass_context.h" sass_context_get_error_column+ :: Ptr SassContext+ -> IO CSize++foreign import ccall unsafe "sass_context.h" sass_context_get_source_map_string+ :: Ptr SassContext+ -> IO CString++foreign import ccall unsafe "sass_context.h" sass_context_get_included_files+ :: Ptr SassContext+ -> IO (Ptr CString)++foreign import ccall unsafe "sass_context.h" sass_context_get_included_files_size+ :: Ptr SassContext+ -> IO CSize++foreign import ccall unsafe "sass_context.h" sass_context_take_error_json+ :: Ptr SassContext+ -> IO CString++foreign import ccall unsafe "sass_context.h" sass_context_take_error_text+ :: Ptr SassContext+ -> IO CString++foreign import ccall unsafe "sass_context.h" sass_context_take_error_message+ :: Ptr SassContext+ -> IO CString++foreign import ccall unsafe "sass_context.h" sass_context_take_error_file+ :: Ptr SassContext+ -> IO CString++foreign import ccall unsafe "sass_context.h" sass_context_take_output_string+ :: Ptr SassContext+ -> IO CString++foreign import ccall unsafe "sass_context.h" sass_context_take_source_map_string+ :: Ptr SassContext+ -> IO CString++foreign import ccall unsafe "sass_context.h" sass_context_take_included_files+ :: Ptr SassContext+ -> IO (Ptr CString)++foreign import ccall unsafe "sass_context.h" sass_compiler_get_state+ :: Ptr SassCompiler+ -> IO CInt -- ^ Retruns 'SassCompilerState'++foreign import ccall unsafe "sass_context.h" sass_compiler_get_context+ :: Ptr SassCompiler+ -> IO (Ptr SassContext)++foreign import ccall unsafe "sass_context.h" sass_compiler_get_import_stack_size+ :: Ptr SassCompiler+ -> IO CSize++foreign import ccall unsafe "sass_context.h" sass_compiler_get_last_import+ :: Ptr SassCompiler+ -> IO SassImportEntry++foreign import ccall unsafe "sass_context.h" sass_compiler_get_import_entry+ :: Ptr SassCompiler+ -> CSize+ -> IO SassImportEntry++foreign import ccall unsafe "sass_context.h" sass_option_push_plugin_path+ :: Ptr SassOptions+ -> CString+ -> IO ()++foreign import ccall unsafe "sass_context.h" sass_option_push_include_path+ :: Ptr SassOptions+ -> CString+ -> IO ()
+ Bindings/Libsass/Functions.hs view
@@ -0,0 +1,156 @@+{-# LANGUAGE ForeignFunctionInterface #-}+module Bindings.Libsass.Functions where++import Bindings.Libsass.Types+import Foreign+import Foreign.C++foreign import ccall unsafe "sass_function.h" sass_make_importer_list+ :: CSize+ -> IO SassImporterList++-- Libsass lacks implementation of these functions.++-- foreign import ccall unsafe "sass_function.h" sass_importer_get_list_entry+-- :: SassImporterList+-- -> CSize+-- -> IO SassImporterEntry++-- foreign import ccall unsafe "sass_function.h" sass_importer_set_list_entry+-- :: SassImporterList+-- -> CSize+-- -> SassImporterEntry+-- -> IO ()++foreign import ccall unsafe "sass_function.h" sass_make_importer+ :: SassImporterFn+ -> CDouble+ -> Ptr ()+ -> IO SassImporterEntry++foreign import ccall unsafe "sass_function.h" sass_importer_get_function+ :: SassImporterEntry+ -> IO SassImporterFn++foreign import ccall unsafe "sass_function.h" sass_importer_get_priority+ :: SassImporterEntry+ -> IO CDouble+foreign import ccall unsafe "sass_function.h" sass_importer_get_cookie+ :: SassImporterEntry+ -> IO (Ptr ())++foreign import ccall unsafe "sass_function.h" sass_delete_importer+ :: SassImporterEntry+ -> IO ()++foreign import ccall unsafe "sass_function.h" sass_make_import_list+ :: CSize+ -> IO SassImportList++foreign import ccall unsafe "sass_function.h" sass_make_import_entry+ :: CString+ -> CString+ -> CString+ -> IO SassImportEntry++foreign import ccall unsafe "sass_function.h" sass_make_import+ :: CString+ -> CString+ -> CString+ -> CString+ -> IO SassImportEntry++foreign import ccall unsafe "sass_function.h" sass_import_set_error+ :: SassImportEntry+ -> CString+ -> CSize+ -> CSize+ -> IO SassImportEntry++foreign import ccall unsafe "sass_function.h" sass_import_set_list_entry+ :: SassImportList+ -> CSize+ -> SassImportEntry+ -> IO ()++foreign import ccall unsafe "sass_function.h" sass_import_get_list_entry+ :: SassImportList+ -> CSize+ -> IO SassImportEntry++foreign import ccall unsafe "sass_function.h" sass_import_get_path+ :: SassImportEntry+ -> IO CString++foreign import ccall unsafe "sass_function.h" sass_import_get_base+ :: SassImportEntry+ -> IO CString++foreign import ccall unsafe "sass_function.h" sass_import_get_source+ :: SassImportEntry+ -> IO CString++foreign import ccall unsafe "sass_function.h" sass_import_get_srcmap+ :: SassImportEntry+ -> IO CString++foreign import ccall unsafe "sass_function.h" sass_import_take_source+ :: SassImportEntry+ -> IO CString++foreign import ccall unsafe "sass_function.h" sass_import_take_srcmap+ :: SassImportEntry+ -> IO CString++foreign import ccall unsafe "sass_function.h" sass_import_get_error_line+ :: SassImportEntry+ -> IO CSize++foreign import ccall unsafe "sass_function.h" sass_import_get_error_column+ :: SassImportEntry+ -> IO CSize++foreign import ccall unsafe "sass_function.h" sass_import_get_error_message+ :: SassImportEntry+ -> IO CString++foreign import ccall unsafe "sass_function.h" sass_delete_import_list+ :: SassImportList+ -> IO ()++foreign import ccall unsafe "sass_function.h" sass_delete_import+ :: SassImportEntry+ -> IO ()++foreign import ccall unsafe "sass_function.h" sass_make_function_list+ :: CSize+ -> IO SassFunctionList++foreign import ccall unsafe "sass_function.h" sass_make_function+ :: CString+ -> SassFunctionFn+ -> Ptr ()+ -> IO SassFunctionEntry++foreign import ccall unsafe "sass_function.h" sass_function_get_list_entry+ :: SassFunctionList+ -> CSize+ -> IO SassFunctionEntry++foreign import ccall unsafe "sass_function.h" sass_function_set_list_entry+ :: SassFunctionList+ -> CSize+ -> SassFunctionEntry+ -> IO ()++foreign import ccall unsafe "sass_function.h" sass_function_get_signature+ :: SassFunctionEntry+ -> IO CString++foreign import ccall unsafe "sass_function.h" sass_function_get_function+ :: SassFunctionEntry+ -> IO SassFunctionFn++foreign import ccall unsafe "sass_function.h" sass_function_get_cookie+ :: SassFunctionEntry+ -> IO (Ptr ())
+ Bindings/Libsass/Types.hs view
@@ -0,0 +1,127 @@+{-# LANGUAGE EmptyDataDecls #-}+module Bindings.Libsass.Types where++import Foreign+import Foreign.C.String++-- From sass.h++-- | Defines output style of compiled CSS.+data SassOutputStyle = SassStyleNested+ | SassStyleExpanded+ | SassStyleCompact+ | SassStyleCompressed+ deriving (Eq, Show)++instance Enum SassOutputStyle where+ fromEnum SassStyleNested = 0+ fromEnum SassStyleExpanded = 1+ fromEnum SassStyleCompact = 2+ fromEnum SassStyleCompressed = 3++ toEnum 0 = SassStyleNested+ toEnum 1 = SassStyleExpanded+ toEnum 2 = SassStyleCompact+ toEnum 3 = SassStyleCompressed+ toEnum u = error ("SassOutputStyle.toEnum: Cannot match " ++ show u)++-- From sass_context.h++data SassCompiler+data SassOptions+data SassContext+data SassFileContext+data SassDataContext++data SassCompilerState = SassCompilerCreated+ | SassCompilerParsed+ | SassCompilerExecuted+ deriving (Show, Eq)++instance Enum SassCompilerState where+ fromEnum SassCompilerCreated = 0+ fromEnum SassCompilerParsed = 1+ fromEnum SassCompilerExecuted = 2++ toEnum 0 = SassCompilerCreated+ toEnum 1 = SassCompilerParsed+ toEnum 2 = SassCompilerExecuted+ toEnum u = error ("SassCompilerState.toEnum: Cannot match " ++ show u)++-- From sass_functions.h++data SassImport+data SassImporter+data SassFunction++type SassImportEntry = Ptr SassImport+type SassImportList = Ptr (Ptr SassImport)+type SassImporterEntry = Ptr SassImporter+type SassImporterList = Ptr (Ptr SassImporter)++type SassImporterFnType = + CString+ -> SassImporterEntry+ -> Ptr SassCompiler+ -> IO SassImportList+type SassImporterFn = FunPtr SassImporterFnType++type SassFunctionEntry = Ptr SassFunction+type SassFunctionList = Ptr (Ptr SassFunction)++type SassFunctionFnType =+ Ptr SassValue+ -> SassFunctionEntry+ -> Ptr SassOptions+ -> IO (Ptr SassValue)+type SassFunctionFn = FunPtr SassFunctionFnType++-- From sass_values.h++data SassValue++data SassTag = SassBoolean+ | SassNumber+ | SassColor+ | SassString+ | SassList+ | SassMap+ | SassNull+ | SassError+ | SassWarning+ deriving (Eq, Show)++instance Enum SassTag where+ fromEnum SassBoolean = 0+ fromEnum SassNumber = 1+ fromEnum SassColor = 2+ fromEnum SassString = 3+ fromEnum SassList = 4+ fromEnum SassMap = 5+ fromEnum SassNull = 6+ fromEnum SassError = 7+ fromEnum SassWarning = 8++ toEnum 0 = SassBoolean+ toEnum 1 = SassNumber+ toEnum 2 = SassColor+ toEnum 3 = SassString+ toEnum 4 = SassList+ toEnum 5 = SassMap+ toEnum 6 = SassNull+ toEnum 7 = SassError+ toEnum 8 = SassWarning+ toEnum u = error ("SassTag.toEnum: Cannot match " ++ show u)++-- ^ Separator used in Sass lists.+data SassSeparator = SassSeparatorComma+ | SassSeparatorSpace+ deriving (Eq, Show)++instance Enum SassSeparator where+ fromEnum SassSeparatorComma = 0+ fromEnum SassSeparatorSpace = 1++ toEnum 0 = SassSeparatorComma+ toEnum 1 = SassSeparatorSpace+ toEnum u = error ("SassSeparator.toEnum: Cannot match " ++ show u)
+ Bindings/Libsass/Values.hs view
@@ -0,0 +1,234 @@+{-# LANGUAGE ForeignFunctionInterface #-}+module Bindings.Libsass.Values where++import Bindings.Libsass.Types+import Foreign+import Foreign.C++foreign import ccall unsafe "sass_values.h" sass_value_get_tag+ :: Ptr SassValue+ -> IO CInt -- ^ Returns 'SassTag'++foreign import ccall unsafe "sass_values.h" sass_value_is_null+ :: Ptr SassValue+ -> IO Bool++foreign import ccall unsafe "sass_values.h" sass_value_is_number+ :: Ptr SassValue+ -> IO Bool++foreign import ccall unsafe "sass_values.h" sass_value_is_string+ :: Ptr SassValue+ -> IO Bool++foreign import ccall unsafe "sass_values.h" sass_value_is_boolean+ :: Ptr SassValue+ -> IO Bool++foreign import ccall unsafe "sass_values.h" sass_value_is_color+ :: Ptr SassValue+ -> IO Bool++foreign import ccall unsafe "sass_values.h" sass_value_is_list+ :: Ptr SassValue+ -> IO Bool++foreign import ccall unsafe "sass_values.h" sass_value_is_map+ :: Ptr SassValue+ -> IO Bool++foreign import ccall unsafe "sass_values.h" sass_value_is_error+ :: Ptr SassValue+ -> IO Bool++foreign import ccall unsafe "sass_values.h" sass_value_is_warning+ :: Ptr SassValue+ -> IO Bool++foreign import ccall unsafe "sass_values.h" sass_number_get_value+ :: Ptr SassValue+ -> IO CDouble++foreign import ccall unsafe "sass_values.h" sass_number_set_value+ :: Ptr SassValue+ -> CDouble+ -> IO ()++foreign import ccall unsafe "sass_values.h" sass_number_get_unit+ :: Ptr SassValue+ -> IO CString++foreign import ccall unsafe "sass_values.h" sass_number_set_unit+ :: Ptr SassValue+ -> CString+ -> IO ()++foreign import ccall unsafe "sass_values.h" sass_string_get_value+ :: Ptr SassValue+ -> IO CString++foreign import ccall unsafe "sass_values.h" sass_string_set_value+ :: Ptr SassValue+ -> CString+ -> IO ()++foreign import ccall unsafe "sass_values.h" sass_boolean_get_value+ :: Ptr SassValue+ -> IO Bool++foreign import ccall unsafe "sass_values.h" sass_boolean_set_value+ :: Ptr SassValue+ -> Bool+ -> IO ()++foreign import ccall unsafe "sass_values.h" sass_color_get_r+ :: Ptr SassValue+ -> IO CDouble++foreign import ccall unsafe "sass_values.h" sass_color_set_r+ :: Ptr SassValue+ -> CDouble+ -> IO ()++foreign import ccall unsafe "sass_values.h" sass_color_get_g+ :: Ptr SassValue+ -> IO CDouble++foreign import ccall unsafe "sass_values.h" sass_color_set_g+ :: Ptr SassValue+ -> CDouble+ -> IO ()++foreign import ccall unsafe "sass_values.h" sass_color_get_b+ :: Ptr SassValue+ -> IO CDouble++foreign import ccall unsafe "sass_values.h" sass_color_set_b+ :: Ptr SassValue+ -> CDouble+ -> IO ()++foreign import ccall unsafe "sass_values.h" sass_color_get_a+ :: Ptr SassValue+ -> IO CDouble++foreign import ccall unsafe "sass_values.h" sass_color_set_a+ :: Ptr SassValue+ -> CDouble+ -> IO ()++foreign import ccall unsafe "sass_values.h" sass_list_get_length+ :: Ptr SassValue+ -> IO CSize++foreign import ccall unsafe "sass_values.h" sass_list_get_separator+ :: Ptr SassValue+ -> IO CInt -- ^ Retrurns 'SassSeparator'++foreign import ccall unsafe "sass_values.h" sass_list_set_separator+ :: Ptr SassValue+ -> CInt -- ^ 'SassSeparator'+ -> IO ()++foreign import ccall unsafe "sass_values.h" sass_list_get_value+ :: Ptr SassValue+ -> CSize+ -> IO (Ptr SassValue)++foreign import ccall unsafe "sass_values.h" sass_list_set_value+ :: Ptr SassValue+ -> CSize+ -> Ptr SassValue+ -> IO ()++foreign import ccall unsafe "sass_values.h" sass_map_get_length+ :: Ptr SassValue+ -> IO CSize++foreign import ccall unsafe "sass_values.h" sass_map_get_key+ :: Ptr SassValue+ -> CSize+ -> IO (Ptr SassValue)++foreign import ccall unsafe "sass_values.h" sass_map_set_key+ :: Ptr SassValue+ -> CSize+ -> Ptr SassValue+ -> IO ()++foreign import ccall unsafe "sass_values.h" sass_map_get_value+ :: Ptr SassValue+ -> CSize+ -> IO (Ptr SassValue)++foreign import ccall unsafe "sass_values.h" sass_map_set_value+ :: Ptr SassValue+ -> CSize+ -> Ptr SassValue+ -> IO ()++foreign import ccall unsafe "sass_values.h" sass_error_get_message+ :: Ptr SassValue+ -> IO CString++foreign import ccall unsafe "sass_values.h" sass_error_set_message+ :: Ptr SassValue+ -> CString+ -> IO ()++foreign import ccall unsafe "sass_values.h" sass_warning_get_message+ :: Ptr SassValue+ -> IO CString++foreign import ccall unsafe "sass_values.h" sass_warning_set_message+ :: Ptr SassValue+ -> CString+ -> IO ()++foreign import ccall unsafe "sass_values.h" sass_make_null+ :: IO (Ptr SassValue)++foreign import ccall unsafe "sass_values.h" sass_make_boolean+ :: Bool+ -> IO (Ptr SassValue)++foreign import ccall unsafe "sass_values.h" sass_make_string+ :: CString+ -> IO (Ptr SassValue)++foreign import ccall unsafe "sass_values.h" sass_make_number+ :: CDouble+ -> CString+ -> IO (Ptr SassValue)++foreign import ccall unsafe "sass_values.h" sass_make_color+ :: CDouble+ -> CDouble+ -> CDouble+ -> CDouble+ -> IO (Ptr SassValue)++foreign import ccall unsafe "sass_values.h" sass_make_list+ :: CSize+ -> CInt -- ^ 'SassSeparator'+ -> IO (Ptr SassValue)++foreign import ccall unsafe "sass_values.h" sass_make_map+ :: CSize+ -> IO (Ptr SassValue)++foreign import ccall unsafe "sass_values.h" sass_make_error+ :: CString+ -> IO (Ptr SassValue)++foreign import ccall unsafe "sass_values.h" sass_make_warning+ :: CString+ -> IO (Ptr SassValue)++foreign import ccall unsafe "sass_values.h" sass_delete_value+ :: Ptr SassValue+ -> IO ()++foreign import ccall unsafe "sass_values.h" sass_clone_value+ :: Ptr SassValue+ -> IO (Ptr SassValue)
+ Bindings/Libsass/Wrappers.hs view
@@ -0,0 +1,34 @@+{-# LANGUAGE ForeignFunctionInterface #-}+module Bindings.Libsass.Wrappers where++import Bindings.Libsass.Types+import Foreign++foreign import ccall safe "wrapper" mkSassImporterFn+ :: SassImporterFnType+ -> IO SassImporterFn++foreign import ccall safe "wrapper" mkSassFunctionFn+ :: SassFunctionFnType+ -> IO SassFunctionFn++foreign import ccall "sass_context.h &sass_delete_compiler"+ p_sass_delete_compiler :: FunPtr (Ptr SassCompiler -> IO ())++foreign import ccall "sass_context.h &sass_delete_file_context"+ p_sass_delete_file_context :: FunPtr (Ptr SassFileContext -> IO ())++foreign import ccall "sass_context.h &sass_delete_data_context"+ p_sass_delete_data_context :: FunPtr (Ptr SassDataContext -> IO ())++foreign import ccall "sass_function.h &sass_delete_import_list"+ p_sass_delete_import_list :: FunPtr (SassImportList -> IO ())++foreign import ccall "sass_function.h &sass_delete_import"+ p_sass_delete_import :: FunPtr (SassImportEntry -> IO ())++foreign import ccall "sass_function.h &sass_delete_importer"+ p_sass_delete_importer :: FunPtr (SassImporterEntry -> IO ())++foreign import ccall "sass_values.h &sass_delete_value"+ p_sass_delete_value :: FunPtr (Ptr SassValue -> IO ())
Setup.hs view
@@ -12,8 +12,8 @@ main = defaultMainWithHooks simpleUserHooks { preConf = \a f -> makeLibsass a f >> preConf simpleUserHooks a f- , copyHook = copyLibsass , confHook = \a f -> confHook simpleUserHooks a f >>= updateExtraLibDirs+ , postCopy = copyLibsass , postClean = cleanLibsass } @@ -39,14 +39,14 @@ } } -copyLibsass :: PackageDescription -> LocalBuildInfo -> UserHooks -> CopyFlags- -> IO ()-copyLibsass pkg_descr lbi _ flags = do+copyLibsass :: Args -> CopyFlags -> PackageDescription -> LocalBuildInfo -> IO ()+copyLibsass _ flags pkg_descr lbi = do let libPref = libdir . absoluteInstallDirs pkg_descr lbi . fromFlag . copyDest $ flags- rawSystemExit (fromFlag $ copyVerbosity flags) "cp"- ["libsass/lib/libsass.a", libPref]+ let verb = fromFlag $ copyVerbosity flags+ rawSystemExit verb "mkdir" ["-p", libPref]+ rawSystemExit verb "cp" ["libsass/lib/libsass.a", libPref] cleanLibsass :: Args -> CleanFlags -> PackageDescription -> () -> IO ()
hlibsass.cabal view
@@ -1,9 +1,10 @@ name: hlibsass-version: 0.1.0.0+version: 0.1.1.0 license: MIT license-file: LICENSE author: Jakub Fijałkowski <fiolek94@gmail.com> maintainer: fiolek94@gmail.com+homepage: https://github.com/jakubfijalkowski/hlibsass category: Foreign build-type: Custom cabal-version: >= 1.10@@ -34,12 +35,12 @@ library exposed-modules:- Binding.Libsass- , Binding.Libsass.Types- , Binding.Libsass.Wrappers- , Binding.Libsass.Context- , Binding.Libsass.Functions- , Binding.Libsass.Values+ Bindings.Libsass+ , Bindings.Libsass.Types+ , Bindings.Libsass.Wrappers+ , Bindings.Libsass.Context+ , Bindings.Libsass.Functions+ , Bindings.Libsass.Values build-depends: base >= 4.7 && < 5 hs-source-dirs: . default-language: Haskell2010
tests/Main.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE BangPatterns #-}-import Binding.Libsass+import Bindings.Libsass import Foreign import Foreign.C import Test.Hspec