diff --git a/src/main.rs b/src/main.rs index 9bf1074..9f95da8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -324,6 +324,41 @@ fn compile(code: &String, run_symbol: &String, output_filename: &Path) -> Result } } + let ty = composer + .unifier + .add_ty(typedef::TypeEnum::TFunc(typedef::FunSignature { + args: vec![typedef::FuncArg { + name: "value".into(), + ty: primitive.float, + default_value: None, + is_vararg: false, + }], + ret: primitive.float, + vars: typedef::VarMap::new(), + })); + let name_ref = "slider".into(); + let mut function_def = composer::TopLevelComposer::make_top_level_function_def( + "slider".to_string(), + name_ref, + ty, + Some(resolver.clone()), + None, + ); + if let toplevel::TopLevelDef::Function { ref mut instance_to_symbol, .. } = function_def { + instance_to_symbol.insert("".to_string(), "__nac3_cells_slider".to_string()); + } else { + unreachable!(); + }; + composer.definition_ast_list.push(( + RwLock::new(function_def).into(), + None, + )); + internal_resolver.add_id_def( + name_ref, + toplevel::DefinitionId(composer.definition_ast_list.len() - 1), + ); + internal_resolver.add_id_type(name_ref, ty); + let signature = typedef::FunSignature { args: vec![], ret: primitive.none,