Advertisement
logicmoo

TAGBODY COMPILATION

Nov 12th, 2017
449
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 1.78 KB | None | 0 0
  1.  
  2.  
  3. USER>
  4.  (let (val)
  5.     (tagbody
  6.       (setq val 1)
  7.       (go point-a)
  8.       (incf val 16)
  9.      point-c
  10.       (incf val 04)
  11.       (go point-b)
  12.       (incf val 32)
  13.      point-a
  14.      point-u ;; unused
  15.       (incf val 02)
  16.       (go point-c)
  17.       (incf val 64)
  18.      point-b
  19.       (incf val 08))
  20.     val))
  21.  
  22.  
  23. #|
  24.  
  25. :- lisp_compile( pkg_user,
  26.                 [ let,
  27.                   [u_val],
  28.  
  29.                   [ tagbody,
  30.                     [setq, u_val, 1],
  31.                     [go, u_point_a],
  32.                     [incf, u_val, 16],
  33.                     u_point_c,
  34.                     [incf, u_val, 4],
  35.                     [go, u_point_b],
  36.                     [incf, u_val, 32],
  37.                     u_point_a,
  38.                     u_point_u,
  39.                     [incf, u_val, 2],
  40.                     [go, u_point_c],
  41.                     [incf, u_val, 64],
  42.                     u_point_b,
  43.                     [incf, u_val, 8]
  44.                   ],
  45.                   u_val
  46.                 ]).
  47.  
  48.  
  49.  addr_tagbody_1_addr_enter_1(ENV) :-
  50.        symbol_setter(ENV, setq, u_val, 1),
  51.        addr_tagbody_1_u_point_a(ENV).
  52.  
  53.  addr_tagbody_1_u_point_c(ENV) :-
  54.        place_op(ENV, incf, u_val, [4], _Incf_R),
  55.        addr_tagbody_1_u_point_b(ENV).
  56.  
  57.  addr_tagbody_1_u_point_a(ENV) :-
  58.        push_label(u_point_u, addr_tagbody_1, []),
  59.        place_op(ENV, incf, u_val, [2], _Incf_R5),
  60.        addr_tagbody_1_u_point_c(ENV).
  61.  
  62.  addr_tagbody_1_u_point_u(ENV) :-
  63.        place_op(ENV, incf, u_val, [2], _Incf_R8),
  64.        addr_tagbody_1_u_point_c(ENV).
  65.  
  66.  addr_tagbody_1_u_point_b(ENV) :-
  67.        place_op(ENV, incf, u_val, [8], _Incf_R3).
  68.  
  69.  
  70.  :- TOPEnv=[[bv(u_val, [[]|_1330])]|toplevel],
  71.    addr_tagbody_1_addr_enter_1(TOPEnv),
  72.    symbol_value(TOPEnv, u_val, U_val_Get).
  73.  
  74. |#
  75. 15
  76. >
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement