class Glaemscribe::API::Charset::VirtualChar
Attributes
charset[RW]
classes[RW]
default[RW]
line[RW]
names[RW]
reversed[RW]
Public Class Methods
new()
click to toggle source
# File lib/api/charset.rb, line 65 def initialize @classes = {} # result_char_1 => [trigger_char_1, trigger_char_2 ...] , result_char_1 => ... @lookup_table = {} @reversed = false @default = nil end
Public Instance Methods
[](trigger_char_name)
click to toggle source
# File lib/api/charset.rb, line 121 def [](trigger_char_name) @lookup_table[trigger_char_name] end
finalize()
click to toggle source
# File lib/api/charset.rb, line 82 def finalize @lookup_table = {} @classes.each{ |vc| result_char = vc.target trigger_chars = vc.triggers trigger_chars.each{ |trigger_char| found = @lookup_table[trigger_char] if found @charset.errors << Glaeml::Error.new(@line, "Trigger char #{trigger_char} found twice in virtual char.") else rc = @charset[result_char] tc = @charset[trigger_char] if rc.nil? @charset.errors << Glaeml::Error.new(@line, "Trigger char #{trigger_char} points to unknown result char #{result_char}.") elsif tc.nil? @charset.errors << Glaeml::Error.new(@line, "Unknown trigger char #{trigger_char}.") elsif rc.class == VirtualChar @charset.errors << Glaeml::Error.new(@line, "Trigger char #{trigger_char} points to another virtual char #{result_char}. This is not supported!") else tc.names.each{|trigger_char_name| # Don't forget to match all name variants for that trigger char! @lookup_table[trigger_char_name] = rc } end end } } if @default c = @charset[@default] if !c @charset.errors << Glaeml::Error.new(@line, "Default char #{@default} does not match any real character in the charset.") elsif c.virtual? @charset.errors << Glaeml::Error.new(@line, "Default char #{@default} is virtual, it should be real only.") end end end
sequence?()
click to toggle source
# File lib/api/charset.rb, line 129 def sequence? false end
str()
click to toggle source
# File lib/api/charset.rb, line 72 def str # Will be called if the virtual char could not be replaced and still exists at the end of the transcription chain if @default @charset[@default].str else VIRTUAL_CHAR_OUTPUT end end
virtual?()
click to toggle source
# File lib/api/charset.rb, line 125 def virtual? true end