Match macro #include

This commit is contained in:
2022-01-01 18:29:00 +01:00
committed by Raymon Zutekouw
parent 27a7a009c1
commit 06e72b9117
2 changed files with 12 additions and 1 deletions
+7 -1
View File
@@ -12,6 +12,9 @@ decNum =_{ ASCII_DIGIT+ }
hexNum =_{ "0x" ~ ASCII_HEX_DIGIT+ } hexNum =_{ "0x" ~ ASCII_HEX_DIGIT+ }
num =_{ hexNum | decNum } num =_{ hexNum | decNum }
constant = { char | num } constant = { char | num }
path = { "\"" ~ (!"\"" ~ ANY)+ ~ "\"" }
include =@{ "#include" ~ spacing+ ~ path }
var =@{ "var" ~ spacing+ ~ variable } var =@{ "var" ~ spacing+ ~ variable }
delvar =@{ "delvar" ~ spacing+ ~ variable } delvar =@{ "delvar" ~ spacing+ ~ variable }
@@ -33,7 +36,10 @@ setz =@{ "setz" }
getchr =@{ "getchr" } getchr =@{ "getchr" }
print =@{ "print" } print =@{ "print" }
instruction =_{ var macaroo =_{ include }
instruction =_{ macaroo
| var
| delvar | delvar
| point | point
+5
View File
@@ -50,6 +50,11 @@ fn parse_constant(text: &str) -> Result<i32, std::num::ParseIntError> {
fn instruct(statement: Pair<Rule>, out: &mut Builder) { fn instruct(statement: Pair<Rule>, out: &mut Builder) {
match statement.as_rule() { 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 => { Rule::var => {
let variable_name = extract_operand(statement); let variable_name = extract_operand(statement);
println!("Creation of variable '{}'", variable_name); println!("Creation of variable '{}'", variable_name);