【问题标题】:Save/load AST and M3 from/to file从/到文件保存/加载 AST 和 M3
【发布时间】:2020-10-23 17:03:34
【问题描述】:

创建 AST 或 M3 可能需要一些时间,具体取决于您尝试加载的项目的大小。那么有没有办法将 AST 或 M3 存储在文件中?所以下次你需要它时,你不必再次创建它,因为你可以从文件中加载完整的东西。

【问题讨论】:

    标签: rascal


    【解决方案1】:

    您可以使用ValueIO 从/向磁盘读取和写入任何值,如下所示:

    rascal>writeBinaryValueFile(|home:///myFile.txt|, myValue)
    ok
    rascal>readBinaryValueFile(#myType, |home:///myFile.txt|)
    myType: myValue
    

    或者以更易读的文本格式:

    rascal>writeTextValueFile(|home:///myFile.txt|, myValue)
    ok
    rascal>readTextValueFile(#myType, |home:///myFile.txt|)
    myType: myValue
    

    还有其他格式的 JSON 和 CSV(反)序列化器,可在 lang::json::IOlang::csv::IO 中找到

    【讨论】:

    • 在哪里可以找到|home:///myFile.txt| 格式的参考资料?特别是,如何传递相对于当前(项目)目录的路径? home:/// 似乎字面意思是操作系统主目录。 file:/// 好像是绝对路径的意思……
    • @Klesun 在 Eclipse 中你可以使用project://name/file
    • 嗯,谢谢,现在我注意到 Eclipse 项目树中的“搜索路径”,它暗示 project:// 指向项目目录上一级的目录。
    • 嗯。不完全的。项目的名字是uri的权限,相对于项目的路径是URI的路径部分,所以没有权限的项目URI是不会解析到工作空间的
    猜你喜欢
    • 2020-02-26
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多