Match macro #include
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user