mirror of
https://github.com/zeek/zeek.git
synced 2025-10-08 09:38:19 +00:00
ZAM changes intermixed with lambda and "when" support
This commit is contained in:
parent
1dd2270272
commit
558cec58ed
2 changed files with 12 additions and 4 deletions
|
@ -220,10 +220,15 @@ private:
|
|||
const ZAMStmt CompileInExpr(const NameExpr* n1, const ListExpr* l, const NameExpr* n2,
|
||||
const ConstExpr* c);
|
||||
|
||||
const ZAMStmt CompileIndex(const NameExpr* n1, const NameExpr* n2, const ListExpr* l);
|
||||
const ZAMStmt CompileIndex(const NameExpr* n1, const ConstExpr* c, const ListExpr* l);
|
||||
const ZAMStmt CompileIndex(const NameExpr* n1, const NameExpr* n2, const ListExpr* l,
|
||||
bool in_when);
|
||||
const ZAMStmt CompileIndex(const NameExpr* n1, const ConstExpr* c, const ListExpr* l,
|
||||
bool in_when);
|
||||
const ZAMStmt CompileIndex(const NameExpr* n1, int n2_slot, const TypePtr& n2_type,
|
||||
const ListExpr* l);
|
||||
const ListExpr* l, bool in_when);
|
||||
|
||||
const ZAMStmt BuildLambda(const NameExpr* n, LambdaExpr* le);
|
||||
const ZAMStmt BuildLambda(int n_slot, LambdaExpr* le);
|
||||
|
||||
// Second argument is which instruction slot holds the branch target.
|
||||
const ZAMStmt GenCond(const Expr* e, int& branch_v);
|
||||
|
|
|
@ -1053,10 +1053,13 @@ const ZAMStmt ZAMCompiler::DoCall(const CallExpr* c, const NameExpr* n)
|
|||
if ( ! z.aux )
|
||||
z.aux = new ZInstAux(0);
|
||||
|
||||
z.aux->can_change_globals = true;
|
||||
z.aux->can_change_non_locals = true;
|
||||
|
||||
z.call_expr = c;
|
||||
|
||||
if ( in_when )
|
||||
z.SetType(n->GetType());
|
||||
|
||||
if ( ! indirect || func_id->IsGlobal() )
|
||||
{
|
||||
z.aux->id_val = func_id;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue