Sintaxe da Linguagem
A análise sintática é responsável por verificar se a sequência de tokens produzida pelo analisador léxico segue a gramática da linguagem. Nesta fase, o compilador valida a estrutura das instruções.
A SeteAO utiliza o ponto final (.) como delimitador obrigatório de instruções.
Estrutura Geral do Programa
<programa> ::= { <instrucao> }
Declaração de Variáveis
Forma geral:
<declaracao> ::= <id> [ "=" <expressao> ] ":" <tipo> "."
Exemplo:
idade = 20 : INTEIRO.
nome : TEXTO.
Atribuição
<atribuicao> ::= <id> "=" <expressao> "."
idade = idade + 1.
Entrada e Saída de Dados
Entrada:
INSERIR ( <id> ) .
INSERIR ( <string> , <id> ) .
Saída:
EXIBIR ( <expressao> ) .
EXIBIR ( <string> , <expressao> ) .
Expressões
<expressao> ::=
<termo> { ("+" | "-") <termo> }
<termo> ::=
<fator> { ("*" | "/") <fator> }
<fator> ::=
<numero> | <id> | "(" <expressao> ")"
Erros Sintáticos
- Instruções sem ponto final
- Parênteses não fechados
- Tipos inexistentes
x = 10
# Erro: esperado '.'