#language #spa #grammar #algorithm #slice #enums #token

dyck

一个用于在泛型 标记枚举实例或字符串切片类型上运行 Dyck 和 InterDyck 算法的crate。

1 个不稳定版本

0.1.0 2024 年 4 月 11 日

#2568Rust 模式

MIT 许可证

9KB
135

一个在泛型字符串切片类型上运行 Dyck 算法的库。

此模块提供创建和操作基于用户定义标记的语言的功能,允许根据 Dyck 语言规则评估和转换标记(单词)序列。

用法

dyck 添加到您的 Cargo.toml

[dependencies]
dyck = "0.1"

示例:创建一个 Dyck 语言并检查单词是否有效。

use dyck::{Language, Word};

// define pairs of tokens for the language
let pairs = vec![("(", ")"), ("[", "]"), ("{", "}")];
let language = Language::new_from_vec(&pairs).expect("Failed to create language");

// define a word to check
let word: Word<&str> = vec!["(", "[", "]", "(", ")", ")"];

// check if the word is a valid Dyck word
if language.is_valid(&word) {
        println!("The word is a valid Dyck word.");
} else {
    println!("The word is not a valid Dyck word.");
}

更多示例,请参阅仓库根目录中的 /examples。

依赖项

~110KB