|
|
@ -248,6 +248,10 @@ impl Parser {
|
|
|
|
fn parse_primary_expr(&mut self) -> Result<tree::Node, Error> {
|
|
|
|
fn parse_primary_expr(&mut self) -> Result<tree::Node, Error> {
|
|
|
|
let token = self.lexer.require_next()?;
|
|
|
|
let token = self.lexer.require_next()?;
|
|
|
|
match token.kind {
|
|
|
|
match token.kind {
|
|
|
|
|
|
|
|
token::Kind::OParen => {
|
|
|
|
|
|
|
|
let expr = self.parse_binary_expr_or_higher(&[token::Kind::CParen])?;
|
|
|
|
|
|
|
|
self.parse_primary_expr_rest(expr)
|
|
|
|
|
|
|
|
},
|
|
|
|
token::Kind::Ident => {
|
|
|
|
token::Kind::Ident => {
|
|
|
|
let ident = tree::Node::Ident(String::from(token.raw));
|
|
|
|
let ident = tree::Node::Ident(String::from(token.raw));
|
|
|
|
self.parse_primary_expr_rest(ident)
|
|
|
|
self.parse_primary_expr_rest(ident)
|
|
|
|