InggrisPerancisSpanyol

Ad


favorit OnWorks

cpphs - Online di Cloud

Jalankan cpphs di penyedia hosting gratis OnWorks melalui Ubuntu Online, Fedora Online, emulator online Windows, atau emulator online MAC OS

Ini adalah perintah cpphs yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS

PROGRAM:

NAMA


cpphs - preprosesor serupa cpp yang diliberalisasi untuk Haskell

RINGKASAN


cpphs [NAMA FILE|PILIHAN] ...

DESKRIPSI


cpphs adalah implementasi ulang yang diliberalisasi dari cpp (1) pra-prosesor C, di dan untuk
Haskell.

Mengapa menerapkan kembali cpp? Benar atau salah, pra-prosesor C banyak digunakan di Haskell
Kode sumber. Ini memungkinkan kompilasi bersyarat untuk kompiler yang berbeda, berbeda
versi kompiler yang sama, dan platform OS yang berbeda. Itu juga kadang-kadang digunakan
untuk bahasa makronya, yang dapat mengaktifkan bentuk-bentuk tertentu dari detail khusus platform-
pengisian, seperti pembuatan boilerplate yang membosankan dari definisi instans dan FFI
deklarasi. Namun, ada dua masalah dengan cpp, selain dari estetika yang jelas
yang:

Untuk beberapa sistem Haskell, terutama Pelukan di Windows, cpp yang sebenarnya tidak tersedia oleh:
standar.

Bahkan untuk sistem Haskell lainnya, cpp umum disediakan oleh seri gcc 3.x
berubah secara halus dengan cara yang tidak sesuai dengan sintaks Haskell. Ada
selalu menjadi masalah dengan, misalnya, celah string, dan karakter utama di
pengenal. Masalah-masalah ini hanya akan bertambah buruk.

Jadi, sepertinya tepat untuk mencoba memberikan alternatif untuk cpp, keduanya lebih kompatibel dengan
Haskell, dan itu sendiri ditulis dalam Haskell sehingga dapat didistribusikan dengan kompiler.

cpphs cukup banyak fitur yang lengkap, dan kompatibel dengan -tradisional gaya cpp.
Ini memiliki dua mode:

kompilasi bersyarat saja (--nomakro),

dan ekspansi makro penuh (default).

In --nomakro mode, cpphs hanya melakukan tindakan kompilasi bersyarat, yaitu #include'S,
#jika'pasir #ifdef's diproses sesuai dengan definisi penggantian teks (keduanya perintah-
line dan internal), tetapi tidak ada ekspansi makro parameter yang dilakukan. Sepenuhnya
mode kompatibilitas (default), penggantian tekstual dan ekspansi makro juga
diproses di sisa isi teks non-cpp.

Fitur bekerja:

#ifdef kompilasi bersyarat sederhana

#jika bahasa boolean lengkap dari define(), &&, ||, ==, dll.

#elif kondisional dirantai

#menetapkan
definisi sebaris (penggantian teks dan makro)

#undef pencabutan definisi sebaris

#include
penyertaan file

#garis petunjuk nomor baris

\n kelanjutan baris dalam semua # arahan

/ ** / catenation token dalam definisi makro

## Katanasi token gaya ANSI

# Stringisasi token gaya ANSI

__MENGAJUKAN__
pengganti teks khusus untuk pesan kesalahan DIY

__GARIS__
pengganti teks khusus untuk pesan kesalahan DIY

__TANGGAL__
penggantian teks khusus

__WAKTU__
penggantian teks khusus

