class MathML::LaTeX::Scanner
Public Instance Methods
check(re)
click to toggle source
# File lib/math_ml/latex.rb 59 def check(re) 60 skip_space_and(true) { _check(re) } 61 end
Also aliased as: _check
check_any(remain_space = false)
click to toggle source
# File lib/math_ml/latex.rb 111 def check_any(remain_space = false) 112 skip_space_and(true) { scan_any(remain_space) } 113 end
check_block()
click to toggle source
# File lib/math_ml/latex.rb 83 def check_block 84 skip_space_and(true) { scan_block } 85 end
check_command()
click to toggle source
# File lib/math_ml/latex.rb 71 def check_command 72 check(RE::COMMANDS) 73 end
check_option()
click to toggle source
# File lib/math_ml/latex.rb 149 def check_option 150 skip_space_and(true) { scan_option } 151 end
done()
click to toggle source
# File lib/math_ml/latex.rb 37 def done 38 string[0, pos] 39 end
eos?()
click to toggle source
# File lib/math_ml/latex.rb 67 def eos? 68 _eos? || _check(/#{RE::SPACE}+\z/) 69 end
Also aliased as: _eos?
peek_command()
click to toggle source
# File lib/math_ml/latex.rb 79 def peek_command 80 check_command ? self[1] : nil 81 end
scan(re)
click to toggle source
# File lib/math_ml/latex.rb 63 def scan(re) 64 skip_space_and(false) { _scan(re) } 65 end
Also aliased as: _scan
scan_any(remain_space = false)
click to toggle source
# File lib/math_ml/latex.rb 115 def scan_any(remain_space = false) 116 p = pos 117 scan_space 118 r = remain_space ? matched.to_s : '' 119 case 120 when s = scan_block 121 when s = scan_command 122 else 123 unless _scan(/./) || remain_space 124 self.pos = p 125 return nil 126 end 127 s = matched.to_s 128 end 129 r + s 130 end
scan_block()
click to toggle source
# File lib/math_ml/latex.rb 87 def scan_block 88 return nil unless scan(/\{/) 89 90 block = '{' 91 bpos = pos - 1 92 nest = 1 93 while _scan(/(#{MBEC}*?)([{}])/) 94 block << matched 95 case self[2] 96 when '{' 97 nest += 1 98 when '}' 99 nest -= 1 100 break if nest == 0 101 end 102 end 103 if nest > 0 104 self.pos = bpos 105 raise BlockNotClosed 106 end 107 self.pos = bpos 108 _scan(/\A\{(#{Regexp.escape(block[RE::BLOCK, 1].to_s)})\}/) 109 end
scan_command()
click to toggle source
# File lib/math_ml/latex.rb 75 def scan_command 76 scan(RE::COMMANDS) 77 end
scan_option()
click to toggle source
# File lib/math_ml/latex.rb 132 def scan_option 133 return nil unless scan(/\[/) 134 135 opt = '[' 136 p = pos - 1 137 until (s = scan_any(true)) =~ /\A#{RE::SPACE}*\]\z/ 138 opt << s 139 if eos? 140 self.pos = p 141 raise OptionNotClosed 142 end 143 end 144 opt << s 145 self.pos = p 146 _scan(/\A\[(#{Regexp.escape(opt[RE::OPTION, 1].to_s)})\]/) 147 end
scan_space()
click to toggle source
# File lib/math_ml/latex.rb 41 def scan_space 42 _scan(/#{RE::SPACE}+/) 43 end
skip_space_and(check_mode) { || ... }
click to toggle source
# File lib/math_ml/latex.rb 45 def skip_space_and(check_mode) 46 opos = pos 47 scan_space 48 r = yield 49 self.pos = opos if check_mode || !r 50 r 51 end