sheepy

build system (sheepy) and package manager (spm) for C
git clone https://spartatek.se/git/sheepy.git
Log | Files | Refs | README | LICENSE

Converter.i (2273B)


      1 /* -*- C++ -*-  vim: set syntax=cpp:
      2  * (C) 2007-2008 Frank-Rene Schaefer  */
      3 #ifndef  __QUEX_INCLUDE_GUARD__BUFFER__LEXATOMS__CONVERTER__CONVERTER_I
      4 #define  __QUEX_INCLUDE_GUARD__BUFFER__LEXATOMS__CONVERTER__CONVERTER_I
      5 
      6 #include "MemoryManager"
      7 #include "Converter"
      8 
      9 QUEX_NAMESPACE_MAIN_OPEN
     10 
     11 QUEX_INLINE bool
     12 QUEX_NAME(Converter_construct)(QUEX_NAME(Converter)* me,
     13                                const char*  FromCodec, const char* ToCodec,
     14                                bool         (*open)(struct QUEX_NAME(Converter_tag)*, 
     15                                                     const char* FromCodec, const char* ToCodec),  
     16                                E_LoadResult (*convert)(QUEX_NAME(Converter)*, 
     17                                                        uint8_t**             source, const uint8_t*             SourceEnd, 
     18                                                        QUEX_TYPE_LEXATOM** drain,  const QUEX_TYPE_LEXATOM* DrainEnd),
     19                                void         (*delete_self)(QUEX_NAME(Converter)*),
     20                                ptrdiff_t    (*stomach_byte_n)(QUEX_NAME(Converter)*),
     21                                void         (*stomach_clear)(QUEX_NAME(Converter)*))
     22 /* RETURNS: true  -- construction succesful
     23  *          false -- else.                                                   */
     24 {
     25     me->convert            = convert;
     26     me->stomach_byte_n     = stomach_byte_n;
     27     me->stomach_clear      = stomach_clear;
     28     me->delete_self        = delete_self;
     29 
     30     me->virginity_f        = true;
     31     me->byte_n_per_lexatom = -1;     /* No fixed ratio 'byte_n/lexatom' */
     32     me->ownership          = E_Ownership_EXTERNAL;
     33 
     34     /* Opens internally a conversion handle for the conversion from 'FromCodec'
     35      * to 'ToCodec'. Pass '0x0' as 'ToCodec' in order to indicate a conversion
     36      * to unicode of size sizeof(QUEX_TYPE_LEXATOM). 
     37      *
     38      * It is the task of the particular implementation to provide the 'ToCodec'
     39      * which is appropriate for sizeof(QUEX_TYPE_LEXATOM), i.e.  ASCII, UCS2,
     40      * UCS4.                                                                 */
     41 
     42     return open(me, FromCodec, ToCodec);
     43 }
     44 
     45 QUEX_NAMESPACE_MAIN_CLOSE
     46 
     47 #endif /*  __QUEX_INCLUDE_GUARD__BUFFER__LEXATOMS__CONVERTER__CONVERTER_I */