InglêsFrancêsEspanhol

Ad


favicon do OnWorks

genparse - Online na nuvem

Execute o genparse no provedor de hospedagem gratuita OnWorks no Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

Este é o comando genparse que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

PROGRAMA:

NOME


genparse - gerador de analisador de linha de comando

SINOPSE


análise genérica [opções] arquivos...

DESCRIÇÃO


análise genérica é um gerador de analisador de linha de comando genérico. De simples e conciso
arquivo de especificação, você pode definir os parâmetros e opções da linha de comando que
gostaria de poder passar para o seu programa. Genparse cria o código C, C ++ ou Java do
analisador para você.

Genparse assume que o GNU getopt_long(3) função está embutida em sua biblioteca C. Para
Java, pode ser necessário especificar um arquivo jar apropriado para o seu compilador Java.

OPÇÕES


análise genérica aceita estas opções:

-c, --cppext extensão
Extensão de arquivo C ++. (padrão = cc)

-d Ative o registro.

-f, --arquivo de log nome
Nome do arquivo de log. (padrão = genparse.log)

-h, --Socorro
Exibir informações de ajuda.

-g, --gnulib
Use a Biblioteca de Compatibilidade GNU (Gnulib, consulte http://www.gnu.org/software/gnulib/).
Disponível apenas para saída C. Permite mais alguns tipos (unsigned long, intmax_t etc.)
para o qual o Gnulib fornece funções de conversão.

-i, --internacionalizar
Coloque a macro de internacionalização _ () em torno da saída de texto para que o programa gerado
pode ser internacionalizado usando o comando GNU gettext. Atualmente apenas implementado
para saída C.

-l, --língua lang
Idioma de saída. Apenas C, C ++ e Java são suportados. Qualquer um dos seguintes
indique C ++: "c ++", "cpp", "cc" e "cxx". Para Java, use: "java" ou "Java".
(padrão = c)

-o, --arquivo de saída nome
Nome do arquivo de saída. (padrão = parse_cl)

-m, - membros longos
Use opções longas para os membros da classe do analisador (struct). O padrão é
use a representação curta, exceto se houver apenas uma representação longa definida
no arquivo genparse. Se esta opção for definida, o comportamento será revertido. o
representação longa é usada, exceto se houver apenas uma representação curta
definiram.

-o, --arquivo de saída nome do arquivo
Nome raiz do arquivo de saída. A extensão será determinada pelo idioma de saída
e possivelmente por outras opções. Por exemplo, quando a linguagem de saída é C, dando
esta opção um argumento de "arquivo" resultará em nomes de arquivo de saída de "arquivo.h",
"file.c" e "file_cb.c" para os arquivos de cabeçalho, analisador e callback, respectivamente.
O valor padrão é "parse_cl".

-p, --parsefunc função
Nome da função / classe de análise. Esta opção permite ao usuário especificar o nome
da função (para C) ou classe (para C ++ e Java) que faz o comando real
análise de linha (padrão = "Cmdline").

-P, - muitas impressões
Envie texto de ajuda para cada parâmetro de linha de comando em um comando de impressão separado.

-q, --quieto
Modo silencioso - sem saída na tela.

-s, --cabeçalhos-estáticos
Mantenha o cabeçalho descritivo sobre os arquivos estáticos gerados. Sem isso
opção genparse imprime a data e hora de criação, versão do kernel Linux, compilação do kernel
hora, nome da arquitetura do computador, nome do host e nome do usuário.

-v, --versão
Versão de saída.

-D, --diretório
Diretório para armazenamento de resultados.

INPUT ARQUIVO


Um arquivo de especificação genparse (geralmente chamado apenas de 'arquivo genparse') consiste em um número
de entradas, uma por parâmetro de linha de comando, da forma:

nomes_curtos[* |!] [/ nome_longo[* |!] [=opt_name]] tipo [ opções ]

A nome curto é um único caractere (pequeno ou maiúsculo) ou um único dígito. nome_longo é um
nome de opção mais longo (mais descritivo). Na linha de comando, um nome curto será precedido
por um único travessão (por exemplo, '-a') e uma versão longa será precedida por dois travessões (por exemplo
'--tudo'). Se um nome de parâmetro longo não for necessário, você pode especificar apenas o curto
(e a barra não precisa aparecer). A fim de especificar um parâmetro que tem apenas um longo
conjunto de nomes nomes_curtos para NENHUM. É possível ter várias opções curtas, então para
configuração de exemplo nome curto para 'aA' e nome_longo para 'todos' permitiria especificar o
alternar linha de comando como '-a' ou '-A' ou '--all', todos eles fazendo a mesma coisa.

A * depois de nome curto or nome_longo torna o argumento opcional. Isso pode ser especificado para
opções curtas e longas separadamente.

A ! depois de nome curto or nome_longo torna a opção booleana. Isso permite combinar um
opção curta booleana com uma opção longa com um argumento opcional ou obrigatório ou para
combine uma opção booleana longa com uma opção curta com um argumento opcional ou obrigatório.
A ! não faz sentido se o tipo da opção for bandeira.

tipo deve ser um de int flutuar carbonizar corda or bandeira. Os primeiros quatro devem ser próprios
explicativo. A última é uma opção "switch" que não aceita argumentos. Para saída C e se
--gnulib é definido na linha de comando, além disso, os seguintes tipos são permitidos: longo
(para longo prazo), Ulong (para int longo sem sinal), intmax (para intmax_t, definido em Gnulib),
uintmax (para uintmax_t), duplo.

Os seguintes opções são suportados. Eles podem aparecer em qualquer ordem e exceto para
descrições apenas um de cada campo pode ser definido por opção.

A omissão valor para o parâmetro. Para uma string, este é apenas o padrão simples
valor, seja ele qual for. Para strings, um padrão deve ser especificado entre colchetes e
aspas, e podem incluir espaços em branco, por exemplo, {"meu valor padrão"}. Para um char
parâmetro deve ser colocado entre aspas simples, por exemplo, 'a' ou '\ n'.

A alcance de valores entre colchetes. Os valores baixo e alto são especificados entre um
especificador de intervalo ('...' ou '..'). Tanto o valor alto quanto o baixo podem ser
omitido para um intervalo limitado em apenas um lado. O parâmetro será verificado para
certifique-se de que está dentro desse intervalo.

A ligue de volta função. Esta função é chamada depois que qualquer verificação de intervalo é
realizada. O objetivo do callback para fazer a verificação de validade é mais
complicado do que pode ser especificado no arquivo genparse. Por exemplo, você pode
escrever um programa que requer que a entrada seja números primos, strings de um certo
comprimento, etc.

A descrição entre aspas duplas. É impresso pela uso() função. Se um
linha não é suficiente, então especifique várias descrições, uma por linha e cada uma
-los entre aspas duplas. Se a descrição começar na 1ª coluna do Genparse
arquivo, então ele também será impresso na 1ª coluna no uso() função.

A #gp_include diretiva instruirá o genparse a incluir outro arquivo genparse,
por exemplo #gp_include outro.gp. Apenas definições de parâmetros são permitidas no incluído
arquivo, sem diretivas globais.

An __ERR_MSG __ (err_txt) diretiva. Especifica a mensagem de erro que é impressa
quando o argumento não pôde ser convertido. Exemplo: __ERR_MSG __ ("% s: inválido
argumento"). Esta mensagem será impressa quando a função de conversão
falhou ou quando o argumento estava fora do intervalo. Presume que contém um %s qual vai
ser substituído com o agrumento que não poderia ser convertido. Só disponível quando
Genparse é invocado com --gnulib, ignorado de outra forma.

Opcionalmente, uma função de conversão pode ser adicionada como um segundo argumento, por exemplo
__ERR_MSG __ ("% s: inválido argumento", citação). Isso levaria a uma mensagem de erro
como erro (EXIT_FAILURE, 0, "% s: inválido argumento", citação (opcional)).

An __ADD_FLAG__ diretiva. Faz sentido apenas se o parâmetro da linha de comando não for
já um sinalizador, neste caso, um parâmetro de sinalizador adicional é adicionado, que será
definido se o parâmetro da linha de comando foi especificado na linha de comando. Esta opção
é definido automaticamente se um parâmetro tiver um argumento opcional.

A __CODE __ (declarações) diretiva. As declarações de código especificadas são copiadas
literalmente. Exemplo: __CODE __ (printf ("Parâmetro x foi definir");). O código especificado
pode se estender por mais de uma linha. A fim de dar a Genparse a chance de
indente o código corretamente, não misture recuos de espaço e tabulação em um __CÓDIGO__
declaração.

A __STORE_LONGINDEX__ diretiva. Instrui Genparse a adicionar um campo de tipo interno
para a classe de resultado que será definida para a variável longindex (último argumento em
a chamada para @code {getopt_long ()}). Este novo campo terá o mesmo nome que o
campo de resultado ao qual está relacionado, mas com um _li pós-fixação.

Os seguintes global directivas são suportados. Eles podem aparecer em qualquer ordem.

An #include diretriz instruirá genparse a copiar a referida declaração de inclusão
no código C ou C ++ gerado pelo genparse, mas não em qualquer arquivo de cabeçalho ou retorno de chamada
arquivos.

A #obrigatório pode ser usada para tornar as chamadas de função usage () mais agradáveis. Permite
você deve especificar parâmetros de linha de comando obrigatórios que podem seguir as opções. Observação
que Genparse não verifica os parâmetros obrigatórios, eles só são impressos no
uso () funcionar com o __MANDATÓRIOS__ Directiva. Descontinuada: adicionar obrigatório
parâmetros in que o #uso seção ao invés.

An #exit_value diretiva que especifica o valor de saída em caso de erro.
O padrão é EXIT_FAILURE.

A #break_lines diretiva que especifica a largura na qual as linhas devem ser quebradas
na tela de ajuda. Se não #break_lines diretiva for especificada, então as linhas serão
impresso exatamente como fornecido no arquivo genparse.

If #no_struct for especificado, nenhuma estrutura será definida, a qual será preenchida com
os parâmetros da linha de comando no analisador gerado. Isso pode ser útil se você
deseja adicionar seu próprio código com __CÓDIGO__ declarações em vez disso. Suportado apenas para C
saída.

A #export_long_options diretiva. Se #export_long_options é definido então um
função #get_long_options () é adicionado, o que exporta o array longoptions usado por
#getopt_long (). Esta diretiva está disponível apenas para saída C, para outros idiomas
é ignorado.

A global ligue de volta função. Esta função é útil para verificar interdependências
entre os parâmetros. As interdependências não podem ser verificadas dentro de cada indivíduo
função de retorno de chamada porque a ordem em que essas funções serão chamadas varia,
dependendo da ordem dos parâmetros na linha de comando.

Genparse também gera um uso() função que imprime um texto de ajuda para stdout sobre o
uso do programa para o qual Genparse está gerando o analisador. Pode ser personalizado por
especificando uma seção de uso na parte inferior do arquivo Genparse. Se nenhuma seção for
especificado, o padrão é

#usage_begin
uso: __PROGRAM_NAME__ __OPTIONS_SHORT__ __MANDATORIES__
__GLOSSÁRIO__
#usage_end

A seção de uso começa com #usage_begin e termina com #usage_end. Qualquer texto entre é
impresso literalmente, exceto para as seguintes palavras-chave, que serão substituídas conforme listado
abaixo:

__NOME DO PROGRAMA__: O nome do programa. Em C e C ++, o nome do programa é dado em
argv [0].

__OPTIONS_RESUMIDO__: Uma lista de opções de formato abreviado disponíveis, por exemplo, [-abc].

__MANDATÓRIOS__: Uma lista de todos os parâmetros obrigatórios, conforme definido com #mandatory
comandos. Descontinuada: Lista obrigatório parâmetros SUA PARTICIPAÇÃO FAZ A DIFERENÇA diretamente.

__GLOSSÁRIO__: Uma descrição de todas as opções de linha de comando. Esta é a informação
fornecido para as definições de parâmetro em forma legível por humanos. Inclui o
tipo de parâmetro, padrão, intervalo e quaisquer comentários. Uma linha que contém
__GLOSSÁRIO__ é substituído pelo glossário dos parâmetros, qualquer outro texto no
mesma linha é ignorada.

__GLOSSÁRIO_GNU__: Igual a __GLOSSÁRIO__ mas no estilo GNU. Opcionalmente seguido por um
inteiro entre colchetes que especifica o recuo do texto descritivo (por exemplo
__GLOSSÁRIO__(30)). O recuo padrão é 24.

__Cordas): Uma constante de string, em C provavelmente uma macro de string definida com o
#define o comando do pré-processador. Esta macro pode ser importada de outro arquivo usando
a diretiva de inclusão no arquivo genparse. Ignorado ao gerar saída Java.

__INT __ (x): Uma constante inteira, em C provavelmente uma macro inteira definida com o
#define o comando do pré-processador. Esta macro pode ser importada de outro arquivo usando
a diretiva de inclusão no arquivo genparse. Ignorado ao gerar saída Java.

__CODE __ (declarações): O mesmo que para as opções de parâmetro, veja acima.

__DO_NOT_DOCUMENT__: Qualquer linha que contenha esta macro não será impressa no
uso() função. Pode ser usado para implementar parâmetros de linha de comando sem
listando-os na tela de ajuda.

__NL__: Nova linha. Útil para quebrar linhas manualmente durante a quebra automática de linha
está ligado (veja #break_lines) Ignorado ao gerar saída Java.

__NEW_PRINT__: Feche o comando de impressão ativo e inicie um novo.

__COMMENT __ (texto): Comentário no código para impressão do texto de uso.

as opções longas podem ser seguidas por um sinal = e uma designação opcional opt_name que pode
ser referido na seguinte descrição. Será usado no uso() função
só. Por exemplo, a seguinte linha genparse

s / block-size = SIZE int "usar blocos SIZE-byte"

levará à seguinte linha na tela de ajuda

[-s] [--block-size = SIZE] (tipo = INTEIRO)
usar blocos de SIZE bytes

no estilo genparse (__GLOSSÁRIO__) ou

-s, --block-size = SIZE usa blocos SIZE-byte

no estilo GNU (__GLOSSÁRIO_GNU__).

Também é possível colocar colchetes ao redor do nome opcional para indicar
que o argumento é opcional. No entanto, isso não tem significado para o analisador gerado. Usar
* correções posteriores para tornar um argumento opcional.

s * / block * [= SIZE] int "usar blocos."
"Se SIZE não for fornecido, eles terão um tamanho de 1kB."

levará à seguinte linha na tela de ajuda

-s, --block [= SIZE] usa blocos.
Se SIZE não for fornecido, eles terão um tamanho de 1kB.

EXEMPLO


Aqui está um arquivo genparse de amostra:

#incluir

/* Comente */
my_callback ()

i / iterations int 100 [10 ... 1000] iter_callback ()
"Número de iterações a serem executadas."

/*
* Comentário
*/

n / name string {"mike"} name_cb () "Nome do usuário"
string s / str "string de teste"
f flag "uma bandeira estúpida!"

#usage_begin
uso: __PROGRAM_NAME__ __OPTIONS_SHORT__ nome do arquivo
Este é apenas um programa de teste estúpido.
__GLOSSÁRIO__
#usage_end

Use genparse online usando serviços onworks.net


Servidores e estações de trabalho gratuitos

Baixar aplicativos Windows e Linux

Comandos Linux

Ad