module Parsec
Constants
- VERSION
Public Instance Methods
Column(value)
click to toggle source
# File lib/parsec/pos.rb, line 10 def Column(value) value.to_i end
Line(value)
click to toggle source
# File lib/parsec/pos.rb, line 6 def Line(value) value.to_i end
SourceName(value)
click to toggle source
# File lib/parsec/pos.rb, line 2 def SourceName(value) value.to_s end
SourcePos(source_name, line = nil, column = nil)
click to toggle source
# File lib/parsec/pos.rb, line 14 def SourcePos(source_name, line = nil, column = nil) source_name, line, column = source_name, line, column Object.new.tap do |object| object.instance_variable_set "@data", [source_name, line, column] def object.[](index) @data[index] end def object.to_s if self[0].nil? show_line_column else "\"#{self[0]}\" " + show_line_column end end def object.inspect to_s end def object.show_line_column "(line #{self[1]}, column #{self[2]})" end end end
incSourceColumn(source_pos, n)
click to toggle source
# File lib/parsec/pos.rb, line 65 def incSourceColumn(source_pos, n) SourcePos(source_pos[0], source_pos[1], source_pos[2] + n) end
incSourceLine(source_pos, n)
click to toggle source
# File lib/parsec/pos.rb, line 61 def incSourceLine(source_pos, n) SourcePos(source_pos[0], source_pos[1] + n, source_pos[2]) end
initialPos(name)
click to toggle source
# File lib/parsec/pos.rb, line 45 def initialPos(name) SourcePos(name, 1, 1) end
newPos(name, line, column)
click to toggle source
# File lib/parsec/pos.rb, line 41 def newPos(name, line, column) SourcePos(name, line, column) end
setSourceColumn(source_pos, n)
click to toggle source
# File lib/parsec/pos.rb, line 77 def setSourceColumn(source_pos, n) SourcePos(source_pos[0], source_pos[1], n) end
setSourceLine(source_pos, n)
click to toggle source
# File lib/parsec/pos.rb, line 73 def setSourceLine(source_pos, n) SourcePos(source_pos[0], n, source_pos[2]) end
setSourceName(source_pos, n)
click to toggle source
# File lib/parsec/pos.rb, line 69 def setSourceName(source_pos, n) SourcePos(n, source_pos[1], source_pos[2]) end
sourceColumn(source_pos)
click to toggle source
# File lib/parsec/pos.rb, line 57 def sourceColumn(source_pos) source_pos[2] end
sourceLine(source_pos)
click to toggle source
# File lib/parsec/pos.rb, line 53 def sourceLine(source_pos) source_pos[1] end
sourceName(source_pos)
click to toggle source
# File lib/parsec/pos.rb, line 49 def sourceName(source_pos) source_pos[0] end
updatePosChar(source_pos, c)
click to toggle source
# File lib/parsec/pos.rb, line 87 def updatePosChar(source_pos, c) case c when "\n" SourcePos(source_pos[0], source_pos[1] + 1, 1) when "\t" SourcePos(source_pos[0], source_pos[1], source_pos[2] + 8 - ((source_pos[2] - 1) % 8)) else SourcePos(source_pos[0], source_pos[1], source_pos[2] + 1) end end
updatePosString(pos, string)
click to toggle source
# File lib/parsec/pos.rb, line 81 def updatePosString(pos, string) string.chars.to_a.reduce(pos) do |acc, el| updatePosChar acc, el end end