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