Erros pawn
From SA-MP Wiki
Erros do compilador
Erro 001 - expected token:
O compilador esperava encontrar um simbolo mas encontrou outro, isso ocorre no fechamento de linhas, parênteses, chaves, colchetes. Normalmente a linha apontada é a debaixo do erro.
</b>Exemplos:</b>
new a new b; // Acima irá apontar que esperava encontrar ; mas encontrou o new e alinha apontada sera a new b;
Erro 002 - only a single statement (or expression) can follow each "case":
Esse erro acontece dentro no controlador switch, o erro foi colocado um expressão fora do case. Esse erro pode gerar outros erros como o do simbolo indefinido caso tente declarar uma variável fora do case e dentro do switch.
Exemplo:
new a; switch(a){ new b; if(a == 7){ } case 19:{ } }
No código acima a declaração da variável b e a condição se a é igual a 7 esta fora do case e dentro do switch, gerando vão somente este erro mas também que o simbolo b não foi definido.
Erro 003 - declaration of a local variable must appear in a compound block:
Exemplo:
new bool: a = true; if(a) new bool: b = true;
No código acima irá gerar este erro, pois a declaração de b esta em um bloco simples e a declaração deve ser em um bloco composto. O bloco composto não utiliza apenas um linha igual ao composto que precisa do uso de chaves para indicar o início e o fim do bloco.
Bloco composto:
new bool: a = true; if(a){//Indica o início do bloco //Bloco composto }//Indica o fim do bloco
Erro 017 - undefined symbol:
Neste erro o compilador avisa que você esta tentando usar um simbolo que não foi definido, esse simbolo pode ser uma definições/macros, variável, função, constantes.
Exemplo:
main(){ //Função Teste(); //Variável var = 5; //Definição new v3 = VALOR_PADRAO; }
Se a função Teste, ou a variável var ou a definição VALOR_PADRAO não estiver definida irá gerar este erro.
Se o um simbolo estiver definido e mesmo assim o compilador apontar que ele não foi definido, pode ser que ele esteja dentro de uma condição de pré-compilação:
#if defined DEFINIR_VAR new var = 5; #endif printf("var %d", var);
No código acima o compilador poderá apontar que a variável var não foi definida, pois ela não será compilada se DEFINIR_VAR for definido.