#lexer #parser #scheme #lisp

bin+lib r7rs-parser

简单的 R7RS Scheme 解析器和词法分析器

1 个不稳定版本

0.1.0 2022年10月28日

#2406解析器实现

MIT 许可协议

68KB
2K SLoC

r7rs-parser

简单的 R7RS Scheme 解析器。

示例

use r7rs_parser::{ parser::Parser, expr::NoIntern};

const SOURCE: &'static str = r#"
#!fold-case


(Add 2 3+43i 4145125125153151351351353 3/4)
"#;

fn main() {
    let mut i = NoIntern;
    let mut parser = Parser::new(&mut i, &SOURCE, false);

    while !parser.finished() {
        match parser.parse(true) {
            Ok(expr) => {
                let s = expr.to_string(&NoIntern, false);

                println!("{}", s);
            }
            Err(e) => {
                println!("{}", e);
            }
        }
    }
}

依赖项

~465KB