Class: BuildTool::Cfg::BuildSystemDeclarationNodeVisitor

Inherits:
ListVisitor show all
Defined in:
lib/build-tool/cfg/visitor.rb

Overview

Build System Declaration Visitor.

Instance Attribute Summary

Attributes inherited from VisitorBase

#configuration

Instance Method Summary collapse

Methods inherited from ListVisitor

#visit, #visit_nodes

Methods inherited from VisitorBase

#visit_Object

Constructor Details

#initialize(configuration, build_system) ⇒ BuildSystemDeclarationNodeVisitor

Initialize a build system. If no build system is provided we will create a new one. Which is not registered with the configuration.



59
60
61
62
# File 'lib/build-tool/cfg/visitor.rb', line 59

def initialize( configuration, build_system )
    super( configuration )
    @build_system = build_system
end

Instance Method Details

#visit_BuildSystemDeclarationNode(node) ⇒ Object



64
65
66
67
# File 'lib/build-tool/cfg/visitor.rb', line 64

def visit_BuildSystemDeclarationNode( node )
    visit_nodes( node.values[1] )
    return @build_system
end

#visit_BuildSystemInplaceNode(node) ⇒ Object



69
70
71
# File 'lib/build-tool/cfg/visitor.rb', line 69

def visit_BuildSystemInplaceNode( node )
    @build_system.out_of_source = false
end

#visit_BuildSystemOptionNode(node) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/build-tool/cfg/visitor.rb', line 73

def visit_BuildSystemOptionNode( node )
    case node.values.length
    when 3
        case node.values[1]
        when 'append';  @build_system.append( node.values[0], node.values[2] )
        when 'prepend'; @build_system.prepend( node.values[0], node.values[2] )
        when 'set';     @build_system.set( node.values[0], node.values[2] )
        else raise StandardError, "Unexpected token #{node.values[1]}!"
        end
    when 2
        @build_system.set( node.values[0], node.values[1] )
    else
        raise StandardError, "Unexpected number of tokens #{node.values.length} #{node.values.join(', ')}"
    end
end