Sha256: 725b38eae1180c8614ff8024fdb50c5e02b3a6ae1149efd15c57e9bcf9c7ad2a
Contents?: true
Size: 1.16 KB
Versions: 19
Compression:
Stored size: 1.16 KB
Contents
# 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
Version data entries
19 entries across 19 versions & 1 rubygems