Graphviz 13.0.0~dev.20241220.2304
Loading...
Searching...
No Matches
compile.h
Go to the documentation of this file.
1/*************************************************************************
2 * Copyright (c) 2011 AT&T Intellectual Property
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * https://www.eclipse.org/legal/epl-v10.html
7 *
8 * Contributors: Details at https://graphviz.org
9 *************************************************************************/
10
11#pragma once
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
17#include <sfio/sfio.h>
18#include <parse.h>
19#include <gprstate.h>
20#include <expr/expr.h>
21#include <stdbool.h>
22#include <stddef.h>
23#include <stdio.h>
24
25 typedef struct {
28 } case_stmt;
29
30#define UDATA "userval"
31
32 typedef struct {
36 } nval_t;
37
38typedef struct {
39 bool locked: 1;
40 bool zombie: 1;
41} lock_t;
42
43 typedef struct {
46 } gval_t;
47
48 typedef struct {
50 } edata;
51
52#define OBJ(p) ((Agobj_t*)p)
53
54 typedef nval_t ndata;
55 typedef gval_t gdata;
56
57#define nData(n) ((ndata*)(aggetrec(n,UDATA,0)))
58#define gData(g) ((gdata*)(aggetrec(g,UDATA,0)))
59
60typedef struct {
61 bool srcout: 1;
62 bool induce: 1;
63 bool clone: 1;
65
74
84
86 extern void freeCompileProg (comp_prog *p);
87 extern Agraph_t *readG(FILE *fp);
88 extern Agraph_t *openG(char *name, Agdesc_t);
89 extern Agraph_t *openSubg(Agraph_t * g, char *name);
90 extern Agnode_t *openNode(Agraph_t * g, char *name);
91 extern Agedge_t *openEdge(Agraph_t* g, Agnode_t * t, Agnode_t * h, char *key);
92
93#ifdef __cplusplus
94}
95#endif
Agraph_t * openG(char *name, Agdesc_t)
Definition compile.c:2487
Agedge_t * openEdge(Agraph_t *g, Agnode_t *t, Agnode_t *h, char *key)
Definition compile.c:2526
Agraph_t * openSubg(Agraph_t *g, char *name)
Definition compile.c:2502
void freeCompileProg(comp_prog *p)
Definition compile.c:2449
comp_prog * compileProg(parse_prog *, Gpr_t *, compflags_t)
Definition compile.c:2369
Agnode_t * openNode(Agraph_t *g, char *name)
Definition compile.c:2514
Agraph_t * readG(FILE *fp)
Definition compile.c:2469
nval_t ndata
Definition compile.h:54
gval_t gdata
Definition compile.h:55
graph descriptor
Definition cgraph.h:284
graph or subgraph
Definition cgraph.h:425
implementation of Agrec_t
Definition cgraph.h:172
Definition expr.h:200
Exnode_t * guard
Definition compile.h:26
Exnode_t * action
Definition compile.h:27
case_stmt * node_stmts
Definition compile.h:71
Exnode_t * begg_stmt
Definition compile.h:67
size_t n_nstmts
Definition compile.h:69
size_t n_estmts
Definition compile.h:70
case_stmt * edge_stmts
Definition compile.h:72
bool does_walk_graph
does this block have a node or edge statement?
Definition compile.h:68
Exnode_t * begin_stmt
Definition compile.h:78
comp_block * blocks
Definition compile.h:80
Expr_t * prog
Definition compile.h:77
size_t n_blocks
Definition compile.h:79
bool uses_graph
does this program use the input graph?
Definition compile.h:76
Exnode_t * endg_stmt
Definition compile.h:81
Exnode_t * end_stmt
Definition compile.h:82
bool srcout
Definition compile.h:61
bool clone
Definition compile.h:63
bool induce
Definition compile.h:62
Agrec_t h
Definition compile.h:49
Agrec_t h
Definition compile.h:44
lock_t lock
Definition compile.h:45
bool zombie
was a deletion request recorded while locked?
Definition compile.h:40
bool locked
is the lock currently taken?
Definition compile.h:39
Agedge_t * ine
Definition compile.h:35
Extype_t iu
Definition compile.h:34
Agrec_t h
Definition compile.h:33