Sintaxe do JLScript
1. Primeiro programa
O comando mais básico do JLScript é mostrar():
mostrar("Olá, mundo!")
Também existe o alias:
show("Hello, world!")
2. Variáveis
O JLScript possui diferentes formas de declaração.
va nome = "Lucas"
va idade = 20
va ativo = true
Também pode ser utilizado:
let nome = "Lucas"
E:
ins valor = 100
Exemplo:
va linguagem = "JLScript"
va versao = 2.3
va publicado = true
mostrar(linguagem)
mostrar(versao)
mostrar(publicado)
3. Tipos de valores
O JLScript trabalha com valores como:
va texto = "JLScript"
va numero = 10
va decimal = 10.5
va ativo = true
va desligado = false
va vazio = null
Os principais valores básicos incluem:
string
number
boolean
null
Também existem conversões:
int("10")
float("10.5")
str(100)
bool(1)
4. Strings
Strings podem armazenar texto:
va nome = "Lucas"
va linguagem = "JLScript"
Exemplo:
mostrar("Olá")
mostrar("Bem-vindo ao JLScript")
5. Números
Inteiros:
va idade = 20
Decimais:
va preco = 19.90
6. Booleanos
va ligado = true
va desligado = false
Exemplo:
va servidorAtivo = true
se (servidorAtivo) {
mostrar("Servidor ativo")
}
7. Null
va usuario = null
Pode ser utilizado para representar ausência de valor.
8. Operadores matemáticos
va soma = 10 + 5
va subtracao = 10 - 5
va multiplicacao = 10 * 5
va divisao = 10 / 5
va resto = 10 % 3
Exemplo:
va a = 10
va b = 5
mostrar(a + b)
mostrar(a - b)
mostrar(a * b)
mostrar(a / b)
mostrar(a % b)
9. Operadores de comparação
10 == 10
10 != 5
10 > 5
10 < 20
10 >= 10
10 <= 20
Exemplo:
va idade = 20
mostrar(idade >= 18)
10. Operadores lógicos
AND:
&&
OR:
||
NOT:
!
Exemplo:
va idade = 20
va ativo = true
se (idade >= 18 && ativo) {
mostrar("Acesso permitido")
}
Outro exemplo:
se (idade < 18 || !ativo) {
mostrar("Acesso bloqueado")
}
11. Incremento e decremento
va numero = 0
numero++
numero--
Exemplo:
va contador = 0
contador++
contador++
mostrar(contador)
12. Condições
Português
se (condicao) {
mostrar("Verdadeiro")
}
Com senao:
va idade = 20
se (idade >= 18) {
mostrar("Maior de idade")
} senao {
mostrar("Menor de idade")
}
Inglês
if (idade >= 18) {
mostrar("Maior de idade")
} else {
mostrar("Menor de idade")
}
O ideal é manter o mesmo idioma dentro da estrutura:
se (...) {
} senao {
}
ou:
if (...) {
} else {
}
13. While / Enquanto
Português:
va numero = 0
enquanto (numero < 5) {
mostrar(numero)
numero++
}
Inglês:
va numero = 0
while (numero < 5) {
mostrar(numero)
numero++
}
14. For / Para
Português:
para (va i = 0; i < 5; i++) {
mostrar(i)
}
Inglês:
for (va i = 0; i < 5; i++) {
mostrar(i)
}
15. Break / Pare
Português:
para (va i = 0; i < 10; i++) {
se (i == 5) {
pare
}
mostrar(i)
}
Inglês:
for (va i = 0; i < 10; i++) {
if (i == 5) {
break
}
mostrar(i)
}
16. Continue / Continuar
para (va i = 0; i < 5; i++) {
se (i == 2) {
continuar
}
mostrar(i)
}
Em inglês:
for (va i = 0; i < 5; i++) {
if (i == 2) {
continue
}
mostrar(i)
}
17. Funções
Forma padrão:
func ola() {
mostrar("Olá")
}
Chamando:
ola()
18. Funções com parâmetros
func apresentar(nome) {
mostrar(nome)
}
apresentar("Lucas")
19. Return / Retorne
func soma(a, b) {
retorne a + b
}
va resultado = soma(10, 5)
mostrar(resultado)
20. Forma curta de função
JLScript também possui a forma curta:
soma(a, b) {
retorne a + b
}
Uso:
mostrar(soma(5, 10))
21. Parâmetros padrão
func apresentar(nome = "Visitante") {
mostrar(nome)
}
Uso:
apresentar()
apresentar("Lucas")
22. Argumentos nomeados
JLScript também suporta argumentos nomeados.
Exemplo:
func usuario(nome, idade) {
mostrar(nome)
mostrar(idade)
}
Chamada:
usuario(
nome = "Lucas",
idade = 20
)
Também podem existir chamadas utilizando ::
usuario(
nome: "Lucas",
idade: 20
)
Depois que argumentos nomeados começam a ser utilizados, o ideal é não misturar posicionais depois deles.
23. Funções anônimas
va saudacao = func(nome) {
mostrar("Olá")
mostrar(nome)
}
Uso:
saudacao("Lucas")
24. Listas
va linguagens = [
"JLScript",
"JavaScript",
"Python"
]
Acesso:
mostrar(linguagens[0])
Também pode ser usado em variáveis:
va numeros = [10, 20, 30, 40]
25. Objetos
va usuario = {
nome: "Lucas",
idade: 20,
linguagem: "JLScript"
}
Acesso:
mostrar(usuario.nome)
mostrar(usuario.idade)
26. Objetos dentro de objetos
va usuario = {
nome: "Lucas",
endereco: {
cidade: "Águas Lindas",
estado: "GO"
}
}
Acesso:
mostrar(usuario.endereco.cidade)
27. Listas dentro de objetos
va projeto = {
nome: "JLScript",
tecnologias: [
"C++",
"Python",
"JavaScript"
]
}
28. Switch / Escolha
Em inglês:
va opcao = 2
switch (opcao) {
case 1 {
mostrar("Opção 1")
}
case 2 {
mostrar("Opção 2")
}
default {
mostrar("Outra opção")
}
}
Em português:
va opcao = 2
escolha (opcao) {
caso 1 {
mostrar("Opção 1")
}
caso 2 {
mostrar("Opção 2")
}
padrao {
mostrar("Outra opção")
}
}
29. Tratamento de erros
Português:
tente {
mostrar("Executando")
} capture (erro) {
mostrar(erro)
} finalmente {
mostrar("Finalizado")
}
Em inglês:
try {
mostrar("Executando")
} catch (erro) {
mostrar(erro)
} finally {
mostrar("Finalizado")
}
30. Importação de módulos
Forma simples:
import #math
Outro exemplo:
import #api
31. Importação de vários módulos
import [
#api,
#json,
#database
]
32. Alias de módulos
import #database como db
Depois:
db
representa o módulo importado.
33. Algumas bibliotecas do JLScript
Exemplos:
import #api
import #math
import #json
import #database
import #file
import #system
import #connector
import #mobile
import #ui
import #style
import #net
import #crypto
import #process
import #thread
import #image
import #audio
import #email
import #test
34. Tempo
JLScript possui suporte a durações legíveis.
Exemplo:
esperar(2 segundos)
Também:
esperar(500 ms)
Unidades podem incluir:
ms
segundo
segundos
minuto
minutos
hora
horas
dia
dias
35. Tempo atual
Português:
mostrar(tempo.agora())
Inglês:
mostrar(time.now())
36. Executar depois de um tempo
tempo.depois(2 segundos, func() {
mostrar("Executado depois")
})
Em inglês:
time.after(2 segundos, func() {
mostrar("Executado depois")
})
37. Executar repetidamente
tempo.cada(5 segundos, func() {
mostrar("Executando")
})
Ou:
time.every(5 segundos, func() {
mostrar("Executando")
})
38. Entrada de dados
va nome = ler("Digite seu nome: ")
mostrar(nome)
39. Espera
esperar(1 segundo)
Alias:
wait(1 segundo)
40. Confirmação
va resposta = confirmar("Deseja continuar?")
Também existe:
va resposta = confirm("Continuar?")
41. Limpar terminal
limpar()
42. Título
titulo("Meu programa")
43. Avisos
mostrarAviso("Atenção")
Erro:
mostrarErro("Erro encontrado")
Sucesso:
mostrarSucesso("Operação concluída")
44. API
Importação:
import #api
A biblioteca #api é voltada para comunicação HTTP e criação de serviços.
Um projeto normalmente começa com:
import #api
e utiliza os recursos públicos disponíveis no módulo para criar servidor, realizar requisições e trabalhar com respostas HTTP.
45. JSON
import #json
Pode ser utilizado para trabalhar com dados JSON dentro do projeto.
46. Banco de dados
import #database
Com alias:
import #database como db
47. Arquivos
import #file
A biblioteca é destinada à manipulação de arquivos e diretórios.
48. Sistema
import #system
Também existem objetos globais relacionados ao ambiente:
system
tempo
time
49. Matemática
import #math
Exemplos de operações disponíveis no módulo:
math.raiz(25)
math.absoluto(-10)
math.arredondar(10.6)
math.teto(10.1)
math.piso(10.9)
Também existem constantes matemáticas como:
math.PI
math.E
50. Interface gráfica
import [
#ui,
#style
]
Essas bibliotecas são utilizadas para criação e estilização de interfaces.
Exemplo conceitual:
import [
#ui,
#style
]
va app = ui.janela()
A interface pode ser construída utilizando elementos como:
div
section
main
header
footer
nav
h1
h2
p
span
input
textarea
select
button
form
table
51. Estilos
A biblioteca:
import #style
trabalha com propriedades de estilo, como:
background
color
width
height
margin
padding
border
borderRadius
fontSize
fontWeight
display
gap
position
opacity
Também existem efeitos como:
shadow
blur
brightness
scale
rotate
translate
transition
52. Dispositivos
import #connector
A biblioteca permite trabalhar com conexões.
Exemplos de recursos públicos incluem:
connector.ip(...)
connector.adb(...)
connector.usb(...)
connector.bluetooth(...)
53. Mobile
import #mobile
Utilizado para integração com dispositivos móveis suportados pelo ecossistema.
54. Rede
import #net
Voltado para funcionalidades como:
DNS
hostname
IP local
ping
TCP
UDP
55. Processos
import #process
Funções relacionadas a processos incluem operações como:
executar
iniciar
listar
existe
56. Thread
import #thread
Pode ser utilizado para operações relacionadas a execução concorrente.
57. Criptografia
import #crypto
Pode fornecer recursos relacionados a:
UUID
random
Base64
HMAC
AES
58. Testes
import #test
A biblioteca possui recursos para testar valores.
Exemplos de operações:
igual
diferente
verdadeiro
falso
maior
menor
nulo
naoNulo
contem
erro
59. Exemplo maior
import [
#math,
#json
]
va usuario = {
nome: "Lucas",
idade: 20,
ativo: true
}
func verificarUsuario(usuario) {
se (usuario.ativo && usuario.idade >= 18) {
mostrar("Usuário autorizado")
retorne true
} senao {
mostrar("Usuário não autorizado")
retorne false
}
}
va autorizado = verificarUsuario(usuario)
se (autorizado) {
va numero = 25
va resultado = math.raiz(numero)
mostrar(resultado)
}
60. Estrutura de projeto
Um projeto JLScript pode ser organizado assim:
meu-projeto/
│
├── main.jls
│
├── src/
│ ├── usuario.jls
│ ├── servidor.jls
│ └── database.jls
│
├── modules/
│
└── assets/
O arquivo principal normalmente possui extensão:
.jls
61. Executando
jls run main.jls
62. Build
jls build
63. Compilação
jls compile arquivo.jls
O compilador também pode gerar formato próprio utilizado pelo ecossistema JLScript.
64. Testes
jls test
65. Formatação
jls fmt
66. Lint
jls lint
67. Doctor
jls doctor
Serve para verificar o ambiente e possíveis problemas de configuração.
68. Atualização
jls update
69. REPL
jls repl
Permite trabalhar com a linguagem de forma interativa.
70. Regra importante do JLScript
Um dos conceitos mais importantes da linguagem é a consistência da estrutura.
Por exemplo:
se (...) {
} senao {
}
e:
if (...) {
} else {
}
Em vez de misturar:
se (...) {
} else {
}
A ideia é manter a estrutura visual e linguística previsível.
Exemplo final
import [
#math,
#json,
#file
]
va programa = {
nome: "JLScript",
versao: 2.3,
ativo: true
}
func status(programa) {
se (!programa.ativo) {
retorne "desativado"
}
retorne "ativo"
}
func calcular(a, b = 10) {
retorne a + b
}
va resultado = calcular(
a = 20,
b = 30
)
mostrar(programa.nome)
mostrar(status(programa))
mostrar(resultado)
para (va i = 0; i < 5; i++) {
se (i == 3) {
continuar
}
mostrar(i)
}
tente {
mostrar("Executando JLScript")
} capture (erro) {
mostrarErro(erro)
} finalmente {
mostrar("Programa finalizado")
}

Top comments (0)