『コンパイラ・スクリ ..
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
255:デフォルトの名無しさん 02/11/07 07:52 ;テスト (define hoge-read-test-data '( object hoge caption = "hogehoge" val = 0 object fuga caption = "fugafuga" object aaa caption = "aaa" end object bbb caption = "bbb" end object ccc caption = "ccc" end end end )) (hoge-read read-tag-test-data) => (object hoge (caption "hogehoge") (val 0) (object fuga (caption "fugafuga") (object aaa (caption "aaa")) (object bbb (caption "bbb")) (object ccc (caption "ccc")))) 256:デフォルトの名無しさん 02/11/07 08:20 (中身的に変んないけど)Cに変換すると scmobj_t hoge_read(scmobj_t s) { scmobj_t x = s; scmobj_t stack = nil; tail_recursive_loop: if (pairp(x)) { if (car(x) == make_symbol("object")) { stack = cons(list2(cadr(x),car(x)),stack); x = cddr(x); goto tail_recursive_loop; } else if (car(x) == make_symbol("end")) { if (nullp(stack)) return error("Syntax-error - Corresponding 'object' is required :",s); if (pairp(cdr(stack))) { x = cdr(x); stack = cons(cons(reverse(car(stack)),cadr(stack)),cddr(stack)); goto tail_recursive_loop; } else { x = cdr(x); stack = reverse(car(stack)); goto tail_recursive_loop; } } else { stack = cons(cons(list2(car(x),caddr(x)),car(stack)),cdr(stack)); x = cdddr(x); goto tail_recursive_loop; } } else if (pairp(stack) && pairp(car(stack))) return error("Syntax-error - 'end' is required :",s); return stack; }
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
4993日前に更新/200 KB
担当:undef