Ekspansi makro bersifat rekursif. Definisi ulang nama makro tidak menghasilkan peringatan.
Makro dapat didefinisikan pada baris perintah dengan -D seperti penggantian tekstual. Makro
nama diizinkan untuk menjadi pengidentifikasi Haskell misalnya dengan prime ` dan backtick
karakter, yang sedikit lebih longgar daripada di C, tetapi mungkin masih belum menyertakan operator
simbol.

Penomoran baris dalam output dipertahankan sehingga prosesor selanjutnya dapat memberikan
pesan kesalahan yang berarti. Ketika sebuah file #include'D, cpphs sisipan #garis arahan untuk
alasan yang sama. Penomoran harus benar bahkan di hadapan kelanjutan garis.
Jika kamu tidak mau #garis arahan dalam hasil akhir, gunakan --nolin .

Setiap kesalahan sintaks dalam arahan cpp memberikan pesan ke stderr dan menghentikan program.
Kegagalan untuk menemukan file #include'd menghasilkan peringatan ke stderr, tetapi pemrosesan berlanjut.

Anda dapat memberikan sejumlah nama file pada baris perintah. Hasilnya adalah catenated pada
keluaran standar.

-Dsim tentukan pengganti tekstual (nilai default adalah 1)

-Sim=val
tentukan pengganti tekstual dengan nilai tertentu

-Ipath tambahkan direktori ke jalur pencarian untuk #include's

-Ofillet tentukan file untuk output (default adalah stdout)

--nomakro
hanya proses #ifdef dan #include,
jangan memperluas makro

--nolin
hapus #kotoran baris dari output

--mengupas
mengonversi komentar gaya-C ke spasi putih, bahkan di luar
arahan cpp

--hash
kenali operator stringise # ANSI, dan ## untuk
token catenation, dalam makro

--teks perlakukan input sebagai teks biasa, bukan kode Haskell

--tata letak
pertahankan baris baru dalam ekspansi makro

--tidak menyala
hapus komentar gaya melek

--Versi: kapan
laporkan nomor versi cpph dan hentikan

TIDAK ada penggantian tekstual yang ditentukan secara default. (Cpp normal biasanya memiliki definisi
untuk mesin, OS, dll. Ini dapat dengan mudah ditambahkan ke kode sumber cpphs jika Anda mau.)
Jalur pencarian dicari dalam urutan -I pilihan, kecuali bahwa direktori
memanggil file, lalu direktori saat ini, selalu dicari terlebih dahulu. Sekali lagi, tidak ada
jalur pencarian default (dan sekali lagi, ini dapat dengan mudah diubah).

PERBEDAAN DARI CPP


Secara umum, cpphs didasarkan pada -tradisional perilaku, bukan ANSI C, dan memiliki
berikut perbedaan utama dari cpp standar.

Umum

Grafik # yang memperkenalkan direktif cpp apa pun harus berada di kolom pertama dari suatu baris (sedangkan
ANSI mengizinkan spasi putih sebelum # ).

Menghasilkan #garis n "nama file" sintaks, bukan # n "nama file" varian.

Komentar C hanya dihapus dari dalam arahan cpp. Mereka tidak dilucuti dari yang lain
teks. Pertimbangkan misalnya bahwa di Haskell, semua yang berikut ini adalah operator yang valid:
simbol: /* */ * / * Namun, Anda dapat mengaktifkan penghapusan komentar-C dengan --mengupas .

Makro bahasa

Menerima / ** / untuk token-paste dalam definisi makro. Namun, /* */ (dengan teks apapun
antara komentar buka/tutup) menyisipkan spasi.

ANSI ## operator penempelan token tersedia dengan --hash bendera. Ini untuk menghindari
salah menafsirkan operator Haskell yang valid dengan nama yang sama.

Mengganti parameter formal makro dengan aktual, bahkan di dalam string (ganda atau tunggal
dikutip). Ini adalah -perilaku tradisional, tidak didukung di ANSI.

Mengakui # operator stringisasi dalam definisi makro hanya jika Anda menggunakan --hash
pilihan. (Ini adalah tambahan ANSI, hanya diperlukan karena stringisasi yang dikutip (di atas) adalah
dilarang oleh ANSI.)

Mempertahankan spasi putih dalam definisi pengganti tekstual dengan tepat (modulo baris baru),
tetapi spasi awal dan akhir dihilangkan.

Mempertahankan spasi putih dalam definisi makro (dan membuntutinya) dengan tepat (modulo
baris baru), tetapi spasi utama dihilangkan.

Mempertahankan spasi putih dalam argumen panggilan makro dengan tepat (termasuk baris baru), tetapi memimpin
dan spasi tambahan dihilangkan.

Dengan --tata letak opsi, kelanjutan baris dalam penggantian tekstual atau definisi makro
dipertahankan sebagai pemisah baris dalam panggilan makro. (Berguna untuk kode sensitif-tata letak di
Haskel.)

Gunakan cpphs online menggunakan layanan onworks.net


Server & Workstation Gratis

Unduh aplikasi Windows & Linux

  • 1
    facetracknoir
    facetracknoir
    Program pelacakan kepala modular itu
    mendukung banyak pelacak wajah, filter
    dan protokol permainan. Di antara pelacak
    adalah SM FaceAPI, AIC Inertial Head
    Pelacak...
    Unduh facetracknoir.dll
  • 2
    Kode QR PHP
    Kode QR PHP
    Kode QR PHP adalah sumber terbuka (LGPL)
    perpustakaan untuk menghasilkan Kode QR,
    kode batang 2 dimensi. Berdasarkan
    libqrencode C library, menyediakan API untuk
    membuat batang Kode QR...
    Unduh Kode QR PHP
  • 3
    freeciv
    freeciv
    Freeciv adalah turn-based gratis
    game strategi multipemain, di mana masing-masing
    pemain menjadi pemimpin a
    peradaban, berjuang untuk mendapatkan
    tujuan akhir: menjadi...
    Unduh Freeciv.dll
  • 4
    Kotak Pasir Cuckoo
    Kotak Pasir Cuckoo
    Cuckoo Sandbox menggunakan komponen untuk
    memantau perilaku malware di a
    Lingkungan kotak pasir; diisolasi dari
    sisa sistem. Ini menawarkan otomatis
    analisis...
    Unduh Kotak Pasir Cuckoo
  • 5
    LMS-YouTube
    LMS-YouTube
    Putar video YouTube di LMS (porting dari
    Triode's to YouTbe API v3) Ini
    aplikasi yang juga dapat diambil
    dari
    https://sourceforge.net/projects/lms-y...
    Unduh LMS-YouTube
  • 6
    Yayasan Presentasi Windows
    Yayasan Presentasi Windows
    Yayasan Presentasi Windows (WPF)
    adalah kerangka kerja UI untuk membangun Windows
    aplikasi desktop. WPF mendukung
    set luas pengembangan aplikasi
    fitur...
    Unduh Windows Presentation Foundation
  • Lebih banyak lagi »

Perintah Linux

Ad