Como usar o Finite Automaton para implementar um scanner
Estou construindo um scanner simples. Suponha que eu tenha os seguintes tokens definidos para o meu idioma:
!, !=, !==, <, <<, {
Agora eu posso especificá-los usando expressões regulares, portanto:
!=?=? | { | <<?
Então eu useihttp://hackingoff.com para criar NFA e DFA. Agora, cada máquina pode determinar se a entrada está no idioma de regexp ou não. Mas meu programa é uma sequência de tokens, não um token:
!!=!<!==<<!{
Minha pergunta écomo devo usar as máquinas para analisar a string em tokens? Estou interessado na abordagem e não na implementação.