AnglaisFrançaisEspagnol

Ad


Icône de favori OnWorks

cpphs - En ligne dans le Cloud

Exécutez cpphs dans le fournisseur d'hébergement gratuit OnWorks sur Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

Il s'agit de la commande cpphs qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

PROGRAMME:

Nom


cpphs - préprocesseur cpp-a-like libéralisé pour Haskell

SYNOPSIS


cpph [NOM DE FICHIER|OPTION] ...

DESCRIPTION


cpph est une re-mise en œuvre libéralisée de cpp (1), le préprocesseur C, dans et pour
Haskel.

Pourquoi ré-implémenter cpp ? A tort ou à raison, le préprocesseur C est largement utilisé en Haskell
code source. Il permet la compilation conditionnelle pour différents compilateurs, différents
versions du même compilateur et différentes plates-formes de système d'exploitation. Il est aussi occasionnellement utilisé
pour son langage macro, qui peut permettre certaines formes de détails spécifiques à la plate-forme-
le remplissage, comme la génération fastidieuse de définitions d'instances et de FFI
déclarations. Cependant, il y a deux problèmes avec cpp, mis à part l'esthétique évidente
les uns:

Pour certains systèmes Haskell, notamment Hugs sous Windows, un véritable cpp n'est pas disponible par
défaut.

Même pour les autres systèmes Haskell, le cpp commun fourni par la série gcc 3.x
change subtilement d'une manière incompatible avec la syntaxe de Haskell. Il y a
toujours eu des problèmes avec, par exemple, les espaces entre les chaînes et les caractères premiers dans
identifiants. Ces problèmes ne feront qu'empirer.

Il nous a donc semblé juste de tenter de proposer une alternative au cpp, à la fois plus compatible avec
Haskell, et lui-même écrit en Haskell afin qu'il puisse être distribué avec des compilateurs.

cpph est à peu près complet en fonctionnalités et compatible avec le -traditionnel style de cpp.
Il a deux modes :

compilation conditionnelle uniquement (--nomacro),

et extension complète des macros (par défaut).

In --nomacro Mode, cpph n'effectue que des actions de compilation conditionnelles, c'est-à-dire #comprendre« S,
#si'le sable #ifdefsont traités selon les définitions de remplacement de texte (à la fois les commandes
line et internal), mais aucune extension de macro paramétrée n'est effectuée. En entier
mode de compatibilité (par défaut), les remplacements textuels et les extensions de macro sont également
traité dans le reste du texte non-cpp.

Fonctionnalités de travail :

#ifdef compilation conditionnelle simple

#si le langage booléen complet de define(), &&, ||, ==, etc.

#elif conditionnels enchaînés

#define
définitions en ligne (remplacements de texte et macros)

#undef révocation en ligne des définitions

#comprendre
inclusion de fichiers

#ligne directives de numéro de ligne

\n continuations de ligne dans toutes les # directives

/ ** / caténation de jetons dans une définition de macro

## Caténation de jetons de style ANSI

# Stringisation de jetons de style ANSI

__DÉPOSER__
remplacement de texte spécial pour les messages d'erreur DIY

__LIGNE__
remplacement de texte spécial pour les messages d'erreur DIY

__DATE__
remplacement de texte spécial

__TEMPS__
remplacement de texte spécial

L'expansion des macros est récursive. La redéfinition d'un nom de macro ne génère pas d'avertissement.
Les macros peuvent être définies sur la ligne de commande avec -D tout comme les remplacements textuels. Macro
les noms sont autorisés à être des identifiants Haskell, par exemple avec le premier ` et le backtick ´
caractères, ce qui est légèrement plus lâche qu'en C, mais ils peuvent toujours ne pas inclure l'opérateur
symboles

La numérotation des lignes dans la sortie est préservée afin que tout processeur ultérieur puisse donner
messages d'erreur significatifs. Lorsqu'un fichier est #comprendre'ré, cpph inserts #ligne directives pour
la même raison. La numérotation doit être correcte même en présence de continuations de ligne.
Si tu ne veux pas #ligne directives dans la sortie finale, utilisez le --pas de ligne option.

Toute erreur de syntaxe dans les directives cpp envoie un message à stderr et arrête le programme.
L'impossibilité de trouver un fichier #include génère un avertissement sur stderr, mais le traitement se poursuit.

Vous pouvez donner n'importe quel nombre de noms de fichiers sur la ligne de commande. Les résultats sont catégorisés sur
sortie standard.

-Dsym définir un remplacement textuel (la valeur par défaut est 1)

-Dsym=vague
définir un remplacement textuel avec une valeur spécifique

-Ichemin ajouter un répertoire au chemin de recherche de #include

-Ofilet spécifier un fichier pour la sortie (la valeur par défaut est stdout)

--nomacro
ne traiter que les #ifdef et les #include,
ne pas développer les macros

--pas de ligne
supprimer les excréments de #ligne de la sortie

--déshabiller
convertir les commentaires de style C en espaces, même à l'extérieur
directives cpp

--hachages
reconnaître l'opérateur ANSI # stringise, et ## pour
caténation de jetons, dans les macros

--texte traiter l'entrée comme du texte brut, pas du code Haskell

--disposition
préserver les sauts de ligne dans les extensions de macro

--non éclairé
supprimer les commentaires de style lettré

--version
rapporter le numéro de version de cpphs et arrêter

Il n'y a AUCUN remplacement textuel défini par défaut. (Le cpp normal a généralement des définitions
pour la machine, le système d'exploitation, etc. Ceux-ci pourraient facilement être ajoutés au code source de cpphs si vous le souhaitez.)
Le chemin de recherche est recherché dans l'ordre du -I options, sauf que le répertoire du
le fichier appelant, puis le répertoire courant, sont toujours recherchés en premier. Encore une fois, il n'y a pas
chemin de recherche par défaut (et encore une fois, cela pourrait facilement être modifié).

DIFFÉRENCES De RPC


En général, cpphs est basé sur le -traditionnel comportement, pas ANSI C, et a le
suivant les principales différences par rapport au cpp standard.

Général

La # qui introduit une directive cpp doit être dans la première colonne d'une ligne (alors que
ANSI autorise les espaces avant le # ).

Génère le #ligne n "nom de fichier" syntaxe, pas la # n "nom de fichier" une variante.

Les commentaires C ne sont supprimés que dans les directives cpp. Ils ne sont pas dépouillés des autres
texte. Considérez par exemple qu'en Haskell, tous les éléments suivants sont des opérateurs valides
symboles: /* */ * / * Cependant, vous pouvez activer la suppression du commentaire C avec le --déshabiller option.

Macro langue

Accepte / ** / pour le collage de jetons dans une définition de macro. Cependant, /* */ (avec n'importe quel texte
entre le commentaire d'ouverture/fermeture) insère un espace.

L'ANSI ## l'opérateur de collage de jetons est disponible avec le --hachages drapeau. C'est pour éviter
mal interpréter tout opérateur Haskell valide du même nom.

Remplace un paramètre formel de macro par le réel, même à l'intérieur d'une chaîne (double ou simple
cité). Il s'agit d'un comportement traditionnel, non pris en charge dans ANSI.

Reconnaît le # opérateur de stringisation dans une définition de macro uniquement si vous utilisez le --hachages
option. (Il s'agit d'un ajout ANSI, uniquement nécessaire car la chaîne de caractères (ci-dessus) est
interdit par l'ANSI.)

Préserve exactement les espaces blancs dans une définition de remplacement textuel (nouvelles lignes modulo),
mais l'espace de début et de fin est éliminé.

Préserve les espaces blancs dans une définition de macro (et à sa fin) exactement (modulo
nouvelles lignes), mais l'espace de début est éliminé.

Préserve exactement les espaces blancs dans les arguments d'appel de macro (y compris les nouvelles lignes), mais en tête
et l'espace de fuite est éliminé.

Avec la --disposition option, continuations de ligne dans un remplacement textuel ou une définition de macro
sont conservés sous forme de sauts de ligne dans l'appel de macro. (Utile pour le code sensible à la mise en page dans
Haskel.)

Utiliser cpphs en ligne à l'aide des services onworks.net


Serveurs et postes de travail gratuits

Télécharger des applications Windows et Linux

  • 1
    facetracknoir
    facetracknoir
    Programme de headtracking modulaire qui
    prend en charge plusieurs suivis de visage, filtres
    et les protocoles de jeu. Parmi les traqueurs
    sont les SM FaceAPI, AIC Inertial Head
    Traqueur...
    Télécharger facetracknoir
  • 2
    Code QR PHP
    Code QR PHP
    Le code QR PHP est open source (LGPL)
    bibliothèque de génération de QR Code,
    code-barres en 2 dimensions. Basé sur
    bibliothèque libqrencode C, fournit une API pour
    création de QR Code barc...
    Télécharger le code QR PHP
  • 3
    freeciv
    freeciv
    Freeciv est un tour par tour gratuit
    jeu de stratégie multijoueur, dans lequel chacun
    joueur devient le leader d'un
    civilisation, luttant pour obtenir la
    objectif ultime : devenir...
    Télécharger Freeciv
  • 4
    Coucou Sandbox
    Coucou Sandbox
    Cuckoo Sandbox utilise des composants pour
    surveiller le comportement des logiciels malveillants dans un
    Environnement bac à sable ; isolé de la
    reste du système. Il offre automatisé
    analyse de...
    Télécharger Coucou Sandbox
  • 5
    LMS-YouTube
    LMS-YouTube
    Lire la vidéo YouTube sur LMS (portage de
    Triode's to YouTbe API v3) C'est
    une application qui peut aussi être récupérée
    de
    https://sourceforge.net/projects/lms-y...
    Télécharger LMS-YouTube
  • 6
    Windows Presentation Foundation
    Windows Presentation Foundation
    Fondation de présentation Windows (WPF)
    est un framework d'interface utilisateur pour la construction de Windows
    applications de bureau. WPF prend en charge un
    large ensemble de développement d'applications
    Caractéristiques...
    Télécharger Windows Présentation Foundation
  • Plus "

Commandes Linux

Ad