pasberth / Macra

Macro Oriented Language
4 stars 2 forks source link

コンパイル時にオプションで分岐できる機能の仕様 #57

Open pasberth opened 11 years ago

pasberth commented 11 years ago

ifopt

#ifopt --unittest
#[ test :about expr = !do expr test ]
#else
#[ test :about expr = expr ]
#endif

と、 マクロを選択できる。起動時に

$ macra something.macra --unittest

のようにオプションを与える。 unittest だけではなく、任意のオプションについて

#ifopt --foo

$ macra something.macra --foo

とできる。

オプションは macra 処理系ではなく、 something.macra に与える

wrong:

$ macra --foo something.macra

ハイフンひとつのものを使いたい場合

#ifopt --a
#[ test :about expr = !do expr test ]
#else
#[ test :about expr = expr ]
#endif

と、1文字のオプションにする。

$ macra something.macra -abc

$ macra something.macra --a --b --c

の略であるとする

pasberth commented 11 years ago

コンパイル時の処理なのにコンパイラじゃなくてプログラムの引数なのはおかしいかも?

$ macra something.macra --unittest

より

$ macra --opt=unittest something.macra

のがいいかも?

$ macra --opt=foo,bar something.macra

と複数指定

ympbyc commented 11 years ago

macra --optの方がいいね。 x.macraへのコマンドライン引数はランタイムから扱うべき。

macra --optなら、

#!/usr/bin/macra --opt=unittest
...

とかできるし。

pasberth commented 11 years ago

よし。そっちにしよう。

pasberth commented 11 years ago

あと、

ifopt --foo

じゃなくて

ifopt foo

でいいね。ハイフンはいらない。