このプロジェクトは、言語サーバー プロトコル (LSP) サーバーの実装に関する研究です。
Curage-lang 自体は小さな、何の面白みもない言語です。この言語の LSP サーバーを実装しています。構文エラーのレポート、シンボルの名前変更などのいくつかの機能があります。
lsp
: 言語サーバーの実装と VSCode 拡張機能。src/extension.ts
: VSCode 拡張機能のエントリ ポイント。src/server.ts
: サーバーのエントリポイント。 Curage-lang の構文は非常に単純です。以下に、PEG に似た表記法での構文を説明します。
expression = int / name
statement = " let " name " be " expression " n "
program = statement *
凡例:
A*
A のシーケンスまたは空を意味します。A+
少なくとも 1 つの A のシーケンスを意味し、A / B
A または B を意味します。例:
let x be 1
let y be x
シンボルの名前を変更する場合、スクリーンショットは必要ありません。
let x be 1
↓ ( x
名前をnew_x
に変更)
let new_x be 1
このリポジトリのソースコードを解説する一連の記事を書いています。日本語で書かれています。