1/* 2 * Copyright 1993, 2000 Christopher Seiwald. 3 * 4 * This file is part of Jam - see jam.c for Copyright information. 5 */ 6 7/* 8 * parse.h - make and destroy parse trees as driven by the parser 9 * 10 * 10/22/02 (seiwald) - working return/break/continue statements 11 * 11/04/02 (seiwald) - const-ing for string literals 12 */ 13 14/* 15 * parse tree node 16 */ 17 18typedef struct _PARSE PARSE; 19 20struct _PARSE { 21 LIST *(*func)( PARSE *p, LOL *args, int *jmp ); 22 PARSE *left; 23 PARSE *right; 24 PARSE *third; 25 const char *string; 26 const char *string1; 27 int num; 28 int refs; 29} ; 30 31void parse_file( const char *f ); 32void parse_save( PARSE *p ); 33 34PARSE * parse_make( 35 LIST *(*func)( PARSE *p, LOL *args, int *jmp ), 36 PARSE *left, 37 PARSE *right, 38 PARSE *third, 39 const char *string, 40 const char *string1, 41 int num ); 42 43void parse_refer( PARSE *p ); 44void parse_free( PARSE *p ); 45