cffparse.h revision 049d6fea481044fcc000e7782e5bc7046fc70844
1/***************************************************************************/ 2/* */ 3/* cffparse.h */ 4/* */ 5/* CFF token stream parser (specification) */ 6/* */ 7/* Copyright 1996-2001, 2002, 2003 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 __CFF_PARSE_H__ 20#define __CFF_PARSE_H__ 21 22 23#include <ft2build.h> 24#include "cfftypes.h" 25#include FT_INTERNAL_OBJECTS_H 26 27 28FT_BEGIN_HEADER 29 30 31#define CFF_MAX_STACK_DEPTH 96 32 33#define CFF_CODE_TOPDICT 0x1000 34#define CFF_CODE_PRIVATE 0x2000 35 36 37 typedef struct CFF_ParserRec_ 38 { 39 FT_Byte* start; 40 FT_Byte* limit; 41 FT_Byte* cursor; 42 43 FT_Byte* stack[CFF_MAX_STACK_DEPTH + 1]; 44 FT_Byte** top; 45 46 FT_UInt object_code; 47 void* object; 48 49 } CFF_ParserRec, *CFF_Parser; 50 51 52 FT_LOCAL( void ) 53 cff_parser_init( CFF_Parser parser, 54 FT_UInt code, 55 void* object ); 56 57 FT_LOCAL( FT_Error ) 58 cff_parser_run( CFF_Parser parser, 59 FT_Byte* start, 60 FT_Byte* limit ); 61 62 63FT_END_HEADER 64 65 66#endif /* __CFF_PARSE_H__ */ 67 68 69/* END */ 70