Module: Preval

Defined in:
lib/preval.rb,
lib/preval/node.rb,
lib/preval/format.rb,
lib/preval/parser.rb,
lib/preval/version.rb,
lib/preval/visitor.rb,
lib/preval/visitors/loops.rb,
lib/preval/visitors/fasterer.rb,
lib/preval/visitors/arithmetic.rb,
lib/preval/visitors/attr_accessor.rb

Defined Under Namespace

Modules: Format Classes: Node, Parser, Visitor, Visitors

Constant Summary collapse

SyntaxError =
Class.new(::SyntaxError)
VERSION =
'0.6.0'

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.visitorsObject (readonly)

Returns the value of attribute visitors.



9
10
11
# File 'lib/preval.rb', line 9

def visitors
  @visitors
end

Class Method Details

.enable_all!Object



11
12
13
14
15
16
# File 'lib/preval.rb', line 11

def enable_all!
  Visitors::Arithmetic.enable!
  Visitors::AttrAccessor.enable!
  Visitors::Fasterer.enable!
  Visitors::Loops.enable!
end

.process(source) ⇒ Object



18
19
20
21
22
# File 'lib/preval.rb', line 18

def process(source)
  visitors.inject(Parser.parse(source)) do |current, visitor|
    current.tap { |ast| ast.visit(visitor) }
  end.to_source
end