Module: Dvi

Defined in:
lib/dvi.rb,
lib/dvi/tfm.rb,
lib/dvi/version.rb

Defined Under Namespace

Modules: Opcode, Util, VERSION Classes: Font, LsR, Processor, Rule, Tfm, TypesetCharacter

Class Method Summary collapse

Class Method Details

.parse(io, opcodes = Opcode::BASIC_OPCODES) ⇒ Object

Parse a dvi file as a opcode list.



67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/dvi.rb', line 67

def self.parse(io, opcodes = Opcode::BASIC_OPCODES)
  table = Hash.new
  io.extend Util

  opcodes.each do |opcode|
    opcode.range.each{|i| table[i] = opcode }
  end

  content = []

  begin
    while cmd = io.readchar do
      content << table[cmd].read(cmd, io)
    end
  rescue EOFError; end

  return content
end

.process(io, opcodes = Opcode::BASIC_OPCODES) ⇒ Object



86
87
88
89
90
91
92
# File 'lib/dvi.rb', line 86

def self.process(io, opcodes = Opcode::BASIC_OPCODES)
  ps = Processor.new
  parse(io, opcodes).each do |opcode|
    ps.process(opcode)
  end
  return ps
end