Identificadores e Palavras-chave
Tokens
Segue abaixo a Tabela 1 contendo os tokens referentes aos identificadores e palavras-chave utilizados no compilador, além de suas expressões regulares e descrições. A escolha desses elementos foi baseada nas palavras-chave própria da linguagem escolhida bem como na estrutura de identificadorres proposta pelo compiador:
Token | Expressão regular correspondente | Campo yyval | Descrição |
---|---|---|---|
ID | [a-zA-Z_][a-zA-Z0-9_]* |
str | Designado a identificação de identificadores |
IF | "if" |
-- | Token usado para identificar a palavra-chave if |
ELSE | "else" |
-- | Token usado para identificar a palavra-chave else |
ELIF | "elif" |
-- | Token usado para identificar a palavra-chave elif |
WHILE | "while" |
-- | Token usado para identificar a palavra-chave while |
FOR | "for" |
-- | Token usado para identificar a palavra-chave for |
DEF | "def" |
-- | Token usado para identificar a palavra-chave def |
RETURN | "return" |
-- | Token usado para identificar a palavra-chave return |
IN | "in" |
-- | Token usado para identificar a palavra-chave in |
TRUE | "true" |
-- | Token usado para identificar a palavra-chave true |
FALSE | "false" |
-- | Token usado para identificar a palavra-chave false |
AND | "and" |
-- | Token usado para identificar a palavra-chave and |
OR | "or" |
-- | Token usado para identificar a palavra-chave or |
NOT | "not" |
-- | Token usado para identificar a palavra-chave not |
CLASS | "class" |
-- | Token usado para identificar a palavra-chave class |
IMPORT | "import" |
-- | Token usado para identificar a palavra-chave import |
FROM | "from" |
-- | Token usado para identificar a palavra-chave from |
AS | "as" |
-- | Token usado para identificar a palavra-chave as |
TRY | "try" |
-- | Token usado para identificar a palavra-chave try |
EXCEPT | "except" |
-- | Token usado para identificar a palavra-chave except |
FINALLY | "finally" |
-- | Token usado para identificar a palavra-chave finally |
WITH | "with" |
-- | Token usado para identificar a palavra-chave with |
PASS | "pass" |
-- | Token usado para identificar a palavra-chave pass |
BREAK | "break" |
-- | Token usado para identificar a palavra-chave break |
CONTINUE | "continue" |
-- | Token usado para identificar a palavra-chave continue |
GLOBAL | "global" |
-- | Token usado para identificar a palavra-chave global |
NONLOCAL | "nonlocal" |
-- | Token usado para identificar a palavra-chave nonlocal |
LAMBDA | "lambda" |
-- | Token usado para identificar a palavra-chave lambda |
Tabela 1: Tokens e suas respectivas expressões regulares. (Fonte: Laís Ramos e Taynara Cristina, 2025)
Decisões técnicas
Foram listadas todas as palavras-chave desconhecidas, e realizada uma pesquisa online para compreender e identificar termos técnicos que não eram de conhecimento da equipe.
Desafios Encontradas
- Escassez de materiais sobre a tecnologia Bison.
- Interface do Bison pouco intuitiva, dificultando o entendimento de seu funcionamento.
- Dificuldade em identificar qual seria o resultado esperado para as entradas fornecidas.
Soluções Adotadas
- Realização de análise detalhada das palavras-chave, considerando também casos de borda para validar o comportamento esperado.
- Utilização das saídas do terminal para acompanhar e verificar se os resultados obtidos estavam alinhados às expectativas.
Histórico de Versões
Data | Versão | Descrição | Autor | Revisor |
---|---|---|---|---|
28/04/2025 | 1.0 | Criação do documento e inclusão de informações sobre decisões, desafios e soluções | Laís Ramos Barbosa | 170107574 |
28/04/2025 | 1.0 | Criação do documento e inclusão de informações sobre decisões, desafios e soluções | Taynara Cristina Ribeiro Marcellos | 211031833 |