diff options
Diffstat (limited to 'src/stages/syntactic.rs')
-rw-r--r-- | src/stages/syntactic.rs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/stages/syntactic.rs b/src/stages/syntactic.rs index 3be8307..14f8815 100644 --- a/src/stages/syntactic.rs +++ b/src/stages/syntactic.rs @@ -169,14 +169,16 @@ fn parse_syntactic_from_tokeniser(mut t: Tokeniser) -> Result<Vec<Tracked<Syntac c => { let token = format!("{c}{}", t.eat_token()); if let Some(hex_string) = token.strip_prefix("0x") { - match parse_integer_literal(hex_string, 16) { + let hex_string = hex_string.to_string(); + match parse_integer_literal(&hex_string, 16) { Ok(value) => SyntacticToken::IntegerLiteral(value), - Err(_) => err!(SyntacticError::InvalidHexadecimalLiteral(token)), + Err(_) => err!(SyntacticError::InvalidHexadecimalLiteral(hex_string)), } } else if let Some(binary_string) = token.strip_prefix("0b") { - match parse_integer_literal(binary_string, 2) { + let binary_string = binary_string.to_string(); + match parse_integer_literal(&binary_string, 2) { Ok(value) => SyntacticToken::IntegerLiteral(value), - Err(_) => err!(SyntacticError::InvalidBinaryLiteral(token)), + Err(_) => err!(SyntacticError::InvalidBinaryLiteral(binary_string)), } } else { match parse_integer_literal(&token, 10) { |