Sha256: a024bd91a1268f5d3c3d679fee98c66bf857c27cfbc8e9bb3900c4120624521f

Contents?: true

Size: 791 Bytes

Versions: 37

Compression:

Stored size: 791 Bytes

Contents

# frozen_string_literal: true

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

      def initialize(text)
        enti = HTMLEntities.new
        text = enti.encode(enti.decode(text), :hexadecimal)
        text = text
          .gsub(/((?<!\\) )|\n+/, "")
          .gsub(/\\\\ /, "\\\\\\\\")
          .gsub(/&#x26;/, "&")
          .gsub(/&#x22;/, "\"")
          .gsub(/(?<!\\\\)\\&#xa;/, "\\ ")
          .gsub(/&#xa;/, "")
        @text = text
      end

      def parse
        tree_t = Parse.new.parse(text)
        formula = Transform.new.apply(tree_t)
        formula = [formula] unless formula.is_a?(Array)

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

Version data entries

37 entries across 37 versions & 1 rubygems

Version Path
plurimath-0.8.11 lib/plurimath/latex/parser.rb
plurimath-0.8.10 lib/plurimath/latex/parser.rb
plurimath-0.8.9 lib/plurimath/latex/parser.rb
plurimath-0.8.8 lib/plurimath/latex/parser.rb
plurimath-0.8.7 lib/plurimath/latex/parser.rb
plurimath-0.8.6 lib/plurimath/latex/parser.rb
plurimath-0.8.5 lib/plurimath/latex/parser.rb
plurimath-0.8.4 lib/plurimath/latex/parser.rb
plurimath-0.8.2 lib/plurimath/latex/parser.rb
plurimath-0.8.1 lib/plurimath/latex/parser.rb
plurimath-0.8.0 lib/plurimath/latex/parser.rb
plurimath-0.7.2 lib/plurimath/latex/parser.rb
plurimath-0.7.1 lib/plurimath/latex/parser.rb
plurimath-0.7.0 lib/plurimath/latex/parser.rb
plurimath-0.6.0 lib/plurimath/latex/parser.rb
plurimath-0.5.0 lib/plurimath/latex/parser.rb
plurimath-0.4.4 lib/plurimath/latex/parser.rb
plurimath-0.4.3 lib/plurimath/latex/parser.rb
plurimath-0.4.2 lib/plurimath/latex/parser.rb
plurimath-0.4.1 lib/plurimath/latex/parser.rb