ภาษาอังกฤษภาษาฝรั่งเศสสเปน

Ad


ไอคอน Fav ของ OnWorks

cpphs - ออนไลน์ในคลาวด์

เรียกใช้ cpphs ในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง cpph ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


cpphs - ตัวประมวลผลล่วงหน้าที่คล้ายกับ cpp-a-like สำหรับ Haskell

เรื่องย่อ


cpph [ชื่อไฟล์|ทางเลือกที่] ...

DESCRIPTION


cpph เป็นการนำกลับมาใช้ใหม่อย่างเสรีของ ซีพี (1) ตัวประมวลผลล่วงหน้า C ในและสำหรับ
ฮาสเคลล์.

ทำไมต้องใช้ cpp อีกครั้ง ถูกหรือผิด C พรีโปรเซสเซอร์ใช้กันอย่างแพร่หลายใน Haskell
รหัสแหล่งที่มา. เปิดใช้งานการคอมไพล์แบบมีเงื่อนไขสำหรับคอมไพเลอร์ที่แตกต่างกัน, different
คอมไพเลอร์รุ่นเดียวกันและแพลตฟอร์มระบบปฏิบัติการที่แตกต่างกัน นอกจากนี้ยังใช้เป็นครั้งคราว
สำหรับภาษามาโคร ซึ่งสามารถเปิดใช้งานรายละเอียดเฉพาะแพลตฟอร์มบางรูปแบบได้
การเติมเต็ม เช่น การสร้างคำจำกัดความของอินสแตนซ์และ FFI . ต้นแบบที่น่าเบื่อ
ประกาศ อย่างไรก็ตาม มีปัญหาสองประการกับ cpp นอกเหนือจากความสวยงามที่เห็นได้ชัด
คน:

สำหรับระบบ Haskell บางระบบ โดยเฉพาะ Hugs บน Windows ไม่มี cpp จริงโดย
ค่าเริ่มต้น.

แม้แต่สำหรับระบบ Haskell อื่น cpp ทั่วไปที่มีให้โดย gcc 3.x series
กำลังเปลี่ยนแปลงอย่างละเอียดในลักษณะที่ไม่เข้ากันกับไวยากรณ์ของ Haskell มี
มักมีปัญหากับช่องว่างสตริงและอักขระเฉพาะใน
ตัวระบุ ปัญหาเหล่านี้จะยิ่งแย่ลงเท่านั้น

ดังนั้นจึงดูเหมือนถูกต้องที่จะพยายามจัดหาทางเลือกอื่นให้กับ cpp ซึ่งทั้งคู่เข้ากันได้มากกว่า
Haskell และตัวมันเองเขียนด้วย Haskell เพื่อให้สามารถแจกจ่ายด้วยคอมไพเลอร์ได้

cpph ค่อนข้างมีคุณสมบัติครบถ้วนและเข้ากันได้กับ สไตล์ทรง สไตล์ซีพี
มันมีสองโหมด:

การรวบรวมตามเงื่อนไขเท่านั้น (--โนมาโคร),

และการขยายมาโครแบบเต็ม (ค่าเริ่มต้น)

In --โนมาโคร โหมด, cpph ดำเนินการคอมไพล์ตามเงื่อนไขเท่านั้น เช่น #includeของ,
#ถ้า'ทราย #ifdefถูกประมวลผลตามคำจำกัดความการแทนที่ข้อความ (ทั้งคำสั่ง-
บรรทัดและภายใน) แต่ไม่มีการขยายมาโครแบบกำหนดพารามิเตอร์ เต็ม
โหมดความเข้ากันได้ (ค่าเริ่มต้น) การแทนที่ข้อความและการขยายมาโครก็เช่นกัน
ประมวลผลในส่วนที่เหลือของข้อความที่ไม่ใช่ cpp

คุณสมบัติการทำงาน:

#ifdef การรวบรวมเงื่อนไขอย่างง่าย

