Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.08 KB | None | 0 0
  1. package main
  2. import (
  3. π___python__Γsys "__python__/sys"
  4. πg "grumpy"
  5. π_os "os"
  6. )
  7. func initModule(πF *πg.Frame, _ []*πg.Object) (*πg.Object, *πg.BaseException) {
  8. ßIndexError := πg.InternStr("IndexError")
  9. ßValueError := πg.InternStr("ValueError")
  10. ß__main__ := πg.InternStr("__main__")
  11. ß__name__ := πg.InternStr("__name__")
  12. ßargv := πg.InternStr("argv")
  13. ßfib := πg.InternStr("fib")
  14. ßidx := πg.InternStr("idx")
  15. ßint := πg.InternStr("int")
  16. ßsys := πg.InternStr("sys")
  17. var πTemp001 *πg.Object
  18. _ = πTemp001
  19. var πTemp002 []*πg.Object
  20. _ = πTemp002
  21. var πTemp003 []πg.Param
  22. _ = πTemp003
  23. var πTemp004 *πg.Object
  24. _ = πTemp004
  25. var πTemp005 *πg.Object
  26. _ = πTemp005
  27. var πTemp006 bool
  28. _ = πTemp006
  29. var πTemp007 *πg.Object
  30. _ = πTemp007
  31. var πTemp008 *πg.Object
  32. _ = πTemp008
  33. var πTemp009 []*πg.Object
  34. _ = πTemp009
  35. var πTemp010 []*πg.Object
  36. _ = πTemp010
  37. var πTemp011 *πg.BaseException
  38. _ = πTemp011
  39. var πTemp012 *πg.Traceback
  40. _ = πTemp012
  41. var πE *πg.BaseException; _ = πE
  42. for ; πF.State() >= 0; πF.PopCheckpoint() {
  43. switch πF.State() {
  44. case 0:
  45. case 4: goto Label4
  46. default: panic("unexpected function state")
  47. }
  48. // line 3: import sys
  49. πF.SetLineno(3)
  50. if πTemp002, πE = πg.ImportModule(πF, "sys", []*πg.Code{π___python__Γsys.Code}); πE != nil {
  51. continue
  52. }
  53. πTemp001 = πTemp002[0]
  54. if πE = πF.Globals().SetItem(πF, ßsys.ToObject(), πTemp001); πE != nil {
  55. continue
  56. }
  57. // line 5: def fib(i):
  58. πF.SetLineno(5)
  59. πTemp003 = make([]πg.Param, 1)
  60. πTemp003[0] = πg.Param{Name: "i", Def: nil}
  61. πTemp001 = πg.NewFunction(πg.NewCode("fib", "fib.py", πTemp003, 0, func(πF *πg.Frame, πArgs []*πg.Object) (*πg.Object, *πg.BaseException) {
  62. var µi *πg.Object = πArgs[0]; _ = µi
  63. var πTemp001 *πg.Object
  64. _ = πTemp001
  65. var πTemp002 bool
  66. _ = πTemp002
  67. var πTemp003 []*πg.Object
  68. _ = πTemp003
  69. var πTemp004 *πg.Object
  70. _ = πTemp004
  71. var πTemp005 *πg.Object
  72. _ = πTemp005
  73. var πTemp006 *πg.Object
  74. _ = πTemp006
  75. var πE *πg.BaseException; _ = πE
  76. for ; πF.State() >= 0; πF.PopCheckpoint() {
  77. switch πF.State() {
  78. case 0:
  79. default: panic("unexpected function state")
  80. }
  81. if πE = πg.CheckLocal(πF, µi, "i"); πE != nil {
  82. continue
  83. }
  84. if πTemp001, πE = πg.LT(πF, µi, πg.NewInt(2).ToObject()); πE != nil {
  85. continue
  86. }
  87. if πTemp002, πE = πg.IsTrue(πF, πTemp001); πE != nil {
  88. continue
  89. }
  90. if πTemp002 {
  91. goto Label1
  92. }
  93. goto Label2
  94. // line 6: if i < 2:
  95. πF.SetLineno(6)
  96. Label1:
  97. // line 7: return 1
  98. πF.SetLineno(7)
  99. return πg.NewInt(1).ToObject(), nil
  100. goto Label2
  101. Label2:
  102. // line 8: return fib(i-1) + fib(i-2)
  103. πF.SetLineno(8)
  104. πTemp003 = πF.MakeArgs(1)
  105. if πE = πg.CheckLocal(πF, µi, "i"); πE != nil {
  106. continue
  107. }
  108. if πTemp004, πE = πg.Sub(πF, µi, πg.NewInt(1).ToObject()); πE != nil {
  109. continue
  110. }
  111. πTemp003[0] = πTemp004
  112. if πTemp004, πE = πg.ResolveGlobal(πF, ßfib); πE != nil {
  113. continue
  114. }
  115. if πTemp005, πE = πTemp004.Call(πF, πTemp003, nil); πE != nil {
  116. continue
  117. }
  118. πF.FreeArgs(πTemp003)
  119. πTemp003 = πF.MakeArgs(1)
  120. if πE = πg.CheckLocal(πF, µi, "i"); πE != nil {
  121. continue
  122. }
  123. if πTemp004, πE = πg.Sub(πF, µi, πg.NewInt(2).ToObject()); πE != nil {
  124. continue
  125. }
  126. πTemp003[0] = πTemp004
  127. if πTemp004, πE = πg.ResolveGlobal(πF, ßfib); πE != nil {
  128. continue
  129. }
  130. if πTemp006, πE = πTemp004.Call(πF, πTemp003, nil); πE != nil {
  131. continue
  132. }
  133. πF.FreeArgs(πTemp003)
  134. if πTemp001, πE = πg.Add(πF, πTemp005, πTemp006); πE != nil {
  135. continue
  136. }
  137. return πTemp001, nil
  138. return nil, nil
  139. }
  140. return nil, πE
  141. }), πF.Globals()).ToObject()
  142. if πE = πF.Globals().SetItem(πF, ßfib.ToObject(), πTemp001); πE != nil {
  143. continue
  144. }
  145. if πTemp005, πE = πg.ResolveGlobal(πF, ß__name__); πE != nil {
  146. continue
  147. }
  148. if πTemp004, πE = πg.Eq(πF, πTemp005, ß__main__.ToObject()); πE != nil {
  149. continue
  150. }
  151. if πTemp006, πE = πg.IsTrue(πF, πTemp004); πE != nil {
  152. continue
  153. }
  154. if πTemp006 {
  155. goto Label1
  156. }
  157. goto Label2
  158. // line 10: if __name__ == '__main__':
  159. πF.SetLineno(10)
  160. Label1:
  161. // line 11: try:
  162. πF.SetLineno(11)
  163. πF.PushCheckpoint(4)
  164. // line 12: idx = sys.argv[1]
  165. πF.SetLineno(12)
  166. πTemp004 = πg.NewInt(1).ToObject()
  167. if πTemp007, πE = πg.ResolveGlobal(πF, ßsys); πE != nil {
  168. continue
  169. }
  170. if πTemp008, πE = πg.GetAttr(πF, πTemp007, ßargv, nil); πE != nil {
  171. continue
  172. }
  173. if πTemp005, πE = πg.GetItem(πF, πTemp008, πTemp004); πE != nil {
  174. continue
  175. }
  176. if πE = πF.Globals().SetItem(πF, ßidx.ToObject(), πTemp005); πE != nil {
  177. continue
  178. }
  179. // line 13: print fib(int(idx))
  180. πF.SetLineno(13)
  181. πTemp002 = make([]*πg.Object, 1)
  182. πTemp009 = πF.MakeArgs(1)
  183. πTemp010 = πF.MakeArgs(1)
  184. if πTemp004, πE = πg.ResolveGlobal(πF, ßidx); πE != nil {
  185. continue
  186. }
  187. πTemp010[0] = πTemp004
  188. if πTemp004, πE = πg.ResolveGlobal(πF, ßint); πE != nil {
  189. continue
  190. }
  191. if πTemp005, πE = πTemp004.Call(πF, πTemp010, nil); πE != nil {
  192. continue
  193. }
  194. πF.FreeArgs(πTemp010)
  195. πTemp009[0] = πTemp005
  196. if πTemp004, πE = πg.ResolveGlobal(πF, ßfib); πE != nil {
  197. continue
  198. }
  199. if πTemp005, πE = πTemp004.Call(πF, πTemp009, nil); πE != nil {
  200. continue
  201. }
  202. πF.FreeArgs(πTemp009)
  203. πTemp002[0] = πTemp005
  204. if πE = πg.Print(πF, πTemp002, true); πE != nil {
  205. continue
  206. }
  207. πF.PopCheckpoint()
  208. goto Label3
  209. Label4:
  210. πTemp011, πTemp012 = πF.ExcInfo()
  211. if πTemp004, πE = πg.ResolveGlobal(πF, ßIndexError); πE != nil {
  212. continue
  213. }
  214. if πTemp006, πE = πg.IsInstance(πF, πTemp011.ToObject(), πTemp004); πE != nil {
  215. continue
  216. }
  217. if πTemp006 {
  218. goto Label5
  219. }
  220. if πTemp004, πE = πg.ResolveGlobal(πF, ßValueError); πE != nil {
  221. continue
  222. }
  223. if πTemp006, πE = πg.IsInstance(πF, πTemp011.ToObject(), πTemp004); πE != nil {
  224. continue
  225. }
  226. if πTemp006 {
  227. goto Label6
  228. }
  229. πE = πF.Raise(πTemp011.ToObject(), nil, πTemp012.ToObject())
  230. continue
  231. // line 14: except IndexError:
  232. πF.SetLineno(14)
  233. Label5:
  234. // line 15: print "please specify a fibonacci index"
  235. πF.SetLineno(15)
  236. πTemp002 = make([]*πg.Object, 1)
  237. πTemp002[0] = πg.NewStr("please specify a fibonacci index").ToObject()
  238. if πE = πg.Print(πF, πTemp002, true); πE != nil {
  239. continue
  240. }
  241. πE = nil
  242. πF.RestoreExc(nil, nil)
  243. goto Label3
  244. // line 16: except ValueError:
  245. πF.SetLineno(16)
  246. Label6:
  247. // line 17: print "please specify an integer"
  248. πF.SetLineno(17)
  249. πTemp002 = make([]*πg.Object, 1)
  250. πTemp002[0] = πg.NewStr("please specify an integer").ToObject()
  251. if πE = πg.Print(πF, πTemp002, true); πE != nil {
  252. continue
  253. }
  254. πE = nil
  255. πF.RestoreExc(nil, nil)
  256. goto Label3
  257. Label3:
  258. goto Label2
  259. Label2:
  260. return nil, nil
  261. }
  262. return nil, πE
  263. }
  264. var Code *πg.Code
  265. func main() {
  266. Code = πg.NewCode("<module>", "fib.py", nil, 0, initModule)
  267. π_os.Exit(πg.RunMain(Code))
  268. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement