79cd9c08d8
- Bulk replace Clojure/Nim → Bara Lang in src/, lib/, examples/, benchmarks/, experiments/, books/, LICENSE, cljnim.nimble, PLAN.md, AI_AGENT.md - Rename book chapters: 05-clojure-nim.md → 05-bara-lang.md (en + bg) - Update all chapter index links and anchors - Replace project-specific 'Clojure' references with 'Bara Lang' in experiments/, src/ai_assist.nim, src/tui_screens.nim, src/emitter.nim, src/reader.nim, src/types.nim, lib/cljnim_runtime*.nim - Keep legitimate JVM Clojure/ClojureScript/Clojure CLR references intact
24 lines
666 B
Nim
24 lines
666 B
Nim
# C-friendly wrappers around Bara Lang-generated code
|
|
# Exports plain C types (int, char*) instead of CljVal
|
|
|
|
import cljnim_runtime
|
|
|
|
# Import the generated Bara Lang functions
|
|
include build/math
|
|
|
|
proc c_square*(x: cint): cint {.exportc, dynlib.} =
|
|
let r = square(cljInt(x.int64))
|
|
return r.intVal.cint
|
|
|
|
proc c_factorial*(n: cint): cint {.exportc, dynlib.} =
|
|
let r = factorial(cljInt(n.int64))
|
|
return r.intVal.cint
|
|
|
|
proc c_add*(a, b: cint): cint {.exportc, dynlib.} =
|
|
let r = add(cljInt(a.int64), cljInt(b.int64))
|
|
return r.intVal.cint
|
|
|
|
proc c_greet*(name: cstring): cstring {.exportc, dynlib.} =
|
|
let r = greet(cljString($name))
|
|
return r.strVal.cstring
|