I'm so sorry.
    
    
    #[
    """
    # ]#
    import macros
    
    type
      None = void
      str = string
    
    macro def(d, b: untyped) =
      let n = d[1][0]
      var params: seq[NimNode]
      var defb: seq[NimNode]
      params.add(d[^1])
      for x in d[1][1..^1]:
        if x.kind == nnkIdent:
          defb.add(x)
        else:
          defb.add(x[0])
          for y in defb:
            params.add(newIdentDefs(y, x[1]))
          defb.setLen(0)
      let pragmas = newNimNode(nnkPragma).add(ident("discardable"))
      return newProc(n, params, b, pragmas = pragmas)
    
    def `+`(x, y: str) -> str:
      return x & y
    
    def print(x: str) -> None:
      echo x
    #[
    """
    # ]#
    
    def python_rocks(x: int, y: str) -> int:
      print("yea!!!" + y)
      return x * 2
    
    python_rocks(2, "hi")
    
    
    Run
    
    
    $ nim r def.nim
    yea!!!hi
    $ python def.nim
    yea!!!hi
    
    
    Run

(Please do not use this...)

Reply via email to