DEV Community

JLScript
JLScript

Posted on

SINTAXE DA JLSCRIPTER

Sintaxe do JLScript

1. Primeiro programa

O comando mais básico do JLScript é mostrar():

mostrar("Olá, mundo!")
Enter fullscreen mode Exit fullscreen mode

Também existe o alias:

show("Hello, world!")
Enter fullscreen mode Exit fullscreen mode

2. Variáveis

O JLScript possui diferentes formas de declaração.

va nome = "Lucas"
va idade = 20
va ativo = true
Enter fullscreen mode Exit fullscreen mode

Também pode ser utilizado:

let nome = "Lucas"
Enter fullscreen mode Exit fullscreen mode

E:

ins valor = 100
Enter fullscreen mode Exit fullscreen mode

Exemplo:

va linguagem = "JLScript"
va versao = 2.3
va publicado = true

mostrar(linguagem)
mostrar(versao)
mostrar(publicado)
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Os principais valores básicos incluem:

string
number
boolean
null
Enter fullscreen mode Exit fullscreen mode

Também existem conversões:

int("10")
float("10.5")
str(100)
bool(1)
Enter fullscreen mode Exit fullscreen mode

4. Strings

Strings podem armazenar texto:

va nome = "Lucas"
va linguagem = "JLScript"
Enter fullscreen mode Exit fullscreen mode

Exemplo:

mostrar("Olá")
mostrar("Bem-vindo ao JLScript")
Enter fullscreen mode Exit fullscreen mode

5. Números

Inteiros:

va idade = 20
Enter fullscreen mode Exit fullscreen mode

Decimais:

va preco = 19.90
Enter fullscreen mode Exit fullscreen mode

6. Booleanos

va ligado = true
va desligado = false
Enter fullscreen mode Exit fullscreen mode

Exemplo:

va servidorAtivo = true

se (servidorAtivo) {
    mostrar("Servidor ativo")
}
Enter fullscreen mode Exit fullscreen mode

7. Null

va usuario = null
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Exemplo:

va a = 10
va b = 5

mostrar(a + b)
mostrar(a - b)
mostrar(a * b)
mostrar(a / b)
mostrar(a % b)
Enter fullscreen mode Exit fullscreen mode

9. Operadores de comparação

10 == 10
10 != 5

10 > 5
10 < 20

10 >= 10
10 <= 20
Enter fullscreen mode Exit fullscreen mode

Exemplo:

va idade = 20

mostrar(idade >= 18)
Enter fullscreen mode Exit fullscreen mode

10. Operadores lógicos

AND:

&&
Enter fullscreen mode Exit fullscreen mode

OR:

||
Enter fullscreen mode Exit fullscreen mode

NOT:

!
Enter fullscreen mode Exit fullscreen mode

Exemplo:

va idade = 20
va ativo = true

se (idade >= 18 && ativo) {
    mostrar("Acesso permitido")
}
Enter fullscreen mode Exit fullscreen mode

Outro exemplo:

se (idade < 18 || !ativo) {
    mostrar("Acesso bloqueado")
}
Enter fullscreen mode Exit fullscreen mode

11. Incremento e decremento

va numero = 0

numero++
numero--
Enter fullscreen mode Exit fullscreen mode

Exemplo:

va contador = 0

contador++
contador++

mostrar(contador)
Enter fullscreen mode Exit fullscreen mode

12. Condições

Português

se (condicao) {
    mostrar("Verdadeiro")
}
Enter fullscreen mode Exit fullscreen mode

Com senao:

va idade = 20

se (idade >= 18) {
    mostrar("Maior de idade")
} senao {
    mostrar("Menor de idade")
}
Enter fullscreen mode Exit fullscreen mode

Inglês

if (idade >= 18) {
    mostrar("Maior de idade")
} else {
    mostrar("Menor de idade")
}
Enter fullscreen mode Exit fullscreen mode

O ideal é manter o mesmo idioma dentro da estrutura:

se (...) {
} senao {
}
Enter fullscreen mode Exit fullscreen mode

ou:

if (...) {
} else {
}
Enter fullscreen mode Exit fullscreen mode

13. While / Enquanto

Português:

va numero = 0

enquanto (numero < 5) {
    mostrar(numero)

    numero++
}
Enter fullscreen mode Exit fullscreen mode

Inglês:

va numero = 0

while (numero < 5) {
    mostrar(numero)

    numero++
}
Enter fullscreen mode Exit fullscreen mode

14. For / Para

Português:

para (va i = 0; i < 5; i++) {
    mostrar(i)
}
Enter fullscreen mode Exit fullscreen mode

Inglês:

for (va i = 0; i < 5; i++) {
    mostrar(i)
}
Enter fullscreen mode Exit fullscreen mode

15. Break / Pare

Português:

para (va i = 0; i < 10; i++) {

    se (i == 5) {
        pare
    }

    mostrar(i)
}
Enter fullscreen mode Exit fullscreen mode

Inglês:

for (va i = 0; i < 10; i++) {

    if (i == 5) {
        break
    }

    mostrar(i)
}
Enter fullscreen mode Exit fullscreen mode

16. Continue / Continuar

para (va i = 0; i < 5; i++) {

    se (i == 2) {
        continuar
    }

    mostrar(i)
}
Enter fullscreen mode Exit fullscreen mode

Em inglês:

for (va i = 0; i < 5; i++) {

    if (i == 2) {
        continue
    }

    mostrar(i)
}
Enter fullscreen mode Exit fullscreen mode

17. Funções

Forma padrão:

func ola() {
    mostrar("Olá")
}
Enter fullscreen mode Exit fullscreen mode

Chamando:

ola()
Enter fullscreen mode Exit fullscreen mode

18. Funções com parâmetros

func apresentar(nome) {
    mostrar(nome)
}

apresentar("Lucas")
Enter fullscreen mode Exit fullscreen mode

19. Return / Retorne

func soma(a, b) {
    retorne a + b
}

va resultado = soma(10, 5)

mostrar(resultado)
Enter fullscreen mode Exit fullscreen mode

20. Forma curta de função

JLScript também possui a forma curta:

soma(a, b) {
    retorne a + b
}
Enter fullscreen mode Exit fullscreen mode

Uso:

mostrar(soma(5, 10))
Enter fullscreen mode Exit fullscreen mode

21. Parâmetros padrão

func apresentar(nome = "Visitante") {
    mostrar(nome)
}
Enter fullscreen mode Exit fullscreen mode

Uso:

apresentar()
apresentar("Lucas")
Enter fullscreen mode Exit fullscreen mode

22. Argumentos nomeados

JLScript também suporta argumentos nomeados.

Exemplo:

func usuario(nome, idade) {
    mostrar(nome)
    mostrar(idade)
}
Enter fullscreen mode Exit fullscreen mode

Chamada:

usuario(
    nome = "Lucas",
    idade = 20
)
Enter fullscreen mode Exit fullscreen mode

Também podem existir chamadas utilizando ::

usuario(
    nome: "Lucas",
    idade: 20
)
Enter fullscreen mode Exit fullscreen mode

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)
}
Enter fullscreen mode Exit fullscreen mode

Uso:

saudacao("Lucas")
Enter fullscreen mode Exit fullscreen mode

24. Listas

va linguagens = [
    "JLScript",
    "JavaScript",
    "Python"
]
Enter fullscreen mode Exit fullscreen mode

Acesso:

mostrar(linguagens[0])
Enter fullscreen mode Exit fullscreen mode

Também pode ser usado em variáveis:

va numeros = [10, 20, 30, 40]
Enter fullscreen mode Exit fullscreen mode

25. Objetos

va usuario = {
    nome: "Lucas",
    idade: 20,
    linguagem: "JLScript"
}
Enter fullscreen mode Exit fullscreen mode

Acesso:

mostrar(usuario.nome)
mostrar(usuario.idade)
Enter fullscreen mode Exit fullscreen mode

26. Objetos dentro de objetos

va usuario = {

    nome: "Lucas",

    endereco: {
        cidade: "Águas Lindas",
        estado: "GO"
    }
}
Enter fullscreen mode Exit fullscreen mode

Acesso:

mostrar(usuario.endereco.cidade)
Enter fullscreen mode Exit fullscreen mode

27. Listas dentro de objetos

va projeto = {

    nome: "JLScript",

    tecnologias: [
        "C++",
        "Python",
        "JavaScript"
    ]
}
Enter fullscreen mode Exit fullscreen mode

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")
    }
}
Enter fullscreen mode Exit fullscreen mode

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")
    }
}
Enter fullscreen mode Exit fullscreen mode

29. Tratamento de erros

Português:

tente {

    mostrar("Executando")

} capture (erro) {

    mostrar(erro)

} finalmente {

    mostrar("Finalizado")
}
Enter fullscreen mode Exit fullscreen mode

Em inglês:

try {

    mostrar("Executando")

} catch (erro) {

    mostrar(erro)

} finally {

    mostrar("Finalizado")
}
Enter fullscreen mode Exit fullscreen mode

30. Importação de módulos

Forma simples:

import #math
Enter fullscreen mode Exit fullscreen mode

Outro exemplo:

import #api
Enter fullscreen mode Exit fullscreen mode

31. Importação de vários módulos

import [
    #api,
    #json,
    #database
]
Enter fullscreen mode Exit fullscreen mode

32. Alias de módulos

import #database como db
Enter fullscreen mode Exit fullscreen mode

Depois:

db
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

34. Tempo

JLScript possui suporte a durações legíveis.

Exemplo:

esperar(2 segundos)
Enter fullscreen mode Exit fullscreen mode

Também:

esperar(500 ms)
Enter fullscreen mode Exit fullscreen mode

Unidades podem incluir:

ms
segundo
segundos
minuto
minutos
hora
horas
dia
dias
Enter fullscreen mode Exit fullscreen mode

35. Tempo atual

Português:

mostrar(tempo.agora())
Enter fullscreen mode Exit fullscreen mode

Inglês:

mostrar(time.now())
Enter fullscreen mode Exit fullscreen mode

36. Executar depois de um tempo

tempo.depois(2 segundos, func() {

    mostrar("Executado depois")

})
Enter fullscreen mode Exit fullscreen mode

Em inglês:

time.after(2 segundos, func() {

    mostrar("Executado depois")

})
Enter fullscreen mode Exit fullscreen mode

37. Executar repetidamente

tempo.cada(5 segundos, func() {

    mostrar("Executando")

})
Enter fullscreen mode Exit fullscreen mode

Ou:

time.every(5 segundos, func() {

    mostrar("Executando")

})
Enter fullscreen mode Exit fullscreen mode

38. Entrada de dados

va nome = ler("Digite seu nome: ")

mostrar(nome)
Enter fullscreen mode Exit fullscreen mode

39. Espera

esperar(1 segundo)
Enter fullscreen mode Exit fullscreen mode

Alias:

wait(1 segundo)
Enter fullscreen mode Exit fullscreen mode

40. Confirmação

va resposta = confirmar("Deseja continuar?")
Enter fullscreen mode Exit fullscreen mode

Também existe:

va resposta = confirm("Continuar?")
Enter fullscreen mode Exit fullscreen mode

41. Limpar terminal

limpar()
Enter fullscreen mode Exit fullscreen mode

42. Título

titulo("Meu programa")
Enter fullscreen mode Exit fullscreen mode

43. Avisos

mostrarAviso("Atenção")
Enter fullscreen mode Exit fullscreen mode

Erro:

mostrarErro("Erro encontrado")
Enter fullscreen mode Exit fullscreen mode

Sucesso:

mostrarSucesso("Operação concluída")
Enter fullscreen mode Exit fullscreen mode

44. API

Importação:

import #api
Enter fullscreen mode Exit fullscreen mode

A biblioteca #api é voltada para comunicação HTTP e criação de serviços.

Um projeto normalmente começa com:

import #api
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Pode ser utilizado para trabalhar com dados JSON dentro do projeto.


46. Banco de dados

import #database
Enter fullscreen mode Exit fullscreen mode

Com alias:

import #database como db
Enter fullscreen mode Exit fullscreen mode

47. Arquivos

import #file
Enter fullscreen mode Exit fullscreen mode

A biblioteca é destinada à manipulação de arquivos e diretórios.


48. Sistema

import #system
Enter fullscreen mode Exit fullscreen mode

Também existem objetos globais relacionados ao ambiente:

system
tempo
time
Enter fullscreen mode Exit fullscreen mode

49. Matemática

import #math
Enter fullscreen mode Exit fullscreen mode

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)
Enter fullscreen mode Exit fullscreen mode

