InglêsFrancêsEspanhol

Ad


favicon do OnWorks

cpphs - Online na nuvem

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

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


cpphs - pré-processador liberalizado tipo cpp-a para Haskell

SINOPSE


cpphs [NOME DO ARQUIVO|OPÇÃO] ...

DESCRIÇÃO


cpphs é uma reimplementação liberalizada de cpp (1) o pré-processador C, em e para
Haskel.

Por que reimplementar o cpp? Certo ou errado, o pré-processador C é amplamente usado em Haskell
Código fonte. Ele permite a compilação condicional para diferentes compiladores, diferentes
versões do mesmo compilador e diferentes plataformas de sistema operacional. Também é usado ocasionalmente
por sua linguagem macro, que pode permitir certas formas de detalhes específicos da plataforma
preenchimento, como a tediosa geração de clichês de definições de instância e FFI
declarações. No entanto, existem dois problemas com cpp, além da estética óbvia
uns:

Para alguns sistemas Haskell, notavelmente Hugs no Windows, um verdadeiro cpp não está disponível por
padrão.

Mesmo para os outros sistemas Haskell, o cpp comum fornecido pela série gcc 3.x
está mudando sutilmente de maneiras incompatíveis com a sintaxe de Haskell. Há
sempre houve problemas com, por exemplo, lacunas de string e caracteres principais em
identificadores. Esses problemas só vão piorar.

Portanto, parecia certo tentar fornecer uma alternativa ao cpp, ambos mais compatíveis com
Haskell, e ele próprio escrito em Haskell para que possa ser distribuído com compiladores.

cpphs tem quase todos os recursos e é compatível com o -tradicional estilo de cpp.
Possui dois modos:

compilação condicional apenas (--nomacro),

e macro-expansão completa (padrão).

In --nomacro Modo, cpphs executa apenas ações de compilação condicional, ou seja, #includeé,
#E se'areia #ifdefsão processados ​​de acordo com as definições de substituição de texto (ambos os comandos
linha e interna), mas nenhuma expansão macro parametrizada é executada. Na íntegra
modo de compatibilidade (o padrão), substituições textuais e expansões de macro também são
processado no corpo restante do texto não cpp.

Características de trabalho:

#ifdef compilação condicional simples

#E se a linguagem booleana completa de defined (), &&, ||, ==, etc.

#elif condicionais encadeados

#define
definições in-line (substituições de texto e macros)

#undef revogação em linha de definições

#include
inclusão de arquivo

#linha diretivas de número de linha

\n continuações de linha dentro de todas as # diretivas

/ ** / catenação de token dentro de uma definição de macro

## Catenação de token de estilo ANSI

# Sequenciação de tokens estilo ANSI

__ARQUIVO__
substituição de texto especial para mensagens de erro DIY

__LINHA__
substituição de texto especial para mensagens de erro DIY

__ENCONTRO__
substituição de texto especial

__TEMPO__
substituição de texto especial

A expansão macro é recursiva. A redefinição de um nome de macro não gera um aviso.
As macros podem ser definidas na linha de comando com -D assim como substituições textuais. Macro
nomes são permitidos como identificadores Haskell, por exemplo, com o primo `e crase ´
caracteres, que é um pouco mais flexível do que em C, mas eles ainda podem não incluir operador
símbolos.

A numeração de linhas na saída é preservada para que qualquer processador posterior possa fornecer
mensagens de erro significativas. Quando um arquivo é #include'd, cpphs inserções #linha diretivas para
pelo mesmo motivo. A numeração deve ser correta mesmo na presença de continuações de linha.
Se você não quiser #linha diretivas na saída final, use o --nenhuma linha opção.

Qualquer erro de sintaxe nas diretivas cpp envia uma mensagem para stderr e interrompe o programa.
A falha em encontrar um arquivo #incluído produz um aviso para stderr, mas o processamento continua.

Você pode fornecer qualquer número de nomes de arquivo na linha de comando. Os resultados são catenados em
saída padrão.

-Dsym definir uma substituição textual (o valor padrão é 1)

-Dsym =onda
definir uma substituição textual com um valor específico

-Icaminho adicione um diretório ao caminho de pesquisa para # include's

-Olima especifique um arquivo para saída (o padrão é stdout)

--nomacro
apenas processe # ifdef's e # include's,
não expanda macros

--nenhuma linha
remova # line droppings da saída

--faixa
converter comentários de estilo C em espaços em branco, mesmo fora
diretivas cpp

--hash
reconhecer o operador ANSI # stringise e ## para
catenação de token, dentro de macros

--texto trate a entrada como texto simples, não como código Haskell

- layout
preservar novas linhas dentro de expansões macro

--apagado
remover comentários de estilo literário

--versão
relatar o número da versão de cpphs e parar

NÃO há substituições textuais definidas por padrão. (Cpp normal geralmente tem definições
para máquina, sistema operacional, etc. Eles podem ser facilmente adicionados ao código-fonte cpphs, se desejar.)
O caminho de pesquisa é pesquisado na ordem do -I opções, exceto que o diretório do
arquivo de chamada e, em seguida, o diretório atual, são sempre pesquisados ​​primeiro. Novamente, não há
caminho de pesquisa padrão (e novamente, isso pode ser facilmente alterado).

DIFERENÇAS A PARTIR DE CPP


Em geral, cpphs é baseado no -tradicional comportamento, não ANSI C, e tem o
seguindo as principais diferenças do cpp padrão.

Geral

A # que introduz qualquer diretiva cpp deve estar na primeira coluna de uma linha (enquanto
ANSI permite espaços em branco antes do # ).

Gera o #linha n "nome do arquivo"sintaxe, não a # n "nome do arquivo"variante.

Os comentários C são removidos apenas das diretivas cpp. Eles não são retirados de outros
texto. Considere, por exemplo, que em Haskell, todos os seguintes são operadores válidos
símbolos: /* */ * / * No entanto, você pode ativar a remoção do comentário C com o --faixa opção.

Macro língua

Aceita / ** / para colagem de token em uma definição de macro. Contudo, /* */ (com qualquer texto
entre o comentário de abrir / fechar) insere um espaço em branco.

O ANSI ## operador token-pasteing está disponível com o --hash bandeira. Isso é para evitar
interpretar mal qualquer operador Haskell válido com o mesmo nome.

Substitui um parâmetro formal da macro pelo real, mesmo dentro de uma string (dupla ou simples
citado). Este é um comportamento tradicional, sem suporte em ANSI.

Reconhece o # operador de stringização em uma definição de macro apenas se você usar o --hash
opção. (É uma adição ANSI, apenas necessária porque a stringização entre aspas (acima) é
proibido pela ANSI.)

Preserva o espaço em branco em uma definição de substituição textual exatamente (módulo de novas linhas),
mas o espaço à esquerda e à direita é eliminado.

Preserva o espaço em branco dentro de uma definição de macro (e a seguir) exatamente (módulo
newlines), mas o espaço inicial é eliminado.

Preserva o espaço em branco exatamente nos argumentos de chamada de macro (incluindo novas linhas), mas à esquerda
e o espaço à direita é eliminado.

Com o - layout opção, continuações de linha em uma substituição textual ou definição de macro
são preservados como quebras de linha na chamada da macro. (Útil para código sensível a layout em
Haskel.)

Use cpphs online usando serviços onworks.net


Servidores e estações de trabalho gratuitos

Baixar aplicativos Windows e Linux

  • 1
    facetracknoir
    facetracknoir
    Programa de headtracking modular que
    suporta vários rastreadores de rosto, filtros
    e protocolos de jogo. Entre os rastreadores
    são o SM FaceAPI, AIC Inertial Head
    Rastreador ...
    Baixar facetracknoir
  • 2
    Código QR PHP
    Código QR PHP
    PHP QR Code é de código aberto (LGPL)
    biblioteca para gerar QR Code,
    Código de barras bidimensional. Baseado em
    Biblioteca C libqrencode, fornece API para
    criando código QR barc ...
    Baixe o código QR do PHP
  • 3
    freeciv
    freeciv
    Freeciv é um jogo gratuito baseado em turnos
    jogo de estratégia multijogador, em que cada
    jogador se torna o líder de um
    civilização, lutando para obter o
    objetivo final: ser ...
    Baixar Freeciv
  • 4
    Cuco Sandbox
    Cuco Sandbox
    Cuckoo Sandbox usa componentes para
    monitorar o comportamento do malware em um
    Ambiente sandbox; isolado do
    restante do sistema. Oferece automação
    análise o ...
    Baixar Cuckoo Sandbox
  • 5
    LMS-YouTube
    LMS-YouTube
    Reproduzir vídeo do YouTube em LMS (portagem de
    Triode's to YouTbe API v3) Este é
    um aplicativo que também pode ser obtido
    da
    https://sourceforge.net/projects/lms-y...
    Baixar LMS-YouTube
  • 6
    Windows Presentation Foundation
    Windows Presentation Foundation
    Windows Presentation Foundation (WPF)
    é uma estrutura de interface do usuário para a construção do Windows
    aplicativos de desktop. WPF suporta um
    amplo conjunto de desenvolvimento de aplicativos
    recursos...
    Baixe o Windows Presentation Foundation
  • Mais "

Comandos Linux

Ad