3 - Literais

Os literais são valores fixos escritos diretamente no código-fonte que representam dados constantes. Eles são classificados de acordo com o tipo de dado que representam.

Tipo de Literal Token Exemplos Descrição
Inteiro TOK_INT_LIT 10, 42, 0 Sequências de dígitos numéricos sem ponto decimal.
Ponto Flutuante TOK_FLOAT_LIT 2.34, 0.4, 2.0 Números que contêm uma parte fracionária separada por ponto.
String TOK_STRING_LIT “Hellow world”, “oi” Sequências de caracteres delimitadas por aspas duplas.
Caractere TOK_CHAR_LIT ‘z’, ‘\n’, ‘\0’ Um único caractere ou sequência de escape entre aspas simples.

3.2 - Regras de Reconhecimento (Regex)

Para o funcionamento no Flex, utilizaremos os seguintes padrões:

  • Inteiros: [0-9]+

  • Floats: [0-9]*.[0-9]+

  • Strings: “([^”\n]*)” (Cadeias entre aspas, sem permitir quebras de linha diretas)

  • Caracteres: ‘(\. [^\’])’ (Permite caracteres normais ou sequências de escape como \n ou \t)

3.3 - Armazenamento de Valores (yylval)

Como esses tokens possuem valor semântico, o analisador léxico deve preencher a união yylval antes de retornar o token:

  • Para TOK_INT_LIT: yylval.ival = atoi(yytext);

  • Para TOK_FLOAT_LIT: yylval.fval = atof(yytext);

  • Para TOK_STRING_LIT: yylval.sval = strdup(yytext);

  • Para TOK_CHAR_LIT: yylval.cval = yytext[1];


This site uses Just the Docs, a documentation theme for Jekyll.