Graphviz 13.0.0~dev.20250607.1528
Loading...
Searching...
No Matches
exparse.y File Reference
#include <assert.h>
#include <expr/exop.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ast/ast.h>
#include <util/gv_ctype.h>
#include <util/streq.h>
#include <expr/exgram.h>

Go to the source code of this file.

Functions

 if (expr.assigned &&!streq($1->name, "begin"))
 
 if (expr.program->frame)
 
 if ($4 && $4->op==S2B)
 
else if (! $2) $$
 

Variables

require define api prefix
 
action_list __pad0__
 
action __pad1__
 
$1 lex = PROCEDURE
 
expr procedure = $1->value = exnewnode(expr.program, PROCEDURE, true, $1->type, NULL, NULL)
 
expr procedure type = INTEGER
 
static Dtdisc_t disc = {.key = offsetof(Exid_t, name)}
 
 statement_list
 
$1 value data procedure body = excast(expr.program, $4, $1->type, NULL, 0)
 
statement_list __pad2__
 
statement_list statement
 
else $$ = exnewnode(expr.program, ';', true, $2->type, $1, $2)
 
statement __pad3__
 
 expr_opt
 
 DECLARE {expr.declare = $1->type
 
 dcl_list
 
expr declare = 0
 

Function Documentation

◆ if() [1/4]

else if ( $2)

References $$, $1, $2, exfreenode(), expr, and Exstate_t::program.

Here is the call graph for this function:

◆ if() [2/4]

else if (   $4 && $4-> = S2B)

Definition at line 224 of file exparse.y.

References Exnode_s::data, exfreenode(), expr, Exdata_u::left, Exdata_u::operand, and Exstate_t::program.

Here is the call graph for this function:

◆ if() [3/4]

if ( expr.assigned &&!  streq $1->name, "begin")

Definition at line 208 of file exparse.y.

References Exnode_s::data, disc, dtopen(), Dtset, dtview(), exnospace(), expr, Exstate_t::procedure, Exstate_t::program, and Expr_s::symbols.

Here is the call graph for this function:

◆ if() [4/4]

if ( expr.program->  frame)

Definition at line 218 of file exparse.y.

References dtview(), expr, NULL, Exstate_t::program, and Expr_s::symbols.

Here is the call graph for this function:

Variable Documentation

◆ $$

else $$ = exnewnode(expr.program, ';', true, $2->type, $1, $2)

Definition at line 250 of file exparse.y.

Referenced by if().

◆ __pad0__

action_list __pad0__

Definition at line 197 of file exparse.y.

◆ __pad1__

action __pad1__

Definition at line 201 of file exparse.y.

◆ __pad2__

statement_list __pad2__

Definition at line 235 of file exparse.y.

◆ __pad3__

statement __pad3__

Definition at line 254 of file exparse.y.

◆ body

$1 value data procedure body = excast(expr.program, $4, $1->type, NULL, 0)

Definition at line 231 of file exparse.y.

◆ dcl_list

dcl_list

Definition at line 262 of file exparse.y.

◆ DECLARE

DECLARE {expr.declare = $1->type

Definition at line 262 of file exparse.y.

◆ declare

expr declare = 0

Definition at line 265 of file exparse.y.

◆ disc

◆ expr_opt

expr_opt

Definition at line 258 of file exparse.y.

◆ lex

$1 lex = PROCEDURE

Definition at line 204 of file exparse.y.

Referenced by extoken_fn().

◆ prefix

require define api prefix

Definition at line 17 of file exparse.y.

◆ procedure

expr procedure = $1->value = exnewnode(expr.program, PROCEDURE, true, $1->type, NULL, NULL)

Definition at line 205 of file exparse.y.

◆ statement

statement_list statement
Initial value:
{
if (!$1)
$$ = $2
else $$
Definition exparse.y:250
alist $2
Definition gmlparse.y:283
glistitem $1
Definition gmlparse.y:238

Definition at line 239 of file exparse.y.

◆ statement_list

statement_list
Initial value:
{
Exstate_t expr
node NULL
Definition grammar.y:180
Exnode_t * procedure
Definition exlib.h:157

Definition at line 215 of file exparse.y.

◆ type