[CMAKE]
[reactos.git] / lib / 3rdparty / freetype / src / psaux / afmparse.h
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 char* s;
61 FT_Fixed f;
62 FT_Int i;
63 FT_Bool b;
64
65 } u;
66
67 } AFM_ValueRec, *AFM_Value;
68
69 #define AFM_MAX_ARGUMENTS 5
70
71 FT_LOCAL( FT_Int )
72 afm_parser_read_vals( AFM_Parser parser,
73 AFM_Value vals,
74 FT_UInt n );
75
76 /* read the next key from the next line or column */
77 FT_LOCAL( char* )
78 afm_parser_next_key( AFM_Parser parser,
79 FT_Bool line,
80 FT_Offset* len );
81
82 FT_END_HEADER
83
84 #endif /* __AFMPARSE_H__ */
85
86
87 /* END */