開発中のソースとドキュメント

開発中のソースコードとドキュメント、メモ類をここから閲覧できます。

なお、コードは以下の理由であまり奇麗ではありません。

実装済みのもの

現時点では、以下のものができています。 以下のものはまだ実装されていません。

ソースの解説

いきなりソースだけ見せられてもさっぱりわからないと思うので、 簡単に説明しておきます。

FSC が起動されると、最初にmain() 関数に行きます。 main() 関数は main.cpp にあります。

main() は、ファイルをオープンし、最初にプリプロセッサの fscpp() 関数を呼び出します。 プリプロセッサでは、#define と Include, Macro の展開処理を行い、 コメント文の削除を行います。 プリプロセッサの本体は fscpp.l にあります。これは flex で書かれています。

プリプロセスが終わると、こんどは字句解析と構文解析を行います。 これは yyparse() 関数を呼び出して行います。 字句解析は fsc.l で、構文解析は fsc.y で実装されています。 それぞれ、flex, bison で書かれています。このファイルを見れば、 字句の定義と文法定義がわかります。

構文解析まで終了したら、文をセクション/LatRange に分割し、 ラベルの解決を行い、コードを吐き出します。この部分はまだできていません。

その他のファイルは補助用のファイルです。内容は大体以下の通り。 (他にもいくつかあります。)

default.fsc は SCASM 互換命令を実現するためのマクロ集です(未完成)。

コンパイルは FreeBSD 上でできます。make するだけです。


ソースコードとドキュメントを見る