# File kwartz.rb, line 3485
        def parse_stmt_foreach
            Kwartz::assert() unless token() == :foreach
            scan()
            _syntaxerr("':foreach' requires '('.") unless token() == '('
            scan()
            assign_expr = parse_assignment(true)
            _syntaxerr("':foreach(' is not closed.") unless token() == ')'
            scan()
            _syntaxerr("':foreach' requires assignment.") unless assign_expr.token == '='
            nodelist = parse_stmt_list()
            _syntaxerr("':foreach' is not closed by ':end'.") unless token() == :end
            scan()
            return ForeachStmtNode.new(:foreach, assign_expr, nodelist)
        end