message: additional utils
diff: @@ -18,8 +18,7 @@ def hdl_name_prefix(prefix_name, o):
  :return: HdlCall
  """
  assert isinstance(o, HdlName), o
  - res = HdlCall(HdlBuiltinFn.DOT, [prefix_name, o])
  - return res
  + return HdlCall(HdlBuiltinFn.DOT, [prefix_name, o])
  def hdl_getattr(o, prop_name):
  @@ -28,5 +27,22 @@ def hdl_getattr(o, prop_name):
  :type prop_name: str
  :return: HdlCall
  """
  - res = HdlCall(HdlBuiltinFn.DOT, [o, HdlName(prop_name)])
  - return res
  + return HdlCall(HdlBuiltinFn.DOT, [o, HdlName(prop_name)])
  +
  +
  +def hdl_call(o, args):
  + """
  + :type o: iHdlExpr
  + :type args: List[iHdlExpr]
  + :return: HdlCall
  + """
  + return HdlCall(HdlBuiltinFn.CALL, [o, *args])
  +
  +
  +def hdl_map_asoc(o1, o2):
  + """
  + :type o1: iHdlExpr
  + :type o2: iHdlExpr
  + :return: HdlCall
  + """
  + return HdlCall(HdlBuiltinFn.MAP_ASSOCIATION, [o1, o2])
  