forge: forge code variant: anonymous code, usable as XT
This commit is contained in:
parent
b88ef658ee
commit
aa953a7b10
2 changed files with 24 additions and 8 deletions
|
@ -55,7 +55,7 @@ func reg(f FE, _ XT) {
|
||||||
|
|
||||||
func create(f FE, xt XT) {
|
func create(f FE, xt XT) {
|
||||||
name := f.Pop().(string)
|
name := f.Pop().(string)
|
||||||
does := forge.FCode("", f.Pop().(FPtr))
|
does := forge.AnonCode(f.Pop().(FPtr))
|
||||||
f.Push(forge.Register(f.Voc(),
|
f.Push(forge.Register(f.Voc(),
|
||||||
forge.GoFunc(name, func(f FE, xt XT) {
|
forge.GoFunc(name, func(f FE, xt XT) {
|
||||||
f.Push(forge.Register(f.Voc(),
|
f.Push(forge.Register(f.Voc(),
|
||||||
|
|
|
@ -86,25 +86,41 @@ func (it *gofunc) Code() fptr {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// fcode: with forge code
|
// acode (anonymous code), fcode: forge code
|
||||||
|
|
||||||
type fcode struct {
|
type acode struct {
|
||||||
name
|
|
||||||
code fptr
|
code fptr
|
||||||
}
|
}
|
||||||
|
|
||||||
func FCode(n string, c fptr) XT {
|
func AnonCode(c fptr) XT {
|
||||||
return &fcode{name(n), c}
|
return &acode{c}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (it *fcode) Fct() Callable {
|
func (it *acode) Name() string {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (it *acode) Fct() Callable {
|
||||||
return doFCode
|
return doFCode
|
||||||
}
|
}
|
||||||
|
|
||||||
func (it *fcode) Code() fptr {
|
func (it *acode) Code() fptr {
|
||||||
return it.code
|
return it.code
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type fcode struct {
|
||||||
|
name
|
||||||
|
acode
|
||||||
|
}
|
||||||
|
|
||||||
|
func FCode(n string, c fptr) XT {
|
||||||
|
return &fcode{name(n), acode{c}}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (it *fcode) Name() string {
|
||||||
|
return string(it.name)
|
||||||
|
}
|
||||||
|
|
||||||
// forgeEnv methods
|
// forgeEnv methods
|
||||||
|
|
||||||
func (f *forgeEnv) Code(items ...fitem) fptr {
|
func (f *forgeEnv) Code(items ...fitem) fptr {
|
||||||
|
|
Loading…
Add table
Reference in a new issue