Skip to content

katyo/clex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

C source lexer in Rust

github crate docs MIT CI

This is a fast and robust C source lexer in Rust. For example it can be used to extract some metadata from sources like comments or strings.

Library usage

use clex::{Lexer, Token};

let src = r#"
static const char *s = "world";

int main() {
  // Hello world
  printf("Hello %s\n", s);

  return 0;
}
"#;

for lexeme in Lexer::from(src) {
  match lexeme.token {
    Token::Comment => {
      println!("comment: {:?}", lexeme.comment().unwrap());
    }
    Token::String => {
      println!("string: {:?}", lexeme.string().unwrap());
    }
    _ => {}
  }
}

This example prints the following:

string: "world"
comment: "Hello world"
string: "Hello %s\n"

Command-line usage

Currently command-line tool is used to test this library. You can use it to analyze variuos C-sources and extract data.

About

Fast and robust C source lexer in Rust

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages