Proyek ini adalah studi saya untuk implementasi server protokol server bahasa (LSP).
Curage-lang sendiri adalah bahasa yang kecil dan tidak menarik. Saya menerapkan server LSP untuk bahasa tersebut. Ini memiliki beberapa fitur, seperti pelaporan kesalahan sintaksis, penggantian nama simbol, dll.
lsp
: Implementasi server bahasa dan ekstensi VSCode.src/extension.ts
: Titik masuk ekstensi VSCode.src/server.ts
: Titik masuk server. Sintaks Curage-lang sangat sederhana. Berikut ini penjelasan sintaksis dalam notasi mirip PEG.
expression = int / name
statement = " let " name " be " expression " n "
program = statement *
Legenda:
A*
artinya barisan A atau kosong,A+
berarti barisan A paling sedikit satu,A / B
artinya A atau B.Contoh:
let x be 1
let y be x
Mengganti nama simbol tidak memerlukan tangkapan layar.
let x be 1
↓ (Ganti nama x
menjadi new_x
)
let new_x be 1
Saya sedang menulis serangkaian artikel untuk menjelaskan kode sumber di repositori ini. Ditulis dalam bahasa Jepang.