lib/opal/parser/default_config.rb
# frozen_string_literal: true module Opal module Parser module DefaultConfig module ClassMethods attr_accessor :diagnostics_consumer def default_parser parser = super parser.diagnostics.all_errors_are_fatal = true parser.diagnostics.ignore_warnings = false parser.diagnostics.consumer = diagnostics_consumer parser end end def self.included(klass) klass.extend(ClassMethods) klass.diagnostics_consumer = ->(diagnostic) do if RUBY_ENGINE != 'opal' $stderr.puts(diagnostic.render) end end end def initialize(*) super(Opal::AST::Builder.new) end def parse(source_buffer) parsed = super || ::Opal::AST::Node.new(:nil) wrapped = ::Opal::AST::Node.new(:top, [parsed]) rewriten = rewrite(wrapped) rewriten end def rewrite(node) Opal::Rewriter.new(node).process end end class << self attr_accessor :default_parser_class def default_parser default_parser_class.default_parser end end end end