Guest User

Untitled

a guest
Feb 16th, 2026
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. package cg3_test
  2.  
  3. import "core:c"
  4. import "core:c/libc"
  5. import "core:fmt"
  6. import "core:strings"
  7.  
  8. foreign import cg3 "system:libcg3.so"
  9.  
  10. @(default_calling_convention="c")
  11. foreign cg3 {
  12. cg3_init :: proc(stdin: ^c.FILE, stdout: ^c.FILE, stderr: ^c.FILE) -> c.int ---
  13. cg3_cleanup :: proc() -> c.int ---
  14. cg3_grammar_load_buffer :: proc(buffer: ^c.char, length: c.size_t) -> rawptr ---
  15. cg3_grammar_free :: proc(grammar: rawptr) ---
  16. cg3_applicator_create :: proc(grammmar: rawptr) -> rawptr ---
  17. cg3_applicator_free :: proc(applicator: rawptr) ---
  18. cg3_run_grammar_on_text_fns :: proc(applicator: rawptr, input: ^c.char, output: ^c.char) ---
  19. }
  20.  
  21. main :: proc() {
  22. fmt.println("hi")
  23. if cg3_init(libc.stdin, libc.stdout, libc.stderr) == 0 {
  24. panic("init failed")
  25. }
  26. defer cg3_cleanup()
  27. grammar_str := "DELIMITERS = \"<$$$>\" ;\nCMDARGS += --dep-delimit ;\nREMCOHORT (PUNCT) ;\n"
  28. grammar := cg3_grammar_load_buffer(raw_data(grammar_str), len(grammar_str))
  29. defer cg3_grammar_free(grammar)
  30. applicator := cg3_applicator_create(grammar)
  31. defer cg3_applicator_free(applicator)
  32. cg3_run_grammar_on_text_fns(applicator, transmute(^u8)strings.clone_to_cstring("test.in.txt"), transmute(^u8)strings.clone_to_cstring("test.out.txt"))
  33. }
  34.  
Advertisement
Add Comment
Please, Sign In to add comment