fbpx

Comandos Linux – Comando yacc

Comando yacc do Linux

comando yacc

Em sistemas operacionais do tipo Unix, o comando yacc é um compilador que gera um analisador Look-Ahead, da esquerda para a direita e de derivação mais à direita (LALR). É um compilador-compilador: um compilador que cria um compilador. O Yacc recebe como entrada uma descrição formal de uma linguagem de programação e sua saída é um analisador que executa determinadas ações, específicas de uma arquitetura de destino, ao compilar um programa escrito na linguagem.

Descrição

O nome “yacc” é um acrônimo para “Yet Another Compiler-Compiler”. Era extremamente popular e já foi padrão em todos os sistemas Unix. Desde então, foi substituído por compiladores-compiladores mais recentes, que são na maioria compatíveis com o yacc.

Sintaxe

yacc [-d] [-l] [-t] [-V] [-v] [-b arquivo_prefixo ] [-Q [y | n]]Arquivo 
     [-P parser ] [-p sym_prefix ]
-dGera o arquivo y.tab.h com as instruções #define que associam os “códigos de token” atribuídos pelo usuário ao yacc com os “nomes de token” declarados pelo usuário. Essa associação permite que arquivos de origem que não sejam y.tab.c acessem os códigos de token.
-euEspecifica que o código produzido em y.tab.ce não conterá quaisquer #line construções. Esta opção deve ser usada apenas após a gramática e as ações associadas serem totalmente depuradas.
-tCompila o código de depuração de tempo de execução por padrão. O código de depuração de tempo de execução é sempre gerado no y.tab.c sob controle de compilação condicional. Por padrão, esse código não é incluído quando o y.tab.c é compilado. Se a opção -t é ou não usada, o código de depuração do tempo de execução está sob o controle de YYDEBUG , um símbolo do pré-processador. Se YYDEBUG tiver um valor diferente de zero, o código de depuração será incluído. Se seu valor for 0 , o código não será incluído. O tamanho e o tempo de execução de um programa produzido sem o código de depuração de tempo de execução serão menores e um pouco mais rápidos.
-vPrepara o arquivo y.output , que contém uma descrição das tabelas de análise e um relatório sobre conflitos gerados por ambiguidades na gramática.
-VImprime no erro padrão produz as informações da versão do yacc .
-b file_prefixUse file_prefix em vez de y como o prefixo para todos os arquivos de saída. O arquivo de código y.tab.c , o arquivo de cabeçalho y.tab.h (criado quando -d é especificado) e o arquivo de descrição y.output (criado quando -v é especificado) serão alterados para file_prefix.tab. c , file_prefix.tab.h , e file_prefix.output , respectivamente.
-Q [ y | n ]-Qy opção coloca a versão carimbar informações em y.tab.ce . Isso permite que você saiba qual versão do yacc criou o arquivo. A opção -Qn (o padrão) não grava informações da versão.
-P parserPermite especificar o analisador de sua escolha em vez de / usr / ccs / bin / yaccpar . Por exemplo, você pode especificar:

yacc -P ~ / myparser parser.y
-p sym_prefixUse sym_prefix em vez de yy como o prefixo para todos os nomes externos produzidos pelo yacc . Os nomes afetados incluem as funções yyparse () , yylex () e yyerror () e as variáveis yylval , yychar e yydebug . (No restante desta seção, os seis símbolos citados são referenciados usando seus nomes padrão apenas como uma conveniência de notação.) Nomes locais também podem ser afetados pela opção -p ; no entanto, a opção -p não afeta os símbolos #define gerados pelo yacc .
ArquivoUm nome de caminho de um arquivo que contém instruções para as quais um analisador deve ser criado.

cc – Compilador da linguagem de programação C.
lex – Gere programas para executar tarefas lexicais.

22 de novembro de 2019

Sobre nós

A Linux Force Brasil é uma empresa que ama a arte de ensinar. Nossa missão é criar talentos para a área de tecnologia e atender com excelência nossos clientes.

CNPJ: 13.299.207/0001-50
SAC:         0800 721 7901

sac@linuxforce.com.br

Comercial  Comercial = 11 3796 5900

Suporte:    11 3796-5900
contato@linuxforce.com.br

Últimos Tweets

Erro ao receber tweets

Administrador Online

Não há usuários online neste momento
Copyright © Linux Force Security  - Desde 2011.