diff options
| -rw-r--r-- | src/lib.rs | 1 | ||||
| -rw-r--r-- | src/parser.rs | 23 |
2 files changed, 7 insertions, 17 deletions
| @@ -234,6 +234,7 @@ impl Crimtag { | |||
| 234 | } | 234 | } |
| 235 | } | 235 | } |
| 236 | } | 236 | } |
| 237 | |||
| 237 | fn exec(input: &Value, tokens: &Vec<Token>, buf: &mut String) -> Result<(),ParseError> { | 238 | fn exec(input: &Value, tokens: &Vec<Token>, buf: &mut String) -> Result<(),ParseError> { |
| 238 | for token in tokens { | 239 | for token in tokens { |
| 239 | match token { | 240 | match token { |
diff --git a/src/parser.rs b/src/parser.rs index aff64f6..13e89aa 100644 --- a/src/parser.rs +++ b/src/parser.rs | |||
| @@ -253,7 +253,7 @@ impl Parser { | |||
| 253 | } | 253 | } |
| 254 | let mut children = Vec::new(); | 254 | let mut children = Vec::new(); |
| 255 | 255 | ||
| 256 | println!("--parse-tag-view-- tag parsed, next token: {:?}", ctx.cur() ); | 256 | //println!("--parse-tag-view-- tag parsed, next token: {:?}", ctx.cur() ); |
| 257 | loop { | 257 | loop { |
| 258 | if ctx.cur().is_none() { | 258 | if ctx.cur().is_none() { |
| 259 | return Err(ParseError{ | 259 | return Err(ParseError{ |
| @@ -272,7 +272,7 @@ impl Parser { | |||
| 272 | } | 272 | } |
| 273 | SymbolType::StartPoint => { | 273 | SymbolType::StartPoint => { |
| 274 | let end = self.parse_end_tag( ctx )?; | 274 | let end = self.parse_end_tag( ctx )?; |
| 275 | println!("End tag: {:?}, open tag: {:?}", end, tb.name() ); | 275 | //println!("End tag: {:?}, open tag: {:?}", end, tb.name() ); |
| 276 | if tb.is_name(end.symbol()) { | 276 | if tb.is_name(end.symbol()) { |
| 277 | // They match, time to decide what we're doing. | 277 | // They match, time to decide what we're doing. |
| 278 | let any_outputs = children.iter().any( | 278 | let any_outputs = children.iter().any( |
| @@ -327,14 +327,9 @@ impl Parser { | |||
| 327 | } | 327 | } |
| 328 | 328 | ||
| 329 | fn parse_open_tag<'a>(&self, ctx: &mut Context<'a>) -> ParseResult<TagBuilder<'a>> { | 329 | fn parse_open_tag<'a>(&self, ctx: &mut Context<'a>) -> ParseResult<TagBuilder<'a>> { |
| 330 | |||
| 331 | println!("--> Begin parse_tag <--"); | ||
| 332 | |||
| 333 | let start_sym = ctx.cur().unwrap(); | 330 | let start_sym = ctx.cur().unwrap(); |
| 334 | let mut tb = TagBuilder::new(&start_sym); | 331 | let mut tb = TagBuilder::new(&start_sym); |
| 335 | 332 | ||
| 336 | println!("--> Start sym: {:?}", start_sym ); | ||
| 337 | |||
| 338 | if ctx.next().is_some() { | 333 | if ctx.next().is_some() { |
| 339 | match ctx.cur().unwrap().symbol() { | 334 | match ctx.cur().unwrap().symbol() { |
| 340 | SymbolType::View | SymbolType::Show | | 335 | SymbolType::View | SymbolType::Show | |
| @@ -413,11 +408,9 @@ impl Parser { | |||
| 413 | } | 408 | } |
| 414 | SymbolType::StartFlat => { | 409 | SymbolType::StartFlat => { |
| 415 | tb.add_child( self.parse_tag_body( ctx )? ); | 410 | tb.add_child( self.parse_tag_body( ctx )? ); |
| 416 | println!("Following tag body: {:?} {:?}", ctx.cur(), ctx.peek() ); | ||
| 417 | } | 411 | } |
| 418 | SymbolType::StartPoint => { | 412 | SymbolType::StartPoint => { |
| 419 | let end = self.parse_end_tag( ctx )?; | 413 | let end = self.parse_end_tag( ctx )?; |
| 420 | println!("End tag: {:?}, open tag: {:?}", end, tb.name() ); | ||
| 421 | if tb.is_name(end.symbol()) { | 414 | if tb.is_name(end.symbol()) { |
| 422 | // They match, end. | 415 | // They match, end. |
| 423 | return tb.build(); | 416 | return tb.build(); |
| @@ -547,16 +540,13 @@ impl<'a> TagBuilder<'a> { | |||
| 547 | 540 | ||
| 548 | pub fn set_name(&mut self, name: Symbol<'a>) { | 541 | pub fn set_name(&mut self, name: Symbol<'a>) { |
| 549 | self.name = Some(name); | 542 | self.name = Some(name); |
| 550 | println!("Tag name: {:?}", self.name ); | ||
| 551 | } | 543 | } |
| 552 | 544 | ||
| 553 | pub fn add_param(&mut self, param: String) { | 545 | pub fn add_param(&mut self, param: String) { |
| 554 | println!("Add param: {:?}", param ); | ||
| 555 | self.params.push( param ); | 546 | self.params.push( param ); |
| 556 | } | 547 | } |
| 557 | 548 | ||
| 558 | pub fn add_prop(&mut self, key: String, value: String) { | 549 | pub fn add_prop(&mut self, key: String, value: String) { |
| 559 | println!("Add prop: {:?} = {:?}", key, value ); | ||
| 560 | self.props.insert( key, value ); | 550 | self.props.insert( key, value ); |
| 561 | } | 551 | } |
| 562 | 552 | ||
| @@ -589,7 +579,6 @@ impl<'a> TagBuilder<'a> { | |||
| 589 | Ok(Token::Show(self.params.swap_remove(0), self.props)) | 579 | Ok(Token::Show(self.params.swap_remove(0), self.props)) |
| 590 | } | 580 | } |
| 591 | _ => { | 581 | _ => { |
| 592 | println!("Unkown tag type"); | ||
| 593 | Err(ParseError { | 582 | Err(ParseError { |
| 594 | position: self.start_pos, | 583 | position: self.start_pos, |
| 595 | what: "Bad tag type".to_string(), | 584 | what: "Bad tag type".to_string(), |
| @@ -597,10 +586,10 @@ impl<'a> TagBuilder<'a> { | |||
| 597 | } | 586 | } |
| 598 | } | 587 | } |
| 599 | } else { | 588 | } else { |
| 600 | Err(ParseError { | 589 | Err(ParseError { |
| 601 | position: self.start_pos, | 590 | position: self.start_pos, |
| 602 | what: "Bad tag type".to_string(), | 591 | what: "Bad tag type".to_string(), |
| 603 | }) | 592 | }) |
| 604 | } | 593 | } |
| 605 | } | 594 | } |
| 606 | } | 595 | } |
