Sha256: eff45533406827dee4fe3d51f493a8eb89d23594233ddc9b0f3526ec669a1bdc
Contents?: true
Size: 1.17 KB
Versions: 27
Compression:
Stored size: 1.17 KB
Contents
module Johnson module Nodes SINGLE_NODES = %w{ BitwiseNot Break Continue Delete False Name Not Null Number Parenthesis PostfixIncrement PrefixIncrement PostfixDecrement PrefixDecrement Regexp Return String This Throw True Typeof UnaryNegative UnaryPositive Void } class Node include Johnson::Visitable include Johnson::Visitors attr_accessor :value attr_reader :line, :column def initialize(line, column, value) @line = line @column = column @value = value end def to_s to_sexp.inspect end alias_method :inspect, :to_s def to_sexp SexpVisitor.new.accept(self) end def to_ecma EcmaVisitor.new.accept(self) end alias_method :to_js, :to_ecma def to_dot DotVisitor.new { |d| d.accept(self) } end def each(&block) EnumeratingVisitor.new(block).accept(self) self end end SINGLE_NODES.each { |se| const_set(se.to_sym, Class.new(Node)) } end end
Version data entries
27 entries across 27 versions & 5 rubygems