Skip to content

Commit

Permalink
Define module class and class class
Browse files Browse the repository at this point in the history
  • Loading branch information
elct9620 committed Dec 14, 2023
1 parent 122dbc1 commit 6dcb2af
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 4 deletions.
14 changes: 12 additions & 2 deletions class.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package mruby

type MethodTable map[string]*Method
type RClass struct {
RBasic
super *RClass
mt MethodTable
}
Expand Down Expand Up @@ -55,6 +56,15 @@ func (mrb *State) FindMethod(recv Value, class *RClass, mid string) *Method {
}

func initClass(mrb *State) {
mrb.basicObject = newClass(mrb, nil)
mrb.objectClass = newClass(mrb, mrb.basicObject)
basicObject := newClass(mrb, nil)
objectClass := newClass(mrb, basicObject)
mrb.objectClass = objectClass
moduleClass := newClass(mrb, mrb.objectClass)
mrb.moduleClass = moduleClass
classClass := newClass(mrb, mrb.moduleClass)
mrb.classClass = classClass

basicObject.class = classClass
objectClass.class = classClass
moduleClass.class = classClass
}
5 changes: 3 additions & 2 deletions mruby.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,11 @@ type callinfo struct {
type State struct {
context *context

basicObject *RClass
objectClass *RClass
moduleClass *RClass
classClass *RClass
falseClass *RClass
trueClass *RClass
objectClass *RClass

topSelf *RObject
}
Expand Down
1 change: 1 addition & 0 deletions object.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package mruby
import "fmt"

type RBasic struct {
class *RClass
}

type RObject struct {
Expand Down

0 comments on commit 6dcb2af

Please sign in to comment.