Yantra একটি C++ পার্সার জেনারেটর যা প্রথমে পুরো AST তৈরি করে, তারপর আলাদা পাসে উপরে থেকে নিচে চলে, সেম্যান্টিক একশন কল করে। বেশিরভাগ LALR পার্সার জেনারেটরের (Yacc, Bison, Lemon) বিপরীত, যা পার্সিংয়ের সময় সেম্যান্টিক একশন চালায়, Yantra একটি মাতা নিয়মের একশনকে তার শিশুদের দেখার আগে চালানোর অনুমতি দেয়।これにより একটি একক ব্যাকরণ থেকে একাধিক ওকার সংজ্ঞায়িত করা সম্ভব হয়, যেমন একটি C++ প্লót করে এবং অন্যটি Java প্লót করে। AST এবং ওকার ক্লাস উভয়ই স্বয়ংক্রিয়ভাবে তৈরি হয়। Yantra-এ একটি একीकৃত লেক্সার আছে যা নেস্টেড কমেন্টের জন্য মোড সমর্থন দেয়, ঐচ্ছিক অমলগমেটেড একক-ফাইল আউটপুট jossa উত্পন্ন main() থাকে, এবং শুধুমাত্র C++23 কম্পাইলারের প্রয়োজন হয়। এটি MIT লাইসেন্সের অধীনে আছে এবং বর্তমানে সংস্করণ 0.5.1-এ আছে, pre-1.0, একটি একক ডেভেলপার দ্বারা মেনটেইন করা হচ্ছে।
একটি ছোট ব্যাকরণ উদাহরণ উপরে থেকে নিচে চলার আচরণ দেখায়: "1 + 2 + 3" পার্স করার সময় "Adding" প্রথমে প্রিন্ট হয় (মূল), তারপর সংখ্যা আউটপুট। এই ক্রমটি শুধুমাত্র তখন সম্ভব হয় যখন পুরো গাছ কোনো একশন চালানোর আগে বিদ্যমান থাকে।
জানা সীমাবদ্ধতাগুলি প্রজেক্টের GitHub পৃষ্ঠায় নথিবদ্ধ করা হয়েছে। রিপোজিটরি https://github.com/TantrixAuto/yantra-এ উপলব্ধ है, এবং মেইনটেইনার দ্বারা প্রতিক্রিয়া এবং প্রশ্ন স্বাগত করা হয়।
এই টুলটি CMake ব্যবহার করে তৈরি হয় এবং ycc এক্সিকিউটেবল তৈরি করে যা ব্যাকরণ ফাইল থেকে পার্সার তৈরি করে।
মुख্য entidades: কোম্পানিগুলো: TantrixAuto
উৎস: Hacker News · সারাংশ: HeadlinesBriefing