Flex e Bison

440 palavras 2 páginas
FLEX
Flex é uma ferramenta para a geração de scanners: programas que reconheceram padrões lexicais no texto(ou seja é um analisador léxico). Flex lê os arquivos de entrada indicadas ou sua entrada padrão, se nenhum nome de arquivo é dado, para uma descrição de um scanner para gerar. A descrição é na forma de pares de expressões regulares e código C, chamada regras. Flex gera como saída um arquivo de origem C, “lex.yy.c”, que define um” yylex rotina ()”. Este arquivo é compilado e ligado com a 'biblioteca -lfl `para produzir um executável. Quando o executável é executado, ele analisa sua entrada para as ocorrências das expressões regulares. Sempre que encontra um, ele executa o código C correspondente.
Exemplo de código simples
Primeiro alguns exemplos simples para obter o sabor de como um usa flex. A sequência de entrada de flexão especifica um scanner que sempre que encontra a string "nome de usuário" vontade substituí-lo com o nome de login do usuário:
%%
printf nome de usuário ("% s", getlogin ());
Por padrão, qualquer texto não correspondida por um scanner flex é copiados para a saída, de modo que o efeito líquido de este scanner é para copiar o seu arquivo de entrada para a sua saída com cada ocorrência de "username" expandido. Nesta entrada, há apenas um governar. "username" é o padrão e a "printf" é o ação. O "%%" marca o início das regras.
Aqui está outro exemplo simples: int num_lines = 0, num_chars = 0;
%%
\ n ++ num_lines; ++ num_chars;
. ++ num_chars;
%%
main ()
{
yylex (); printf ("# de linhas =% d, # de caracteres =% d \ n", num_lines, núm_car);
} (http://dinosaur.compilertools.net/flex/flex_23.html#SEC23 VER NESTE LINK OS BUGS PARA FAZER A PARTE 3 DO TRABALHO)
BISON
Bison é um gerador de parser no estilo de yacc. Ele deve também ser compatíveis com arquivos de entrada projetado para yacc. Arquivos de entrada deve seguir a convenção yacc de terminar em “.y”. Ao contrário yacc, os arquivos gerados não fixaram

Relacionados

  • trabalho compiladores luciane unirp
    865 palavras | 4 páginas
  • Agents Language: Uma Linguagem de Programação de Robôs
    3169 palavras | 13 páginas
  • Bison
    508 palavras | 3 páginas
  • Pesquisa sobre yacc/bison
    394 palavras | 2 páginas
  • bison
    352 palavras | 2 páginas
  • Compilar o oscam na vossa maquina
    269 palavras | 2 páginas
  • Ad Hoc Olsr PedroSoares JarlanCastro Fa Hellip
    1782 palavras | 8 páginas
  • compiladores
    1300 palavras | 6 páginas
  • Trabalho Lex Bom
    1841 palavras | 8 páginas
  • Relatório inf
    3845 palavras | 16 páginas