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.
585 586 587 588 589 590 591 592 |
# File 'lib/wardite.rb', line 585 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
579 580 581 |
# File 'lib/wardite.rb', line 579 def exports @exports end |
#import_object ⇒ Object (readonly)
: Hash[Symbol, Hash[Symbol, Proc]]
581 582 583 |
# File 'lib/wardite.rb', line 581 def import_object @import_object end |
#runtime ⇒ Object
: Runtime
575 576 577 |
# File 'lib/wardite.rb', line 575 def runtime @runtime end |
#store ⇒ Object
: Store
577 578 579 |
# File 'lib/wardite.rb', line 577 def store @store end |
#version ⇒ Object
: Integer
571 572 573 |
# File 'lib/wardite.rb', line 571 def version @version end |
Instance Method Details
#code_section ⇒ Object
653 654 655 656 657 658 659 660 661 662 |
# File 'lib/wardite.rb', line 653 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
629 630 631 632 633 634 635 636 637 638 |
# File 'lib/wardite.rb', line 629 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
665 666 667 668 669 670 671 672 673 674 |
# File 'lib/wardite.rb', line 665 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
641 642 643 644 645 646 647 648 649 650 |
# File 'lib/wardite.rb', line 641 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
595 596 597 598 599 600 601 602 |
# File 'lib/wardite.rb', line 595 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
617 618 619 620 621 622 623 624 625 626 |
# File 'lib/wardite.rb', line 617 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
605 606 607 608 609 610 611 612 613 614 |
# File 'lib/wardite.rb', line 605 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 |