Seeker's Memo

個人的で技術的かもしれないメモがメインのブログです。http://seekers.hatenablog.jp/about

C/C++

C(C++)で何かを字句解析してみる(?) その6

進捗どうですか? ええ、はい……。 率直に言うと、進んでない。正確には両方のリポジトリでちょっと躓いてしまったので、ソースコードをフルスクラッチで書き直してる最中です。 やったこと ・リポジトリ名変更。 ・今までの名前のリポジトリに、同じような(…

C(C++)で何かを字句解析してみる(?) その5

あそこまで実装しておいたが、すべて投げ捨てた いや正確には、残しておいて、別名に変更して取っておいた、が正しい。 boost::xpressiveを使用して1から書き直してみた ・動的に正規表現で、字句の種類やらを定義及び字句解析できるようにしてみた。 ・とり…

C(C++)で何かを字句解析してみる(?) その4

ここまでにやったこと ・符号付き整数や文字列、改行、セミコロンなどの認識(トークン化) ・トークン切り出し関数のクラス化 ・16進表記対応。 ・符号なし整数(正)のみ対応に戻した。 ・他、細かな改修 https://github.com/seekerkrt/lexer 今後の予定 …

C(C++)で何かを字句解析してみる(?) その3

さらにC++っぽくクラスにまとめてみた。 細かい点も書き直したり継ぎ足してある。 ・出力を少し変えた。 ・セミコロンを認識するようにした。 GitHub - seekerkrt/compiler

C(C++)で何かを字句解析してみる(?) その2

3※なお、C++11の機能を使って書いてるのであしからず。 前回は、整数と文字列、空白文字(タブ、改行、スペース)だけを認識するというプログラムを書いた。 今回は少し拡張し、空白文字を細かく認識するようにし、今後のための些末な改良も加えた。 //Start…

C(C++)で何かを字句解析してみる(?) その1

というわけで、まずは単純愚直に1文字ずつ判定するところから。 テスト用なので関数に分けてあるが、そのまま標準出力しているし、メタ的な結果を返すことをしていない。 #include <cstdio> #include <cctype> void tokenize(char* str){ int pos = 0; while(*str != '\0'){</cctype></cstdio>…