Rev 439 | Rev 532 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
259 | daniel-mar | 1 | /* |
2 | This file is part of "Filter Foundry", a filter plugin for Adobe Photoshop |
||
3 | Copyright (C) 2003-2009 Toby Thain, toby@telegraphics.com.au |
||
4 | Copyright (C) 2018-2021 Daniel Marschall, ViaThinkSoft |
||
5 | |||
6 | This program is free software; you can redistribute it and/or modify |
||
7 | it under the terms of the GNU General Public License as published by |
||
8 | the Free Software Foundation; either version 2 of the License, or |
||
9 | (at your option) any later version. |
||
10 | |||
11 | This program is distributed in the hope that it will be useful, |
||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||
14 | GNU General Public License for more details. |
||
15 | |||
16 | You should have received a copy of the GNU General Public License |
||
17 | along with this program; if not, write to the Free Software |
||
18 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
||
19 | */ |
||
20 | |||
439 | daniel-mar | 21 | #ifndef NODE_H_ |
22 | #define NODE_H_ |
||
259 | daniel-mar | 23 | |
24 | #include "symtab.h" |
||
25 | |||
518 | daniel-mar | 26 | #define MAXCHILDREN 10 |
259 | daniel-mar | 27 | |
28 | struct node{ |
||
29 | int kind; |
||
30 | struct node *child[MAXCHILDREN],*next; |
||
31 | /* next is a link, used to track allocated nodes - see global node_list */ |
||
32 | union{ |
||
33 | value_type value; |
||
34 | struct sym_rec *sym; |
||
35 | int specialvar; |
||
36 | } v; |
||
37 | }; |
||
38 | |||
39 | #undef YYSTYPE |
||
40 | #define YYSTYPE struct node * |
||
41 | |||
42 | extern struct node *node_list; |
||
43 | |||
44 | struct node *newnode(int kind); |
||
45 | //void freenodes(struct node *p); |
||
46 | void freeallnodes(); |
||
47 | |||
48 | void dumptree(struct node *root,int level); |
||
49 | value_type eval(struct node *root); |
||
50 | void freetree(struct node*); |
||
51 | void checkvars(struct node*p,int varflags[],int *cnv,int *srcrad/*,int *mapused*/,int *state_changing_funcs_used); |
||
52 | |||
53 | #endif |