#ถ้า ภาษาบูลีนเต็มรูปแบบของคำนิยาม (), &&, ||, == เป็นต้น

#เอลิฟ เงื่อนไขที่ถูกล่ามโซ่

#กำหนด
คำจำกัดความในบรรทัด (การแทนที่ข้อความและมาโคร)

#อันเดฟ การเพิกถอนคำจำกัดความในบรรทัด

#include
รวมไฟล์

#ไลน์ คำสั่งหมายเลขบรรทัด

\n ความต่อเนื่องของบรรทัดภายใน # directives ทั้งหมด

/ ** / token catenation ภายในคำจำกัดความของมาโคร

## Catenation โทเค็นสไตล์ ANSI

# การแปลงสตริงโทเค็นสไตล์ ANSI

__ไฟล์__
การแทนที่ข้อความพิเศษสำหรับข้อความแสดงข้อผิดพลาด DIY

__ไลน์__
การแทนที่ข้อความพิเศษสำหรับข้อความแสดงข้อผิดพลาด DIY

__วันที่__
การแทนที่ข้อความพิเศษ

__เวลา__
การแทนที่ข้อความพิเศษ

การขยายมาโครเป็นแบบเรียกซ้ำ การกำหนดชื่อแมโครใหม่จะไม่สร้างคำเตือน
สามารถกำหนดมาโครบนบรรทัดคำสั่งด้วย -D เช่นเดียวกับการเปลี่ยนข้อความ มาโคร
ชื่อได้รับอนุญาตให้เป็นตัวระบุ Haskell เช่น เฉพาะ ` และ backtick ´
อักขระซึ่งหลวมกว่าภาษา C เล็กน้อย แต่ยังไม่รวมตัวดำเนินการ
สัญลักษณ์

จำนวนบรรทัดในเอาต์พุตถูกรักษาไว้เพื่อให้ตัวประมวลผลในภายหลังสามารถให้
ข้อความแสดงข้อผิดพลาดที่มีความหมาย เมื่อไฟล์เป็น #include'NS, cpph แทรก #ไลน์ คำสั่งสำหรับ
เหตุผลเดียวกัน การกำหนดหมายเลขควรถูกต้องแม้ในกรณีที่มีการต่อบรรทัด
ถ้าคุณไม่ต้องการ #ไลน์ คำสั่งในผลลัพธ์สุดท้าย ใช้ --โนลีน ตัวเลือก

ข้อผิดพลาดทางไวยากรณ์ในคำสั่ง cpp จะส่งข้อความถึง stderr และหยุดโปรแกรม
ความล้มเหลวในการค้นหาไฟล์ #include'd ทำให้เกิดคำเตือนถึง stderr แต่การประมวลผลจะดำเนินต่อไป

คุณสามารถระบุชื่อไฟล์จำนวนเท่าใดก็ได้บนบรรทัดคำสั่ง ผลลัพธ์ขึ้นอยู่กับ
เอาต์พุตมาตรฐาน

-Dซิม กำหนดข้อความแทนที่ (ค่าเริ่มต้นคือ 1)

-ดีซิม=คลื่น
กำหนดข้อความแทนที่ด้วยค่าเฉพาะ

-Iเส้นทาง เพิ่มไดเร็กทอรีในเส้นทางการค้นหาสำหรับ #include's

-Oไฟล์ ระบุไฟล์สำหรับเอาต์พุต (ค่าเริ่มต้นคือ stdout)

--โนมาโคร
ประมวลผลเฉพาะ #ifdef's และ #include's
อย่าขยายมาโคร

--โนลีน
ลบ #line drops ออกจากเอาต์พุต

--สตริป
แปลงความคิดเห็นสไตล์ C เป็นช่องว่างแม้อยู่ภายนอก
คำสั่ง cpp

--แฮช
รู้จักตัวดำเนินการ stringise ของ ANSI # และ ## สำหรับ
token catenation ภายในมาโคร

--ข้อความ ถือว่าอินพุตเป็นข้อความธรรมดา ไม่ใช่รหัส Haskell

--เค้าโครง
รักษาบรรทัดใหม่ภายในการขยายมาโคร

--ไม่สว่าง
ลบความคิดเห็นแบบผู้รู้หนังสือ

--รุ่น
รายงานหมายเลขเวอร์ชันของ cpphs และหยุด

ไม่มีการแทนที่ข้อความที่กำหนดไว้โดยค่าเริ่มต้น (cpp ปกติมักจะมีคำจำกัดความ
สำหรับเครื่อง ระบบปฏิบัติการ ฯลฯ คุณสามารถเพิ่มสิ่งเหล่านี้ลงในซอร์สโค้ด cpph ได้อย่างง่ายดาย หากคุณต้องการ)
ค้นหาเส้นทางการค้นหาตามลำดับของ -I ยกเว้นว่าไดเร็กทอรีของ
ไฟล์การเรียก จากนั้นไดเร็กทอรีปัจจุบันจะถูกค้นหาก่อนเสมอ อีกครั้งไม่มี
เส้นทางการค้นหาเริ่มต้น (และอีกครั้ง นี้สามารถเปลี่ยนแปลงได้อย่างง่ายดาย)

ความแตกต่าง จาก CPP


โดยทั่วไป cpphs ขึ้นอยู่กับ สไตล์ทรง พฤติกรรม ไม่ใช่ ANSI C และมี
ตามความแตกต่างหลักจาก cpp มาตรฐาน

General

พื้นที่ # ที่แนะนำคำสั่ง cpp ใด ๆ จะต้องอยู่ในคอลัมน์แรกของบรรทัด (ในขณะที่
ANSI อนุญาตช่องว่างก่อน # ).

สร้าง #ไลน์ n "ชื่อไฟล์" ไวยากรณ์ ไม่ใช่ # n "ชื่อไฟล์" ตัวแปร

ความคิดเห็น C จะถูกลบออกจากภายในคำสั่ง cpp เท่านั้น ไม่พรากจากผู้อื่น
ข้อความ. พิจารณาตัวอย่างเช่นใน Haskell สิ่งต่อไปนี้ทั้งหมดเป็นตัวดำเนินการที่ถูกต้อง
สัญลักษณ์: /* */ * / * อย่างไรก็ตาม คุณสามารถเปิดการลบความคิดเห็น C ด้วยปุ่ม --สตริป ตัวเลือก

แมโคร ภาษา

ยอมรับ / ** / สำหรับการวางโทเค็นในคำจำกัดความของมาโคร อย่างไรก็ตาม, /* */ (มีข้อความใด ๆ
ระหว่างความคิดเห็นเปิด/ปิด) แทรกช่องว่าง

ANSI ## ตัวดำเนินการวางโทเค็นสามารถใช้ได้กับ --แฮช ธง. นี่คือการหลีกเลี่ยง
ตีความโอเปอเรเตอร์ Haskell ที่ถูกต้องที่มีชื่อเดียวกันผิด

แทนที่พารามิเตอร์ที่เป็นทางการของมาโครด้วยค่าจริง แม้จะอยู่ภายในสตริง (double หรือ single
ยกมา) นี่เป็นพฤติกรรมดั้งเดิม ไม่รองรับใน ANSI

ตระหนักถึง # ตัวดำเนินการ stringisation ในคำจำกัดความของมาโครก็ต่อเมื่อคุณใช้ --แฮช
ตัวเลือก. (เป็นส่วนเพิ่มเติมของ ANSI เท่านั้น เนื่องจากสตริงที่ยกมา (ด้านบน) is
ห้ามโดย ANSI)

รักษาช่องว่างภายในคำจำกัดความการแทนที่ข้อความ (การขึ้นบรรทัดใหม่แบบโมดูล)
แต่พื้นที่นำหน้าและต่อท้ายถูกตัดออก

รักษาช่องว่างภายในคำจำกัดความของมาโคร (และต่อท้าย) ทุกประการ (modulo
ขึ้นบรรทัดใหม่) แต่พื้นที่นำหน้าจะถูกตัดออก

รักษาช่องว่างภายในอาร์กิวเมนต์การเรียกแมโครทุกประการ (รวมถึงการขึ้นบรรทัดใหม่) แต่นำหน้า
และช่องว่างต่อท้ายจะถูกตัดออก

กับ --เค้าโครง ตัวเลือก ความต่อเนื่องของบรรทัดในการแทนที่ข้อความหรือคำจำกัดความของมาโคร
จะถูกเก็บไว้เป็นการขึ้นบรรทัดใหม่ในการเรียกมาโคร (มีประโยชน์สำหรับโค้ดที่ไวต่อเลย์เอาต์ใน
ฮาสเคลล์)

ใช้ cpphs ออนไลน์โดยใช้บริการ onworks.net


เซิร์ฟเวอร์และเวิร์กสเตชันฟรี

ดาวน์โหลดแอพ Windows & Linux

  • 1
    เฟซแทร็กนัวร์
    เฟซแทร็กนัวร์
    โปรแกรม headtracking แบบโมดูลาร์นั้น
    รองรับตัวติดตามใบหน้าและตัวกรองหลายตัว
    และเกมโปรโตคอล ในบรรดาผู้ติดตาม
    คือ SM FaceAPI, AIC Inertial Head
    ติดตาม ...
    ดาวน์โหลด facetracknoir
  • 2
    PHP คิวอาร์โค้ด
    PHP คิวอาร์โค้ด
    PHP QR Code เป็นโอเพ่นซอร์ส (LGPL)
    ห้องสมุดสำหรับสร้างรหัส QR,
    บาร์โค้ด 2 มิติ ขึ้นอยู่กับ
    ไลบรารี libqrencode C จัดเตรียม API สำหรับ
    การสร้างบาร์โค้ด QR Code...
    ดาวน์โหลด PHP QR Code
  • 3
    freeciv
    freeciv
    Freeciv เป็นเกมเทิร์นเบสฟรี
    เกมกลยุทธ์แบบผู้เล่นหลายคนซึ่งในแต่ละ
    ผู้เล่นกลายเป็นผู้นำของa
    อารยธรรมต่อสู้เพื่อให้ได้
    เป้าหมายสูงสุด : เป็น...
    ดาวน์โหลด Freeciv
  • 4
    แซนด์บ็อกซ์นกกาเหว่า
    แซนด์บ็อกซ์นกกาเหว่า
    Cuckoo Sandbox ใช้ส่วนประกอบเพื่อ
    ตรวจสอบพฤติกรรมของมัลแวร์ใน
    สภาพแวดล้อมแบบแซนด์บ็อกซ์ แยกได้จาก
    ส่วนที่เหลือของระบบ ให้บริการแบบอัตโนมัติ
    วิเคราะห์เ...
    ดาวน์โหลด Cuckoo Sandbox
  • 5
    LMS-YouTube
    LMS-YouTube
    เล่นวิดีโอ YouTube บน LMS (พอร์ตของ
    Triode ของ YouTbe API v3) นี่คือ
    แอปพลิเคชันที่สามารถดึงข้อมูลได้
    ราคาเริ่มต้นที่
    https://sourceforge.net/projects/lms-y...
    ดาวน์โหลด LMS-YouTube
  • 6
    มูลนิธิการนำเสนอ Windows
    มูลนิธิการนำเสนอ Windows
    มูลนิธิการนำเสนอ Windows (WPF)
    เป็นเฟรมเวิร์ก UI สำหรับสร้าง Windows
    แอปพลิเคชันเดสก์ท็อป WPF รองรับ a
    การพัฒนาแอพพลิเคชั่นในวงกว้าง
    คุณสมบัติ ...
    ดาวน์โหลด Windows Presentation Foundation
  • เพิ่มเติม»

คำสั่ง Linux

Ad