Graphviz 12.0.1~dev.20240716.0800
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 <stddef.h>
22#include <stdio.h>
23
24 typedef struct {
27 } case_stmt;
28
29#define UDATA "userval"
30
31 typedef struct {
35 } nval_t;
36
37 typedef struct {
39 char lock;
40 } gval_t;
41
42 typedef struct {
44 } uval_t;
45
46#define OBJ(p) ((Agobj_t*)p)
47
48 typedef nval_t ndata;
49 typedef uval_t edata;
50 typedef gval_t gdata;
51
52#define nData(n) ((ndata*)(aggetrec(n,UDATA,0)))
53#define gData(g) ((gdata*)(aggetrec(g,UDATA,0)))
54
55#define SRCOUT 0x1
56#define INDUCE 0x2
57#define CLONE 0x4
58
59#define WALKSG 0x1
60#define BEGG 0x2
61#define ENDG 0x4
62
71
81
82 extern comp_prog *compileProg(parse_prog *, Gpr_t *, int);
83 extern void freeCompileProg (comp_prog *p);
84 extern int usesGraph(comp_prog *);
85 extern int walksGraph(comp_block *);
86 extern Agraph_t *readG(FILE *fp);
87 extern Agraph_t *openG(char *name, Agdesc_t);
88 extern Agraph_t *openSubg(Agraph_t * g, char *name);
89 extern Agnode_t *openNode(Agraph_t * g, char *name);
90 extern Agedge_t *openEdge(Agraph_t* g, Agnode_t * t, Agnode_t * h, char *key);
91
92#ifdef __cplusplus
93}
94#endif
Agraph_t * openG(char *name, Agdesc_t)
Definition compile.c:2570
int walksGraph(comp_block *)
Definition compile.c:2534
Agedge_t * openEdge(Agraph_t *g, Agnode_t *t, Agnode_t *h, char *key)
Definition compile.c:2612
Agraph_t * openSubg(Agraph_t *g, char *name)
Definition compile.c:2586
void freeCompileProg(comp_prog *p)
Definition compile.c:2515
Agnode_t * openNode(Agraph_t *g, char *name)
Definition compile.c:2599
Agraph_t * readG(FILE *fp)
Definition compile.c:2552
comp_prog * compileProg(parse_prog *, Gpr_t *, int)
Definition compile.c:2430
uval_t edata
Definition compile.h:49
int usesGraph(comp_prog *)
Definition compile.c:2543
nval_t ndata
Definition compile.h:48
gval_t gdata
Definition compile.h:50
disc key
Definition exparse.y:214
graph descriptor
Definition cgraph.h:284
graph or subgraph
Definition cgraph.h:425
implementation of Agrec_t
Definition cgraph.h:172
Definition expr.h:202
Exnode_t * guard
Definition compile.h:25
Exnode_t * action
Definition compile.h:26
case_stmt * node_stmts
Definition compile.h:68
Exnode_t * begg_stmt
Definition compile.h:64
size_t n_nstmts
Definition compile.h:66
size_t n_estmts
Definition compile.h:67
case_stmt * edge_stmts
Definition compile.h:69
int walks
Definition compile.h:65
Exnode_t * begin_stmt
Definition compile.h:75
comp_block * blocks
Definition compile.h:77
Expr_t * prog
Definition compile.h:74
size_t n_blocks
Definition compile.h:76
Exnode_t * endg_stmt
Definition compile.h:78
int flags
Definition compile.h:73
Exnode_t * end_stmt
Definition compile.h:79
Agrec_t h
Definition compile.h:38
char lock
Definition compile.h:39
Agedge_t * ine
Definition compile.h:34
Extype_t iu
Definition compile.h:33
Agrec_t h
Definition compile.h:32
Agrec_t h
Definition compile.h:43