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/dc_spec.rb,
 lib/origen/tester/ultraflex/parser/ac_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/pattern_sets.rb,
 lib/origen/tester/ultraflex/parser/descriptions.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
    
      
  
  
    - (Object) ac_specs 
  
  
  
  
    
      
50
51
52 
     | 
    
      # File 'lib/origen/tester/ultraflex/parser.rb', line 50
def ac_specs
  @ac_specs ||= ACSpecs.new(parser: self)
end 
     | 
  
 
    
      
  
  
    - (Object) dc_specs 
  
  
  
  
    
      
46
47
48 
     | 
    
      # File 'lib/origen/tester/ultraflex/parser.rb', line 46
def dc_specs
  @dc_specs ||= DCSpecs.new(parser: self)
end 
     | 
  
 
    
      
  
  
    - (Object) descriptions 
  
  
  
  
    
      
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
     | 
  
 
    
      
  
  
    - (Object) parse(file) 
  
  
  
  
    
Parse a file, array of files, or a directory.
This can be called multiple times to add new files to the program model.
   
 
  
  
    
      
62
63
64
65
66
67
68
69
70
71
72
73
74
75 
     | 
    
      # File 'lib/origen/tester/ultraflex/parser.rb', line 62
def parse(file)
  Origen.log.info ''
  Origen.log.info "Parsing Ultraflex test program from: #{file}"
  Origen.log.info ''
  reset
        Origen::FileHandler.new.resolve_files(file) do |f|
    parse_file(f)
  end
  Origen.log.info ''
  self
end
     | 
  
 
    
      
  
  
    - (Object) parse_file(file) 
  
  
  
  
    
      
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
     | 
  
 
    
      
  
  
    - (Object) pattern_sets 
  
  
    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 
     | 
  
 
    
      
  
  
    - (Object) test_instances 
  
  
    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 
     |