Match macro #include
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -50,6 +50,11 @@ fn parse_constant(text: &str) -> Result<i32, std::num::ParseIntError> {
|
||||
|
||||
fn instruct(statement: Pair<Rule>, 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);
|
||||
|
||||
Reference in New Issue
Block a user