Advertisement
Guest User

Compiled output

a guest
Sep 16th, 2017
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Nim 2.48 KB | None | 0 0
  1. include LauraStd
  2. type LTypeObj_Thing = ref object of LauraStd_Type
  3.     name*: LTypeObj_String
  4. type LTypeObj_Fruit = ref object of LTypeObj_Thing
  5.     slices*: LTypeObj_Int
  6. method lCf_get_name(self: LTypeObj_Thing): LTypeObj_String {.base.} = self.name
  7. proc lSf_Thing_nameIs(self: LTypeObj_Thing, name: LTypeObj_String) =
  8.     self.name = name
  9. proc newLTypeObj_Thing_nameIs(name: LTypeObj_String): LTypeObj_Thing =
  10.     result = LTypeObj_Thing(typeName: "Thing", userType: 1, extends: "Object")
  11.     lSf_Thing_nameIs(result, name)
  12. method lCf_get_slices(self: LTypeObj_Fruit): LTypeObj_Int {.base.} = self.slices
  13. proc lSf_Fruit_nameIs(self: LTypeObj_Fruit, name: LTypeObj_String) =
  14.     self.slices = newLTypeObj_Int(1)
  15. proc newLTypeObj_Fruit_nameIs(name: LTypeObj_String): LTypeObj_Fruit =
  16.     result = LTypeObj_Fruit(typeName: "Fruit", userType: 1, extends: "Thing")
  17.     lSf_Thing_nameIs(result, name)
  18.     lSf_Fruit_nameIs(result, name)
  19. proc lSf_Fruit_nameIs_slicedIn_pieces(self: LTypeObj_Fruit, name: LTypeObj_String, n: LTypeObj_Int) =
  20.     self.slices = n
  21. proc newLTypeObj_Fruit_nameIs_slicedIn_pieces(name: LTypeObj_String, n: LTypeObj_Int): LTypeObj_Fruit =
  22.     result = LTypeObj_Fruit(typeName: "Fruit", userType: 1, extends: "Thing")
  23.     lSf_Thing_nameIs(result, name)
  24.     lSf_Fruit_nameIs_slicedIn_pieces(result, name, n)
  25. method lCf_eat(self: LTypeObj_Thing): LTypeObj_Void {.base.} =
  26.     discard lFn_printLine(lFn_strConcat(newLTypeObj_String("You can't eat a(n) "), self.name, newLTypeObj_String("!")))
  27.     result = newLTypeObj_Void()
  28. method lCf_eat(self: LTypeObj_Fruit): LTypeObj_Void =
  29.     discard lFn_printLine(lFn_strConcat(newLTypeObj_String("You ate a(n) "), self.name, newLTypeObj_String(".")))
  30.     result = newLTypeObj_Void()
  31. method lCf_slice_into_pieces(self: LTypeObj_Fruit, n: LTypeObj_Int): LTypeObj_Void {.base.} =
  32.     if lFn_ifGT(n, newLTypeObj_Int(1)):
  33.         self.slices = n
  34.         discard lFn_printLine(lFn_strConcat(newLTypeObj_String("You sliced the "), self.name, newLTypeObj_String(" into "), self.slices, newLTypeObj_String(" pieces.")))
  35.     else:
  36.         discard lFn_printLine(newLTypeObj_String("You can't do this!"))
  37. var lVr_brick = newLTypeObj_Thing_nameIs(newLTypeObj_String("brick"))
  38. var lVr_orange = newLTypeObj_Fruit_nameIs_slicedIn_pieces(newLTypeObj_String("orange"), newLTypeObj_Int(3))
  39. discard lCf_eat(lVr_brick)
  40. discard lCf_slice_into_pieces(lVr_orange, newLTypeObj_Int(5))
  41. discard lCf_eat(lVr_orange)
  42. discard lFn_printLine(lVr_orange.lCf_get_name)
  43. quit(0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement