Subversion Repositories filter_foundry

Rev

Rev 206 | Rev 439 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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