Advertisement
Guest User

Untitled

a guest
Aug 27th, 2017
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // copper.spark:
  2. .name COPPER
  3.  
  4. USE standard;
  5.  
  6. NATIVE print();
  7.  
  8. OBJ demo1 : "object";
  9. OBJ demo2 : "object";
  10.  
  11. PUB main() | i : INT
  12. BEGIN
  13.     demo1.setGlobal(10);
  14.     demo1.setStatic(15);
  15.     demo1.setShared(20);
  16.  
  17.     demo2.setGlobal(30);
  18.     demo2.setStatic(35);
  19.     demo2.setShared(40);
  20.  
  21.     print(demo1.getGlobal(), "\n");
  22.     print(demo1.getStatic(), "\n");
  23.     print(demo1.getShared(), "\n");
  24.  
  25.     print(demo2.getGlobal(), "\n");
  26.     print(demo2.getStatic(), "\n");
  27.     print(demo2.getShared(), "\n");
  28. END
  29.  
  30. // object.cu
  31. .name object
  32.  
  33. GLOBAL VAR global : INT;
  34. STATIC VAR static : INT;
  35. SHARED VAR shared : INT;
  36.  
  37. PUB setGlobal(i : INT)
  38. BEGIN
  39.     i → global;
  40. END
  41.  
  42. PUB setShared(i : INT)
  43. BEGIN
  44.     i → shared;
  45. END
  46.  
  47. PUB getGlobal() → i : INT
  48. BEGIN
  49.     global → i;
  50. END
  51.  
  52. PUB getShared() → i : INT
  53. BEGIN
  54.     shared → i;
  55. END
  56.  
  57. PUB setStatic(i : INT)
  58. BEGIN
  59.     i → static;
  60. END
  61.  
  62. PUB getStatic() → i : INT
  63. BEGIN
  64.     static → i;
  65. END
  66.  
  67.  
  68. // copper.spark:
  69. ; =============================================
  70. ; compiled with Copper 1.0
  71. ; 2015-11-20 11:57:25
  72. ; =============================================
  73.  
  74. ; USE /home/felix/projects/Electronics/libs/standard.cul
  75. ; native method: toInt8(…) → INT8
  76. ; native method: toInt16(…) → INT16
  77. ; native method: toInt32(…) → INT32
  78. ; native method: toUInt8(…) → UINT8
  79. ; native method: toUInt16(…) → UINT16
  80. ; native method: toUInt32(…) → UINT32
  81.  
  82. .name COPPER
  83. ; native method: print(…)
  84. .obj demo1 "object"
  85. .obj demo2 "object"
  86.  
  87. ; 1, main
  88. .export main
  89. main:
  90.     pushnil ; return value
  91.     pushnil ; i:INT32
  92.     pushi 2 10
  93.     callo demo1 setGlobal 1
  94.  
  95.     pushi 2 15
  96.     callo demo1 setStatic 1
  97.  
  98.     pushi 2 20
  99.     callo demo1 setShared 1
  100.  
  101.     pushi 2 30
  102.     callo demo2 setGlobal 1
  103.  
  104.     pushi 2 35
  105.     callo demo2 setStatic 1
  106.  
  107.     pushi 2 40
  108.     callo demo2 setShared 1
  109.  
  110.     pusht "\n"
  111.     callor  demo1 getGlobal 0
  112.     calln print 2
  113.  
  114.     pusht "\n"
  115.     callor  demo1 getStatic 0
  116.     calln print 2
  117.  
  118.     pusht "\n"
  119.     callor  demo1 getShared 0
  120.     calln print 2
  121.  
  122.     pusht "\n"
  123.     callor  demo2 getGlobal 0
  124.     calln print 2
  125.  
  126.     pusht "\n"
  127.     callor  demo2 getStatic 0
  128.     calln print 2
  129.  
  130.     pusht "\n"
  131.     callor  demo2 getShared 0
  132.     calln print 2
  133.  
  134.     ret
  135. ; end of main
  136.  
  137. // object.spark:
  138. ; =============================================
  139. ; compiled with Copper 1.0
  140. ; 2015-11-20 11:57:15
  141. ; =============================================
  142.  
  143. .name object
  144. .global global INT32
  145. .static static INT32
  146. .shared shared INT32
  147.  
  148. ; 1, setGlobal
  149. .export setGlobal
  150. setGlobal:
  151.     pushnil ; return value
  152.     load -1
  153.     storeg global
  154.     ret
  155. ; end of setGlobal
  156.  
  157. ; 1, setShared
  158. .export setShared
  159. setShared:
  160.     pushnil ; return value
  161.     load -1
  162.     storeg shared
  163.     ret
  164. ; end of setShared
  165.  
  166. ; 1, getGlobal
  167. .export getGlobal
  168. getGlobal:
  169.     pushnil ; return value
  170.     loadg global
  171.     store 0
  172.     load 0
  173.     retr
  174. ; end of getGlobal
  175.  
  176. ; 1, getShared
  177. .export getShared
  178. getShared:
  179.     pushnil ; return value
  180.     loadg shared
  181.     store 0
  182.     load 0
  183.     retr
  184. ; end of getShared
  185.  
  186. ; 1, setStatic
  187. .export setStatic
  188. setStatic:
  189.     pushnil ; return value
  190.     load -1
  191.     storeg static
  192.  
  193.     ret
  194. ; end of setStatic
  195.  
  196. ; 1, getStatic
  197. .export getStatic
  198. getStatic:
  199.     pushnil ; return value
  200.     loadg static
  201.     store 0
  202.     load 0
  203.     retr
  204. ; end of getStatic
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement