私は単純な C アプリケーションに取り組んでおり、アプリケーションのいくつかの動作を定義する DSL を作成するという考えがありました。アイデアは、Ruby に似た非常にクリーンな言語を作成することですが、実際には C で実行されます。すべての関数は C で定義されており、DSL はただ...まあ、C の冗長な構文を「隠す」ためのエイリアスです。 .
私は lex と yacc を知っていますが、私がやろうとしていることにはやり過ぎだと思います。もっと簡単なものはありませんか?正規表現も考えましたが、そうすると汚く感じます。たぶんもっと良いものがあります!
例:
if a = b
myFunctionInC()
get 'mydata' then
puts 'Hello!'
次のように簡単に変換できます。
if (a == b) {
myFunctionInC();
}
void get(string test)
{
printf('Hello! %s', test);
}