文件名称:crepe:Rust中的Datalog编译器作为程序宏
文件大小:34KB
文件格式:ZIP
更新时间:2024-04-21 04:03:13
rust translator static-analysis datalog logic-programming
绉 Crepe是一个库,它允许您使用类似的语法在Rust中编写声明性逻辑程序。 它提供了一个过程宏,可生成高效,安全的代码并与Rust程序无缝地互操作。 特征 半天真评估 分层否定 自动生成关系索引 在Datalog规则中轻松调用Rust函数 Typesafe初始化@input关系的方法 非常快,可以直接与其余的Rust代码一起编译 例子 下面的程序计算有向图的传递闭包。 注意可crepe!的使用crepe! 宏。 use crepe :: crepe; crepe! { @input struct Edge ( i32 , i32 ); @output struct Reachable ( i32 , i32 ); Reachable (x, y) < - Edge (x, y); Reachable (x, z) < - Edge (
【文件预览】:
crepe-master
----LICENSE-MIT(1KB)
----Cargo.toml(709B)
----src()
--------strata.rs(1KB)
--------parse.rs(6KB)
--------lib.rs(42KB)
----LICENSE-APACHE(11KB)
----README.md(3KB)
----.editorconfig(81B)
----tests()
--------ui()
--------test_destructure.rs(1KB)
--------test_ui.rs(102B)
--------test_parse.rs(1KB)
--------test_structs.rs(775B)
--------test_ref_overwrite.rs(644B)
--------test_intermediate_lifetime.rs(717B)
--------test_transitive_closure.rs(3KB)
--------test_fibonacci.rs(1KB)
--------test_let_bindings.rs(802B)
--------test_negation.rs(425B)
----.gitignore(19B)
----CHANGELOG.md(937B)
----benches()
--------graph_walking.rs(1KB)
--------fibonacci.rs(890B)