Você está na página 1de 2

Tópico: Relação entre analisador léxico e analisador

              Termos usados (toque padrão lexema e atributo) . Exercícios

A relação entre o analisador léxico eo analisador é uma relação senhor-escravo . A


demanda léxico sintático para ler o seguinte caule e lê os caracteres necessários no
arquivo de entrada até chegar completar um token que será entregue ao seu mestre
( parser.
O analisador léxico lê caractere por caractere e o arquivo de entrada é armazenar esses
caracteres em um buffer. Quando você vê um personagem que não é usado para
construir um válido e envia tokens para o analisador acumulados e aguarda um novo
pedido para ler os caracteres. Quando você receber um novo analisador pedido limpa o
buffer e lê o personagem onde parou da última vez (desde que não pertencia ao token
que foi enviado )
Exemplo: Suponhamos que temos um arquivo de entrada com o seguinte conteúdo .
Int x;
Main () {
}

O analisador léxico vai fazer essas operações

Entrada Buffer Acción


i i Leer otro carácter
n in Leer otro carácter
t int Leer otro carácter
Espacio en blanco int Enviar token e limpar o
buffer
x x Leer otro carácter
; x Enviar token e limpar o
buffer
; ; Leer otro carácter
m ; Enviar token e limpar o
buffer
m m Leer otro carácter
a ma Leer otro carácter
i mai Leer otro carácter
n main Leer otro carácter
( main Enviar token e limpar o
buffer
( ( Leer otro carácter
) ( Enviar token y limpiar buffer
Espacio en blanco ) Enviar token y limpiar buffer
{ { Leer otro carácter
} { Enviar token e limpar o
buffer
Fin del fichero } } Enviar token e limpar o
buffer
Um aspecto importante é que o leitor deve ler o mais longo possível token. Se não for
possível, pelo menos diminuir tempo ele é válido e , em seguida, voltar a ler você
descartar para o próximo token .
Termos usados nesta fase: Símbolo da haste padrão e atributos.
Padrão : é uma representação lógica de um certo número de grupos de caracteres com
características comuns
Exemplo em Java identificador de uma variável pode ser qualquer combinação de letras
e números eo símbolo de sublinhado não começando com números.El padrão sério
definição formal do que temos dito para descrever formalmente , esta definição de
expressões regulares são usadas.
As expressões regulares também são usados em teorias de autômatos e são a maneira de
ver as entradas válidas para um autômato.
Exemplo de identificadores de variáveis em Java seria:
Carta :: = (a- z A- Z)
Digit :: = (0-9)
Sublinhe :: = (-)
ID :: = (sublinhado / letra ) (grifo / letra / dígito) *
Lexema . Em cada uma das combinações de caracteres que se enquadram na definição
de um padrão.
Exemplo: A seqüência de variáveis " variable1 ", " x ", " y 12" ajuste ID em uma
variável em java ou seja,
O padrão é a definição formal e as seqüências lexema cada um dos quais pode se
encaixam na definição .
Símbolo : é o nome dado a cada padrão definido. Este nome será utilizado nos seguintes
processos de análises , em nome de todos os lexemes encontrados . Onde símbolo
rendas gramática caber cada lexemas que representam .
Lexemas em concreto são representados em um token.
Exemplo A palavra de frutas banana etc -------------- lexema .
* O analisador léxico passa o lexema não só o sintático , mas também o token que é
passado para ele um par (Token , lexema )

Você também pode gostar