[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 {
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 */