Angielskifrancuskihiszpański

Ad


Ulubiona usługa OnWorks

cpphs - Online w chmurze

Uruchom cpphs w bezpłatnym dostawcy hostingu OnWorks w systemie Ubuntu Online, Fedora Online, emulatorze online systemu Windows lub emulatorze online systemu MAC OS

Jest to polecenie cpphs, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS

PROGRAM:

IMIĘ


cpphs - zliberalizowany preprocesor podobny do cpp dla Haskell

STRESZCZENIE


cppph [NAZWA PLIKU|OPCJA] ...

OPIS


cppph jest zliberalizowanym ponownym wdrożeniem Cpp (1) preprocesor C, w i dla
Haskella.

Po co ponownie wdrażać cpp? Słusznie czy nie, preprocesor C jest szeroko stosowany w Haskell
kod źródłowy. Umożliwia kompilację warunkową dla różnych kompilatorów, różnych
wersje tego samego kompilatora i różne platformy systemu operacyjnego. Jest również sporadycznie używany
za język makr, który może umożliwiać pewne formy szczegółów specyficznych dla platformy-
wypełnianie, takie jak żmudne, szablonowe generowanie definicji instancji i FFI
deklaracje. Jednak z cpp są dwa problemy, poza oczywistą estetyką
te:

W przypadku niektórych systemów Haskella, w szczególności Hugs w systemie Windows, prawdziwy cpp nie jest dostępny przez
domyślna.

Nawet dla innych systemów Haskella, wspólny cpp dostarczany przez serię gcc 3.x
zmienia się subtelnie w sposób, który jest niezgodny ze składnią Haskella. Nie ma
zawsze były problemy z, na przykład, przerwami w ciągach znaków i znakami pierwszymi w
identyfikatory. Te problemy będą się tylko pogłębiać.

Wydawało się więc słuszne, aby spróbować zapewnić alternatywę dla cpp, obie bardziej zgodne z
Haskell i sam napisany w Haskell, aby mógł być rozpowszechniany z kompilatorami.

cppph jest prawie kompletny i kompatybilny z -tradycyjny styl cpp.
Posiada dwa tryby:

tylko kompilacja warunkowa (--nomakro),

i pełne makrorozwijanie (domyślne).

In --nomakro tryb, cppph wykonuje tylko warunkowe akcje kompilacji, tj. #zawierać's,
#Jeśli's, i #ifdefsą przetwarzane zgodnie z definicjami zastępowania tekstu (zarówno polecenie-
liniowe i wewnętrzne), ale nie jest wykonywane rozszerzenie sparametryzowanego makra. W pełni
tryb zgodności (domyślny), zamienniki tekstowe i rozszerzenia makr są również
przetwarzane w pozostałej części tekstu innego niż cpp.

Funkcje:

#ifdef prosta kompilacja warunkowa

#Jeśli pełny język boolowski funkcji define(), &&, ||, ==, itd.

#elif połączone warunkowe

#definiować
definicje w tekście (zamienniki tekstu i makra)

#niedef in-line cofanie definicji

#zawierać
włączenie pliku

#linia dyrektywy dotyczące numerów linii

\n kontynuacje linii we wszystkich # dyrektywach

/ ** / katenacja tokenów w ramach definicji makra

## Katenizacja tokenów w stylu ANSI

# Ciąg znaków w stylu ANSI

__PLIK__
specjalny zamiennik tekstu dla komunikatów o błędach DIY

__LINIA__
specjalny zamiennik tekstu dla komunikatów o błędach DIY

__DATA__
specjalna zamiana tekstu

__CZAS__
specjalna zamiana tekstu

