summaryrefslogtreecommitdiff
path: root/src/parse/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/parse/mod.rs')
-rw-r--r--src/parse/mod.rs36
1 files changed, 18 insertions, 18 deletions
diff --git a/src/parse/mod.rs b/src/parse/mod.rs
index ef4ce46f..150b5ed1 100644
--- a/src/parse/mod.rs
+++ b/src/parse/mod.rs
@@ -49,6 +49,7 @@ fn tree(p: &mut Parser) -> Tree {
/// Parse a syntax node.
fn node(p: &mut Parser, at_start: bool) -> Option<Node> {
let node = match p.peek()? {
+ Token::Text(text) => Node::Text(text.into()),
Token::Space(newlines) => {
if newlines < 2 {
Node::Space
@@ -56,13 +57,20 @@ fn node(p: &mut Parser, at_start: bool) -> Option<Node> {
Node::Parbreak
}
}
- Token::Text(text) => Node::Text(text.into()),
Token::LineComment(_) | Token::BlockComment(_) => {
p.eat();
return None;
}
+ Token::LeftBracket => {
+ return Some(Node::Expr(Expr::Call(bracket_call(p))));
+ }
+
+ Token::LeftBrace => {
+ return Some(Node::Expr(block_expr(p)?));
+ }
+
Token::Star => Node::Strong,
Token::Underscore => Node::Emph,
Token::Tilde => Node::Text("\u{00A0}".into()),
@@ -77,14 +85,6 @@ fn node(p: &mut Parser, at_start: bool) -> Option<Node> {
Token::Raw(t) => Node::Raw(raw(p, t)),
Token::UnicodeEscape(t) => Node::Text(unicode_escape(p, t)),
- Token::LeftBracket => {
- return Some(Node::Expr(Expr::Call(bracket_call(p))));
- }
-
- Token::LeftBrace => {
- return Some(Node::Expr(block_expr(p)?));
- }
-
_ => {
p.diag_unexpected();
return None;
@@ -321,19 +321,19 @@ fn value(p: &mut Parser) -> Option<Expr> {
let name = ident.with_span(p.peek_span());
return Some(Expr::Call(paren_call(p, name)));
} else {
- return Some(Expr::Lit(Lit::Ident(ident)));
+ return Some(Expr::Ident(ident));
}
}
// Basic values.
- Some(Token::None) => Expr::Lit(Lit::None),
- Some(Token::Bool(b)) => Expr::Lit(Lit::Bool(b)),
- Some(Token::Int(i)) => Expr::Lit(Lit::Int(i)),
- Some(Token::Float(f)) => Expr::Lit(Lit::Float(f)),
- Some(Token::Length(val, unit)) => Expr::Lit(Lit::Length(val, unit)),
- Some(Token::Percent(p)) => Expr::Lit(Lit::Percent(p)),
- Some(Token::Hex(hex)) => Expr::Lit(Lit::Color(color(p, hex))),
- Some(Token::Str(token)) => Expr::Lit(Lit::Str(str(p, token))),
+ Some(Token::None) => Expr::None,
+ Some(Token::Bool(b)) => Expr::Bool(b),
+ Some(Token::Int(i)) => Expr::Int(i),
+ Some(Token::Float(f)) => Expr::Float(f),
+ Some(Token::Length(val, unit)) => Expr::Length(val, unit),
+ Some(Token::Percent(p)) => Expr::Percent(p),
+ Some(Token::Hex(hex)) => Expr::Color(color(p, hex)),
+ Some(Token::Str(token)) => Expr::Str(str(p, token)),
// No value.
_ => {