Graphviz 12.0.1~dev.20240716.0800
Loading...
Searching...
No Matches
excc.c File Reference
#include <cgraph/agxbuf.h>
#include <cgraph/exit.h>
#include <expr/exlib.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
Include dependency graph for excc.c:

Go to the source code of this file.

Data Structures

struct  Exccdisc_s
 
struct  Excc_s
 

Macros

#define EX_CC_DUMP   0x8000
 

Typedefs

typedef struct Excc_s Excc_t
 
typedef struct Exccdisc_s Exccdisc_t
 

Functions

static void gen (Excc_t *, Exnode_t *)
 
char * exopname (int op)
 
static void print (Excc_t *cc, Exnode_t *exnode)
 
static void scan (Excc_t *cc, Exnode_t *exnode)
 
static int global (void *object, void *handle)
 
static Excc_texccopen (Expr_t *ex, Exccdisc_t *disc)
 
static int exccclose (Excc_t *cc)
 
int exdump (Expr_t *ex, Exnode_t *node, agxbuf *xb)
 

Variables

static const char quote [] = "\""
 

Macro Definition Documentation

◆ EX_CC_DUMP

#define EX_CC_DUMP   0x8000

Definition at line 47 of file excc.c.

Typedef Documentation

◆ Excc_t

typedef struct Excc_s Excc_t

Definition at line 25 of file excc.c.

◆ Exccdisc_t

typedef struct Exccdisc_s Exccdisc_t

Definition at line 26 of file excc.c.

Function Documentation

◆ exccclose()

static int exccclose ( Excc_t cc)
static

Definition at line 691 of file excc.c.

References agxbuse(), Excc_s::ccdisc, EX_CC_DUMP, Exccdisc_s::flags, free(), and Exccdisc_s::text.

Referenced by exdump().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ exccopen()

static Excc_t * exccopen ( Expr_t ex,
Exccdisc_t disc 
)
static

Definition at line 663 of file excc.c.

References agxbprint(), agxbput(), agxbputc(), Excc_s::ccdisc, Excc_s::disc, dtwalk(), EX_CC_DUMP, Excc_s::expr, exversion, Exccdisc_s::flags, global(), id, Exccdisc_s::id, Excc_s::id, Expr_s::symbols, and Exccdisc_s::text.

Referenced by exdump().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ exdump()

int exdump ( Expr_t ex,
Exnode_t node,
agxbuf xb 
)

Definition at line 714 of file excc.c.

References agxbprint(), agxbputc(), Exnode_s::data, dtfirst, dtnext, EX_CC_DUMP, exccclose(), exccopen(), Exccdisc_s::flags, gen(), Exid_s::lex, Exid_s::name, PROCEDURE, Expr_s::symbols, Exccdisc_s::text, and Exid_s::value.

Referenced by deparse().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ exopname()

char * exopname ( int  op)

Definition at line 58 of file excc.c.

References AND, EQ, GE, LE, LSH, NE, OR, and RSH.

Referenced by gen().

Here is the caller graph for this function:

◆ gen()

static void gen ( Excc_t cc,
Exnode_t exnode 
)
static

Definition at line 199 of file excc.c.

References agxbprint(), agxbput(), agxbputc(), AND, Exnode_s::binary, BREAK, CALL, Excc_s::ccdisc, Exccdisc_s::ccf, CONSTANT, Exdata_u::constant, CONTINUE, Exnode_s::data, DEC, DYNAMIC, EQ, EXIT, exopname(), extype(), F2I, FLOATING, EX_STYPE::floating, fmtesq(), FOR, free(), FUNCTION, GE, gen(), GSUB, I2F, ID, Excc_s::id, IF, IN_OP, INC, Exdata_u::index, INTEGER, EX_STYPE::integer, ITERATE, ITERATER, Excc_s::lastop, LE, Exdata_u::left, Exid_s::name, NE, Exdata_u::next, Exnode_s::op, Exdata_u::operand, OR, print(), PRINT, PRINTF, quote, RAND, Exdata_u::reference, RETURN, Exdata_u::right, S2B, S2F, S2I, S2X, scan(), SCANF, Exdata_u::select, SPLIT, SRAND, Exdata_u::statement, STRING, EX_STYPE::string, SUB, SUBSTR, SWITCH, Exdata_u::symbol, Exccdisc_s::text, Excc_s::tmp, TOKENS, Exnode_s::type, UNSET, UNSIGNED, Exdata_u::value, Exdata_u::variable, WHILE, X2I, and X2X.

Referenced by exdump(), gen(), print(), and scan().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ global()

static int global ( void *  object,
void *  handle 
)
static

Definition at line 650 of file excc.c.

References agxbprint(), DYNAMIC, extype(), Exid_s::lex, Exid_s::name, and Exid_s::type.

Referenced by exccopen(), and exsub().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ print()

static void print ( Excc_t cc,
Exnode_t exnode 
)
static

Definition at line 125 of file excc.c.

References agxbprint(), agxbput(), agxbputc(), Print_s::arg, Excc_s::ccdisc, CONSTANT, Exdata_u::constant, Exnode_s::data, elementsof, fmtesq(), Print_s::format, free(), gen(), EX_STYPE::integer, Print_s::next, Print_s::param, quote, Exccdisc_s::text, and Exdata_u::value.

Referenced by _printXDot(), agnameof(), gen(), jsonPolyline(), jsonRect(), jsonString(), jsonXDot_Op(), printAlign(), printFloat(), printPolyline(), printRect(), printString(), and printXDot_Op().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ scan()

static void scan ( Excc_t cc,
Exnode_t exnode 
)
static

Definition at line 162 of file excc.c.

References agxbprint(), agxbput(), agxbputc(), Print_s::arg, Excc_s::ccdisc, Exnode_s::data, elementsof, fmtesq(), Print_s::format, free(), gen(), Print_s::next, Print_s::param, quote, and Exccdisc_s::text.

Referenced by gen().

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ quote

const char quote[] = "\""
static

Definition at line 49 of file excc.c.

Referenced by gen(), print(), and scan().