summaryrefslogtreecommitdiff
path: root/src/parser.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser.rs')
-rw-r--r--src/parser.rs16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/parser.rs b/src/parser.rs
index 6e479e4..07bbd93 100644
--- a/src/parser.rs
+++ b/src/parser.rs
@@ -316,7 +316,10 @@ impl Parser {
316 return self.lex_error( &ctx.cur().unwrap() ); 316 return self.lex_error( &ctx.cur().unwrap() );
317 } 317 }
318 _ => { 318 _ => {
319 ctx.next(); 319 return Err(ParseError{
320 position: *ctx.cur().unwrap().start(),
321 what: format!("Unexpected tag in view root: {:?}", ctx.cur().unwrap().symbol())
322 });
320 } 323 }
321 } 324 }
322 } 325 }
@@ -387,6 +390,7 @@ impl Parser {
387 what: "Tag should be <| |] style end tag.".to_string(), 390 what: "Tag should be <| |] style end tag.".to_string(),
388 }); 391 });
389 } 392 }
393 ctx.next();
390 Ok(name) 394 Ok(name)
391 } 395 }
392 396
@@ -425,7 +429,10 @@ impl Parser {
425 return self.lex_error( &ctx.cur().unwrap() ); 429 return self.lex_error( &ctx.cur().unwrap() );
426 } 430 }
427 _ => { 431 _ => {
428 432 return Err(ParseError{
433 position: ctx.cur().unwrap().start().clone(),
434 what: format!("Unexpected token: {:?}", ctx.cur().unwrap().symbol()),
435 });
429 } 436 }
430 } 437 }
431 } 438 }
@@ -518,6 +525,7 @@ struct TagBuilder<'a> {
518 start_pos: Position, 525 start_pos: Position,
519} 526}
520 527
528#[derive(Debug)]
521enum ParamValue { 529enum ParamValue {
522 Literal(String), 530 Literal(String),
523 Identifier(Identifier), 531 Identifier(Identifier),
@@ -567,6 +575,10 @@ impl<'a> TagBuilder<'a> {
567 self.name 575 self.name
568 } 576 }
569 577
578 pub fn params(&self) -> &Vec<ParamValue> {
579 &self.params
580 }
581
570 pub fn set_name(&mut self, name: Symbol<'a>) { 582 pub fn set_name(&mut self, name: Symbol<'a>) {
571 self.name = Some(name); 583 self.name = Some(name);
572 } 584 }