Hi Jim, On 16 Aug 2018, at 13:40, Jim Mellander wrote:
> It would be most convenient if the 'any' type could defer type > checking > until runtime at the script level. > > For instance, if both A & B are defined as type 'any', a compile time > error > > "illegal comparison (A < B)" > > occurs upon encountering a bro statement > > if (A < B) do_something(); > > even if the actual values stored in A & B at runtime are integral > types for > which comparison makes sense. I think this is a bit hard to do with how things are set up at the moment internally - and it also does make type-checking at startup less possible-helpful. However... > > If the decision could be made at runtime (which could then potentially > throw an error), a number of useful generic functions could be created > at > the script level, rather than creating yet-another-bif. A useful > yet-another-bif would be 'typeof' to allow varying code paths based on > the > type of value actually stored in 'any'. This already exists and I think you can actually use it to write code like that; you just have to cast your any-type to the correct type first. The function you want is type_name; it is e.g. used in base/utils/json.bro. Johanna _______________________________________________ bro-dev mailing list [email protected] http://mailman.icsi.berkeley.edu/mailman/listinfo/bro-dev
