如何创建球拍#lang?

问题描述 投票:0回答:1

我想创建一个简单的包,只有

my-lang/main.rkt
可以用作球拍文件的第一行:

#lang my-lang
;... my-lang code ...

为了快速澄清,请注意,这这个问题相同,因为我不希望 lang 行成为

#lang s-exp my-lang
。我当前的代码已经以这种方式工作,因为它导出了
#%module-begin

我只想使用我的扩展器来解析输入文件/REPL 会话。请给出一个完整的可运行的例子;我发现的所有地方都只给出了一半的例子,或者需要

reader
s-exp

racket
1个回答
0
投票

您需要添加自定义阅读器。

为此,您需要一个

/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

© www.soinside.com 2019 - 2024. All rights reserved.