Sha256: b121da5a9f67ef4f77213eb43673ea827171bcc5e9c934313086135dd202fe5c

Contents?: true

Size: 631 Bytes

Versions: 13

Compression:

Stored size: 631 Bytes

Contents

# frozen_string_literal: true

require_relative "parse"
require_relative "constants"
require_relative "transform"
module Plurimath
  class Asciimath
    class Parser
      attr_accessor :text

      def initialize(text)
        @text = text
                  &.gsub(/(\|:|:\|)/, "|")
                  &.gsub(/(\{:)/, "ℒ")
                  &.gsub(/(:\})/, "ℛ")
      end

      def parse
        nodes = Parse.new.parse(text)
        transformed_tree = Transform.new.apply(nodes)
        return transformed_tree if transformed_tree.is_a?(Math::Formula)

        Math::Formula.new(transformed_tree)
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
plurimath-0.3.3 lib/plurimath/asciimath/parser.rb
plurimath-0.3.2 lib/plurimath/asciimath/parser.rb
plurimath-0.3.1.2 lib/plurimath/asciimath/parser.rb
plurimath-0.3.1 lib/plurimath/asciimath/parser.rb
plurimath-0.3.0 lib/plurimath/asciimath/parser.rb
plurimath-0.2.9 lib/plurimath/asciimath/parser.rb
plurimath-0.2.8 lib/plurimath/asciimath/parser.rb
plurimath-0.2.7 lib/plurimath/asciimath/parser.rb
plurimath-0.2.6 lib/plurimath/asciimath/parser.rb
plurimath-0.2.5 lib/plurimath/asciimath/parser.rb
plurimath-0.2.4 lib/plurimath/asciimath/parser.rb
plurimath-0.2.3 lib/plurimath/asciimath/parser.rb
plurimath-0.2.2 lib/plurimath/asciimath/parser.rb