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