14 个版本

0.3.6 2023 年 11 月 11 日
0.3.5 2023 年 11 月 11 日
0.2.3 2023 年 10 月 14 日
0.1.2 2023 年 9 月 25 日

62解析工具

Download history 2/week @ 2024-03-08 2/week @ 2024-03-15 50/week @ 2024-03-29 17/week @ 2024-04-05

每月 143 次下载

MIT/Apache

15KB
283

Stars Forks

Lib-lexin

一个简单的词法分析器库。

  • 描述
  • 入门
  • 作者
  • 版本
  • 许可证
  • 描述

    lib-lexin 是一个小的词法分析器库,旨在能够快速对任何内容进行词法分析

    入门

    用法

    示例

    此示例展示了如何轻松地对文件进行词法分析

    use lib_lexin::{Lexer, Section};
    
    let mut lexer = Lexer::new(
        &[ // keywords
            "fn",
            "return"
        ],
        &[ // section
            Section::new("string", "\"", "\""),
        ],
        &[ // symbols
            ('+', "Plus"),
        ],
    );
    
    lexer.load_file("[FILE]");
    
    let tokens = lexer.tokenize()?;
    

    函数

    Lexer::new

    pub fn new(keywords: &[&'a str], sections: &[Section], symbols: &[(char, &'a str)]) -> Lexer<'a>
    

    Lexer::load_file

    pub fn load_file(&mut self, filename: &str) -> Result<(), Box<dyn std::error::Error>>
    

    Lexer::load_str

    pub fn load_str(&mut self, string: &str)
    

    Lexer::tokenize

    pub fn tokenize(&mut self) -> Result<Vec<Token>, Box<dyn std::error::Error>>
    

    Section::new

    pub fn new(name: &str, start: &str, end: &str) -> Section
    

    Token::is_keyword

    pub fn is_keyword(&self, keyword: &str) -> Result<(), Box<dyn std::error::Error>>
    

    Token::is_section

    pub fn is_section(&self, name: &str) -> Result<String, Box<dyn std::error::Error>>
    

    Token::is_ident

    pub fn is_ident(&self) -> Result<String, Box<dyn std::error::Error>>
    

    Token::is_integer

    pub fn is_integer(&self) -> Result<usize, Box<dyn std::error::Error>>
    

    Token::is_float

    pub fn is_float(&self) -> Result<f64, Box<dyn std::error::Error>>
    

    Token::is_symbol

    pub fn is_symbol(&self, name: &str) -> Result<(), Box<dyn std::error::Error>>
    

    帮助

    部分总是转义

    作者

    贡献者姓名和联系方式

    版本

    • 0.1
      • 初始发布

    许可证

    目前没有许可证,这可能会在未来改变

    没有运行时依赖