Pular para conteúdo

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