Entries from 2006-07-08 to 1 day

純Lisp

構文解析の話で盛り上がって、あれこれ相談していたら僕の思い込みが発覚。 「Nodeの構造は二分木しかありえない!」と思い込んでいた。 多分木でもぜんぜん良いことに気づかない僕を称して「純LISP - Wikipediaに冒されている」とか言われたw。 というわけ…

まだ構文解析

どうもNodeの種類が1つじゃない事をうまく言語化できずに悶々としていたのだけど、Gakuさんに相談したらすっきり。 よし。次に進もう! (+ (+ a b) 2) => FUNCTION_CALL:SYMBOL[+] FUNCTION_CALL:SYMBOL[+] FUNCTION_ARGUMENT:SYMBOL[a] NULL NULL FUNCTION_…

タイプ数カウンターのデータファイルからCSVを作る

局所的に話題になっているタイプ数カウンターの話。 面白いソフトなのですが、タイプ数を記録したファイルがバイナリデータなので他に流用できないのがちょっぴり残念なので、バイナリデータからCSVデータを吐くツールを作ってみました。 cygwinで作りました…

ちょっと動いた

かなり興奮気味! (define a 3) NODES SYMBOL[define] SYMBOL[a] NUMBER[3] environment variable: a:3↑は(define a 3)を実行したときの様子です。 字句解析 構文木がつくられ出力 Definitionオブジェクトが作成される オブジェクトがevalされる eval後のenvi…

構文木

多分木にした。超きれいになった。 (+ (list 1 2 a) "hoge") NODES SYMBOL[+] NODES SYMBOL[list] NUMBER[1] NUMBER[2] SYMBOL[a] STRING["hoge"]木を作る時点で(のなかの一番左側の要素を特別扱いしないので、特殊形式との相性がよさそう。

構文解析

ワイワイ話したのでまとめ Node1 Node { Node left; Node right; }ストイック方式。 Node2 Schemの構造の一部を知っている。 Node { Node function; Nodes args; } Node3 この時点で意味を解釈しない。 Node { Nodes nodes; }