git @ Cat's Eye Technologies Tamsin / f55867c
Woo! Only 42 failures now! Cat's Eye Technologies 11 years ago
1 changed file(s) with 19 addition(s) and 2 deletion(s). Raw diff Collapse all Expand all
276276 emit(RNm) &
277277 emitln(');').
278278
279 # TODO: ARGUMENTS!
280279 compile_r(P,B,Mod, call(prodref(M, N), A)) =
280 emit_arguments(P,B,Mod, A, nil) → ArgNms &
281281 emit('prod_') &
282282 emit(M) &
283283 emit('_') &
284284 emit(N) &
285 emitln('();').
285 emit('(') &
286 emit_arguments_call(ArgNms) &
287 emitln(');').
288
289 emit_arguments(P,B,Mod, nil, Nms) = list:reverse(Nms, nil).
290 emit_arguments(P,B,Mod, list(A, Tail), Nms) =
291 compile_r(P,B,Mod, A) → Nm &
292 Nms ← list(Nm, Nms) &
293 emit_arguments(P,B,Mod, Tail, Nms).
294
295 emit_arguments_call(nil) = 'ok'.
296 emit_arguments_call(list(H, nil)) =
297 emit(H).
298 emit_arguments_call(list(H, T)) =
299 emit(H) &
300 emit(', ') &
301 emit_arguments_call(T).
302
286303
287304 compile_r(P,B,Mod, and(L, R)) =
288305 compile_r(P,B,Mod, L) &