Class: Origen::Tester::Ultraflex::Parser
- Inherits:
-
Object
- Object
- Origen::Tester::Ultraflex::Parser
show all
- Defined in:
- lib/origen/tester/ultraflex/parser.rb,
lib/origen/tester/ultraflex/parser/flow.rb,
lib/origen/tester/ultraflex/parser/flows.rb,
lib/origen/tester/ultraflex/parser/ac_spec.rb,
lib/origen/tester/ultraflex/parser/dc_spec.rb,
lib/origen/tester/ultraflex/parser/timeset.rb,
lib/origen/tester/ultraflex/parser/dc_specs.rb,
lib/origen/tester/ultraflex/parser/flow_line.rb,
lib/origen/tester/ultraflex/parser/pattern_set.rb,
lib/origen/tester/ultraflex/parser/descriptions.rb,
lib/origen/tester/ultraflex/parser/pattern_sets.rb,
lib/origen/tester/ultraflex/parser/test_instance.rb,
lib/origen/tester/ultraflex/parser/test_instances.rb
Defined Under Namespace
Classes: ACSpec, DCSpec, DCSpecs, Descriptions, Flow, FlowLine, Flows, PatternSet, PatternSets, TestInstance, TestInstances, Timeset
Instance Method Summary
collapse
Instance Method Details
50
51
52
|
# File 'lib/origen/tester/ultraflex/parser.rb', line 50
def ac_specs
@ac_specs ||= ACSpecs.new(parser: self)
end
|
46
47
48
|
# File 'lib/origen/tester/ultraflex/parser.rb', line 46
def dc_specs
@dc_specs ||= DCSpecs.new(parser: self)
end
|
#descriptions ⇒ Object
26
27
28
|
# File 'lib/origen/tester/ultraflex/parser.rb', line 26
def descriptions
@descriptions ||= Descriptions.new(parser: self)
end
|
Returns an array of test flows
31
32
33
|
# File 'lib/origen/tester/ultraflex/parser.rb', line 31
def flows
@flows ||= Flows.new(parser: self)
end
|
54
55
56
|
# File 'lib/origen/tester/ultraflex/parser.rb', line 54
def inspect
"<Parsed Program: Flows: #{flows.size}>"
end
|
#parse(file) ⇒ Object
Parse a file, array of files, or a directory.
This can be called multiple times to add new files to the program model.
#parse_file(file) ⇒ Object
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
# File 'lib/origen/tester/ultraflex/parser.rb', line 77
def parse_file(file)
line = File.readlines(file).first
begin
if line =~ /Flow Table/
flows.import(file)
elsif line =~ /Instances/
test_instances.import(file)
elsif line =~ /Pattern Sets/
patsets.import(file)
elsif line =~ /DC Spec/
dc_specs.import(file)
else
puts "Skipped (un-supported file type): #{file}"
end
rescue Exception => e
if e.is_a?(ArgumentError) && e.message =~ /invalid byte sequence/
puts "Skipped (not ASCII): #{file}"
else
puts e.message
puts e.backtrace
exit 1
end
end
end
|
#pattern_sets ⇒ Object
Also known as:
patsets, pat_sets
40
41
42
|
# File 'lib/origen/tester/ultraflex/parser.rb', line 40
def pattern_sets
@pattern_sets ||= PatternSets.new(parser: self)
end
|
18
19
20
21
22
23
24
|
# File 'lib/origen/tester/ultraflex/parser.rb', line 18
def reset
@flows = nil
@test_instances = nil
@pattern_sets = nil
@dc_specs = nil
@ac_specs = nil
end
|
#test_instances ⇒ Object
Also known as:
instances
35
36
37
|
# File 'lib/origen/tester/ultraflex/parser.rb', line 35
def test_instances
@test_instances ||= TestInstances.new(parser: self)
end
|