Class: OrigenVerilog::Preprocessor::VerilogParser
Overview
Invokes the Verilog parser on all text_block nodes, transforming the given pre-processor output AST into a Verilog AST
Instance Method Summary
collapse
#inline, #process, #process_all
Instance Method Details
#handler_missing(node) ⇒ Object
27
28
29
|
# File 'lib/origen_verilog/preprocessor/verilog_parser.rb', line 27
def handler_missing(node)
fail "No handler defined for node type: #{node.type}"
end
|
#on_file(node) ⇒ Object
20
21
22
23
24
25
|
# File 'lib/origen_verilog/preprocessor/verilog_parser.rb', line 20
def on_file(node)
file, *nodes = *node
node = VerilogParser.new.run(node.updated(nil, nodes), @options.merge(file: file))
@nodes += node.children
nil
end
|
#on_text_block(node) ⇒ Object
14
15
16
17
18
|
# File 'lib/origen_verilog/preprocessor/verilog_parser.rb', line 14
def on_text_block(node)
node = Verilog::Parser.parse(node.to_a[0], @options.merge(file: @file))
@nodes += node.children
nil
end
|
#run(node, options = {}) ⇒ Object
6
7
8
9
10
11
12
|
# File 'lib/origen_verilog/preprocessor/verilog_parser.rb', line 6
def run(node, options = {})
@nodes = []
@file = options[:file]
@options = options
process_all(node.children)
Verilog::Node.new(:verilog_source, @nodes, file: @file)
end
|