- Timestamp:
- 05/15/08 23:21:29 (6 months ago)
- Location:
- lang/c/misc/mlisp
- Files:
-
- 2 modified
-
core/c_compiler.cpp (modified) (2 diffs)
-
readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/c/misc/mlisp/core/c_compiler.cpp
r11551 r11648 260 260 } 261 261 262 SExp compile_block(SExp sexps, SExp e, SExp next) { 263 return nil; 262 SExp compile_block(SExp sexps, SExp e, SExp s, SExp next) { 263 SExp d = cdr(sexps); 264 SExp nx = nilp(d) ? next : compile_block(d, e, s, next); 265 return compile(car(sexps), e, s, nx); 264 266 } 265 267 … … 283 285 } else if (eq(op, intern("lambda"))) { 284 286 SExp vars = cadr(x); 285 SExp body = c addr(x);287 SExp body = cddr(x); 286 288 SExp non_local = find_free(body, vars); 287 289 SExp free = filter_member(append2(car(e), cdr(e)), non_local); 288 290 SExp sets = find_sets(body, vars); 289 291 290 SExp boxes = make_boxes(sets, vars, compile (body, cons(vars, free), set_union(sets, set_intersect(s, free)), list(1, RETURN)));292 SExp boxes = make_boxes(sets, vars, compile_block(body, cons(vars, free), set_union(sets, set_intersect(s, free)), list(1, RETURN))); 291 293 return collect_free(free, e, list(4, CLOSE, int2s(length(free)), boxes, next)); 292 294 } else if (eq(op, intern("if"))) { -
lang/c/misc/mlisp/readme.txt
r11549 r11648 44 44 45 45 * ToDo 46 -[v] �X�^�b�N�x�[�X�ɒu��������-[ v] �C�ӌ̈���46 -[v] �X�^�b�N�x�[�X�ɒu��������-[x] �C�ӌ̈��� 47 47 -[x] �}�N����� 48 48 --[x] macroexpand ��- C �������[�o���̊���яo�������ɂ���- �unil�v�ut�v���V���{���Ȃ̂ŁA�R���p�C�������V���{���Q�ƂɂȂ�Ă��܂� … … 62 62 63 63 * �o�O 64 65 64 - eval ����ƃX�^�b�N�����A�l�����������Ȃ� 66 65 67 66
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)