Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
3918 Serge 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 
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 */