mirror of
https://github.com/postgres/postgres.git
synced 2025-06-16 06:01:02 +03:00
Cleanup makeTargetEntry and remove internal.c.
This commit is contained in:
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/executor/execJunk.c,v 1.11 1998/06/15 19:28:18 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/executor/execJunk.c,v 1.12 1998/07/20 19:53:44 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -20,7 +20,7 @@
|
|||||||
#include "access/heapam.h"
|
#include "access/heapam.h"
|
||||||
#include "executor/executor.h"
|
#include "executor/executor.h"
|
||||||
#include "nodes/relation.h"
|
#include "nodes/relation.h"
|
||||||
#include "optimizer/tlist.h" /* for MakeTLE */
|
#include "optimizer/tlist.h" /* for makeTargetEntry */
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------
|
/*-------------------------------------------------------------------------
|
||||||
* XXX this stuff should be rewritten to take advantage
|
* XXX this stuff should be rewritten to take advantage
|
||||||
@ -111,9 +111,7 @@ ExecInitJunkFilter(List *targetList)
|
|||||||
/*
|
/*
|
||||||
* create a new target list entry
|
* create a new target list entry
|
||||||
*/
|
*/
|
||||||
tle = makeNode(TargetEntry);
|
tle = makeTargetEntry(cleanResdom, expr);
|
||||||
tle->resdom = cleanResdom;
|
|
||||||
tle->expr = expr;
|
|
||||||
cleanTargetList = lappend(cleanTargetList, tle);
|
cleanTargetList = lappend(cleanTargetList, tle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -134,7 +132,7 @@ ExecInitJunkFilter(List *targetList)
|
|||||||
cleanResdom = (Resdom) copyObject((Node) resdom);
|
cleanResdom = (Resdom) copyObject((Node) resdom);
|
||||||
set_resno(cleanResdom, cleanResno);
|
set_resno(cleanResdom, cleanResno);
|
||||||
cleanResno++;
|
cleanResno++;
|
||||||
tle = (List) MakeTLE(cleanResdom, (Expr) expr);
|
tle = (List) makeTargetEntry(cleanResdom, (Node *) expr);
|
||||||
set_fj_innerNode(cleanFjoin, tle);
|
set_fj_innerNode(cleanFjoin, tle);
|
||||||
|
|
||||||
foreach(fjListP, lnext(fjList))
|
foreach(fjListP, lnext(fjList))
|
||||||
@ -150,7 +148,7 @@ ExecInitJunkFilter(List *targetList)
|
|||||||
/*
|
/*
|
||||||
* create a new target list entry
|
* create a new target list entry
|
||||||
*/
|
*/
|
||||||
tle = (List) MakeTLE(cleanResdom, (Expr) expr);
|
tle = (List) makeTargetEntry(cleanResdom, (Node *) expr);
|
||||||
cleanFjList = lappend(cleanFjList, tle);
|
cleanFjList = lappend(cleanFjList, tle);
|
||||||
}
|
}
|
||||||
lappend(cleanTargetList, cleanFjList);
|
lappend(cleanTargetList, cleanFjList);
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/nodes/makefuncs.c,v 1.10 1998/07/12 21:29:16 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/nodes/makefuncs.c,v 1.11 1998/07/20 19:53:45 momjian Exp $
|
||||||
*
|
*
|
||||||
* NOTES
|
* NOTES
|
||||||
* Creator functions in POSTGRES 4.2 are generated automatically. Most of
|
* Creator functions in POSTGRES 4.2 are generated automatically. Most of
|
||||||
@ -71,6 +71,20 @@ makeVar(Index varno,
|
|||||||
return var;
|
return var;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* makeTargetEntry -
|
||||||
|
* creates a TargetEntry node(contains a Resdom)
|
||||||
|
*/
|
||||||
|
TargetEntry *
|
||||||
|
makeTargetEntry(Resdom *resdom, Node *expr)
|
||||||
|
{
|
||||||
|
TargetEntry *rt = makeNode(TargetEntry);
|
||||||
|
|
||||||
|
rt->resdom = resdom;
|
||||||
|
rt->expr = expr;
|
||||||
|
return rt;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* makeResdom -
|
* makeResdom -
|
||||||
* creates a Resdom (Result Domain) node
|
* creates a Resdom (Result Domain) node
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/setrefs.c,v 1.23 1998/07/19 05:49:15 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/setrefs.c,v 1.24 1998/07/20 19:53:46 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -132,7 +132,7 @@ set_join_tlist_references(Join *join)
|
|||||||
outer_tlist,
|
outer_tlist,
|
||||||
inner_tlist);
|
inner_tlist);
|
||||||
|
|
||||||
temp = MakeTLE(xtl->resdom, (Node *) joinvar);
|
temp = makeTargetEntry(xtl->resdom, (Node *) joinvar);
|
||||||
new_join_targetlist = lappend(new_join_targetlist, temp);
|
new_join_targetlist = lappend(new_join_targetlist, temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -497,7 +497,7 @@ tlist_temp_references(Oid tempid,
|
|||||||
else
|
else
|
||||||
oattno = 0;
|
oattno = 0;
|
||||||
|
|
||||||
temp = MakeTLE(xtl->resdom,
|
temp = makeTargetEntry(xtl->resdom,
|
||||||
(Node *) makeVar(tempid,
|
(Node *) makeVar(tempid,
|
||||||
xtl->resdom->resno,
|
xtl->resdom->resno,
|
||||||
xtl->resdom->restype,
|
xtl->resdom->restype,
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/optimizer/prep/preptlist.c,v 1.13 1998/07/20 19:21:44 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/optimizer/prep/preptlist.c,v 1.14 1998/07/20 19:53:47 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -114,9 +114,7 @@ preprocess_targetlist(List *tlist,
|
|||||||
|
|
||||||
var = makeVar(result_relation, -1, TIDOID, -1, 0, result_relation, -1);
|
var = makeVar(result_relation, -1, TIDOID, -1, 0, result_relation, -1);
|
||||||
|
|
||||||
ctid = makeNode(TargetEntry);
|
ctid = makeTargetEntry(resdom, (Node *) var);
|
||||||
ctid->resdom = resdom;
|
|
||||||
ctid->expr = (Node *) var;
|
|
||||||
t_list = lappend(t_list, ctid);
|
t_list = lappend(t_list, ctid);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -233,7 +231,7 @@ replace_matching_resname(List *new_tlist, List *old_tlist)
|
|||||||
newresno = (Resdom *) copyObject((Node *) old_tle->resdom);
|
newresno = (Resdom *) copyObject((Node *) old_tle->resdom);
|
||||||
newresno->resno = length(t_list) + 1;
|
newresno->resno = length(t_list) + 1;
|
||||||
newresno->resjunk = 1;
|
newresno->resjunk = 1;
|
||||||
new_tl = MakeTLE(newresno, old_tle->expr);
|
new_tl = makeTargetEntry(newresno, old_tle->expr);
|
||||||
t_list = lappend(t_list, new_tl);
|
t_list = lappend(t_list, new_tl);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -296,7 +294,7 @@ new_relation_targetlist(Oid relid, Index rt_index, NodeTag node_type)
|
|||||||
false, /* not a set */
|
false, /* not a set */
|
||||||
false);
|
false);
|
||||||
|
|
||||||
temp3 = MakeTLE(makeResdom(attno,
|
temp3 = makeTargetEntry(makeResdom(attno,
|
||||||
atttype,
|
atttype,
|
||||||
-1,
|
-1,
|
||||||
attname,
|
attname,
|
||||||
@ -317,7 +315,7 @@ new_relation_targetlist(Oid relid, Index rt_index, NodeTag node_type)
|
|||||||
get_atttypmod(relid, attno),
|
get_atttypmod(relid, attno),
|
||||||
0, rt_index, attno);
|
0, rt_index, attno);
|
||||||
|
|
||||||
temp_list = MakeTLE(makeResdom(attno,
|
temp_list = makeTargetEntry(makeResdom(attno,
|
||||||
atttype,
|
atttype,
|
||||||
get_atttypmod(relid, attno),
|
get_atttypmod(relid, attno),
|
||||||
attname,
|
attname,
|
||||||
|
@ -1,60 +0,0 @@
|
|||||||
/*-------------------------------------------------------------------------
|
|
||||||
*
|
|
||||||
* internal.c--
|
|
||||||
* Definitions required throughout the query optimizer.
|
|
||||||
*
|
|
||||||
* Copyright (c) 1994, Regents of the University of California
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* IDENTIFICATION
|
|
||||||
* $Header: /cvsroot/pgsql/src/backend/optimizer/util/Attic/internal.c,v 1.7 1998/02/26 04:33:17 momjian Exp $
|
|
||||||
*
|
|
||||||
*-------------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* ---------- SHARED MACROS
|
|
||||||
*
|
|
||||||
* Macros common to modules for creating, accessing, and modifying
|
|
||||||
* query tree and query plan components.
|
|
||||||
* Shared with the executor.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
#include "postgres.h"
|
|
||||||
|
|
||||||
#include "optimizer/internal.h"
|
|
||||||
|
|
||||||
#include "nodes/relation.h"
|
|
||||||
#include "nodes/plannodes.h"
|
|
||||||
#include "nodes/primnodes.h"
|
|
||||||
#include "utils/palloc.h"
|
|
||||||
|
|
||||||
#ifdef NOT_USED
|
|
||||||
/*****************************************************************************
|
|
||||||
*
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
/* the following should probably be moved elsewhere -ay */
|
|
||||||
|
|
||||||
TargetEntry *
|
|
||||||
MakeTLE(Resdom *resdom, Node *expr)
|
|
||||||
{
|
|
||||||
TargetEntry *rt = makeNode(TargetEntry);
|
|
||||||
|
|
||||||
rt->resdom = resdom;
|
|
||||||
rt->expr = expr;
|
|
||||||
return rt;
|
|
||||||
}
|
|
||||||
|
|
||||||
Var *
|
|
||||||
get_expr(TargetEntry *tle)
|
|
||||||
{
|
|
||||||
Assert(tle != NULL);
|
|
||||||
Assert(tle->expr != NULL);
|
|
||||||
|
|
||||||
return ((Var *) tle->expr);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* 0 */
|
|
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/optimizer/util/tlist.c,v 1.14 1998/07/18 04:22:41 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/optimizer/util/tlist.c,v 1.15 1998/07/20 19:53:48 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -133,19 +133,15 @@ add_tl_element(RelOptInfo *rel, Var *var)
|
|||||||
TargetEntry *
|
TargetEntry *
|
||||||
create_tl_element(Var *var, int resdomno)
|
create_tl_element(Var *var, int resdomno)
|
||||||
{
|
{
|
||||||
TargetEntry *tlelement = makeNode(TargetEntry);
|
|
||||||
|
|
||||||
tlelement->resdom =
|
return makeTargetEntry(makeResdom(resdomno,
|
||||||
makeResdom(resdomno,
|
var->vartype,
|
||||||
var->vartype,
|
var->vartypmod,
|
||||||
var->vartypmod,
|
NULL,
|
||||||
NULL,
|
(Index) 0,
|
||||||
(Index) 0,
|
(Oid) 0,
|
||||||
(Oid) 0,
|
0),
|
||||||
0);
|
(Node *) var);
|
||||||
tlelement->expr = (Node *) var;
|
|
||||||
|
|
||||||
return (tlelement);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -351,7 +347,7 @@ copy_vars(List *target, List *source)
|
|||||||
for (src = source, dest = target; src != NIL &&
|
for (src = source, dest = target; src != NIL &&
|
||||||
dest != NIL; src = lnext(src), dest = lnext(dest))
|
dest != NIL; src = lnext(src), dest = lnext(dest))
|
||||||
{
|
{
|
||||||
TargetEntry *temp = MakeTLE(((TargetEntry *) lfirst(dest))->resdom,
|
TargetEntry *temp = makeTargetEntry(((TargetEntry *) lfirst(dest))->resdom,
|
||||||
(Node *) get_expr(lfirst(src)));
|
(Node *) get_expr(lfirst(src)));
|
||||||
|
|
||||||
result = lappend(result, temp);
|
result = lappend(result, temp);
|
||||||
@ -404,7 +400,7 @@ flatten_tlist(List *tlist)
|
|||||||
(Oid) 0,
|
(Oid) 0,
|
||||||
0);
|
0);
|
||||||
last_resdomno++;
|
last_resdomno++;
|
||||||
new_tlist = lappend(new_tlist, MakeTLE(r, (Node *) var));
|
new_tlist = lappend(new_tlist, makeTargetEntry(r, (Node *) var));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -435,7 +431,7 @@ flatten_tlist_vars(List *full_tlist, List *flat_tlist)
|
|||||||
|
|
||||||
result =
|
result =
|
||||||
lappend(result,
|
lappend(result,
|
||||||
MakeTLE(tle->resdom,
|
makeTargetEntry(tle->resdom,
|
||||||
flatten_tlistentry((Node *) get_expr(tle),
|
flatten_tlistentry((Node *) get_expr(tle),
|
||||||
flat_tlist)));
|
flat_tlist)));
|
||||||
}
|
}
|
||||||
@ -544,16 +540,6 @@ flatten_tlistentry(Node *tlistentry, List *flat_tlist)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TargetEntry *
|
|
||||||
MakeTLE(Resdom *resdom, Node *expr)
|
|
||||||
{
|
|
||||||
TargetEntry *rt = makeNode(TargetEntry);
|
|
||||||
|
|
||||||
rt->resdom = resdom;
|
|
||||||
rt->expr = expr;
|
|
||||||
return rt;
|
|
||||||
}
|
|
||||||
|
|
||||||
Var *
|
Var *
|
||||||
get_expr(TargetEntry *tle)
|
get_expr(TargetEntry *tle)
|
||||||
{
|
{
|
||||||
@ -597,7 +583,7 @@ AddGroupAttrToTlist(List *tlist, List *grpCl)
|
|||||||
(Oid) 0,
|
(Oid) 0,
|
||||||
0);
|
0);
|
||||||
last_resdomno++;
|
last_resdomno++;
|
||||||
tlist = lappend(tlist, MakeTLE(r, (Node *) var));
|
tlist = lappend(tlist, makeTargetEntry(r, (Node *) var));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.77 1998/07/19 05:49:17 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.78 1998/07/20 19:53:49 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -312,14 +312,12 @@ transformInsertStmt(ParseState *pstate, InsertStmt *stmt)
|
|||||||
* preptlist.c), but may break RULEs in some way. It seems
|
* preptlist.c), but may break RULEs in some way. It seems
|
||||||
* better to create proper target list here...
|
* better to create proper target list here...
|
||||||
*/
|
*/
|
||||||
te = makeNode(TargetEntry);
|
te = makeTargetEntry(makeResdom(defval[ndef].adnum,
|
||||||
te->resdom = makeResdom(defval[ndef].adnum,
|
|
||||||
att[defval[ndef].adnum - 1]->atttypid,
|
att[defval[ndef].adnum - 1]->atttypid,
|
||||||
att[defval[ndef].adnum - 1]->atttypmod,
|
att[defval[ndef].adnum - 1]->atttypmod,
|
||||||
pstrdup(nameout(&(att[defval[ndef].adnum - 1]->attname))),
|
pstrdup(nameout(&(att[defval[ndef].adnum - 1]->attname))),
|
||||||
0, 0, 0);
|
0, 0, 0),
|
||||||
te->fjoin = NULL;
|
(Node *) stringToNode(defval[ndef].adbin);
|
||||||
te->expr = (Node *) stringToNode(defval[ndef].adbin);
|
|
||||||
qry->targetList = lappend(qry->targetList, te);
|
qry->targetList = lappend(qry->targetList, te);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.22 1998/07/20 11:17:11 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.23 1998/07/20 19:53:51 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -1240,9 +1240,7 @@ setup_tlist(char *attname, Oid relid)
|
|||||||
0);
|
0);
|
||||||
varnode = makeVar(-1, attno, typeid, type_mod, 0, -1, attno);
|
varnode = makeVar(-1, attno, typeid, type_mod, 0, -1, attno);
|
||||||
|
|
||||||
tle = makeNode(TargetEntry);
|
tle = makeTargetEntry(resnode, (Node *) varnode);
|
||||||
tle->resdom = resnode;
|
|
||||||
tle->expr = (Node *) varnode;
|
|
||||||
return (lcons(tle, NIL));
|
return (lcons(tle, NIL));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1266,9 +1264,7 @@ setup_base_tlist(Oid typeid)
|
|||||||
(Oid) 0,
|
(Oid) 0,
|
||||||
0);
|
0);
|
||||||
varnode = makeVar(-1, 1, typeid, -1, 0, -1, 1);
|
varnode = makeVar(-1, 1, typeid, -1, 0, -1, 1);
|
||||||
tle = makeNode(TargetEntry);
|
tle = makeTargetEntry(resnode, (Node *) varnode);
|
||||||
tle->resdom = resnode;
|
|
||||||
tle->expr = (Node *) varnode;
|
|
||||||
|
|
||||||
return (lcons(tle, NIL));
|
return (lcons(tle, NIL));
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/parser/parse_target.c,v 1.18 1998/07/12 21:29:20 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/parser/parse_target.c,v 1.19 1998/07/20 19:53:52 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -692,7 +692,6 @@ printf("MakeTargetlistExpr: attrtypmod is %d\n", (int4) attrtypmod);
|
|||||||
attrtypmod = type_mod;
|
attrtypmod = type_mod;
|
||||||
}
|
}
|
||||||
|
|
||||||
tent = makeNode(TargetEntry);
|
|
||||||
resnode = makeResdom((AttrNumber) resdomno,
|
resnode = makeResdom((AttrNumber) resdomno,
|
||||||
(Oid) attrtype,
|
(Oid) attrtype,
|
||||||
attrtypmod,
|
attrtypmod,
|
||||||
@ -701,8 +700,7 @@ printf("MakeTargetlistExpr: attrtypmod is %d\n", (int4) attrtypmod);
|
|||||||
(Oid) 0,
|
(Oid) 0,
|
||||||
0);
|
0);
|
||||||
|
|
||||||
tent->resdom = resnode;
|
tent = makeTargetEntry(resnode, expr);
|
||||||
tent->expr = expr;
|
|
||||||
|
|
||||||
return tent;
|
return tent;
|
||||||
} /* MakeTargetlistExpr() */
|
} /* MakeTargetlistExpr() */
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 1994, Regents of the University of California
|
* Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $Id: tlist.h,v 1.9 1998/07/18 04:22:52 momjian Exp $
|
* $Id: tlist.h,v 1.10 1998/07/20 19:53:53 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -26,7 +26,7 @@ extern List *get_actual_tlist(List *tlist);
|
|||||||
extern Resdom *tlist_member(Var *var, List *tlist);
|
extern Resdom *tlist_member(Var *var, List *tlist);
|
||||||
extern Resdom *tlist_resdom(List *tlist, Resdom *resnode);
|
extern Resdom *tlist_resdom(List *tlist, Resdom *resnode);
|
||||||
|
|
||||||
extern TargetEntry *MakeTLE(Resdom *resdom, Node *expr);
|
extern TargetEntry *makeTargetEntry(Resdom *resdom, Node *expr);
|
||||||
extern Var *get_expr(TargetEntry *tle);
|
extern Var *get_expr(TargetEntry *tle);
|
||||||
|
|
||||||
extern TargetEntry *match_varid(Var *test_var, List *tlist);
|
extern TargetEntry *match_varid(Var *test_var, List *tlist);
|
||||||
|
Reference in New Issue
Block a user