書いてみるテスト

前回までのあらすじ

  1. 書いてみるテスト - suu-g's diary
  2. 書いてみるテスト - 日記を書く [・w・] はやみずさん
  3. 書いてみるテスト - suu-g's diary
  4. 書いてみるテスト・訂正 - suu-g's diary

浮動小数点の正規表現

[+-]?[1-9][0-9]*(?:\.\d+)?(?:[Ee][+-]?\d+)?

書いてみるテスト - suu-g's diary

浮動小数点の正規表現と等価なNondeterministic Finite Automatonと等価なDeterministic Finite Automatonの実装。

$ echo 100 | ./float_lexer
matched: 100
$ echo 10.0 | ./float_lexer
matched: 10.0
$ echo 100e12 | ./float_lexer
matched: 100e12
$ echo 123.45e12 | ./float_lexer
matched: 123.45e12
$ echo 123.45 | ./float_lexer
matched: 123.45
$ echo +123.45 | ./float_lexer
matched: +123.45
$ echo -123.45 | ./float_lexer
matched: -123.45
$ echo 123.45e+12 | ./float_lexer
matched: 123.45e+12
$ echo 123.45e-12 | ./float_lexer
matched: 123.45e-12
$ echo +123.45e12 | ./float_lexer
matched: +123.45e12
$ echo -123.45e12 | ./float_lexer
matched: -123.45e12
$ echo +123.45e+12 | ./float_lexer
matched: +123.45e+12
$ echo +123.45e-12 | ./float_lexer
matched: +123.45e-12
svn co http://unicus.ddo.jp/svn/public/float_lexer

して、float_lexerの中で make を実行すればコンパイルしてテストが実行されるようになっている。

ソースはこちら