 
       condition.concat [body, @indent, '}']
 
+    # Assignment may be a statement in Pal, but it's just an operator in
+    # JavaScript. I could have used @makeBinOp, but I wanted a more customized
+    # appearance. Not that it'll matter to eval().
+    assign: (node) ->
+      [@visit(node.left), ' = ', @visit(node.right)]
+
     sub_invocation: (node) ->
       params =
         @visit param for param in node.params

        func.call(@, @visit(node.declarations, '$body'), node)

    [@indent, header, body, @indent, '}\n']





        if node.name is 'writeln' then '_output' else '_' + node.name

      "#{subroutineName}(#{paramList})"

    # Variables are complicated, but I'm just going to do the following naïve
    # thing: Just spit out a dollar and the name. The dollar is so that people
    # don't name a Pal variable 'return' and make unparsable JavaScript.
    variable: (node) ->
      '$' + node.name

    # Got to place strings in quotes and escape characters.
    string: (node) ->
