1*37da2899SCharles.Forsyth /***************************************************************************/ 2*37da2899SCharles.Forsyth /* */ 3*37da2899SCharles.Forsyth /* cffparse.h */ 4*37da2899SCharles.Forsyth /* */ 5*37da2899SCharles.Forsyth /* CFF token stream parser (specification) */ 6*37da2899SCharles.Forsyth /* */ 7*37da2899SCharles.Forsyth /* Copyright 1996-2001, 2002 by */ 8*37da2899SCharles.Forsyth /* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9*37da2899SCharles.Forsyth /* */ 10*37da2899SCharles.Forsyth /* This file is part of the FreeType project, and may only be used, */ 11*37da2899SCharles.Forsyth /* modified, and distributed under the terms of the FreeType project */ 12*37da2899SCharles.Forsyth /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13*37da2899SCharles.Forsyth /* this file you indicate that you have read the license and */ 14*37da2899SCharles.Forsyth /* understand and accept it fully. */ 15*37da2899SCharles.Forsyth /* */ 16*37da2899SCharles.Forsyth /***************************************************************************/ 17*37da2899SCharles.Forsyth 18*37da2899SCharles.Forsyth 19*37da2899SCharles.Forsyth #ifndef __CFF_PARSE_H__ 20*37da2899SCharles.Forsyth #define __CFF_PARSE_H__ 21*37da2899SCharles.Forsyth 22*37da2899SCharles.Forsyth 23*37da2899SCharles.Forsyth #include <ft2build.h> 24*37da2899SCharles.Forsyth #include FT_INTERNAL_CFF_TYPES_H 25*37da2899SCharles.Forsyth #include FT_INTERNAL_OBJECTS_H 26*37da2899SCharles.Forsyth 27*37da2899SCharles.Forsyth 28*37da2899SCharles.Forsyth FT_BEGIN_HEADER 29*37da2899SCharles.Forsyth 30*37da2899SCharles.Forsyth 31*37da2899SCharles.Forsyth #define CFF_MAX_STACK_DEPTH 96 32*37da2899SCharles.Forsyth 33*37da2899SCharles.Forsyth #define CFF_CODE_TOPDICT 0x1000 34*37da2899SCharles.Forsyth #define CFF_CODE_PRIVATE 0x2000 35*37da2899SCharles.Forsyth 36*37da2899SCharles.Forsyth 37*37da2899SCharles.Forsyth typedef struct CFF_ParserRec_ 38*37da2899SCharles.Forsyth { 39*37da2899SCharles.Forsyth FT_Byte* start; 40*37da2899SCharles.Forsyth FT_Byte* limit; 41*37da2899SCharles.Forsyth FT_Byte* cursor; 42*37da2899SCharles.Forsyth 43*37da2899SCharles.Forsyth FT_Byte* stack[CFF_MAX_STACK_DEPTH + 1]; 44*37da2899SCharles.Forsyth FT_Byte** top; 45*37da2899SCharles.Forsyth 46*37da2899SCharles.Forsyth FT_UInt object_code; 47*37da2899SCharles.Forsyth void* object; 48*37da2899SCharles.Forsyth 49*37da2899SCharles.Forsyth } CFF_ParserRec, *CFF_Parser; 50*37da2899SCharles.Forsyth 51*37da2899SCharles.Forsyth 52*37da2899SCharles.Forsyth FT_LOCAL( void ) 53*37da2899SCharles.Forsyth cff_parser_init( CFF_Parser parser, 54*37da2899SCharles.Forsyth FT_UInt code, 55*37da2899SCharles.Forsyth void* object ); 56*37da2899SCharles.Forsyth 57*37da2899SCharles.Forsyth FT_LOCAL( FT_Error ) 58*37da2899SCharles.Forsyth cff_parser_run( CFF_Parser parser, 59*37da2899SCharles.Forsyth FT_Byte* start, 60*37da2899SCharles.Forsyth FT_Byte* limit ); 61*37da2899SCharles.Forsyth 62*37da2899SCharles.Forsyth 63*37da2899SCharles.Forsyth FT_END_HEADER 64*37da2899SCharles.Forsyth 65*37da2899SCharles.Forsyth 66*37da2899SCharles.Forsyth #endif /* __CFF_PARSE_H__ */ 67*37da2899SCharles.Forsyth 68*37da2899SCharles.Forsyth 69*37da2899SCharles.Forsyth /* END */ 70