Gramática Formal (CFG) do Subconjunto de C++
Este documento descreve a gramática livre de contexto (CFG) correspondente ao subconjunto da linguagem C++ definido no Escopo da Linguagem. Ela servirá como base para o desenvolvimento do analisador sintático utilizando Bison.
Símbolo inicial
Declarações
Tipos suportados:
Declarações:
Exemplos válidos:
Comandos
Blocos e lista de comandos:
Comandos possíveis:
Atribuições:
Exemplos válidos:
If/Else:
Exemplo válido:
While:
Exemplo válido:
For:
For → 'for' '(' ForInit? ';' ForCond? ';' ForStep? ')' Stmt
ForInit → Decl | Assign
ForCond → Expr
ForStep → Assign
Exemplo válido:
Precedência de Operadores
()
— Parênteses!
,-
— Unários*
,/
— Multiplicativos+
,-
— Aditivos<
,<=
,>
,>=
— Relacionais==
,!=
— Igualdade&&
— Lógico AND||
— Lógico OR
Léxico (terminais)
- Identificadores:
IDENTIFIER
- Literais:
INT_LIT
→ números inteiros (ex.:10
,42
)FLOAT_LIT
→ números de ponto flutuante (ex.:3.14
,0.5
)STRING_LIT
→ cadeias de caracteres entre aspas (ex.:"abc"
)BOOL_LIT
→true
|false
- Palavras-chave:
int
,float
,bool
,string
,if
,else
,while
,for
- Símbolos/operadores:
= + - * / == != < > <= >= && || ! ( ) { } ; ,
Histórico de Versões
Versão | Data | Autor(es) | Descrição |
---|---|---|---|
1.0 | 14/09/2025 | Antônio Júnior, Heyttor Augusto, João Pedro Sampaio, Lucas Heler, Maciel Júnior | Primeira versão da gramática formal |