Sha256: 9c3dc89592d82b5d7e2095c71d37a3e29dc6af9876b2f5d7f055e9f271f1c0f2

Contents?: true

Size: 713 Bytes

Versions: 41

Compression:

Stored size: 713 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(/(:\})/, "ℛ")
                  &.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

41 entries across 41 versions & 1 rubygems

Version Path
plurimath-0.8.26 lib/plurimath/asciimath/parser.rb
plurimath-0.8.25 lib/plurimath/asciimath/parser.rb
plurimath-0.8.24 lib/plurimath/asciimath/parser.rb
plurimath-0.8.23 lib/plurimath/asciimath/parser.rb
plurimath-0.8.22 lib/plurimath/asciimath/parser.rb
plurimath-0.8.21 lib/plurimath/asciimath/parser.rb
plurimath-0.8.20 lib/plurimath/asciimath/parser.rb
plurimath-0.8.19 lib/plurimath/asciimath/parser.rb
plurimath-0.8.18 lib/plurimath/asciimath/parser.rb
plurimath-0.8.17 lib/plurimath/asciimath/parser.rb
plurimath-0.8.16 lib/plurimath/asciimath/parser.rb
plurimath-0.8.15 lib/plurimath/asciimath/parser.rb
plurimath-0.8.14 lib/plurimath/asciimath/parser.rb
plurimath-0.8.13 lib/plurimath/asciimath/parser.rb
plurimath-0.8.12 lib/plurimath/asciimath/parser.rb
plurimath-0.8.11 lib/plurimath/asciimath/parser.rb
plurimath-0.8.10 lib/plurimath/asciimath/parser.rb
plurimath-0.8.9 lib/plurimath/asciimath/parser.rb
plurimath-0.8.8 lib/plurimath/asciimath/parser.rb
plurimath-0.8.7 lib/plurimath/asciimath/parser.rb