1 /***************************************************************************/ |
1 /**************************************************************************** |
2 /* */ |
2 * |
3 /* cidparse.h */ |
3 * cidparse.h |
4 /* */ |
4 * |
5 /* CID-keyed Type1 parser (specification). */ |
5 * CID-keyed Type1 parser (specification). |
6 /* */ |
6 * |
7 /* Copyright 1996-2018 by */ |
7 * Copyright (C) 1996-2019 by |
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ |
8 * David Turner, Robert Wilhelm, and Werner Lemberg. |
9 /* */ |
9 * |
10 /* This file is part of the FreeType project, and may only be used, */ |
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 */ |
11 * modified, and distributed under the terms of the FreeType project |
12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ |
12 * license, LICENSE.TXT. By continuing to use, modify, or distribute |
13 /* this file you indicate that you have read the license and */ |
13 * this file you indicate that you have read the license and |
14 /* understand and accept it fully. */ |
14 * understand and accept it fully. |
15 /* */ |
15 * |
16 /***************************************************************************/ |
16 */ |
17 |
17 |
18 |
18 |
19 #ifndef CIDPARSE_H_ |
19 #ifndef CIDPARSE_H_ |
20 #define CIDPARSE_H_ |
20 #define CIDPARSE_H_ |
21 |
21 |
27 |
27 |
28 |
28 |
29 FT_BEGIN_HEADER |
29 FT_BEGIN_HEADER |
30 |
30 |
31 |
31 |
32 /*************************************************************************/ |
32 /************************************************************************** |
33 /* */ |
33 * |
34 /* <Struct> */ |
34 * @Struct: |
35 /* CID_Parser */ |
35 * CID_Parser |
36 /* */ |
36 * |
37 /* <Description> */ |
37 * @Description: |
38 /* A CID_Parser is an object used to parse a Type 1 fonts very */ |
38 * A CID_Parser is an object used to parse a Type 1 fonts very |
39 /* quickly. */ |
39 * quickly. |
40 /* */ |
40 * |
41 /* <Fields> */ |
41 * @Fields: |
42 /* root :: The root PS_ParserRec fields. */ |
42 * root :: |
43 /* */ |
43 * The root PS_ParserRec fields. |
44 /* stream :: The current input stream. */ |
44 * |
45 /* */ |
45 * stream :: |
46 /* postscript :: A pointer to the data to be parsed. */ |
46 * The current input stream. |
47 /* */ |
47 * |
48 /* postscript_len :: The length of the data to be parsed. */ |
48 * postscript :: |
49 /* */ |
49 * A pointer to the data to be parsed. |
50 /* data_offset :: The start position of the binary data (i.e., the */ |
50 * |
51 /* end of the data to be parsed. */ |
51 * postscript_len :: |
52 /* */ |
52 * The length of the data to be parsed. |
53 /* binary_length :: The length of the data after the `StartData' */ |
53 * |
54 /* command if the data format is hexadecimal. */ |
54 * data_offset :: |
55 /* */ |
55 * The start position of the binary data (i.e., the |
56 /* cid :: A structure which holds the information about */ |
56 * end of the data to be parsed. |
57 /* the current font. */ |
57 * |
58 /* */ |
58 * binary_length :: |
59 /* num_dict :: The number of font dictionaries. */ |
59 * The length of the data after the `StartData' |
60 /* */ |
60 * command if the data format is hexadecimal. |
|
61 * |
|
62 * cid :: |
|
63 * A structure which holds the information about |
|
64 * the current font. |
|
65 * |
|
66 * num_dict :: |
|
67 * The number of font dictionaries. |
|
68 */ |
61 typedef struct CID_Parser_ |
69 typedef struct CID_Parser_ |
62 { |
70 { |
63 PS_ParserRec root; |
71 PS_ParserRec root; |
64 FT_Stream stream; |
72 FT_Stream stream; |
65 |
73 |
84 |
92 |
85 FT_LOCAL( void ) |
93 FT_LOCAL( void ) |
86 cid_parser_done( CID_Parser* parser ); |
94 cid_parser_done( CID_Parser* parser ); |
87 |
95 |
88 |
96 |
89 /*************************************************************************/ |
97 /************************************************************************** |
90 /* */ |
98 * |
91 /* PARSING ROUTINES */ |
99 * PARSING ROUTINES |
92 /* */ |
100 * |
93 /*************************************************************************/ |
101 */ |
94 |
102 |
95 #define cid_parser_skip_spaces( p ) \ |
103 #define cid_parser_skip_spaces( p ) \ |
96 (p)->root.funcs.skip_spaces( &(p)->root ) |
104 (p)->root.funcs.skip_spaces( &(p)->root ) |
97 #define cid_parser_skip_PS_token( p ) \ |
105 #define cid_parser_skip_PS_token( p ) \ |
98 (p)->root.funcs.skip_PS_token( &(p)->root ) |
106 (p)->root.funcs.skip_PS_token( &(p)->root ) |