Ekspansja makro jest rekurencyjna. Redefinicja nazwy makra nie generuje ostrzeżenia.
Makra można zdefiniować w wierszu poleceń za pomocą -D podobnie jak zamienniki tekstowe. Makro
nazwy mogą być identyfikatorami Haskella, np. z pierwszą ` i backtickiem ´
znaków, które są nieco luźniejsze niż w C, ale nadal mogą nie zawierać operatora
symbolika.

Numeracja wierszy na wyjściu jest zachowana, aby każdy późniejszy procesor mógł podać
znaczące komunikaty o błędach. Kiedy plik jest #zawierać'D, cppph Wkłady #linia dyrektywy dla
z tego samego powodu. Numeracja powinna być prawidłowa nawet w przypadku kontynuacji wierszy.
Jeśli nie chcesz #linia dyrektyw w końcowym wyniku, użyj --nolina opcja.

Wszelkie błędy składniowe w dyrektywach cpp wysyłają komunikat do stderr i zatrzymują program.
Niepowodzenie w znalezieniu pliku #include'd powoduje wyświetlenie ostrzeżenia na stderr, ale przetwarzanie jest kontynuowane.

Możesz podać dowolną liczbę nazw plików w wierszu poleceń. Wyniki są katenowane w dniu
standardowe wyjście.

-Dsym zdefiniuj zamiennik tekstowy (wartość domyślna to 1)

-Dsym=val
zdefiniować zamiennik tekstowy o określonej wartości

-Iścieżka dodaj katalog do ścieżki wyszukiwania dla #include's

-Ofilet określ plik do wyjścia (domyślnie jest stdout)

--nomakro
przetwarzaj tylko #ifdef i #include,
nie rozwijaj makr

--nolina
usuń #liniowe odchody z wyjścia

--rozebrać się
konwertuj komentarze w stylu C na białe znaki, nawet na zewnątrz
dyrektywy cpp

--haszy
rozpoznaje operator ciągów ANSI #, a ## dla
katenacja tokenów, w ramach makr

--tekst traktuj dane wejściowe jako zwykły tekst, a nie kod Haskella

--układ
zachowaj nowe linie w rozszerzeniach makro

--nie oświetlony
usuń komentarze w stylu piśmiennym

--wersja
zgłoś numer wersji cppph i zatrzymaj

Domyślnie NIE są zdefiniowane żadne zamienniki tekstowe. (Normalne cpp zwykle ma definicje
dla maszyny, systemu operacyjnego itp. Można je łatwo dodać do kodu źródłowego cpphs, jeśli chcesz.)
Ścieżka wyszukiwania jest przeszukiwana w kolejności -I opcje, z wyjątkiem tego, że katalog
plik wywołujący, a następnie katalog bieżący, są zawsze przeszukiwane jako pierwsze. Znowu nie ma
domyślna ścieżka wyszukiwania (i znowu można to łatwo zmienić).

RÓŻNICE OD CPP


Ogólnie rzecz biorąc, cpphs opiera się na -tradycyjny zachowanie, a nie ANSI C, i ma
następujące główne różnice w stosunku do standardowego cpp.

Ogólne

Połączenia # która wprowadza jakąkolwiek dyrektywę cpp musi znajdować się w pierwszej kolumnie wiersza (podczas gdy
ANSI zezwala na białe znaki przed # ).

Generuje #linia n "filename" składnia, a nie # n "filenamewariant.

Komentarze C są usuwane tylko z dyrektyw cpp. Nie są odarte z innych
tekst. Weź pod uwagę na przykład, że w Haskell wszystkie poniższe są prawidłowymi operatorami
symbolika: /* */ * / * Możesz jednak włączyć usuwanie komentarzy C za pomocą --rozebrać się opcja.

Macro język

Akceptuje / ** / do wklejania tokenów w definicji makra. Jednakże, /* */ (z dowolnym tekstem
między komentarzem otwórz/zamknij) wstawia spację.

ANSI ## operator wklejania tokenów jest dostępny z --haszy flaga. Ma to na celu uniknięcie
błędną interpretację dowolnego prawidłowego operatora Haskella o tej samej nazwie.

Zastępuje formalny parametr makra rzeczywistym, nawet wewnątrz ciągu (podwójny lub pojedynczy)
zacytowany). Jest to -tradycyjne zachowanie, nieobsługiwane przez ANSI.

Rozpoznaje # operator ciągów w definicji makra tylko wtedy, gdy używasz --haszy
opcja. (Jest to dodatek ANSI, potrzebny tylko dlatego, że w cudzysłowie (powyżej) jest
zabronione przez ANSI.)

Dokładnie zachowuje białe znaki w definicji zastępowania tekstu (nowe wiersze modulo),
ale przestrzeń wiodąca i końcowa jest wyeliminowana.

Zachowuje białe znaki w definicji makra (i końcowe) dokładnie (modulo
znaki nowej linii), ale wiodąca spacja jest eliminowana.

Dokładnie zachowuje białe znaki w argumentach wywołania makr (w tym znaki nowej linii), ale wiodące
a końcowe spacje są eliminowane.

Z --układ opcja, kontynuacje linii w zastępstwie tekstowym lub definicji makra
są zachowywane jako podziały linii w wywołaniu makra. (Przydatne w przypadku kodu wrażliwego na układ w
Haskella.)

Korzystaj z cpphs online, korzystając z usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

  • 1
    facetracknoir
    facetracknoir
    Modułowy program do śledzenia ruchów głowy
    obsługuje wiele trackerów twarzy, filtrów
    i protokoły gier. Wśród tropicieli
    to SM FaceAPI, głowica inercyjna AIC
    Śledzenie ...
    Ściągnij facetracknoir
  • 2
    Kod QR dla PHP
    Kod QR dla PHP
    PHP QR Code jest open source (LGPL)
    biblioteka do generowania QR Code,
    2-wymiarowy kod kreskowy. Oparte na
    Biblioteka libqrencode C, zapewnia API dla
    tworzenie kodu kreskowego QR Code...
    Pobierz kod QR PHP
  • 3
    freeciv
    freeciv
    Freeciv to darmowa gra turowa
    wieloosobowa gra strategiczna, w której każdy
    gracz staje się liderem a
    cywilizacji, walcząc o uzyskanie
    ostateczny cel: być...
    Pobierz FreeCiv
  • 4
    Piaskownica z kukułką
    Piaskownica z kukułką
    Cuckoo Sandbox wykorzystuje komponenty do
    monitorować zachowanie złośliwego oprogramowania w
    Środowisko piaskownicy; odizolowany od
    reszta systemu. Oferuje zautomatyzowane
    analiza...
    Pobierz Cuckoo Sandbox
  • 5
    LMS-YouTube
    LMS-YouTube
    Odtwarzaj filmy z YouTube na LMS (przenoszenie plików
    Triode do YouTbe API v3) To jest
    aplikacja, którą można również pobrać
    od
    https://sourceforge.net/projects/lms-y...
    Pobierz LMS-YouTube
  • 6
    Podstawa prezentacji systemu Windows
    Podstawa prezentacji systemu Windows
    Fundacja prezentacji systemu Windows (WPF)
    to framework interfejsu użytkownika do budowania systemu Windows
    aplikacje desktopowe. WPF obsługuje m.in
    szeroki zestaw rozwoju aplikacji
    cechy...
    Pobierz Fundację prezentacji systemu Windows
  • więcej »

Komendy systemu Linux

Ad