You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
671 B

3 years ago
use crate::generator::Generator;
use crate::parser::node_type::*;
pub struct JsGenerator;
impl Generator for JsGenerator {
fn generate(prog: Program) -> String {
let mut code = prog
.func
.into_iter()
.map(|f| generate_function(f))
.collect();
code += "main()";
return code;
}
}
fn generate_function(func: Function) -> String {
let arguments: String = func
.arguments
.into_iter()
.map(|arg: Variable| format!("{},", arg.name))
.collect();
let mut raw = format!("function {N}({A}) ", N = func.name, A = arguments);
raw += "{}\n";
raw
}