2023-01-20
#js 
プログラミング言語も言語なので文法があります。どんな文字で書いて、それがどんな意味があり、どう組み合わせるかというルールがあります。そのルールを解釈する処理を字句解析、構文解析と言いますが、そのプログラムを作成してくれる便利なプログラムがあります。

JavaScriptで作られた字句解析、構文解析プログラム生成プログラム「PEG - Parser Generator for JavaScript」は、Node.jsのCommonJSという古い仕様で作られていたので、Web標準のESモジュールに変換して、気軽に使えるようにしました。


「PEG.js - ES modules version - code4fukui/pegjs」

たったこれだけのコードでブラウザ上でパーサーを作成し、パースできます。(src on GitHub) import { peg } from "./lib/peg.js"; run.onclick = () => { const input = pegjs.value; const parser = peg.generate(input); const res = parser.parse(insrc.value); indst.value = res; };
「PEG demo」

簡単な計算式を実行するデモです。PEGの詳しい使い方はこちら
Documentation » PEG.js – Parser Generator for JavaScript


CommonJSからの変換はWeb標準にはない関数 require を import に変更すること。たくさんある require を手で触るのは面倒なので・・・


「require2import」
src on GitHub
JavaScriptのパーサーesprimaを使って、簡単なツールを作りました。複数のオブジェクトなどをexportする方法がいくつかあるため、完全な自動変換はできていませんが、だいぶ楽できます。

これでコンピューター言語、いじり放題、つくり放題!
Mochiや、IchigoRubyの文法を厳格化したり、Pythonベースの言語づくりにもチャレンジしたい。

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS