Lines Matching refs:parser

5 /*    Type 1 parser (body).                                                */
21 /* The Type 1 parser is in charge of the following: */
136 T1_New_Parser( T1_Parser parser,
146 psaux->ps_parser_funcs->init( &parser->root, 0, 0, memory );
148 parser->stream = stream;
149 parser->base_len = 0;
150 parser->base_dict = 0;
151 parser->private_len = 0;
152 parser->private_dict = 0;
153 parser->in_pfb = 0;
154 parser->in_memory = 0;
155 parser->single_block = 0;
176 /* When creating a new Type 1 parser, we try to locate and load */
184 /* parser->in_pfb is set if we are in a binary (`.pfb') font. */
185 /* parser->in_memory is set if we have a memory stream. */
206 parser->in_pfb = 1;
214 parser->base_dict = (FT_Byte*)stream->base + stream->pos;
215 parser->base_len = size;
216 parser->in_memory = 1;
225 if ( FT_ALLOC( parser->base_dict, size ) ||
226 FT_STREAM_READ( parser->base_dict, size ) )
228 parser->base_len = size;
231 parser->root.base = parser->base_dict;
232 parser->root.cursor = parser->base_dict;
233 parser->root.limit = parser->root.cursor + parser->base_len;
236 if ( error && !parser->in_memory )
237 FT_FREE( parser->base_dict );
244 T1_Finalize_Parser( T1_Parser parser )
246 FT_Memory memory = parser->root.memory;
250 FT_FREE( parser->private_dict );
253 if ( !parser->in_memory )
254 FT_FREE( parser->base_dict );
256 parser->root.funcs.done( &parser->root );
261 T1_Get_Private_Dict( T1_Parser parser,
264 FT_Stream stream = parser->stream;
265 FT_Memory memory = parser->root.memory;
270 if ( parser->in_pfb )
280 parser->private_len = 0;
290 parser->private_len += size;
298 if ( parser->private_len == 0 )
307 FT_ALLOC( parser->private_dict, parser->private_len ) )
310 parser->private_len = 0;
320 if ( FT_STREAM_READ( parser->private_dict + parser->private_len,
324 parser->private_len += size;
335 FT_Byte* cur = parser->base_dict;
336 FT_Byte* limit = cur + parser->base_len;
366 parser->root.cursor = parser->base_dict;
368 parser->root.limit = cur + 10;
370 cur = parser->root.cursor;
371 limit = parser->root.limit;
378 T1_Skip_PS_Token( parser );
379 if ( parser->root.error )
381 T1_Skip_Spaces ( parser );
382 cur = parser->root.cursor;
389 limit = parser->base_dict + parser->base_len;
397 parser->root.limit = parser->base_dict + parser->base_len;
399 T1_Skip_PS_Token( parser );
400 cur = parser->root.cursor;
401 limit = parser->root.limit;
421 size = (FT_ULong)( parser->base_len - ( cur - parser->base_dict ) );
423 if ( parser->in_memory )
426 if ( FT_ALLOC( parser->private_dict, size + 1 ) )
428 parser->private_len = size;
432 parser->single_block = 1;
433 parser->private_dict = parser->base_dict;
434 parser->private_len = size;
435 parser->base_dict = 0;
436 parser->base_len = 0;
454 parser->root.cursor = cur;
455 (void)psaux->ps_parser_funcs->to_bytes( &parser->root,
456 parser->private_dict,
457 parser->private_len,
460 parser->private_len = len;
463 parser->private_dict[len] = '\0';
467 FT_MEM_MOVE( parser->private_dict, cur, size );
471 psaux->t1_decrypt( parser->private_dict, parser->private_len, 55665U );
473 if ( parser->private_len < 4 )
482 parser->private_dict[0] = ' ';
483 parser->private_dict[1] = ' ';
484 parser->private_dict[2] = ' ';
485 parser->private_dict[3] = ' ';
487 parser->root.base = parser->private_dict;
488 parser->root.cursor = parser->private_dict;
489 parser->root.limit = parser->root.cursor + parser->private_len;