MAGES เป็นผู้สืบทอดอย่างเป็นทางการของ YAMP มันเป็นตัวแยกวิเคราะห์และล่ามนิพจน์ที่เรียบง่าย แต่ทรงพลัง คุณสามารถใช้ MAGES เพื่อรวมกลไกการเขียนสคริปต์ที่ซับซ้อน ปรับแต่งได้ง่าย และมีน้ำหนักเบาให้กับแอปพลิเคชันของคุณ
ในบรรดาแอปพลิเคชันอื่นๆ MAGES ได้ถูกนำมาใช้ใน PowerToys ของ Microsoft
MAGES เพิ่งอัปเดต (v3.0.0) ด้วยข้อมูลเมตาของวัตถุ การสนับสนุนรายการโดยตรง และไวยากรณ์ JSX
2566 :
MAGES ได้รับการอัปเดต (v2.0.0) พร้อมรองรับจำนวนเชิงซ้อน นอกจากนี้ เป้าหมายบิลด์และรันไทม์ยังได้รับการอัปเดตเพื่อใช้ประโยชน์จากความเป็นไปได้สมัยใหม่
2561 :
เวอร์ชันเสถียรตัวแรกเปิดตัวแล้ว เวอร์ชันปัจจุบัน 1.6.0 มี REPL ที่ปรับปรุงแล้ว ไลบรารีประกอบด้วยทุกสิ่งสำหรับดำเนินการเขียนสคริปต์แบบน้ำหนักเบาใน C# บทความ CodeProject เกี่ยวกับไลบรารี (ยังมีการเปรียบเทียบความเป็นมาและการเปรียบเทียบประสิทธิภาพด้วย) อีกด้วย
MAGES เองไม่มีการพึ่งพาใดๆ อย่างไรก็ตาม การทดสอบขึ้นอยู่กับ NUnit และเกณฑ์มาตรฐานใช้ BenchmarkDotNet โดยปกติแล้ว MAGES ควรติดตั้งผ่านแหล่งแพ็คเกจ NuGet หากวิธีนี้ใช้ไม่ได้ผลสำหรับคุณ ให้โคลนแหล่งที่มาและสร้าง MAGES ด้วยตัวเอง ตรวจสอบให้แน่ใจว่าการทดสอบหน่วยทั้งหมดผ่าน
ไลบรารีทั้งหมดได้รับการออกแบบมาให้ใช้งานจากแอปพลิเคชัน .NET Core 3.0 (หรือสูงกว่า) / .NET 5.0 (หรือสูงกว่า) ซึ่งหมายความว่า (เหนือสิ่งอื่นใด) เข้ากันได้กับ Unity 2021.2 หรือ Mono 6.4 แพ็คเกจ NuGet มีให้บริการผ่านฟีดแพ็คเกจอย่างเป็นทางการ
ในกรณีที่ง่ายที่สุด คุณกำลังสร้างกลไกใหม่เพื่อเก็บขอบเขตส่วนกลาง (สำหรับตัวแปรและฟังก์ชัน) และเริ่มต้นการตีความ
var engine = new Mages . Core . Engine ( ) ;
var result = engine . Interpret ( " sin(2) * cos(pi / 4) " ) ; // 0.642970376623918
คุณยังสามารถดำเนินการต่อและสร้างบล็อกที่นำมาใช้ซ้ำได้จากตัวอย่างข้อมูล
var expOne = engine . Compile ( " exp(1) " ) ;
var result = expOne ( ) ; // 2.71828182845905
หรือคุณสามารถโต้ตอบกับองค์ประกอบที่สร้างโดย MAGES
var func = engine . Interpret ( " (x, y) => x * y + 3 * sqrt(x) " ) as Mages . Core . Function ;
var result = func . Invoke ( new Object [ ] { 4.0 , 3.0 } ) ; // 18.0
หรือง่ายกว่านั้น (รายละเอียดอธิบายไว้ในเอกสารเริ่มต้นใช้งาน):
var func = engine . Interpret ( " (x, y) => x * y + 3 * sqrt(x) " ) as Mages . Core . Function ;
var result = func . Call ( 4 , 3 ) ; // 18.0
นี่เป็นเพียงตัวอย่างพื้นฐานบางส่วนเท่านั้น ข้อมูลเพิ่มเติมสามารถพบได้ในเอกสารประกอบ
เอกสารประกอบได้รับในรูปแบบของเอกสาร Markdown ที่วางอยู่ในโฟลเดอร์ doc ของที่เก็บนี้ ลิงก์ต่อไปนี้ควรค่าแก่การตรวจสอบ:
หากมีสิ่งใดขาดหายไป ไม่ชัดเจน หรือไม่ถูกต้อง ให้ส่ง PR หรือยื่นเรื่อง ดูส่วนต่อไปนี้เกี่ยวกับการมีส่วนร่วมสำหรับข้อมูลเพิ่มเติม
เรายินดีอย่างยิ่งที่จะมีส่วนร่วมในรูปแบบของการใช้งานฟีเจอร์หรือการแก้ไขข้อบกพร่อง แต่จำเป็นต้องดำเนินการอย่างเป็นระบบและสม่ำเสมอ ควรอ่านแนวทางการสนับสนุนก่อนเริ่มงานใดๆ
การบริจาคอาจถูกนำมาใช้ในรูปแบบของรายงานข้อผิดพลาดและการร้องขอคุณสมบัติ การพัฒนาโอเพ่นซอร์สที่มีอายุการใช้งานยาวนาน!
กฎของเซมเวอร์คือขนมปังและเนยของเรา กล่าวโดยย่อหมายถึง:
ดังนั้น: อย่าคาดหวังว่าจะมีการเปลี่ยนแปลงใดๆ ในเวอร์ชันหลักเดียวกัน
บริษัทต่อไปนี้สนับสนุนส่วนหนึ่งของการพัฒนา MAGES
ขอขอบคุณทุกการสนับสนุนและความไว้วางใจในโครงการ!
ใบอนุญาต MIT (MIT)
ลิขสิทธิ์ (c) 2016-2024 Florian Rappl
อนุญาตให้บุคคลใดก็ตามที่ได้รับสำเนาของซอฟต์แวร์นี้และไฟล์เอกสารที่เกี่ยวข้อง ("ซอฟต์แวร์") อนุญาตโดยไม่เสียค่าใช้จ่าย เพื่อจัดการกับซอฟต์แวร์โดยไม่มีข้อจำกัด รวมถึงแต่ไม่จำกัดเพียงสิทธิ์ในการใช้ คัดลอก ปรับเปลี่ยน ผสาน เผยแพร่ แจกจ่าย ให้อนุญาตช่วง และ/หรือขายสำเนาของซอฟต์แวร์ และอนุญาตให้บุคคลที่ได้รับซอฟต์แวร์นี้สามารถทำได้ ภายใต้เงื่อนไขต่อไปนี้:
ประกาศเกี่ยวกับลิขสิทธิ์ข้างต้นและประกาศการอนุญาตนี้จะรวมอยู่ในสำเนาทั้งหมดหรือส่วนสำคัญของซอฟต์แวร์
ซอฟต์แวร์นี้มีให้ "ตามที่เป็น" โดยไม่มีการรับประกันใดๆ ทั้งโดยชัดแจ้งหรือโดยนัย ซึ่งรวมถึงแต่ไม่จำกัดเพียงการรับประกันความสามารถในการค้าขาย ความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ และการไม่ละเมิด ไม่ว่าในกรณีใดผู้เขียนหรือผู้ถือลิขสิทธิ์จะต้องรับผิดต่อการเรียกร้องค่าเสียหายหรือความรับผิดอื่นใดไม่ว่าในการกระทำของสัญญาการละเมิดหรืออย่างอื่นที่เกิดขึ้นจากหรือเกี่ยวข้องกับซอฟต์แวร์หรือการใช้งานหรือข้อตกลงอื่น ๆ ใน ซอฟต์แวร์.