我想创建一个简单的包,只有
my-lang/main.rkt
可以用作球拍文件的第一行:
#lang my-lang
;... my-lang code ...
为了快速澄清,请注意,这不与这个问题相同,因为我不希望 lang 行成为
#lang s-exp my-lang
。我当前的代码已经以这种方式工作,因为它导出了 #%module-begin
。
我只想使用我的扩展器来解析输入文件/REPL 会话。请给出一个完整的可运行的例子;我发现的所有地方都只给出了一半的例子,或者需要
reader
或 s-exp
。
您需要添加自定义阅读器。
为此,您需要一个
/lang/reader.rkt
或者制作 reader
的 main
子模块。
文档中的相关章节: https://docs.racket-lang.org/guide/language-collection.html
这是第一种方法的示例:
https://github.com/soegaard/minipascal/blob/master/minipascal/lang/reader.rkt