InglesPransesEspanyol

Ad


OnWorks favicon

cpphs - Online sa Cloud

Magpatakbo ng mga cpph sa OnWorks na libreng hosting provider sa Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

Ito ang command cpphs na maaaring patakbuhin sa OnWorks free hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

PROGRAMA:

NAME


cpphs - liberalisadong cpp-a-like preprocessor para sa Haskell

SINOPSIS


cpphs [FILENAME|OPTION] ...

DESCRIPTION


cpphs ay isang liberalisadong muling pagpapatupad ng cpp Na (1), ang C pre-processor, sa at para sa
Haskell.

Bakit muling ipatupad ang cpp? Tama man o mali, ang C pre-processor ay malawakang ginagamit sa Haskell
source code. Nagbibigay-daan ito sa conditional compilation para sa iba't ibang compiler, iba
mga bersyon ng parehong compiler, at iba't ibang mga platform ng OS. Ginagamit din ito paminsan-minsan
para sa macro language nito, na maaaring paganahin ang ilang mga anyo ng detalyeng partikular sa platform-
pagpuno, tulad ng nakakapagod na pagbuo ng boilerplate ng mga kahulugan ng halimbawa at FFI
mga deklarasyon. Gayunpaman, mayroong dalawang problema sa cpp, bukod sa halatang aesthetic
mga:

Para sa ilang mga sistema ng Haskell, lalo na ang Hugs sa Windows, ang isang tunay na cpp ay hindi magagamit ng
default.

Kahit na para sa iba pang mga Haskell system, ang karaniwang cpp na ibinigay ng gcc 3.x series
ay bahagyang nagbabago sa mga paraan na hindi tugma sa syntax ng Haskell. meron
palaging problema sa, halimbawa, string gaps, at pangunahing mga character sa
mga identifier. Ang mga problemang ito ay lalala lamang.

Kaya, tila tama na subukang magbigay ng alternatibo sa cpp, na parehong mas tugma sa
Haskell, at mismong nakasulat sa Haskell upang maipamahagi ito sa mga compiler.

cpphs ay medyo kumpleto ang tampok, at tugma sa -tradisyonal estilo ng cpp.
Mayroon itong dalawang mga mode:

conditional compilation lamang (--nomacro),

at buong macro-expansion (default).

In --nomacro fashion, cpphs gumaganap lamang ng mga pagkilos na may kondisyong pagsasama-sama, ibig sabihin # isamaay,
#kung's, at #ifdef's ay pinoproseso ayon sa mga kahulugan ng pagpapalit ng teksto (parehong command-
linya at panloob), ngunit walang ginawang parameterised macro expansion. nang buo
compatibility mode (ang default), textual na kapalit at macro expansion ay din
naproseso sa natitirang katawan ng hindi-cpp na teksto.

Paggawa Mga Tampok:

#ifdef simpleng conditional compilation

#kung ang buong boolean na wika ng tinukoy (), &&, ||, ==, atbp.

#elif nakakadena na kondisyon

# tukuyin
mga in-line na kahulugan (mga pagpapalit ng text at macro)

#undef in-line na pagbawi ng mga kahulugan

# isama
pagsasama ng file

#linya mga direktiba ng numero ng linya

\n mga pagpapatuloy ng linya sa lahat ng # na direktiba

/ ** / token catenation sa loob ng macro definition

## ANSI-style token catenation

# ANSI-style token stringisation

__FILE__
espesyal na kapalit ng text para sa DIY error messages

__LINE__
espesyal na kapalit ng text para sa DIY error messages

__DATE__
espesyal na pagpapalit ng teksto

__TIME__
espesyal na pagpapalit ng teksto

