I'd like to get Racket to evaluate the syntax of .kicad_mod files that are s-expression data of the form:
(module LED-10MM (layer F.Cu) (tedit 55BDE3C5)
(descr "LED 10mm")
...)
I want to be able to mix Racket and "kicad_mod" syntax so I am trying to redefine the module
function. As a start I tried:
;kicad_mod.rkt
#lang racket
(provide
(except-out (all-from-out racket) #%module-begin module)
(rename-out [module-begin #%module-begin]))
(define kicad_module "you got me")
(define-syntax-rule (module-begin expr ...)
(#%module-begin
(provide (rename-out [kicad_module module]))))
and what finally kind of worked (though not in drracket but with racket interpreter direct) on the loading side:
;main.rkt
#lang racket
(module kicad_mod "kicad_mod.rkt")
(require 'kicad_mod)
(println module)
; => "you got me"
But if I try any other way it fails:
1.
;main.rkt
#lang racket
(require "kicad_mod.rkt")`
results in an error:
main.rkt:3:9: module: bad syntax
in: module
context...:
standard-module-name-resolver
2.
;main.rkt
#lang s-exp "kicad_mod.rkt"
(println module)
results in no outputs on stdout