Stars Forks

Lib-lexin

A simple lexer library.

  • Description
  • Getting Started
  • Authors
  • Versions
  • License
  • Description

    lib-lexin is a small lexer library created to be able to quickly lex anything

    Getting Started

    Usage

    Example

    This example shows how easy it is to lex a file ```rust 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()?; ```

    Functions

    Lexer::new rust pub fn new(keywords: &[&'a str], sections: &[Section], symbols: &[(char, &'a str)]) -> Lexer<'a> Lexer::loadfile rust pub fn load_file(&mut self, filename: &str) -> Result<(), Box<dyn std::error::Error>> Lexer::loadstr rust pub fn load_str(&mut self, string: &str) Lexer::tokenize rust pub fn tokenize(&mut self) -> Result<Vec<Token>, Box<dyn std::error::Error>> Section::new rust pub fn new(name: &str, start: &str, end: &str) -> Section Token::iskeyword rust pub fn is_keyword(&self, keyword: &str) -> Result<(), Box<dyn std::error::Error>> Token::issection rust pub fn is_section(&self, name: &str) -> Result<String, Box<dyn std::error::Error>> Token::isident rust pub fn is_ident(&self) -> Result<String, Box<dyn std::error::Error>> Token::isinteger rust pub fn is_integer(&self) -> Result<usize, Box<dyn std::error::Error>> Token::isfloat rust pub fn is_float(&self) -> Result<f64, Box<dyn std::error::Error>> Token::issymbol rust pub fn is_symbol(&self, name: &str) -> Result<(), Box<dyn std::error::Error>>

    Help

    Sections are always escaped

    Authors

    Contributors names and contact info

    Versions

    License

    Currently there is no license, this may change in the future