blob: 882a029f42fabe8f003567ba3fbbb039ec6f56e2 (
plain)
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
/*
* 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.
*/
#define PARSE_APPEND 0
#define PARSE_FOREACH 1
#define PARSE_IF 2
#define PARSE_EVAL 3
#define PARSE_INCLUDE 4
#define PARSE_LIST 5
#define PARSE_LOCAL 6
#define PARSE_MODULE 7
#define PARSE_CLASS 8
#define PARSE_NULL 9
#define PARSE_ON 10
#define PARSE_RULE 11
#define PARSE_RULES 12
#define PARSE_SET 13
#define PARSE_SETCOMP 14
#define PARSE_SETEXEC 15
#define PARSE_SETTINGS 16
#define PARSE_SWITCH 17
#define PARSE_WHILE 18
/*
* Parse tree node.
*/
struct _PARSE {
int type;
PARSE * left;
PARSE * right;
PARSE * third;
OBJECT * string;
OBJECT * string1;
int num;
int refs;
OBJECT * rulename;
OBJECT * file;
int line;
};
void parse_file( OBJECT *, FRAME * );
void parse_save( PARSE * );
PARSE * parse_make(
int type,
PARSE * left,
PARSE * right,
PARSE * third,
OBJECT * string,
OBJECT * string1,
int num );
void parse_refer ( PARSE * );
void parse_free ( PARSE * );
LIST * parse_evaluate( PARSE *, FRAME * );
#endif
|