Também existem constantes matemáticas como:

math.PI
math.E
Enter fullscreen mode Exit fullscreen mode

50. Interface gráfica

import [
    #ui,
    #style
]
Enter fullscreen mode Exit fullscreen mode

Essas bibliotecas são utilizadas para criação e estilização de interfaces.

Exemplo conceitual:

import [
    #ui,
    #style
]

va app = ui.janela()
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

51. Estilos

A biblioteca:

import #style
Enter fullscreen mode Exit fullscreen mode

trabalha com propriedades de estilo, como:

background
color
width
height
margin
padding
border
borderRadius
fontSize
fontWeight
display
gap
position
opacity
Enter fullscreen mode Exit fullscreen mode

Também existem efeitos como:

shadow
blur
brightness
scale
rotate
translate
transition
Enter fullscreen mode Exit fullscreen mode

52. Dispositivos

import #connector
Enter fullscreen mode Exit fullscreen mode

A biblioteca permite trabalhar com conexões.

Exemplos de recursos públicos incluem:

connector.ip(...)
connector.adb(...)
connector.usb(...)
connector.bluetooth(...)
Enter fullscreen mode Exit fullscreen mode

53. Mobile

import #mobile
Enter fullscreen mode Exit fullscreen mode

Utilizado para integração com dispositivos móveis suportados pelo ecossistema.


54. Rede

import #net
Enter fullscreen mode Exit fullscreen mode

Voltado para funcionalidades como:

DNS
hostname
IP local
ping
TCP
UDP
Enter fullscreen mode Exit fullscreen mode

55. Processos

import #process
Enter fullscreen mode Exit fullscreen mode

Funções relacionadas a processos incluem operações como:

executar
iniciar
listar
existe
Enter fullscreen mode Exit fullscreen mode

56. Thread

import #thread
Enter fullscreen mode Exit fullscreen mode

Pode ser utilizado para operações relacionadas a execução concorrente.


57. Criptografia

import #crypto
Enter fullscreen mode Exit fullscreen mode

Pode fornecer recursos relacionados a:

UUID
random
Base64
HMAC
AES
Enter fullscreen mode Exit fullscreen mode

58. Testes

import #test
Enter fullscreen mode Exit fullscreen mode

A biblioteca possui recursos para testar valores.

Exemplos de operações:

igual
diferente
verdadeiro
falso
maior
menor
nulo
naoNulo
contem
erro
Enter fullscreen mode Exit fullscreen mode

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)
}
Enter fullscreen mode Exit fullscreen mode

60. Estrutura de projeto

Um projeto JLScript pode ser organizado assim:

meu-projeto/
│
├── main.jls
│
├── src/
│   ├── usuario.jls
│   ├── servidor.jls
│   └── database.jls
│
├── modules/
│
└── assets/
Enter fullscreen mode Exit fullscreen mode

O arquivo principal normalmente possui extensão:

.jls
Enter fullscreen mode Exit fullscreen mode

61. Executando

jls run main.jls
Enter fullscreen mode Exit fullscreen mode

62. Build

jls build
Enter fullscreen mode Exit fullscreen mode

63. Compilação

jls compile arquivo.jls
Enter fullscreen mode Exit fullscreen mode

O compilador também pode gerar formato próprio utilizado pelo ecossistema JLScript.


64. Testes

jls test
Enter fullscreen mode Exit fullscreen mode

65. Formatação

jls fmt
Enter fullscreen mode Exit fullscreen mode

66. Lint

jls lint
Enter fullscreen mode Exit fullscreen mode

67. Doctor

jls doctor
Enter fullscreen mode Exit fullscreen mode

Serve para verificar o ambiente e possíveis problemas de configuração.


68. Atualização

jls update
Enter fullscreen mode Exit fullscreen mode

69. REPL

jls repl
Enter fullscreen mode Exit fullscreen mode

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 {
}
Enter fullscreen mode Exit fullscreen mode

e:

if (...) {
} else {
}
Enter fullscreen mode Exit fullscreen mode

Em vez de misturar:

se (...) {
} else {
}
Enter fullscreen mode Exit fullscreen mode

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")
}
Enter fullscreen mode Exit fullscreen mode

Top comments (0)