From a76dc04211a4c37798afe92862807b53f8ad7803 Mon Sep 17 00:00:00 2001 From: Alain Zscheile Date: Sat, 20 May 2023 00:52:51 +0200 Subject: [PATCH] add integer support to parser --- crates/wafl-parser/src/parser.rs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/crates/wafl-parser/src/parser.rs b/crates/wafl-parser/src/parser.rs index 054379b..3b72f90 100644 --- a/crates/wafl-parser/src/parser.rs +++ b/crates/wafl-parser/src/parser.rs @@ -38,6 +38,7 @@ pub enum CodeObject { ret: Option, }, Alias(Identifier), + Integer(i64), } #[derive(Clone, Debug)] @@ -211,9 +212,16 @@ impl CodeObject { ret, }) } else if !cfe { - // we have no proper recursive delimiting, so just resort to the parsing which we - // also do for other such items, expect a single code object descriptor => alias. - Identifier::parse_step_high(ctx).map(CodeObject::Alias) + // we have no proper recursive delimiting, + // so just resort to the parsing which we also do for other such items, + // expect a single code object descriptor => alias, or number. + if let Some((_, Token::Integer(i))) = + ctx.pklx.next_if(|(_, t)| matches!(t, Token::Integer(_))) + { + Ok(CodeObject::Integer(i)) + } else { + Identifier::parse_step_high(ctx).map(CodeObject::Alias) + } } else { Err(match ctx.pklx.next() { Some((loc, _)) => Error {