mirror of
https://github.com/zeek/zeek.git
synced 2025-10-11 19:18:19 +00:00
support "any" coercions for "-O gen-C++"
This commit is contained in:
parent
7a96d2fa61
commit
47783cb9fd
3 changed files with 43 additions and 0 deletions
|
@ -126,6 +126,22 @@ string CPPCompile::GenExpr(const Expr* e, GenType gt, bool top_level)
|
|||
GenTypeName(e->GetType()) + ")";
|
||||
return GenericValPtrToGT(gen, e->GetType(), gt);
|
||||
|
||||
case EXPR_TO_ANY_COERCE:
|
||||
return GenExpr(e->GetOp1(), GEN_VAL_PTR);
|
||||
|
||||
case EXPR_FROM_ANY_COERCE:
|
||||
gen = string("from_any__CPP(") +
|
||||
GenExpr(e->GetOp1(), GEN_VAL_PTR) + ", " +
|
||||
GenTypeName(e->GetType()) + ")";
|
||||
return GenericValPtrToGT(gen, e->GetType(), gt);
|
||||
|
||||
case EXPR_FROM_ANY_VEC_COERCE:
|
||||
gen = string("from_any_vec__CPP(") +
|
||||
GenExpr(e->GetOp1(), GEN_VAL_PTR) + ", " +
|
||||
GenTypeName(e->GetType()->Yield()) + ")";
|
||||
return GenericValPtrToGT(gen, e->GetType(), gt);
|
||||
|
||||
|
||||
case EXPR_FIELD_ASSIGN:
|
||||
case EXPR_INDEX_SLICE_ASSIGN:
|
||||
case EXPR_INLINE:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue