Sha256: 3f48493f6f6d59ffcf6ca3e9890f0bf5f0734400598afc5548fea5e9955a99c5
Contents?: true
Size: 966 Bytes
Versions: 1
Compression:
Stored size: 966 Bytes
Contents
require 'hilbert/lexer/formula_lexer' module Hilbert module Parser module FormulaParser include Lexer::Tokens def self.execute(str) lexed = Lexer::FormulaLexer.new(str) time = Time.now loop do fail "I'm so sorry, something wrong. Please feel free to report this. [DEBUGG CODE31]" if Time.now > time + 10 case lexed.token_str when /:EXP(\d+)/ new_ope = $meta_info.lang == :ruby ? '**' : '^' lexed.parsed!(new_ope, $1) when /:MUL(\d+)/ sss = StringScanner.new(lexed.get_value($1)) ary = [] until sss.eos? [/pi/, /[1-9a-z]/].each do |rgx2| ary << sss[0] if sss.scan(rgx2) end end parsed = ary.join(' * ') lexed.parsed!(parsed, $1) else break end end lexed.values.join end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
hilbert-0.0.2700410 | lib/hilbert/parser/formula_parser.rb |