Browse Source

Fix semicolon position in generated code

github-actions
Garrit Franke 3 years ago
parent
commit
73ed60171c
  1. 18
      src/generator/js.rs

18
src/generator/js.rs

@ -72,7 +72,7 @@ fn generate_block(block: Statement) -> String {
}
fn generate_statement(statement: Statement) -> String {
match statement {
let state = match statement {
Statement::Return(ret) => generate_return(ret),
Statement::Declare(name, val) => generate_declare(name.name, val),
Statement::Exp(val) => generate_expression(val),
@ -82,7 +82,9 @@ fn generate_statement(statement: Statement) -> String {
Statement::Assign(name, state) => generate_assign(name, *state),
Statement::Block(_) => generate_block(statement),
Statement::While(expr, body) => generate_while_loop(expr, *body),
}
};
format!("{};\n", state)
}
fn generate_expression(expr: Expression) -> String {
@ -159,8 +161,8 @@ fn generate_declare(name: String, val: Option<Expression>) -> String {
// var is used here to not collide with scopes.
// TODO: Can let be used instead?
match val {
Some(expr) => format!("var {} = {};\n", name, generate_expression(expr)),
None => format!("var {};\n", name),
Some(expr) => format!("var {} = {}", name, generate_expression(expr)),
None => format!("var {}", name),
}
}
@ -179,13 +181,13 @@ fn generate_function_call(func: String, args: Vec<Expression>) -> String {
})
.collect::<Vec<String>>()
.join(",");
format!("{N}({A})\n", N = func, A = formatted_args)
format!("{N}({A})", N = func, A = formatted_args)
}
fn generate_return(ret: Option<Expression>) -> String {
match ret {
Some(expr) => format!("return {}\n", generate_expression(expr)),
None => "return;\n".to_string(),
Some(expr) => format!("return {}", generate_expression(expr)),
None => "return".to_string(),
}
}
@ -214,5 +216,5 @@ fn generate_bin_op(left: Expression, op: BinOp, right: Expression) -> String {
}
fn generate_assign(name: String, expr: Expression) -> String {
format!("{} = {};\n", name, generate_expression(expr))
format!("{} = {}", name, generate_expression(expr))
}

Loading…
Cancel
Save