From 1ed3cc8bbae2c47e02d79b9504d64470102d26bc Mon Sep 17 00:00:00 2001 From: Raymon Zutekouw <40148684+Raymonzut@users.noreply.github.com> Date: Sat, 1 Jan 2022 18:22:54 +0100 Subject: [PATCH] Match macro #include --- src/grammars/mblf.pest | 8 +++++++- src/main.rs | 5 +++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/grammars/mblf.pest b/src/grammars/mblf.pest index 8b5b139..b58494b 100644 --- a/src/grammars/mblf.pest +++ b/src/grammars/mblf.pest @@ -12,6 +12,9 @@ decNum =_{ ASCII_DIGIT+ } hexNum =_{ "0x" ~ ASCII_HEX_DIGIT+ } num =_{ hexNum | decNum } constant = { char | num } +path = { "\"" ~ (!"\"" ~ ANY)+ ~ "\"" } + +include =@{ "#include" ~ spacing+ ~ path } var =@{ "var" ~ spacing+ ~ variable } delvar =@{ "delvar" ~ spacing+ ~ variable } @@ -33,7 +36,10 @@ setz =@{ "setz" } getchr =@{ "getchr" } print =@{ "print" } -instruction =_{ var +macaroo =_{ include } +instruction =_{ macaroo + + | var | delvar | point diff --git a/src/main.rs b/src/main.rs index f3fc9be..97528ff 100644 --- a/src/main.rs +++ b/src/main.rs @@ -50,6 +50,11 @@ fn parse_constant(text: &str) -> Result { fn instruct(statement: Pair, out: &mut Builder) { match statement.as_rule() { + Rule::include => { + let file_path = extract_operand(statement); + println!("Including {} into this src file", file_path); + out.append("#include\n"); + } Rule::var => { let variable_name = extract_operand(statement); println!("Creation of variable '{}'", variable_name);