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

Go to the source code of this file.

Data Structures

struct  Excc_t
 excc() state More...
 

Functions

static void gen (Excc_t *, Exnode_t *)
 
char * exopname (long op)
 
static void print (Excc_t *cc, Exnode_t *exnode)
 
static void scan (Excc_t *cc, Exnode_t *exnode)
 
void exdump (Expr_t *ex, Exnode_t *node, agxbuf *xb)
 

Variables

static const char quote [] = "\""
 

Function Documentation

◆ exdump()

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

Definition at line 629 of file excc.c.

References agxbprint(), agxbputc(), dtfirst, dtnext, Excc_t::expr, gen(), PROCEDURE, and Expr_s::symbols.

Referenced by deparse().

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

◆ exopname()

char * exopname ( long  op)

Definition at line 41 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 181 of file excc.c.

References agxbprint(), agxbput(), agxbputc(), AND, Exnode_s::binary, BREAK, CALL, 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, IF, IN_OP, INC, Exdata_u::index, INTEGER, EX_STYPE::integer, ITERATE, ITERATOR, LE, Exdata_u::left, Exid_s::name, NE, Exdata_u::next, Exnode_s::op, Exdata_u::operand, OR, print(), PRINT, PRINTF, quote, RAND, 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, Excc_t::text, Excc_t::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:

◆ print()

static void print ( Excc_t cc,
Exnode_t exnode 
)
static

Definition at line 107 of file excc.c.

References agxbprint(), agxbput(), agxbputc(), Print_s::arg, CONSTANT, Exdata_u::constant, Exnode_s::data, elementsof, fmtesq(), Print_s::format, free(), gen(), EX_STYPE::integer, Print_s::next, Print_s::param, quote, Excc_t::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 144 of file excc.c.

References agxbprint(), agxbput(), agxbputc(), Print_s::arg, Exnode_s::data, elementsof, fmtesq(), Print_s::format, free(), gen(), Print_s::next, Print_s::param, quote, and Excc_t::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 33 of file excc.c.

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