1use slr_parser::{Lexer, Source};
4use std::env;
5use std::fs::File;
6use std::io::prelude::*;
7use std::path::Path;
8
9fn main()
10{
11 let mut args = env::args();
12 if args.len() < 2
13 {
14 panic!("Pass a file to test with");
15 }
16
17 args.next();
18 let filename = args.next().unwrap();
19
20 let mut src = String::new();
21 File::open(&filename)
22 .unwrap()
23 .read_to_string(&mut src)
24 .unwrap();
25
26 let mut src = Source::new(Path::new(&filename), &src);
27 let mut lexer = Lexer::new(&mut src);
28
29 loop
30 {
31 let tok = lexer.next();
32 match tok.as_ref()
33 {
34 Some(res) => match res.as_ref()
35 {
36 Ok(tok) => println!("{:?}", tok.kind),
37 Err(err) =>
38 {
39 println!("{}", err.text);
40 break;
41 }
42 },
43 None => break,
44 }
45 }
46}