นี่คือคำสั่ง yaccplan9 ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
yacc - คอมไพเลอร์คอมไพเลอร์อีกตัวหนึ่ง
เรื่องย่อ
ย๊าก [ ตัวเลือก ... ] ไวยากรณ์
DESCRIPTION
ยัค แปลงไวยากรณ์และโค้ดการแปลที่ไม่มีบริบทเป็นชุดของตารางสำหรับ an
LR(1) parser และนักแปล ไวยากรณ์อาจคลุมเครือ กฎลำดับความสำคัญที่กำหนดคือ
ใช้เพื่อขจัดความคลุมเครือ
ไฟล์ที่ส่งออก, y.tab.cจะต้องคอมไพล์โดยคอมไพเลอร์ C เพื่อผลิตโปรแกรม This
โปรแกรมจะต้องโหลดด้วยฟังก์ชันวิเคราะห์คำศัพท์ yylex(เป็นโมฆะ) (มักสร้างโดย
ไฟแนนเชี่(1)) ด้วย a หลัก (int อาร์จีซี, ถัง *อาร์จีวี[]) โปรแกรม และด้วยรูทีนการจัดการข้อผิดพลาด
yyerror(อักขระ*).
ทางเลือกคือ
-o เอาท์พุต ส่งออกโดยตรงไปยังไฟล์ที่ระบุแทน y.tab.c.
-Dn สร้างไฟล์ คุณดีบักที่มีข้อความวินิจฉัย เพื่อรวมไว้ใน
parser คอมไพล์ด้วยสัญลักษณ์ตัวประมวลผลล่วงหน้า ยีเดบั๊ก กำหนดไว้ ปริมาณของ
เอาต์พุตการวินิจฉัยจาก parser ถูกควบคุมโดยค่า n. ค่า 0 รายงาน
ข้อผิดพลาด; 1 รายงานการลด; ค่าที่สูงกว่า (มากถึง 4) รวมถึงข้อมูลเพิ่มเติม
เกี่ยวกับการเปลี่ยนสถานะ
-v สร้างไฟล์ y.เอาท์พุทมีคำอธิบายของตารางการแยกวิเคราะห์และของ
ความขัดแย้งที่เกิดจากความคลุมเครือในไวยากรณ์
-d สร้างไฟล์ y.tab.hที่มี #กำหนด ข้อความที่เชื่อมโยง ย๊าก-ที่ได้รับมอบหมาย
`รหัสโทเค็น' พร้อม `ชื่อโทเค็น' ที่ผู้ใช้ประกาศ รวมไว้ในไฟล์ต้นฉบับ
นอกเหนือจาก y.tab.c เพื่อให้เข้าถึงรหัสโทเค็น
-s แง่ง เปลี่ยนคำนำหน้าของชื่อไฟล์ y.tab.c, y.tab.h, คุณดีบักและ y.เอาท์พุท ไปยัง
แง่ง.
-S เขียน parser ที่ใช้ Stdio แทน the พิมพ์ กิจวัตรใน libc
-l ปิดการใช้งาน #line directives ใน parser ที่สร้างขึ้น
-a สร้าง parser ที่รับอาร์กิวเมนต์ประเภท Yyarg และส่งผ่านอาร์กิวเมนต์นี้
สำหรับการเรียกใช้ฟังก์ชัน lexer แต่ละครั้ง yylex Yyarg มีต่ออินสแตนซ์
state และสมาชิกที่มองเห็นได้เพียงคนเดียว arg ประเภท void*
ข้อกำหนดของ ย๊าก โดยพื้นฐานแล้วจะเหมือนกับเวอร์ชัน UNIX ที่อธิบายไว้ใน
ข้อมูลอ้างอิงที่กล่าวถึงด้านล่าง นอกจาก -D ตัวเลือก ความแตกต่างที่เกี่ยวข้องหลักคือ:
อินเทอร์เฟซไปยังสภาพแวดล้อม C เป็นค่าเริ่มต้นผ่าน มากกว่า
; -S ตัวเลือกกลับสิ่งนี้
parser ยอมรับข้อความอินพุต UTF (ดู ยูทีเอฟ(7)) ซึ่งมีผลสองสามประการ
ขั้นแรกให้คืนค่าของ วายเล็กซ์() ไม่เหมาะกับ a . อีกต่อไป Short ; ประการที่สองการเริ่มต้น
ค่าสำหรับเทอร์มินัลที่ไม่ใช่ตอนนี้คือ 0xE000 แทนที่จะเป็น 257
parser ที่สร้างขึ้นสามารถเรียกซ้ำได้: การดำเนินการสามารถเรียก ยีพาร์ส, ตัวอย่างเช่น ถึง
ใช้การเรียงลำดับของ #include คำสั่งในล่าม
ในที่สุด การทำงานภายในที่ไม่มีเอกสารบางอย่างของ parser ก็เปลี่ยนไป ซึ่ง
อาจส่งผลกระทบต่อโปรแกรมที่รู้โครงสร้างมากเกินไป
ใช้ yaccplan9 ออนไลน์โดยใช้บริการ onworks.net