[FREETYPE] Update to v2.6.3. CORE-10964
[reactos.git] / reactos / lib / 3rdparty / freetype / src / psaux / afmparse.h
1 /***************************************************************************/
2 /* */
3 /* afmparse.h */
4 /* */
5 /* AFM parser (specification). */
6 /* */
7 /* Copyright 2006-2016 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_UInt u;
65 FT_Bool b;
66
67 } u;
68
69 } AFM_ValueRec, *AFM_Value;
70
71 #define AFM_MAX_ARGUMENTS 5
72
73 FT_LOCAL( FT_Int )
74 afm_parser_read_vals( AFM_Parser parser,
75 AFM_Value vals,
76 FT_Int n );
77
78 /* read the next key from the next line or column */
79 FT_LOCAL( char* )
80 afm_parser_next_key( AFM_Parser parser,
81 FT_Bool line,
82 FT_Offset* len );
83
84 FT_END_HEADER
85
86 #endif /* AFMPARSE_H_ */
87
88
89 /* END */