luaur_ast/methods/
parser_parse_name_opt.rs1use crate::records::ast_name::AstName;
2use crate::records::lexeme::Type;
3use crate::records::name::Name;
4use crate::records::parser::Parser;
5
6impl Parser {
7 pub fn parse_name_opt(&mut self, context: &str) -> Option<Name> {
8 if self.lexer.current().r#type != Type::Name {
9 self.report_name_error(context);
10
11 return None;
12 }
13
14 let current = self.lexer.current();
15 let result = Name {
16 name: AstName {
17 value: unsafe { current.data.name },
18 },
19 location: current.location,
20 };
21
22 self.next_lexeme();
23
24 Some(result)
25 }
26}