Este projeto é meu estudo para implementação de servidor de protocolo de servidor de linguagem (LSP).
O Curage-lang em si é uma linguagem minúscula e nada interessante. Estou implementando um servidor LSP para a linguagem. Possui alguns recursos, como relatório de erros de sintaxe, renomeação de símbolos, etc.
lsp
: A implementação do servidor de linguagem e a extensão VSCode.src/extension.ts
: Ponto de entrada da extensão VSCode.src/server.ts
: Ponto de entrada do servidor. A sintaxe do Curage-lang é muito simples. O seguinte descreve a sintaxe em notação semelhante a PEG.
expression = int / name
statement = " let " name " be " expression " n "
program = statement *
Lendas:
A*
significa uma sequência de A ou vazia,A+
significa uma sequência de A pelo menos um,A / B
significa A ou B.Exemplo:
let x be 1
let y be x
Renomear símbolos não precisa de captura de tela.
let x be 1
↓ (Renomear x
para new_x
)
let new_x be 1
Estou escrevendo uma série de artigos para explicar os códigos-fonte deste repositório. Escrito em língua japonesa.