Ang macro expansion ay recursive. Ang redefinition ng isang macro name ay hindi bumubuo ng babala.
Maaaring tukuyin ang mga macro sa command-line na may -D parang textual na kapalit lang. Macro
pinahihintulutan ang mga pangalan na maging Haskell identifier eg may prime ` at backtick ´
mga character, na bahagyang mas maluwag kaysa sa C, ngunit maaaring hindi pa rin sila kasama ang operator
mga simbolo.

Ang pagbilang ng mga linya sa output ay pinapanatili upang ang anumang susunod na processor ay makapagbigay
makabuluhang mensahe ng error. Kapag ang isang file ay # isama'd, cpphs pagsingit #linya mga direktiba para sa
ang parehong dahilan. Dapat na tama ang pagnunumero kahit na may mga pagpapatuloy ng linya.
Kung ayaw mo #linya mga direktiba sa huling output, gamitin ang --noline pagpipilian.

Ang anumang mga error sa syntax sa mga direktiba ng cpp ay nagbibigay ng mensahe sa stderr at huminto sa programa.
Ang pagkabigong makahanap ng #include'd file ay nagdudulot ng babala sa stderr, ngunit nagpapatuloy ang pagproseso.

Maaari kang magbigay ng anumang bilang ng mga filename sa command-line. Ang mga resulta ay nakatakda sa
karaniwang output.

-Dsym tukuyin ang isang textual na kapalit (default na halaga ay 1)

-Dsym=Val
tukuyin ang isang textual na kapalit na may isang tiyak na halaga

-Ilandas magdagdag ng direktoryo sa path ng paghahanap para sa #include's

-Ofile tukuyin ang isang file para sa output (default ay stdout)

--nomacro
iproseso lamang ang #ifdef's at #include's,
huwag palawakin ang mga macro

--noline
alisin ang #line droppings mula sa output

--strip
i-convert ang C-style na mga komento sa whitespace, kahit sa labas
mga direktiba ng cpp

--hashes
kilalanin ang ANSI # stringise operator, at ## para sa
token catenation, sa loob ng macros

--text ituring ang input bilang plain text, hindi Haskell code

--layout
panatilihin ang mga bagong linya sa loob ng mga macro expansion

--walang liwanag
alisin ang literate-style na mga komento

--bersyon
iulat ang numero ng bersyon ng mga cpph at huminto

WALANG textual na kapalit na tinukoy bilang default. (Ang normal na cpp ay karaniwang may mga kahulugan
para sa makina, OS, atbp. Ang mga ito ay madaling maidagdag sa cpphs source code kung gusto mo.)
Hinahanap ang path ng paghahanap sa pagkakasunud-sunod ng -I mga pagpipilian, maliban na ang direktoryo ng
calling file, pagkatapos ay ang kasalukuyang direktoryo, ay palaging hinahanap muna. Muli, wala
default na landas sa paghahanap (at muli, madali itong mabago).

Mga pagkakaiba-iba MULA SA CPP


Sa pangkalahatan, ang mga cpph ay batay sa -tradisyonal pag-uugali, hindi ANSI C, at mayroong
sumusunod sa mga pangunahing pagkakaiba mula sa karaniwang cpp.

Pangkalahatan

Ang # na nagpapakilala ng anumang direktiba ng cpp ay dapat nasa unang column ng isang linya (samantalang
Pinahihintulutan ng ANSI ang whitespace bago ang # ).

Bumubuo ng #linya n "filename"syntax, hindi ang # n "filename"variant.

Ang mga komentong C ay inaalis lamang sa loob ng mga direktiba ng cpp. Hindi sila nahubaran sa iba
text. Isaalang-alang halimbawa na sa Haskell, lahat ng sumusunod ay wastong operator
simbolo: /* */ * / * Gayunpaman, maaari mong i-on ang pag-alis ng C-comment gamit ang --strip pagpipilian.

Macro wika

Tumatanggap / ** / para sa token-paste sa isang macro definition. gayunpaman, /* */ (kasama ang anumang teksto
sa pagitan ng open/close comment) ay naglalagay ng whitespace.

Ang ANSI ## Ang operator ng token-paste ay magagamit sa --hashes bandila. Ito ay upang maiwasan
misinterpreting anumang wastong Haskell operator na may parehong pangalan.

Pinapalitan ang isang macro na pormal na parameter ng aktwal, kahit na sa loob ng isang string (doble o single
sinipi). Ito ay -tradisyonal na pag-uugali, hindi suportado sa ANSI.

Kinikilala ang # stringisation operator sa isang macro definition lang kung gagamitin mo ang --hashes
opsyon. (Ito ay isang karagdagan ng ANSI, kailangan lamang dahil ang naka-quote na stringisation (sa itaas) ay
ipinagbabawal ng ANSI.)

Pinapanatili nang eksakto ang whitespace sa loob ng isang textual na kapalit na kahulugan (modulo newlines),
ngunit ang nangunguna at sumusunod na espasyo ay inalis.

Pinapanatili ang whitespace sa loob ng isang macro definition (at sumusunod dito) nang eksakto (modulo
newlines), ngunit ang nangungunang espasyo ay inalis.

Pinapanatili ang whitespace sa loob ng mga argumento ng macro call nang eksakto (kabilang ang mga bagong linya), ngunit nangunguna
at ang trailing space ay inalis.

Kasama ang --layout opsyon, mga pagpapatuloy ng linya sa isang textual na kapalit o macro definition
ay pinapanatili bilang mga line-break sa macro call. (Kapaki-pakinabang para sa layout-sensitive na code sa
Haskell.)

Gumamit ng mga cpph online gamit ang mga serbisyo ng onworks.net


Mga Libreng Server at Workstation

Mag-download ng Windows at Linux apps

  • 1
    facetracknoir
    facetracknoir
    Modular headtracking program na
    sumusuporta sa maramihang mga tagasubaybay ng mukha, mga filter
    at laro-protocol. Kabilang sa mga tagasubaybay
    ay ang SM FaceAPI, AIC Inertial Head
    Tagasubaybay...
    I-download ang facetracknoir
  • 2
    PHP QR Code
    PHP QR Code
    Ang PHP QR Code ay open source (LGPL)
    library para sa pagbuo ng QR Code,
    2-dimensional na barcode. Batay sa
    libqrencode C library, nagbibigay ng API para sa
    paggawa ng QR Code barc...
    I-download ang PHP QR Code
  • 3
    freeciv
    freeciv
    Ang Freeciv ay isang libreng turn-based
    Multiplayer diskarte laro, kung saan ang bawat isa
    ang manlalaro ay nagiging pinuno ng a
    kabihasnan, pakikipaglaban upang makuha ang
    pangwakas na layunin: maging...
    I-download ang Freeciv
  • 4
    Cuckoo Sandbox
    Cuckoo Sandbox
    Gumagamit ang Cuckoo Sandbox ng mga bahagi upang
    subaybayan ang gawi ng malware sa a
    Sandbox na kapaligiran; nakahiwalay sa
    natitirang bahagi ng sistema. Nag-aalok ito ng awtomatiko
    pagsusuri o...
    I-download ang Cuckoo Sandbox
  • 5
    LMS-YouTube
    LMS-YouTube
    Mag-play ng video sa YouTube sa LMS (pag-port ng
    Triode's to YouTbe API v3) Ito ay
    isang application na maaari ding makuha
    mula
    https://sourceforge.net/projects/lms-y...
    I-download ang LMS-YouTube
  • 6
    Windows Presentation Foundation
    Windows Presentation Foundation
    Windows Presentation Foundation (WPF)
    ay isang UI framework para sa pagbuo ng Windows
    mga desktop application. Sinusuportahan ng WPF ang a
    malawak na hanay ng pagbuo ng application
    mga tampok...
    I-download ang Windows Presentation Foundation
  • Marami pa »

Linux command

Ad