Skip to content

Instantly share code, notes, and snippets.

@imWildCat
Created January 5, 2017 01:18
Show Gist options
  • Save imWildCat/b1c1caaa4e6258759c7748fb36a5a744 to your computer and use it in GitHub Desktop.
Save imWildCat/b1c1caaa4e6258759c7748fb36a5a744 to your computer and use it in GitHub Desktop.
grumpy
package main
import (
πg "grumpy"
π_os "os"
)
func initModule(πF *πg.Frame, _ []*πg.Object) (*πg.Object, *πg.BaseException) {
ßDemo := πg.InternStr("Demo")
ß__metaclass__ := πg.InternStr("__metaclass__")
ß__module__ := πg.InternStr("__module__")
ß__name__ := πg.InternStr("__name__")
ßobject := πg.InternStr("object")
ßprintHello := πg.InternStr("printHello")
var πTemp001 *πg.Dict
_ = πTemp001
var πTemp002 *πg.Object
_ = πTemp002
var πTemp003 []*πg.Object
_ = πTemp003
var πTemp004 *πg.Object
_ = πTemp004
var πTemp005 *πg.Object
_ = πTemp005
var πE *πg.BaseException; _ = πE
for ; πF.State() >= 0; πF.PopCheckpoint() {
switch πF.State() {
case 0:
default: panic("unexpected function state")
}
// line 1: class Demo(object):
πF.SetLineno(1)
πTemp003 = make([]*πg.Object, 1)
if πTemp005, πE = πg.ResolveGlobal(πF, ßobject); πE != nil {
continue
}
πTemp003[0] = πTemp005
πTemp001 = πg.NewDict()
if πTemp002, πE = πF.Globals().GetItem(πF, ß__name__.ToObject()); πE != nil {
continue
}
if πE = πTemp001.SetItem(πF, ß__module__.ToObject(), πTemp002); πE != nil {
continue
}
_, πE = πg.NewCode("Demo", "demo_class.py", nil, 0, func(πF *πg.Frame, _ []*πg.Object) (*πg.Object, *πg.BaseException) {
πClass := πTemp001
_ = πClass
var πTemp001 *πg.Object
_ = πTemp001
var πTemp002 []πg.FunctionArg
_ = πTemp002
var πE *πg.BaseException; _ = πE
for ; πF.State() >= 0; πF.PopCheckpoint() {
switch πF.State() {
case 0:
default: panic("unexpected function state")
}
// line 3: def printHello(self):
πF.SetLineno(3)
πTemp002 = make([]πg.FunctionArg, 1)
πTemp002[0] = πg.FunctionArg{Name: "self", Def: nil}
πTemp001 = πg.NewFunction(πg.NewCode("printHello", "demo_class.py", πTemp002, 0, func(πF *πg.Frame, πArgs []*πg.Object) (*πg.Object, *πg.BaseException) {
var µself *πg.Object = πArgs[0]; _ = µself
var πTemp001 []*πg.Object
_ = πTemp001
var πE *πg.BaseException; _ = πE
for ; πF.State() >= 0; πF.PopCheckpoint() {
switch πF.State() {
case 0:
default: panic("unexpected function state")
}
// line 4: print('Hello, world!')
πF.SetLineno(4)
πTemp001 = make([]*πg.Object, 1)
πTemp001[0] = πg.NewStr("Hello,\x20world!").ToObject()
if πE = πg.Print(πF, πTemp001, true); πE != nil {
continue
}
return nil, nil
}
return nil, πE
}), πF.Globals()).ToObject()
if πE = πClass.SetItem(πF, ßprintHello.ToObject(), πTemp001); πE != nil {
continue
}
return nil, nil
}
return nil, πE
}).Eval(πF, πF.Globals(), nil, nil)
if πE != nil {
return nil, πE
}
if πTemp004, πE = πTemp001.GetItem(πF, ß__metaclass__.ToObject()); πE != nil {
return nil, πE
}
if πTemp004 == nil {
πTemp004 = πg.TypeType.ToObject()
}
if πTemp005, πE = πTemp004.Call(πF, []*πg.Object{πg.NewStr("Demo").ToObject(), πg.NewTuple(πTemp003...).ToObject(), πTemp001.ToObject()}, nil); πE != nil {
continue
}
if πE = πF.Globals().SetItem(πF, ßDemo.ToObject(), πTemp005); πE != nil {
continue
}
return nil, nil
}
return nil, πE
}
var Code *πg.Code
func main() {
Code = πg.NewCode("<module>", "demo_class.py", nil, 0, initModule)
π_os.Exit(πg.RunMain(Code))
}
class Demo(object):
def printHello(self):
print('Hello, world!')
package main
import (
πg "grumpy"
π_os "os"
)
func initModule(πF *πg.Frame, _ []*πg.Object) (*πg.Object, *πg.BaseException) {
var πTemp001 []*πg.Object
_ = πTemp001
var πE *πg.BaseException; _ = πE
for ; πF.State() >= 0; πF.PopCheckpoint() {
switch πF.State() {
case 0:
default: panic("unexpected function state")
}
// line 1: print "hello, world"
πF.SetLineno(1)
πTemp001 = make([]*πg.Object, 1)
πTemp001[0] = πg.NewStr("hello,\x20world").ToObject()
if πE = πg.Print(πF, πTemp001, true); πE != nil {
continue
}
return nil, nil
}
return nil, πE
}
var Code *πg.Code
func main() {
Code = πg.NewCode("<module>", "hello.py", nil, 0, initModule)
π_os.Exit(πg.RunMain(Code))
}
print "hello, world"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment