Escolar Documentos
Profissional Documentos
Cultura Documentos
Exemplos:
– DIGITO = [0-9]
– ALFA = [A-Za-z]
– ESPACO_EM_BRANCO = [\n\r\x20\t]
– NUM_NATURAL = {DIGITO}+
JLex: diretivas (cont.)
Estados
– Permite implementar uma máquina
de estados no scanner.
– Todo scanner tem pelo menos um
estado (declarado internamente)
chamado YYINITIAL.
– Exemplo:
%state COMMENT
JLex: regras de
expressões regulares
Formato das regras:
– [<estados>] <expressão> { <ação> }
Diretivas
– parser code {: ... :};
Permite que você declare variáveis e métodos na classe do
parser. Similar à diretiva %{...%} do JLex.
– init with {: ... :};
O código entre chaves vai ser executado antes que o parser
peça o primeiro token ao scanner. Bom lugar para inicializar
o scanner.
– scan with {: ... :};
Serve para que você escreva o código que o parser vai
executar sempre que ele quiser pedir um token ao scanner.
Se essa diretiva não for utilizada, o parser chama
scanner.next_token() para receber tokens.
JCup: segunda seção
Lista de símbolos
JCup
– http://www.cs.princeton.edu/~appel/modern/java/C
UP/