5个不稳定版本

0.3.0 2023年5月18日
0.2.1 2022年4月30日
0.2.0 2022年4月25日
0.1.1 2022年4月14日
0.1.0 2022年1月24日

#290 in 内存管理

Download history 1/week @ 2024-03-14 11/week @ 2024-03-28 2/week @ 2024-04-04

61 每月下载量
用于 brainfuckm

MIT 许可证

66KB
1.5K SLoC

POETIC

Rust库,用于解析和解释诗歌源代码

它支持所有指令,并相应地处理数字转换,唯一的不同之处在于,如果需要,它会动态分配更多内存,而不是30,000字节。这意味着在“末尾”不可能出现内存指针环绕。也许将来可以通过选项实现。https://mcaweb.matc.edu/winslojr/vicom128/final/tutorial/index.html

测试

有解析器和解释器的测试,您可以使用

cargo test

用法

它首先解析字符串源输入,并将其解析为中间操作码数字表示。

    let mut buf = fs::read_to_string("input.ptc").unwrap();

    let intermediate = Parser::parse_intermediate(&buf);

然后,它将中间表示转换为指令。

    let instructions = Parser::parse_instructions(&intermediate);

然后可以使用解释器执行这些指令

    let mut interpreter = Interpreter::new(code);
    interpreter.run();

您可以使用 run 方法让解释器完整执行,或者使用 step 方法逐条指令执行。

示例

可以在 https://github.com/mztikk/poetic_interpreter 找到示例用法,这是一个命令行应用程序,可以接受诗歌源文件并执行它。

依赖项

~245–680KB
~12K SLoC