1 4 5 13 Considere = {a, b}. • A expressão regular a| b denota a linguagem {a, b}. • a* denota a linguagem consistindo em todas as cadeias de zero ou mais as, ou seja, {.a.aa.aaa,...}, • (alb)* denota o conjunto de todas as cadeias consistindo em zero ou mais instâncias de a ou b, ou seja, todos os a’s e b’s: • {,a,b,aa,ab,ba,bbaaa,...}. • ala* b denota a linguagem {a,b,ab,aab,aaab,,..}, ou seja, a cadeia a e todas as cadeias consistindo em zero ou mais e terminando em b 24 25 26 27 28 Automato finito: reconhecimento de tokens • Reconhecimento dos lexmas casados com o token relop • No no estado O, o estado inicial. Se for encontrado < como o primeiro símbolo de entrada, então entre os lexemas que • o padrão para relop, só podem ser <, <> ou <=. Portanto, ir para o estado 1 e examinar o caractere seguinte. • Se ele for =, então o lexema <= é reconhecido. Ir para o estado 2 e retornar o token relop com o atributo LE (comparação menor ou igual a ) . • Se, no estado 1, o caractere for o >. então tem-se o lexema <> e ir para estado 3 para retornar o reconhecimento do atributo NE (comparação não-igual). • Com qualquer outro caractere, o lexema é <. Ir para o estado 4 para retornar o reconhecimento do atributo LT (comparação menor do que) . • No estado 4 o * indica um recuo na entrada de uma posição. Automato finito: reconhecimento de tokens de operadores de relacionamento Automato finito: reconhecimento de tokens de palavras reservadas e identificadores Usualmente, palavras-chave como if ou then são reservadas (assim como em nosso exemplo em andamento). Não são, portanto, identificadores. Contudo, um diagrama de transição para procurar lexemas identificadores, também reconhecerá as palavras-chave if, then e else do nosso exemplo em andamento.