Class: Algebra::AlgebraicParser

Inherits:
Object
  • Object
show all
Defined in:
lib/algebra/algebraic-parser.rb

Constant Summary collapse

Var =
'[a-zA-Z]\d*'.freeze
Num =
'\d+(?:\.\d*)?'.freeze
Op =
'(?:\*\*|[+\-*\/^])'.freeze
Gr =
'[\(\)]'.freeze
Dlm =
';'.freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(str, klass) ⇒ AlgebraicParser



21
22
23
24
25
26
# File 'lib/algebra/algebraic-parser.rb', line 21

def initialize(str, klass)
  @klass = klass
  @coeff = klass.ground
  @s = str.gsub(/\s+/, '').scan(/#{Dlm}|#{Num}|#{Op}|#{Gr}|#{Var}|.+/o)
  @basis = [] # stack for the basis of the power
end

Class Method Details

.eval(str, klass) ⇒ Object

, coeff = Numeric)



11
12
13
# File 'lib/algebra/algebraic-parser.rb', line 11

def self.eval(str, klass) # , coeff = Numeric)
  new(str, klass).compile
end

Instance Method Details

#compileObject



28
29
30
# File 'lib/algebra/algebraic-parser.rb', line 28

def compile
  sentence
end