diff --git a/src/front/glsl_new/lex_tests.rs b/src/front/glsl_new/lex_tests.rs new file mode 100644 index 0000000000..fe17f260e2 --- /dev/null +++ b/src/front/glsl_new/lex_tests.rs @@ -0,0 +1,36 @@ +use super::lex::Lexer; +use super::parser::Token; + +#[test] +fn glsl_lex_simple() { + let source = "void main() {\n}"; + let lex = Lexer::new(source); + let tokens: Vec = lex.collect(); + assert_eq!(tokens.len(), 6); + + let mut iter = tokens.iter(); + assert_eq!( + format!("{:?}", iter.next().unwrap()), + "Void(TokenMetadata { line: 0, chars: 0..4 })" + ); + assert_eq!( + format!("{:?}", iter.next().unwrap()), + "Identifier((TokenMetadata { line: 0, chars: 5..9 }, \"main\"))" + ); + assert_eq!( + format!("{:?}", iter.next().unwrap()), + "LeftParen(TokenMetadata { line: 0, chars: 9..10 })" + ); + assert_eq!( + format!("{:?}", iter.next().unwrap()), + "RightParen(TokenMetadata { line: 0, chars: 10..11 })" + ); + assert_eq!( + format!("{:?}", iter.next().unwrap()), + "LeftBrace(TokenMetadata { line: 0, chars: 12..13 })" + ); + assert_eq!( + format!("{:?}", iter.next().unwrap()), + "RightBrace(TokenMetadata { line: 1, chars: 0..1 })" + ); +} diff --git a/src/front/glsl_new/mod.rs b/src/front/glsl_new/mod.rs index 3f1d65fa47..202a7e6fa0 100644 --- a/src/front/glsl_new/mod.rs +++ b/src/front/glsl_new/mod.rs @@ -3,6 +3,9 @@ use crate::{ }; mod lex; +#[cfg(test)] +mod lex_tests; + use lex::Lexer; mod error; use error::ParseError;