#lisp #iterator #lexer #parser #no-std

no-std lisp_iter

简单Lisp或类似Lisp表达式的单遍无分配迭代器

1个不稳定版本

0.1.0 2022年11月2日

54#lisp

MIT 许可证

9KB
163

lisp_iter

简单Lisp或类似Lisp表达式的单遍无分配迭代器。

use lisp_iter::LispIter;

fn main() {
    let mut iter = LispIter::new(r#"(this-is-a-identifier :a 123 "wow") ; :a is shorthand for "a" "#);
    let mut list = iter.next().unwrap().into_iter(); // Retrieve first list in iterator

    println!("{:?}", list.next().unwrap()); // Identifier("this-is-a-identifier")
    println!("{:?}", list.next().unwrap()); // Quote("a")
    println!("{:?}", list.next().unwrap()); // Integer(0)
    println!("{:?}", list.next().unwrap()); // Quote("wow")
}

适用于以最小的0开销浏览任何类似Lisp的内容。

无运行时依赖