Sintaxe da Linguagem

Variaveis e Tipos

MelScript e dinamicamente tipada. Nao e necessario declarar tipos explicitamente. Use atribuicao direta para criar variaveis.

// Numeros
x = 10;
y = 3.14;
hex = 0xFF;

// Strings
nome = "MelScript";
simples = 'Aspas simples tambem funcionam';

// Template Strings (interpolacao)
mensagem = `O valor de x e ${x}`;

// Booleanos
ativo = true;
inativo = false;

Arrays (Listas)

Armazene multiplos valores em uma unica variavel usando colchetes.

// Criando um array
numeros = [1, 2, 3, 4, 5];
frutas = ["Maca", "Banana", "Laranja"];

// Acessando elementos (indice comeca em 0)
primeiro = numeros[0];
print(frutas[1]); // Imprime "Banana"

// Modificando elementos
numeros[0] = 10;

// Tamanho do array
tamanho = numeros.length;

Comentarios

// Comentario de uma linha

/* 
   Comentario de
   multiplas linhas
*/

Estruturas de Controle

Condicional (if/else)

if (x > 5) {
    print("Maior que 5");
} else if (x == 5) {
    print("Igual a 5");
} else {
    print("Menor que 5");
}

Loop (while)

i = 0;
while (i < 5) {
    print(i);
    i = i + 1;
}

Funcoes

Defina funcoes usando a palavra-chave function.

function saudacao(nome) {
    return "Ola, " + nome;
}

print(saudacao("Victor"));

Parametros Padrao e Rest

// Valor padrao
function multiplicar(a, b = 2) {
    return a * b;
}

// Rest parameters (variadic)
function listar(...itens) {
    print(itens.length); // Acessa tamanho do array
}

Operadores

TipoOperadores
Aritmeticos+ - * / %
Comparacao== != === !== < > <= >=
Logicos&& (E), || (OU), ! (NAO)
Ternariocondicao ? verdadeiro : falso

Referencia de Palavras-Chave

function

Declara uma nova funcao reutilizavel.

Como usar:
function nome(a, b) { ... }
Onde usar:

Escopo global ou dentro de funcoes (closures).

Em conjunto com:

Usado com 'return' para devolver valores.

return

Finaliza a execucao da funcao atual e especifica o valor a ser retornado para quem chamou.

Como usar:
return valor;
Onde usar:

Exclusivamente dentro de blocos 'function'.

Em conjunto com:

Pode retornar qualquer tipo de dado (numero, string, etc).

if

Inicia um bloco condicional que so e executado se a expressao for verdadeira.

Como usar:
if (idade >= 18) { ... }
Onde usar:

Controle de fluxo.

Em conjunto com:

Frequentemente usado com 'else' e operadores de comparacao (==, >, <).

else

Define o bloco a ser executado caso a condicao do 'if' anterior seja falsa.

Como usar:
else { ... }
Onde usar:

Deve vir imediatamente apos um bloco 'if'.

Em conjunto com:

Pode ser encadeado como 'else if' para multiplas condicoes.

while

Cria um loop que executa repetidamente um bloco de codigo enquanto a condicao for verdadeira.

Como usar:
while (i < 10) { ... }
Onde usar:

Loops e repeticoes.

Em conjunto com:

Geralmente requer uma variavel de controle (contador) alterada dentro do loop.