# File voodoo/compiler.rb, line 40 def compile section = :code errors = [] while true begin statement = @parser.parse_top_level break if statement == nil next if statement.empty? case statement[0] when :section section = statement[1] else @generator.add section, statement end rescue Parser::MultipleErrors => e errors.concat e.errors rescue Parser::ParseError => e errors << e end if errors.length >= 100 # Too many errors, give up. raise Error.new(errors) end end if errors.empty? @generator.write @output else raise Error.new(errors) end end