InglêsFrancêsEspanhol

Ad


favicon do OnWorks

m4posix - Online na nuvem

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

Este é o comando m4posix 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


m4 - processador macro

SINOPSE


m4 [-S] [−D nome[=onda]]... [−U nome]... lima...

DESCRIÇÃO


A m4 utilitário é um processador de macro que deve ler um ou mais arquivos de texto, processá-los
de acordo com as macroinstruções incluídas e escreva os resultados na saída padrão.

OPÇÕES


A m4 utilitário deve estar em conformidade com o volume de Definições de Base de POSIX.1‐2008, Seção 12.2,
Utilidade Sintaxe orientações, exceto que a ordem do −D e −U opções devem ser
significativo, e as opções podem ser intercaladas com operandos.

As seguintes opções devem ser suportadas:

-S Habilitar saída de sincronização de linha para o c99 fase de pré-processador (ou seja,
#linha diretivas).

−D nome[=onda]
Definir nome para onda ou para nulo se =onda é omitido.

−U nome Indefinido nome.

OPERANDOS


O seguinte operando deve ser suportado:

lima O nome do caminho de um arquivo de texto a ser processado. Se não lima é dado, ou se é '-',
a entrada padrão deve ser lida.

STDIN


A entrada padrão deve ser um arquivo de texto que é usado se não lima operando é fornecido, ou se
is '-'.

INPUT ARQUIVOS


O arquivo de entrada nomeado pelo lima operando deve ser um arquivo de texto.

MEIO AMBIENTE VARIÁVEIS


As seguintes variáveis ​​de ambiente devem afetar a execução de m4:

GRANDE Forneça um valor padrão para as variáveis ​​de internacionalização que não estão definidas ou
nulo. (Veja o volume de Definições de Base de POSIX.1‐2008, Seção 8.2,
Internacionalização Variáveis pela precedência de internacionalização
variáveis ​​usadas para determinar os valores das categorias de local.)

LC_ALL Se definido como um valor de string não vazio, substitui os valores de todos os outros
variáveis ​​de internacionalização.

LC_CTYPE Determine o local para a interpretação de sequências de bytes de dados de texto
como caracteres (por exemplo, caracteres de byte único em oposição a caracteres de bytes múltiplos em
argumentos e arquivos de entrada).

LC_MESSAGES
Determine a localidade que deve ser usada para afetar o formato e o conteúdo do
mensagens de diagnóstico gravadas no erro padrão.

NLSPAT Determine a localização dos catálogos de mensagens para o processamento de LC_MESSAGES.

ASSÍNCRONO EVENTOS


Padrão.

STDOUT


A saída padrão deve ser a mesma dos arquivos de entrada, após ser processada para macro
expansão.

STDERR


O erro padrão deve ser usado para exibir strings com o impressão de erro macro, rastreamento de macro
habilitado pelo rastreamento macro, o texto definido para macros escritas pelo despejo macro, ou
para mensagens de diagnóstico.

SAÍDA ARQUIVOS


Nenhum.

ESTENDIDO DESCRIÇÃO


A m4 utilitário deve comparar cada token da entrada contra o conjunto de embutidos e
macros definidas pelo usuário. Se o token corresponder ao nome de uma macro, então o token deve ser
substituído pelo texto de definição da macro, se houver, e verificado novamente para nomes de macro correspondentes.
Uma vez que nenhuma parte do token corresponda ao nome de uma macro, ele deve ser escrito para o padrão
saída. As macros podem ter argumentos, caso em que os argumentos devem ser substituídos em
o texto de definição antes de ser digitalizado novamente.

As chamadas de macro têm o formato:

nome(argumento1, argumento2, ..., argn)

Os nomes das macros devem consistir em letras, dígitos e sublinhados, onde o primeiro caractere
não é um dígito. Os tokens que não tenham este formato não serão tratados como macros.

A aplicação deve garantir que o segue imediatamente o nome de
a macro. Se um token correspondente ao nome de uma macro não for seguido por um
parênteses>, é tratado como um uso dessa macro sem argumentos.

Se um nome de macro é seguido por um , seus argumentos são os
- tokens separados entre os e a correspondência
parênteses>. Os caracteres de espaço em branco não citados que precedem cada argumento devem ser ignorados.
Todos os outros caracteres, incluindo caracteres de espaço em branco à direita, são retidos.
caracteres colocados entre e personagens não
delimitar argumentos.

Os argumentos são definidos posicionalmente e referenciados. A corda "$ 1" no texto de definição
deve ser substituído pelo primeiro argumento. Os sistemas devem suportar pelo menos nove argumentos;
apenas os primeiros nove podem ser referenciados, usando as strings "$ 1" para "$ 9", inclusive. o
corda "$ 0" é substituído pelo nome da macro. A corda "$ #" é substituído pelo
número de argumentos como uma string. A corda "$ *" é substituído por uma lista de todos os
argumentos, separados por personagens. A corda "$ @" é substituído por uma lista de todos
dos argumentos separados por caracteres, e cada argumento é citado usando o
correntes de caracteres de citação esquerda e direita. A corda "$ {" produz comportamento não especificado.

Se menos argumentos forem fornecidos do que na definição da macro, os argumentos omitidos
são considerados nulos. Não é um erro se mais argumentos forem fornecidos do que no
definição de macro.

Nenhum significado especial é dado a quaisquer caracteres entre a correspondência esquerda e direita
citando cadeias de caracteres, mas as próprias cadeias de caracteres são descartadas. Por padrão, a esquerda
a string de aspas consiste em um acento grave (crase) e a string de aspas certa
consiste em um acento agudo (aspas simples); veja também o mudar aspas macro.

Os comentários são gravados, mas não verificados em busca de nomes de macro correspondentes; por padrão, o começo
string de comentário consiste no caractere e a string de comentário final consiste
de um . Veja também o mudançacom e dnl macros.

A m4 utilitário deve disponibilizar as seguintes macros embutidas. Eles podem ser redefinidos,
mas, uma vez que isso seja feito, o significado original é perdido. Seus valores devem ser nulos, a menos que
indicado de outra forma. Nas descrições abaixo, o termo definição texto refere-se ao valor de
a macro: o segundo argumento para o definir macro, entre outras coisas. Exceto para o
primeiro argumento para o avaliação macro, todos os argumentos numéricos para macros embutidas devem ser
interpretados como valores decimais. Os valores da string produzidos como o texto de definição do
diminuir, divnum, aumento, índice, len e sistema macros embutidas devem estar na forma de um
constante decimal conforme definido na linguagem C.

mudançacom A mudançacom macro deve definir as strings de comentário inicial e final. Com nenhum
argumentos, o mecanismo de comentário deve ser desabilitado. Com um único não nulo
argumento, esse argumento se tornará o comentário inicial e o deve
tornar-se a string de comentário final. Com dois argumentos não nulos, o primeiro argumento
deve se tornar a string de comentário inicial e o segundo argumento deve se tornar o
string de comentário final. O comportamento não é especificado se algum dos argumentos for fornecido
mas nulo. Os sistemas devem suportar cadeias de comentários de pelo menos cinco caracteres.

mudar aspas
A mudar aspas macro deve definir as strings de aspas iniciais e finais. Com nenhum
argumentos, as strings de aspas devem ser definidas para os valores padrão (ou seja, `').
O comportamento não é especificado se houver um único argumento ou se qualquer argumento for
nulo. Com dois argumentos não nulos, o primeiro argumento deve se tornar o
string de aspas e o segundo argumento devem se tornar a string de aspas finais. Sistemas
deve suportar strings de aspas de pelo menos cinco caracteres.

diminuir O texto de definição do diminuir macro deve ser seu primeiro argumento diminuído por
1. Deve ser um erro especificar um argumento contendo qualquer valor não numérico
personagens. O comportamento não é especificado se diminuir não é seguido imediatamente por
uma .

definir O segundo argumento deve se tornar o texto de definição da macro cujo nome é
o primeiro argumento. Não é especificado se o definir macro exclui todos os anteriores
definições da macro nomeada por seu primeiro argumento ou preserva tudo, exceto o
definição atual da macro. O comportamento não é especificado se definir não é
imediatamente seguido por um .

definir O texto de definição do definir macro deve ser a definição entre aspas (usando o
correntes citando strings) de seus argumentos. O comportamento não é especificado se definir
não é seguido imediatamente por um .

desviar A m4 utilitário mantém nove buffers temporários, numerados de 1 a 9, inclusive.
Quando a última entrada foi processada, qualquer saída que foi colocada
nesses buffers devem ser gravados na saída padrão em ordem numérica do buffer.
A desviar macro deve desviar a saída futura para o buffer especificado por seu
argumento. Especificar nenhum argumento ou um argumento de 0 deve retomar o normal
processo de saída. A saída desviada para um fluxo com um número negativo deve ser
descartado. O comportamento é definido pela implementação se um número de stream maior que 9
é especificado. Deve ser um erro especificar um argumento contendo qualquer
caracteres numéricos.

divnum O texto de definição do divnum macro deve ser o número da saída atual
stream como uma string.

dnl A dnl macro deve causar m4 para descartar todos os caracteres de entrada até e incluindo
nas próximas .

despejo A despejo macro deve escrever o texto definido para o erro padrão para cada um dos
macros especificadas como argumentos, ou, se nenhum argumento for especificado, para todos
macros.

impressão de erro A impressão de erro macro deve escrever seus argumentos para o erro padrão. O comportamento é
não especificado se impressão de erro não é seguido imediatamente por um .

avaliação A avaliação macro deve avaliar seu primeiro argumento como uma expressão aritmética,
usando aritmética de número inteiro com sinal com precisão de pelo menos 32 bits. Pelo menos o
os seguintes operadores de linguagem C devem ser suportados, com precedência,
associatividade e comportamento, conforme descrito em Seção 1.1.2.1, Aritmética
Precisão e Operações:

()
unário +
unário -
~

!
binário *
/
%
binário +
binário -
<<
>>
<
<=
>
>=
==
!=
binário &
^
|
&&
||

Os sistemas devem suportar números octais e hexadecimais como no padrão ISO C.
O segundo argumento, se especificado, deve definir a raiz do resultado; se o
o argumento está em branco ou não especificado, o padrão é 10. O comportamento não é especificado se
a raiz está fora do intervalo de 2 a 36, ​​inclusive. O terceiro argumento, se
especificado, define o número mínimo de dígitos no resultado. Comportamento é
não especificado se o terceiro argumento for menor que zero. Será um erro para
especifique o segundo ou terceiro argumento contendo quaisquer caracteres não numéricos. o
comportamento não é especificado se avaliação não é seguido imediatamente por um
parênteses>.

ifdef Se o primeiro argumento para o ifdef macro é definido, o texto de definição deve ser
o segundo argumento. Caso contrário, o texto de definição deve ser o terceiro argumento,
se especificado, ou a string nula, se não. O comportamento não é especificado se ifdef
não é seguido imediatamente por um .

outro A outro macro leva três ou mais argumentos. Se os dois primeiros argumentos
comparar como strings iguais (após a expansão macro de ambos os argumentos), a definição
o texto será o terceiro argumento. Se os dois primeiros argumentos não forem comparados com
strings iguais e há três argumentos, o texto de definição deve ser nulo. Se
os primeiros dois argumentos não se comparam como strings iguais e existem quatro ou
cinco argumentos, o texto de definição será o quarto argumento. Se os dois primeiros
argumentos não são comparados como strings iguais e há seis ou mais argumentos,
os três primeiros argumentos devem ser descartados e o processamento deve reiniciar com
os argumentos restantes. O comportamento não é especificado se outro não é
imediatamente seguido por um .

incluir O texto de definição para o incluir macro deve ser o conteúdo do arquivo nomeado
pelo primeiro argumento. Haverá um erro se o arquivo não puder ser lido. o
comportamento não é especificado se incluir não é seguido imediatamente por um
parênteses>.

aumento O texto de definição do aumento macro deve ser seu primeiro argumento incrementado por
1. Deve ser um erro especificar um argumento contendo qualquer valor não numérico
personagens. O comportamento não é especificado se aumento não é seguido imediatamente por
uma .

índice O texto de definição do índice macro deve ser a posição do primeiro caractere (como um
string) no primeiro argumento, onde começa uma string correspondente ao segundo argumento
(origem zero), ou -1 se o segundo argumento não ocorrer. O comportamento é
não especificado se índice não é seguido imediatamente por um .

len O texto de definição do len macro deve ser o comprimento (como uma string) do
primeiro argumento. O comportamento não é especificado se len não é seguido imediatamente
por um .

saída m4 Saia do m4 Utilitário. Se o primeiro argumento for especificado, é a saída
código. O padrão é zero. Deve ser um erro especificar um argumento
contendo quaisquer caracteres não numéricos.

m4 wrap O primeiro argumento deve ser processado quando EOF é alcançado. Se o m4 wrap macro
é usado várias vezes, os argumentos especificados devem ser processados ​​no pedido
em que o m4 wrap macros foram processadas. O comportamento não é especificado se m4 wrap
não é seguido imediatamente por um .

fazer tempo O texto de definição deve ser o primeiro argumento, com qualquer 'X' caracteres
substituído pelo ID do processo atual como uma string. O comportamento não é especificado
if fazer tempo não é seguido imediatamente por um .

mkstemp O primeiro argumento deve ser tomado como um modelo para a criação de um arquivo vazio, com
à direita 'X' caracteres substituídos por caracteres do nome do arquivo portátil
conjunto de caracteres. O comportamento não é especificado se o primeiro argumento não terminar em
pelo menos seis 'X' personagens. Se um arquivo temporário for criado com sucesso, então
o texto de definição da macro deve ser o nome do novo arquivo. O ID do usuário
do arquivo deve ser definido como o ID de usuário efetivo do processo. O ID do grupo
do arquivo deve ser definido para o ID de grupo do diretório pai do arquivo ou para
o ID de grupo efetivo do processo. Os bits de permissão de acesso ao arquivo são definidos
de modo que apenas o proprietário pode ler e gravar o arquivo, independentemente do
atual umask do processo. Se um arquivo não pôde ser criado, o texto de definição
da macro deve ser a string vazia. O comportamento não é especificado se mkstemp
não é seguido imediatamente por um .

popdef A popdef macro deve excluir a definição atual de seus argumentos, substituindo
essa definição com a anterior. Se não houver definição anterior, o
macro é indefinida. O comportamento não é especificado se popdef não é imediatamente
seguido por um .

pushdef A pushdef macro deve ser equivalente ao definir macro com a exceção
que deve preservar qualquer definição atual para recuperação futura usando o
popdef macro. O comportamento não é especificado se pushdef não é seguido imediatamente
por um .

mudança O texto de definição para o mudança macro deve ser uma lista separada por vírgulas de seus
argumentos exceto o primeiro. Cada argumento deve ser citado usando o atual
citando strings. O comportamento não é especificado se mudança não é imediatamente
seguido por um .

incluir A incluir macro deve ser equivalente ao incluir macro, exceto que
não deve ser um erro se o arquivo estiver inacessível. O comportamento não é especificado
if incluir não é seguido imediatamente por um .

substr O texto de definição para o substr macro deve ser a substring do primeiro
argumento começando na posição do caractere de deslocamento zero especificada pelo segundo
argumento. O terceiro argumento, se especificado, deve ser o número de caracteres para
selecione; se não for especificado, os caracteres do ponto inicial ao final de
o primeiro argumento passa a ser o texto de definição. Não será um erro para
especificar um ponto de partida além do final do primeiro argumento e da definição
o texto deve ser nulo. Deve ser um erro especificar um argumento contendo qualquer
caracteres não numéricos. O comportamento não é especificado se substr não é
imediatamente seguido por um .

syscmd A syscmd macro deve interpretar seu primeiro argumento como uma linha de comando shell. o
a definição do texto deve ser o resultado da string desse comando. O resultado da string
não deve ser verificado novamente para macros durante a configuração do texto de definição. Sem saída
o redirecionamento deve ser realizado pelo m4 Utilitário. O valor do status de saída do
comando pode ser recuperado usando o sistema macro. O comportamento não é especificado se
syscmd não é seguido imediatamente por um .

sistema O texto de definição do sistema macro deve ser o valor de saída do utilitário
última invocado pelo syscmd macro (como uma string).

rastreamento A rastreamento macro deve permitir o rastreamento para as macros especificadas como argumentos,
ou, se nenhum argumento for especificado, para todas as macros. A saída do rastreamento deve ser
gravado com o erro padrão em um formato não especificado.

rastreio A rastreio macro deve desativar o rastreamento para as macros especificadas como argumentos,
ou, se nenhum argumento for especificado, para todas as macros.

translit O texto de definição do translit macro deve ser o primeiro argumento com cada
caractere que ocorre no segundo argumento substituído pelo correspondente
personagem do terceiro argumento. Se nenhum caractere de substituição for especificado para
algum personagem de origem porque o segundo argumento é mais longo que o terceiro
argumento, esse caractere deve ser excluído do primeiro argumento em translit's
definição de texto. O comportamento não é especificado se o '-' personagem aparece dentro
o segundo ou terceiro argumento em qualquer lugar além do primeiro ou último caractere. o
comportamento não é especificado se o mesmo caractere aparecer mais de uma vez no
segundo argumento. O comportamento não é especificado se translit não é imediatamente
seguido por um .

indefinir A indefinir macro deve excluir todas as definições (incluindo aquelas preservadas usando
que o pushdef macro) das macros nomeadas por seus argumentos. O comportamento é
não especificado se indefinir não é seguido imediatamente por um .

desviar A desviar macro deve causar saída imediata de qualquer texto em buffers temporários
nomeados como argumentos ou todos os buffers temporários se nenhum argumento for especificado.
Os buffers podem ser desviados para outros buffers temporários. Undiverting deve
descartar o conteúdo do buffer temporário. O comportamento não é especificado se um
argumento contém quaisquer caracteres não numéricos.

SAIR STATUS


Os seguintes valores de saída devem ser retornados:

0 Conclusão bem-sucedida.

> 0 Ocorreu um erro

Se o saída m4 macro for usada, o valor de saída pode ser especificado pelo arquivo de entrada.

CONSEQUÊNCIAS OF ERROS


Padrão.

A seguinte seções e guarante que os mesmos estão informativo.

APLICAÇÃO USO


A definir macro é útil para renomear macros, especialmente incorporadas.

Como avaliação segue o padrão ISO C, algumas operações têm comportamento indefinido. Em alguns
implementações, divisão ou resto por zero causam um sinal fatal, mesmo se a divisão
ocorre no ramal em curto-circuito de "&&" or "||". Qualquer operação que transborde em
aritmética assinada produz comportamento indefinido. Da mesma forma, usando o mudança operadores com um
quantidade de deslocamento que não é positiva e menor do que a precisão é indefinida, como é
deslocando um número negativo para a direita. Historicamente, nem todas as implementações obedeciam C-
regras de precedência de idioma: '~' e '!' foram inferiores '=='; '==' e '! =' não eram inferiores
do que '<'; e '|' não era menor do que '^'; o uso liberal de "()" pode forçar o desejado
precedência mesmo com essas implementações não compatíveis. Além disso, alguns tradicionais
implementações tratadas '^' como um operador de exponenciação, embora a maioria das implementações
agora usa "**" como uma extensão para este fim.

Quando uma macro foi multiplamente definida por meio do pushdef macro, não é especificado se
que o definir macro irá alterar apenas a definição mais recente (como se por popdef e
pushdef), ou substitua toda a pilha de definições por uma única definição (como se
by indefinir e pushdef) Um aplicativo que deseja um comportamento específico para o definir
macro, neste caso, pode redefini-lo em conformidade.

Os aplicativos devem usar o mkstemp macro em vez do obsoleto fazer tempo macro para
criando arquivos temporários.

EXEMPLOS


Se o arquivo m4src contém as linhas:

A valor of `VER ' is "VER".
ifdef (`VER ', `` VER '' is definido para be VER., VER is não definiram.)
ifelse (VER, 1, `` VER '' is `VER '.)
ifelse (VER, 2, `` VER '' is `VER '., `` VER '' is não 2).
final

então o comando

m4 m4src

ou o comando:

m4 −U VER m4src

produz a saída:

A valor of VER is "VER".
VER is não definiram.

VER não é 2.
final

O comando:

m4 −D VER m4src

produz a saída:

A valor of VER is "".
VER is definido para be .

VER não é 2.
final

O comando:

m4 −D VER = 1 m4src

produz a saída:

A valor of VER is "1/XNUMX/XNUMX".
VER is definido para be 1.
VER is 1.
VER is não 2.
final

O comando:

m4 −D VER = 2 m4src

produz a saída:

A valor of VER is "2/XNUMX/XNUMX".
VER is definido para be 2.

VER é 2.
final

JUSTIFICATIVA


Comportamento histórico baseado em System V tratado "$ {" em uma definição macro como dois literais
personagens. No entanto, esta sequência não é especificada para que as implementações possam oferecer
extensões como "$ {11}" significando o décimo primeiro parâmetro posicional. As macros ainda podem ser
definido com usos apropriados de citações aninhadas para resultar em um literal "$ {" na saída
após a nova varredura remove as aspas aninhadas.

No translit comportamento baseado em System V histórico embutido tratado '-' como um literal; GNU
o comportamento o trata como um intervalo. Esta versão do padrão permite qualquer comportamento.

FUTURO INSTRUÇÕES


Nenhum.

Use m4posix online usando serviços onworks.net


Servidores e estações de trabalho gratuitos

Baixar aplicativos Windows e Linux

  • 1
    Phaser
    Phaser
    Phaser é um aplicativo rápido, gratuito e divertido
    framework de jogo HTML5 de origem que oferece
    Renderização WebGL e Canvas em
    navegadores da web para desktop e celular. Jogos
    pode ser co ...
    Baixar Phaser
  • 2
    Motor VASSAL
    Motor VASSAL
    VASSAL é um motor de jogo para criar
    versões eletrônicas do tabuleiro tradicional
    e jogos de cartas. Ele fornece suporte para
    renderização e interação de peças do jogo,
    e ...
    Baixar VASSAL Engine
  • 3
    OpenPDF - Fork do iText
    OpenPDF - Fork do iText
    OpenPDF é uma biblioteca Java para criar
    e edição de arquivos PDF com LGPL e
    Licença de código aberto MPL. OpenPDF é o
    LGPL/MPL sucessor de código aberto do iText,
    um ...
    Baixar OpenPDF - Bifurcação do iText
  • 4
    SAGA GIS
    SAGA GIS
    SAGA - Sistema para Automatizado
    Análises geocientíficas - é um geográfico
    Software de Sistema de Informação (GIS) com
    imensas capacidades para geodados
    processando e ana ...
    Baixar SAGA GIS
  • 5
    Caixa de ferramentas para Java / JTOpen
    Caixa de ferramentas para Java / JTOpen
    O IBM Toolbox for Java / JTOpen é um
    biblioteca de classes Java suportando o
    programação cliente/servidor e internet
    modelos para um sistema rodando OS/400,
    i5/OS, ou...
    Baixar Toolbox para Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (ou D3 para documentos baseados em dados)
    é uma biblioteca JavaScript que permite
    para produzir dados dinâmicos e interativos
    visualizações em navegadores da web. Com D3
    você...
    Baixar D3.js
  • Mais "

Comandos Linux

  • 1
    Abidiff
    Abidiff
    abidiff - comparar ABIs de arquivos ELF
    abidiff compara o aplicativo binário
    Interfaces (ABI) de duas bibliotecas compartilhadas
    em formato ELF. Ele emite um significativo
    relatorio ...
    Executar abidiff
  • 2
    abidw
    abidw
    abidw - serializar o ABI de um ELF
    arquivo abidw lê uma biblioteca compartilhada em ELF
    formato e emite uma representação XML
    de seu ABI para a saída padrão. O
    emitido ...
    Execute abidw
  • 3
    copac2xml
    copac2xml
    bibutils - conversão de bibliografia
    Serviços de utilidade pública ...
    Execute copac2xml
  • 4
    copta
    copta
    copt - otimizador de olho mágico SYSNOPIS:
    copt.. DESCRIÇÃO: copt é um
    otimizador de olho mágico de uso geral. Isto
    lê o código de sua entrada padrão e
    escreve um...
    Executar copia
  • 5
    collect_stx_titles
    collect_stx_titles
    collect_stx_titles - reunir título
    declarações de documentos Stx ...
    Executar collect_stx_titles
  • 6
    banco giratório
    banco giratório
    bancada - benchmark http ...
    Executar gatling-bench
  • Mais "

Ad