Regras de escrita da JLScript
JLScript utiliza palavras próprias.
Algumas são palavras em português, outras são abreviações escolhidas pela linguagem e outras permanecem com nomes universais usados na programação.
Isso significa que uma palavra que parece correta em português não é necessariamente uma palavra válida em JLScript.
Por exemplo:
func saudacao() {
mostrar("Olá")
}
A palavra oficial é:
func
Não:
funcao
função
function
fun
funçao
func é uma palavra da linguagem.
Não deve ser traduzida, completada ou “corrigida”.
1. Não tente completar as palavras da linguagem
Uma das confusões mais comuns é olhar:
func
e imaginar que seria apenas uma abreviação informal de:
funcao
Não é.
func é o token oficial.
Correto:
func calcular() {
retorne 10
}
Errado:
funcao calcular() {
retorne 10
}
Errado:
função calcular() {
retorne 10
}
Errado:
function calcular() {
return 10
}
A linguagem não tenta adivinhar qual palavra você queria escrever.
2. va significa va
Outra palavra que costuma ser alterada automaticamente é:
va
Ela é uma declaração oficial da JLScript.
Correto:
va nome = "Lucas"
Não existe necessidade de transformar isso em:
var nome = "Lucas"
ou:
variavel nome = "Lucas"
ou:
variável nome = "Lucas"
Essas palavras podem fazer sentido para uma pessoa lendo português, mas não fazem parte da sintaxe.
Em código, quem decide a palavra correta é a gramática da linguagem, não o corretor ortográfico.
3. Palavras da JLScript são exatas
Considere:
se (idade >= 18) {
mostrar("Permitido")
} senao {
mostrar("Negado")
}
As palavras são:
se
senao
Não:
senão
senaum
seNao
se não
Mesmo que senão seja a grafia normal da palavra em português, a palavra-chave JLScript é:
senao
sem acento.
Isso é proposital.
Código precisa ser fácil de digitar em diferentes teclados e ambientes.
4. Não coloque acentos em palavras-chave
Palavras da sintaxe devem ser escritas exatamente como foram definidas.
Correto:
func
retorne
senao
Evite inventar versões como:
função
retôrne
senão
Strings continuam aceitando português normalmente:
mostrar("Função executada com sucesso")
Aqui pode usar:
ção
á
é
í
ó
ú
ã
õ
ç
porque isso é texto.
A regra é diferente para palavras reservadas.
5. Tabela rápida de erros comuns
| ❌ Errado | ✅ JLScript |
|---|---|
funcao |
func |
função |
func |
function |
func |
var |
va |
variavel |
va |
senão |
senao |
retornar |
retorne |
retorno |
retorne |
print |
mostrar |
imprimir |
mostrar |
importar |
import |
importa |
import |
verdadeiro |
true |
falso |
false |
nulo |
null |
Algumas estruturas possuem aliases oficiais em inglês.
Quando existe alias, ele faz parte da linguagem.
Quando não existe, não invente um.
6. Português não significa tradução literal
JLScript utiliza português como parte da identidade da linguagem.
Mas isso não significa que toda palavra técnica foi traduzida.
Por exemplo, usamos:
import #api
e não:
importar #api
Também usamos:
API
JSON
HTTP
GET
POST
PUT
PATCH
DELETE
Esses termos são padrões conhecidos mundialmente.
Não existe vantagem em transformar:
POST
em alguma palavra diferente apenas para parecer mais português.
JLScript tenta simplificar programação, não renomear a computação inteira.
7. Aliases só existem quando são oficiais
JLScript possui alguns pares como:
se / if
senao / else
enquanto / while
para / for
pare / break
continuar / continue
retorne / return
Isso significa que:
se (ativo) {
mostrar("Ativo")
}
pode possuir uma forma equivalente suportada:
if (ativo) {
mostrar("Ativo")
}
Mas isso não autoriza criar qualquer tradução.
Por exemplo:
mostrar / print
só deve ser tratado como alias se print realmente estiver registrado como alias no runtime.
Não suponha.
8. Não confie no Google para corrigir JLScript
JLScript é uma linguagem própria.
Ferramentas genéricas podem interpretar uma palavra como erro de português ou tentar converter o código para JavaScript, Python ou outra linguagem conhecida.
Você pode pesquisar:
JLScript func
e algum sistema tentar sugerir:
função
function
Isso não torna a sugestão correta.
A prioridade deve ser:
1. documentação oficial JLScript
2. autocomplete oficial da extensão
3. JLShell
4. parser / lint da linguagem
5. testes
6. fontes externas
Google pode ajudar a encontrar conceitos gerais.
Ele não define a gramática da JLScript.
9. Cuidado com corretores automáticos
Imagine escrever:
senao
e um editor transformar em:
senão
Para português normal isso parece uma correção.
Para JLScript acabou de criar um erro.
O mesmo pode acontecer com:
func
va
retorne
Por isso arquivos .jls devem utilizar ferramentas que reconheçam a linguagem.
A extensão oficial do VS Code existe justamente para que o editor saiba:
Isso não é texto em português. Isso é código JLScript.
10. Erro de palavra reservada
Quando uma palavra parece uma keyword JLScript, mas está escrita incorretamente, o erro deveria ser claro.
Exemplo:
funcao soma(a, b) {
retorne a + b
}
Um diagnóstico ideal seria:
Erro de sintaxe
'funcao' não é uma palavra-chave da JLScript.
Você quis escrever:
func soma(a, b) {
...
}
Esperado: func
Recebido: funcao
Muito melhor do que:
unexpected identifier
que basicamente significa “deu ruim, boa sorte”.
11. Sugestões por proximidade
A JLScript pode reconhecer erros comuns.
Exemplo:
senão {
}
O parser/linter pode responder:
Palavra-chave desconhecida: senão
Talvez você queira:
senao
Outro:
var nome = "Lucas"
Sugestão:
'var' não é um declarador JLScript.
Use:
va
let
ins
Outro:
funcao teste() {
}
Sugestão:
'funcao' não existe na sintaxe.
Use:
func
Isso ajuda principalmente quem está conhecendo a linguagem.
12. Erros de estrutura
Nem todo erro é palavra escrita errada.
Isto:
func soma(a, b) {
retorne a + b
está faltando:
}
O diagnóstico deveria explicar:
Bloco não finalizado.
A função 'soma' foi aberta nesta linha:
func soma(a, b) {
Esperado antes do fim do arquivo:
}
13. Parêntese não fechado
Errado:
mostrar("Olá"
Ideal:
Parêntese não fechado em mostrar().
Esperado:
mostrar("Olá")
^
14. String não fechada
Errado:
va nome = "Lucas
Ideal:
String não finalizada.
A string começou com " mas não possui fechamento.
Correto:
va nome = "Lucas"
15. Operador escrito incorretamente
Errado:
se (idade = 18) {
}
Se a intenção for comparar:
se (idade == 18) {
}
A linguagem deve tentar diferenciar:
=
atribuição
==
comparação
Esse é um dos erros mais comuns entre iniciantes em praticamente toda linguagem que usa essa convenção. Os humanos realmente concordaram coletivamente em manter essa armadilha por décadas.
16. Biblioteca escrita incorretamente
Correto:
import #math
Errado:
import #mat
O erro deveria informar:
Módulo '#mat' não encontrado.
Módulos semelhantes:
#math
Outro exemplo:
import #ap
Sugestão:
Você quis dizer #api?
17. Biblioteca antiga
Quando uma biblioteca mudou de nome, o erro não deveria simplesmente dizer que ela não existe.
Por exemplo, em código novo:
import #fs
é preferível para filesystem.
Se uma forma antiga ainda existir por compatibilidade, o linter pode avisar:
#file é uma forma legada.
Prefira:
#fs
Isso permite modernizar projetos sem quebrar código antigo imediatamente.
18. Método que não pertence ao tipo
Exemplo:
va nome = "Lucas"
nome.adicionar("Pedro")
nome é String.
adicionar() é uma operação de List.
Erro útil:
String não possui o método 'adicionar'.
Tipo recebido:
String
Talvez você esteja tentando trabalhar com uma List.
19. Método parecido
Imagine:
usuarios.adiciona(usuario)
mas o método oficial é:
usuarios.adicionar(usuario)
Em vez de apenas:
método não encontrado
o diagnóstico pode sugerir:
List não possui 'adiciona'.
Método semelhante:
adicionar(valor)
20. Quantidade errada de argumentos
Exemplo:
math.subtrair(10 - 2)
Parece visualmente que existem dois números.
Mas existe apenas um argumento:
10 - 2
A expressão é calculada primeiro.
Então a função recebe:
8
apenas.
A forma correta é:
math.subtrair(10, 2)
O erro deve explicar:
math.subtrair() esperava 2 argumentos.
Recebido:
1
Uso:
math.subtrair(a, b)
21. Variável inexistente
mostrar(usuarios)
sem existir:
va usuarios = [...]
deve resultar em algo claro:
Variável 'usuarios' não encontrada.
Verifique:
• se ela foi declarada;
• se o nome está escrito corretamente;
• se ela pertence ao escopo atual.
Se existir:
usuario
o sistema também pode sugerir:
Você quis dizer 'usuario'?
22. Maiúsculas e minúsculas
Não presuma que:
usuario
Usuario
USUARIO
representam automaticamente a mesma coisa.
Prefira nomes consistentes:
va usuario = {}
e continue usando:
usuario.nome
Não:
Usuario.nome
USUARIO.nome
23. Erro de escopo
func calcular() {
va resultado = 10
}
mostrar(resultado)
Se resultado existe apenas dentro da função, o erro deveria ensinar:
'resultado' não existe neste escopo.
Ele foi declarado dentro de:
calcular()
Declare o valor fora da função ou retorne o resultado.
Melhor:
func calcular() {
retorne 10
}
va resultado = calcular()
mostrar(resultado)
24. retorne fora de função
Errado:
retorne 10
no topo do arquivo.
Erro:
'retorne' só pode ser utilizado dentro de uma função.
Correto:
func numero() {
retorne 10
}
25. pare fora de loop
Errado:
pare
Erro:
'pare' só pode interromper uma estrutura compatível.
Use dentro de:
para
enquanto
escolha
quando aplicável.
26. continuar fora de loop
continuar
fora de:
para
enquanto
deve gerar erro claro.
27. aguarda fora de fluxo assíncrono
Errado:
va res = aguarda api.get(url)
fora de contexto assíncrono.
Correto:
fluxo func carregar() {
va res =
aguarda api.get(url)
retorne res
}
Erro sugerido:
'aguarda' precisa de um contexto assíncrono.
Coloque a operação dentro de:
fluxo func ...
28. Não confunda cliente HTTP com #api
Consumir:
va backend =
api("https://api.exemplo.com")
Criar servidor:
import #api
va app =
api.servidor(...)
São responsabilidades diferentes.
Se alguém tentar usar método de servidor em um cliente, a linguagem deveria explicar essa diferença.
29. Erros de UI
Se escrever:
buton("Entrar")
quando o elemento é:
button("Entrar")
o diagnóstico pode sugerir:
Elemento UI 'buton' não encontrado.
Talvez você queira:
button
O mesmo vale para:
imput → input
selext → select
opition → option
30. Erro de propriedade Style
Errado:
titulo.style {
collor: #fff
}
Correto:
titulo.style {
cor: #fff
}
Se houver alias oficial:
cor / color
ambos funcionam.
Mas:
collor
colourr
corzinha
não.
Diagnóstico:
Propriedade Style 'collor' desconhecida.
Propriedades semelhantes:
color
cor
31. Erro de contexto Style
Exemplo:
titulo.style {
terminal {
tamanhoFonte: 30px
}
}
Se tamanhoFonte só fizer sentido na UI:
'tamanhoFonte' não está disponível no contexto terminal.
Contexto suportado:
ui
Não ignore silenciosamente.
Código aparentemente funcionando com propriedades ignoradas é uma receita excelente para horas de confusão.
32. Erro de cor
Correta:
va cor = #50fa7b
Inválida:
va cor = #gg1234
O erro deveria ser:
Cor hexadecimal inválida: #gg1234
Não:
variável gg1234 não encontrada
O erro precisa falar sobre o que realmente aconteceu.
33. Como evitar esses erros
Use a extensão oficial
Ela deve conhecer:
keywords
bibliotecas
métodos
aliases
UI
Style
tipos
e oferecer autocomplete correto.
Use o autocomplete
Começou:
func
não precisa confiar na memória para cada detalhe.
Começou:
usuarios.
veja os métodos registrados para List.
Rode o lint
jls lint arquivo.jls
Ele deve encontrar problemas antes da execução quando possível.
Formate o código
jls fmt arquivo.jls
Formatação consistente também ajuda a encontrar blocos quebrados.
Execute arquivos pequenos enquanto programa
Não escreva 600 linhas e execute pela primeira vez no final.
Prefira:
escreve
↓
executa
↓
corrige
↓
continua
Leia o erro inteiro
Não leia apenas:
SyntaxError
e ignore:
linha
coluna
esperado
recebido
dica
Essas informações existem justamente para localizar o problema.
34. Não deixe Google redefinir a linguagem
Se uma ferramenta externa disser:
"func não existe, use function"
isso pode estar correto para outra linguagem.
Para JLScript, não.
Se disser:
"va deveria ser var"
também está tentando interpretar JLScript como outra coisa.
A fonte de verdade deve ser:
Gramática JLScript
↓
Parser
↓
Runtime
↓
Metadata oficial
↓
Extensão
↓
Documentação
Não:
corretor ortográfico
Google
autocomplete genérico
35. Guia rápido para quem vem de outra linguagem
JavaScript
Não presuma automaticamente:
var
const
console.log
function
JLScript possui sua própria sintaxe.
Python
Não presuma:
def
print
elif
None
C / C++
Não presuma que toda declaração precisa informar o tipo manualmente.
Português comum
Não transforme automaticamente:
func → função
senao → senão
va → variável
Código não é uma redação.
Palavras reservadas são símbolos da gramática.
36. Regra de ouro
Quando estiver em dúvida sobre uma palavra da linguagem:
não tente adivinhar como ela deveria ser escrita.
Consulte:
autocomplete
.help
documentação
lint
exemplos oficiais
Uma letra diferente pode transformar uma palavra reservada em um identificador desconhecido.
Resumo rápido
✅ func
❌ funcao
❌ função
✅ va
❌ var
❌ variavel
✅ senao
❌ senão
✅ retorne
❌ retornar
✅ mostrar()
❌ imprimir()
✅ import
❌ importar
✅ #fs
⚠ #file em código legado
✅ cor
✅ color
❌ collor
A JLScript foi criada para ser simples de ler, mas simplicidade não significa que sua sintaxe seja aproximada.
Cada palavra-chave possui uma forma oficial.
Aprender essas poucas regras evita boa parte dos erros mais comuns logo no começo.
Top comments (0)