Class: Wardite::Instance
- Inherits:
-
Object
- Object
- Wardite::Instance
- Defined in:
- lib/wardite.rb
Instance Attribute Summary collapse
-
#exports ⇒ Object
: Exports.
-
#import_object ⇒ Object
readonly
: Hash[Symbol, Hash[Symbol, Proc]].
-
#runtime ⇒ Object
: Runtime.
-
#sections ⇒ Object
: Array.
-
#store ⇒ Object
: Store.
-
#version ⇒ Object
: Integer.
Instance Method Summary collapse
- #code_section ⇒ Object
- #data_section ⇒ Object
- #export_section ⇒ Object
- #function_section ⇒ Object
- #import_section ⇒ Object
-
#initialize(import_object, &blk) ⇒ Instance
constructor
A new instance of Instance.
- #memory_section ⇒ Object
- #type_section ⇒ Object
Constructor Details
#initialize(import_object, &blk) ⇒ Instance
Returns a new instance of Instance.
575 576 577 578 579 580 581 582 |
# File 'lib/wardite.rb', line 575 def initialize(import_object, &blk) blk.call(self) @import_object = import_object @store = Store.new(self) @exports = Exports.new(self.export_section, store) @runtime = Runtime.new(self) end |
Instance Attribute Details
#exports ⇒ Object
: Exports
569 570 571 |
# File 'lib/wardite.rb', line 569 def exports @exports end |
#import_object ⇒ Object (readonly)
: Hash[Symbol, Hash[Symbol, Proc]]
571 572 573 |
# File 'lib/wardite.rb', line 571 def import_object @import_object end |
#runtime ⇒ Object
: Runtime
565 566 567 |
# File 'lib/wardite.rb', line 565 def runtime @runtime end |
#store ⇒ Object
: Store
567 568 569 |
# File 'lib/wardite.rb', line 567 def store @store end |
#version ⇒ Object
: Integer
561 562 563 |
# File 'lib/wardite.rb', line 561 def version @version end |
Instance Method Details
#code_section ⇒ Object
643 644 645 646 647 648 649 650 651 652 |
# File 'lib/wardite.rb', line 643 def code_section sec = @sections.find{|s| s.code == Const::SectionCode } if !sec return nil end if !sec.is_a?(CodeSection) raise(GenericError, "instance doesn't have required section") end sec end |
#data_section ⇒ Object
619 620 621 622 623 624 625 626 627 628 |
# File 'lib/wardite.rb', line 619 def data_section sec = @sections.find{|s| s.code == Const::SectionData } if !sec return nil end if !sec.is_a?(DataSection) raise(GenericError, "[BUG] found invalid data section") end sec end |
#export_section ⇒ Object
655 656 657 658 659 660 661 662 663 664 |
# File 'lib/wardite.rb', line 655 def export_section sec = @sections.find{|s| s.code == Const::SectionExport } if !sec return ExportSection.new end if !sec.is_a?(ExportSection) raise(GenericError, "instance doesn't have required section") end sec end |
#function_section ⇒ Object
631 632 633 634 635 636 637 638 639 640 |
# File 'lib/wardite.rb', line 631 def function_section sec = @sections.find{|s| s.code == Const::SectionFunction } if !sec return nil end if !sec.is_a?(FunctionSection) raise(GenericError, "instance doesn't have required section") end sec end |
#import_section ⇒ Object
585 586 587 588 589 590 591 592 |
# File 'lib/wardite.rb', line 585 def import_section sec = @sections.find{|s| s.code == Const::SectionImport } if !sec.is_a?(ImportSection) # returns dummy empty section return ImportSection.new end sec end |
#memory_section ⇒ Object
607 608 609 610 611 612 613 614 615 616 |
# File 'lib/wardite.rb', line 607 def memory_section sec = @sections.find{|s| s.code == Const::SectionMemory } if !sec return nil end if !sec.is_a?(MemorySection) raise(GenericError, "[BUG] found invalid memory section") end sec end |
#type_section ⇒ Object
595 596 597 598 599 600 601 602 603 604 |
# File 'lib/wardite.rb', line 595 def type_section sec = @sections.find{|s| s.code == Wardite::Const::SectionType } if !sec return nil end if !sec.is_a?(TypeSection) raise(GenericError, "instance doesn't have required section") end sec end |