エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
Haskellとかでやってる中値演算子の結合や優先度をコード内で指定できるような、自分の言語を作るための... Haskellとかでやってる中値演算子の結合や優先度をコード内で指定できるような、自分の言語を作るための実装について考えてみる。 たぶん、中値演算子は構文的に区別できるので、パーズ時には優先度や結合度関係なしに式の単調の二項演算子ツリーをつくる。そして評価時には、まず演算子の優先度データベースをつくり、それを元に式ツリーをたどるパーザーを作って、その中で評価させるんだろう。 BNF的には exp = infixexp infixexp = uniexp infix infixexp | uniexp uniexp = "(" exp ")" | num infix = <infix pattern> num = <num pattern>この構文だと、中値演算は単調に並べられる (e i (e i (...(e i e)...)))これから、infix優先度マップを元に優先順に評価したい