1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
# frozen_string_literal: true
module Unparser
class Emitter
# Emitter for flip flops
class FlipFlop < self
MAP = {
iflipflop: '..',
eflipflop: '...'
}.freeze
SYMBOLS = {
eflipflop: :tDOT3,
iflipflop: :tDOT2
}.freeze
def symbol_name
true
end
handle(*MAP.keys)
children :left, :right
private
def dispatch
visit(left) if left
write(MAP.fetch(node.type))
if right
visit(right)
else
write(';')
end
end
end # FlipFLop
end # Emitter
end # Unparser
|