【发布时间】:2023-01-04 17:07:21
【问题描述】:
我如何设置一个 Rascal-MPL 项目来使用用 Rascal 构建的 DSL?
我似乎没有找到任何详细说明如何解决该特定问题的资源
【问题讨论】:
标签: rascal
我如何设置一个 Rascal-MPL 项目来使用用 Rascal 构建的 DSL?
我似乎没有找到任何详细说明如何解决该特定问题的资源
【问题讨论】:
标签: rascal
没有为这种情况编写文档,但这里有:
util::Reflective 中的 newRascalProject 创建基本设置。对于有意义的 DSL 项目和消费项目。mvn install 在 DSL 项目中,如果您没有在 Eclipse 或 VScode 中打开 DSL 项目文件夹,或者如果您正在使用裸机 Unix/Maven。Require-Libraries: |lib://dsl-project|
在终端中,将打印解释器路径配置的活动版本。它应该在srcs 列表中包含 DSL 项目。
在 Rascal LSP 的 VScode 日志中,您可以看到在编译/检查客户端项目中的源文件时打印的路径配置。 DSL 项目应该位于 libs 路径中。
如果 DSL 项目未编译为出现在目标文件夹中并最终出现在 jar 中的 .tpl 文件,您将在客户端代码中收到虚假的错误消息。在这种情况下,通过保存顶层模块触发 DSL 项目中的编译器,或者再次运行 mvn install。重新访问 pom 文件以获取 rascal-maven-plugin 的设置
【讨论】:
import demo::lang::Pico::Syntax;。
对于那些登陆此页面并试图找到使用工作参数调用 newRascalProject 的示例...
第一个参数是“位置”。虽然记录了如何使用此参数 (https://www.rascal-mpl.org/docs/Rascal/Expressions/Values/Location/),但我仍然花了一些时间来弄清楚位置不是常规字符串,并且没有使用双引号 " 而是 |。
所以如果你尝试:
newRascalProject ("home:///Projects/rascal_playground", "hello2")
您收到以下错误:
Advice: |https://www.rascal-mpl.org/docs/Rascal/Errors/CompileTimeErrors/UndeclaredVariable/UndeclaredVariable.html|
包括第二个参数的变量名...
newRascalProject ("home:///Projects/rascal_playground", name="hello")
...给出了同样的错误。
这是正确的例子:
newRascalProject (|home:///Projects/rascal_playground|, name="hello")
【讨论】: