私は最近、C、Bison、Flex、およびこの投稿を出発点として使用しておもちゃのプログラミング言語を作成しました。コロンや空白のルールがないことを除けば、Pythonによく似ています。
コードはここにありますが、私が固執している概念/アルゴリズムほど重要ではありません。
上記のリンク先の投稿でRudiが行ったように、抽象構文ツリーを設計しました。
秘訣は、ユーザー定義関数から戻る、またはループから抜け出すための優れた方法を考えることができないということです。return
ユーザー定義関数の最後に1つのステートメントだけが必要な場合、それは実行可能です(実際、これはユーザー定義関数で現在機能しているものです)。
例:
i = 0
while 1 do
if i > 15 then
break
end
done
例2:
def mean(somelist)
if len(list) == 0 then
return 0 # throw error
else
return sum(somelist) / len(somelist)
end
end