Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/gustavosbarreto/drera-lang


https://github.com/gustavosbarreto/drera-lang

Last synced: 7 days ago
JSON representation

Awesome Lists containing this project

README

        

# drera-lang

Drera lang é uma linguagem para o ensino de lógica de programação com uma sintaxe em português.

## Características

* Tipagem dinâmica (não é necessário especificar tipos para variáveis)
* Todos números são tratados como ponto flutuante de dupla precisão
* As variáveis não possuem contexto, em outras palavras, uma variável declarada
dentro de um "se" pode ser acessada fora dele

## Operadores de Comparação

Exemplo | Nome | Resultado
---------------------|----------------|----------
X == Y | Igual | Verdadeiro se X e Y são iguais
X != Y | Diferente | Verdadeiro se X e Y são diferentes
X < Y | Menor que | Verdadeiro se X é menor que Y
X > Y | Maior que | Verdadeiro se X é maior que Y
X <= Y | Menor ou igual | Verdadeiro se X é menor ou igual a Y
X >= Y | Maior ou igual | Verdadeiro se X é maior ou igual a Y

## Operadores Lógicos

Exemplo | Nome | Resultado
-------------------------------|------|----------
X && Y | AND | Verdadeiro se tanto X quanto Y são verdadeiros
X || Y | OR | Verdadeiro se X ou Y são verdadeiros |
!X | NOT | Verdadeiro se X não é verdadeiro

## Operadores Aritméticos

Exemplo | Nome | Resultado
---------------------|---------------|----------
X + Y | Adição | Soma de X e Y
X - Y | Subtração | Diferença entre X e Y
X * Y | Multiplicação | Produto de X e Y
X / Y | Divisão | Quociente de X por Y
X % Y | Módulo | Resto de X dividido por Y

## Variáveis

Em Drera Lang as variáveis não possuem contexto, em outras palavras,
uma variável declarada dentro de um "se" pode ser acessada fora dele.
Sintaxe para declaração de variável:

```
nome_variavel = valor_variavel
```

Caso o valor da variável seja uma string é necessário circundar com aspas duplas.

Note que a sintaxe é estritamente restritiva e é obrigatório um espaço em branco antes
e depois do simbolo `=`.

## Estruturas de Controle

### se e senão
```
se condição
comandos
senao
comandos
fim
```

### fazer ... enquanto

```
fazer
comandos
enquanto condição
```

## Comandos Padrão

### imprimir

O comando `imprimir` imprime uma sequência de caracteres (string) na saida padrão (geralmente na 'tela').
Não é necessário circundar com aspas duplas uma string no parâmetro para o comando `imprimir`. Exemplo:

```
imprimir Olá, eu sou uma string
```

É possível fazer a interpolaçao de strings com o uso do caracter `$`. Exemplo:

```
ler nome
imprimir Olá, $nome
```

### ler

O comando `ler` faz a leitura do teclado do usuário até que a tecla ENTER seja pressionada.
Não é necessário se preocupar com o tipo de dado, já que a conversão é feita automaticamente.

Exemplo:

```
ler nome_variavel
```

O nome da variável passada como argumento para o comando `ler` é criada automaticamente e estará
disponível em todo o escopo do programa.

## Limitações
* Não suporta instruções "se" e "fazer ... enquanto" encadeadas
* Não exibe mensagem de erro caso a sintaxe de algum comando estiver errada