| /* |
| * Copyright 1993, 2000 Christopher Seiwald. |
| * |
| * This file is part of Jam - see jam.c for Copyright information. |
| */ |
| |
| /* This file is ALSO: |
| * Copyright 2001-2004 David Abrahams. |
| * Distributed under the Boost Software License, Version 1.0. |
| * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) |
| */ |
| |
| #ifndef PARSE_DWA20011020_H |
| #define PARSE_DWA20011020_H |
| |
| #include "frames.h" |
| #include "modules.h" |
| #include "lists.h" |
| |
| /* |
| * parse.h - make and destroy parse trees as driven by the parser. |
| */ |
| |
| /* |
| * Parse tree node. |
| */ |
| |
| struct _PARSE { |
| LIST * (* func)( PARSE *, FRAME * ); |
| PARSE * left; |
| PARSE * right; |
| PARSE * third; |
| char * string; |
| char * string1; |
| int num; |
| int refs; |
| /* module * module; */ |
| char * rulename; |
| char * file; |
| int line; |
| }; |
| |
| void parse_file( char *, FRAME * ); |
| void parse_save( PARSE * ); |
| |
| PARSE * parse_make( |
| LIST * (* func)( PARSE *, FRAME * ), |
| PARSE * left, |
| PARSE * right, |
| PARSE * third, |
| char * string, |
| char * string1, |
| int num ); |
| |
| void parse_refer ( PARSE * ); |
| void parse_free ( PARSE * ); |
| LIST * parse_evaluate( PARSE *, FRAME * ); |
| |
| #endif |