misc/libfreetype/src/psaux/afmparse.h
changeset 9431 0f5961910e27
parent 9357 a501f5ec7b34
parent 9429 7a97a554ac80
child 9433 f0a8ac191839
equal deleted inserted replaced
9357:a501f5ec7b34 9431:0f5961910e27
     1 /***************************************************************************/
       
     2 /*                                                                         */
       
     3 /*  afmparse.h                                                             */
       
     4 /*                                                                         */
       
     5 /*    AFM parser (specification).                                          */
       
     6 /*                                                                         */
       
     7 /*  Copyright 2006 by                                                      */
       
     8 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
       
     9 /*                                                                         */
       
    10 /*  This file is part of the FreeType project, and may only be used,       */
       
    11 /*  modified, and distributed under the terms of the FreeType project      */
       
    12 /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
       
    13 /*  this file you indicate that you have read the license and              */
       
    14 /*  understand and accept it fully.                                        */
       
    15 /*                                                                         */
       
    16 /***************************************************************************/
       
    17 
       
    18 
       
    19 #ifndef __AFMPARSE_H__
       
    20 #define __AFMPARSE_H__
       
    21 
       
    22 
       
    23 #include <ft2build.h>
       
    24 #include FT_INTERNAL_POSTSCRIPT_AUX_H
       
    25 
       
    26 
       
    27 FT_BEGIN_HEADER
       
    28 
       
    29 
       
    30   FT_LOCAL( FT_Error )
       
    31   afm_parser_init( AFM_Parser  parser,
       
    32                    FT_Memory   memory,
       
    33                    FT_Byte*    base,
       
    34                    FT_Byte*    limit );
       
    35 
       
    36 
       
    37   FT_LOCAL( void )
       
    38   afm_parser_done( AFM_Parser  parser );
       
    39 
       
    40 
       
    41   FT_LOCAL( FT_Error )
       
    42   afm_parser_parse( AFM_Parser  parser );
       
    43 
       
    44 
       
    45   enum  AFM_ValueType_
       
    46   {
       
    47     AFM_VALUE_TYPE_STRING,
       
    48     AFM_VALUE_TYPE_NAME,
       
    49     AFM_VALUE_TYPE_FIXED,   /* real number */
       
    50     AFM_VALUE_TYPE_INTEGER,
       
    51     AFM_VALUE_TYPE_BOOL,
       
    52     AFM_VALUE_TYPE_INDEX    /* glyph index */
       
    53   };
       
    54 
       
    55 
       
    56   typedef struct  AFM_ValueRec_
       
    57   {
       
    58     enum AFM_ValueType_  type;
       
    59     union
       
    60     {
       
    61       char*     s;
       
    62       FT_Fixed  f;
       
    63       FT_Int    i;
       
    64       FT_Bool   b;
       
    65 
       
    66     } u;
       
    67 
       
    68   } AFM_ValueRec, *AFM_Value;
       
    69 
       
    70 #define  AFM_MAX_ARGUMENTS  5
       
    71 
       
    72   FT_LOCAL( FT_Int )
       
    73   afm_parser_read_vals( AFM_Parser  parser,
       
    74                         AFM_Value   vals,
       
    75                         FT_UInt     n );
       
    76 
       
    77   /* read the next key from the next line or column */
       
    78   FT_LOCAL( char* )
       
    79   afm_parser_next_key( AFM_Parser  parser,
       
    80                        FT_Bool     line,
       
    81                        FT_Offset*  len );
       
    82 
       
    83 FT_END_HEADER
       
    84 
       
    85 #endif /* __AFMPARSE_H__ */
       
    86 
       
    87 
       
    88 /* END */