1 unstable release
0.1.0 | Jul 3, 2022 |
---|
#40 in #logo
34KB
918 lines
C source lexer in Rust
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.
Dependencies
~3.5MB
~52K SLoC