これは筑波大学の2025年2月の集中講義「ソフトウェアサイエンス特別講義A」のための教材です。
PHPのサブセットである構文を持っているWHILE言語と、そのためのLanguage server、VSCodeの拡張が含まれています。
Devcontainersの設定が含まれているので、VSCodeとDockerを用意すれば動かすことができます。
$ git clone https://github.com/soutaro/while-lsp.git
$ cd while-lsp# リポジトリのrootをVSCodeで開く
$ code .VSCodeがDevcontainerで開くか?と聞いてくるので、開いてあげてください。
起動した後に、コマンドパレットから Steep: Restart として、型検査器を起動してください。
# sampleディレクトリをvscodeで開く
$ code sampleVSCodeがDevcontainerで開くか?と聞いてくるので、開いてあげてください。
起動した後に、コマンドパレットから WhileLSP: Start/restart langauge server として、起動します
「ポートがlistenされている」という旨のメッセージが出ることがありました。 JSONやESLintなどのlanguage serverがなにかしているみたいです。 消し方がわかりませんでした。すみません……
開発環境用と動作確認用の二つのVSCodeを同時に起動してください。
開発環境でプログラムを修正したら、動作確認用のVSCodeで WhileLSP: Start/restart language server コマンドを使ってLanguage serverを再起動します。
VSCodeの OUTPUT から、デバッグプリントを確認することができます。
また、動作確認用の環境にはPHPが含まれています。Terminalを開いて、
$ php gcd.while
などとすると、プログラムを実行できます。
vscodeディレクトリにはVSCodeのExtensionが含まれています。講義では取り扱いません。