Move pest parser into module
This commit is contained in:
parent
b47137d27d
commit
15687c337c
18
src/lib.rs
18
src/lib.rs
|
@ -44,12 +44,6 @@ impl ColorTheme {
|
|||
}
|
||||
}
|
||||
|
||||
mod pest_parser {
|
||||
#[derive(Parser)]
|
||||
#[grammar = "sprite.pest"]
|
||||
pub struct SpriteParser;
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
@ -67,18 +61,6 @@ mod tests {
|
|||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parse_pest() {
|
||||
use pest::Parser;
|
||||
use pest_parser::{Rule, SpriteParser};
|
||||
let source = include_str!("test/clock.fae");
|
||||
let parsed = SpriteParser::parse(Rule::module, source);
|
||||
match parsed {
|
||||
Ok(ok) => println!("{:#?}", ok),
|
||||
Err(err) => panic!("{}", err),
|
||||
}
|
||||
}
|
||||
|
||||
// TODO use spans to color-code instead of raw tokens, to show original whitespace
|
||||
/*#[test]
|
||||
fn color_file() {
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
use crate::lexer::{Lexer, Token};
|
||||
|
||||
pub mod pest;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct ParseTree<'a> {
|
||||
pub defs: Vec<Definition<'a>>,
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
pub use pest::Parser;
|
||||
|
||||
#[derive(Parser)]
|
||||
#[grammar = "parse/sprite.pest"]
|
||||
pub struct SpriteParser;
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
fn parse(rule: Rule, src: &str) {
|
||||
match SpriteParser::parse(rule, src) {
|
||||
Ok(ok) => println!("{:#?}", ok),
|
||||
Err(err) => panic!("{}", err),
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parse_clock() {
|
||||
parse(Rule::module, include_str!("../test/clock.fae"));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue