chu 言語のパースと改行

💋言語は、1文字でひとつの単語をあらわす。構文はF#に寄せる。ということで、

👼🍎👈10

let x = 10 ;

となる。

中間言語としては

👼🍎👈10

これを

:let: “apple” “=” “10”

に直したうえで

let apple = 10

にすれば簡単でよい。

F#の構文と1対1になるとは限らないので

🤔🍎🤝10🙆OK🙅NG

の場合は

if apple = 10 then OK else NG

になるが、

“if” “apple” “=” “10” “then” “OK” “else” “NG”

から直すことになる。この場合は、then と else がはいっているからうまい例ではないが。

あとで変更

文の扱い

💋言語では、単語の区切りに空白を用いない。できれば、改行も使わないようにしたいののだが、あまりいい思いつきがないので、

👼🍎👈10
👼🍊👈20

という2つの文を1行に書きたいときは

👼🍎👈10😀👼🍊👈20😀

のようにする。ちょうどC言語の「;」と同じ働きをする。

😀😀😀😀😀

は空行を示している。

ブロックの開始と終了

F#の場合はブロックの開始と終了をインデントで表すが、💋言語にはインデントというかそもそもタブとか空白とかいう概念がないので、なんらかのブロック(スコープ)が必要になる。

👫👼🍎🤝10😀👼🍊🤝20👫

こんな感じに👫 で囲うのがいいのだが、どうせならば対になるようにしたい。sh の if と fi みたいに男女を入れかえることは可能なのか?

カテゴリー: 開発, chu パーマリンク