Skip to content

Commit 6b1c5be

Browse files
Fix import statements
1 parent deeec61 commit 6b1c5be

1 file changed

Lines changed: 20 additions & 17 deletions

File tree

src/utils/language/parser.rs

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -527,16 +527,25 @@ impl Parser {
527527
let peeked = self.peek().clone();
528528
if let TokenType::Identifier(key) | TokenType::Value(Value::String(key)) = peeked.token_type {
529529
self.advance();
530-
if !self.eat(&TokenType::Symbol(":".to_string())) {
531-
return Err(format!(
532-
"Expected ':' after key in object but got {:?} at {}:{}",
533-
self.peek().token_type, self.peek().line, self.peek().column
534-
));
535-
}
536-
let value = self.parse_binary(0)?;
537-
object.insert(key.clone(), value);
538-
if !self.eat(&TokenType::Symbol(",".to_string())) {
539-
break;
530+
match self.peek().token_type {
531+
TokenType::Symbol(ref s) if s == ":" => {
532+
self.advance();
533+
let value = self.parse_binary(0)?;
534+
object.insert(key, value);
535+
if !self.eat(&TokenType::Symbol(",".to_string())) {
536+
break;
537+
}
538+
}
539+
TokenType::Symbol(ref s) if s == "," => {
540+
self.advance();
541+
object.insert(key.clone(), Expression::Identifier(key));
542+
}
543+
_ => {
544+
return Err(format!(
545+
"Expected ':' or ',' after key '{}' in object but got {:?} at {}:{}",
546+
key, self.peek().token_type, self.peek().line, self.peek().column
547+
));
548+
}
540549
}
541550
} else {
542551
return Err(format!(
@@ -902,13 +911,7 @@ impl Parser {
902911
if let TokenType::Value(Value::String(ref path)) = self.peek().token_type {
903912
let path = path.clone();
904913
self.advance();
905-
if !self.eat(&TokenType::Newline) {
906-
return Err(format!(
907-
"Expected newline after import path at {}:{}",
908-
self.peek().line, self.peek().column
909-
));
910-
}
911-
Ok(Statement::Import { path: path.clone() })
914+
Ok(Statement::Import { path })
912915
} else {
913916
Err(format!(
914917
"Expected string path after 'import' at {}:{}",

0 commit comments

Comments
 (0)