lib/starlark_compiler/writer.rb in starlark_compiler-0.4.0 vs lib/starlark_compiler/writer.rb in starlark_compiler-0.5.0

- old
+ new

@@ -95,10 +95,31 @@ end write_newline unless single_line io << ')' end + def write_function_declaration(declaration) + io << 'def ' << declaration.name << '(' + final_index = declaration.args.size.pred + declaration.args.each_with_index do |arg, idx| + indented(single_line: false) do |indenter| + indenter.write_newline + write_node(arg) + indenter.write_comma unless final_index == idx + end + end + write_newline + io << '):' + final_index = declaration.body.size.pred + declaration.body.each do |arg| + indented(single_line: false) do |indenter| + indenter.write_newline + write_node(arg) + end + end + end + def write_variable_reference(variable) io << variable.var end def write_variable_assignment(assignment) @@ -209,8 +230,12 @@ end def single_line_dictionary?(dictionary) dictionary.elements.size <= 1 && dictionary.elements.each_key.all?(&method(:single_line?)) + end + + def single_line_variable_reference?(_) + true end end end