এটি yaccplan9 কমান্ড যা আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানো যেতে পারে।
কার্যক্রম:
NAME এর
yacc - আরেকটি কম্পাইলার-কম্পাইলার
সাইনোপিসিস
yacc [ পছন্দ ... ] ব্যাকরণ
বর্ণনাঃ
ইয়াক একটি প্রসঙ্গ-মুক্ত ব্যাকরণ এবং অনুবাদ কোডকে একটি টেবিলের সেটে রূপান্তর করে
LR(1) পার্সার এবং অনুবাদক। ব্যাকরণ অস্পষ্ট হতে পারে; নির্দিষ্ট অগ্রাধিকার নিয়ম হয়
অস্পষ্টতা ভাঙতে ব্যবহৃত।
আউটপুট ফাইল, y.tab.c, একটি প্রোগ্রাম তৈরি করতে সি কম্পাইলার দ্বারা কম্পাইল করা আবশ্যক
প্রোগ্রাম একটি আভিধানিক বিশ্লেষক ফাংশন সঙ্গে লোড করা আবশ্যক, yylex(অকার্যকর) (প্রায়শই দ্বারা উত্পন্ন
আইন(1)), সঙ্গে ক প্রধান (int আরগসি, গৃহস্থালির কাজ *আরজিভি[]) প্রোগ্রাম, এবং একটি ত্রুটি পরিচালনার রুটিন সহ,
yyerror(char*).
বিকল্পগুলি হল
-o আউটপুট এর পরিবর্তে নির্দিষ্ট ফাইলে সরাসরি আউটপুট y.tab.c.
-Dn ফাইল তৈরি করুন y.debug, ডায়াগনস্টিক বার্তা রয়েছে। তাদের অন্তর্ভুক্ত করার জন্য
পার্সার, এটি প্রিপ্রসেসর চিহ্ন দিয়ে কম্পাইল করুন yydebug সংজ্ঞায়িত এর পরিমাণ
পার্সার থেকে ডায়গনিস্টিক আউটপুট মান দ্বারা নিয়ন্ত্রিত হয় n. মান 0 রিপোর্ট
ত্রুটি; 1 রিপোর্ট হ্রাস; উচ্চতর মান (4 পর্যন্ত) আরও তথ্য অন্তর্ভুক্ত করে
রাষ্ট্রীয় পরিবর্তন সম্পর্কে।
-v ফাইল তৈরি করুন y.আউটপুট, পার্সিং সারণি এবং এর একটি বিবরণ রয়েছে
ব্যাকরণে অস্পষ্টতা থেকে উদ্ভূত দ্বন্দ্ব।
-d ফাইল তৈরি করুন y.tab.hসমন্বিত # define বিবৃতি যে সহযোগী yacc- বরাদ্দ করা হয়েছে
ব্যবহারকারী-ঘোষিত 'টোকেন নাম' সহ `টোকেন কোড'। সোর্স ফাইলে এটি অন্তর্ভুক্ত করুন
আর অন্যান্য y.tab.c টোকেন কোড অ্যাক্সেস দিতে.
-s কণ্ঠস্বর ফাইলের নামের উপসর্গ পরিবর্তন করুন y.tab.c, y.tab.h, y.debug, এবং y.আউটপুট থেকে
কণ্ঠস্বর.
-S একটি পার্সার লিখুন যা এর পরিবর্তে Stdio ব্যবহার করে ছাপানো libc-এ রুটিন
-l জেনারেট করা পার্সারে #লাইন নির্দেশনা অক্ষম করুন।
-a একটি পার্সার তৈরি করুন যা Yyarg টাইপের একটি আর্গুমেন্ট নেয় এবং এই আর্গুমেন্টটি পাস করে
লেক্সার ফাংশনের প্রতিটি আহ্বানে, yylex। Yyarg প্রতি-দৃষ্টান্ত রয়েছে
রাষ্ট্র এবং একটি একক ব্যবহারকারী-দৃশ্যমান সদস্য, arg, টাইপের void*।
এর স্পেসিফিকেশন yacc নিজেই মূলত ইউনিক্স সংস্করণে বর্ণিত একই রকম
নীচে উল্লিখিত রেফারেন্স. ব্যতীত -D বিকল্প, প্রধান প্রাসঙ্গিক পার্থক্য হল:
সি পরিবেশের ইন্টারফেস ডিফল্টভাবে হয় বরং
; দ্য -S বিকল্প এটি বিপরীত।
পার্সার UTF ইনপুট টেক্সট গ্রহণ করে (দেখুন utf(7)), যার কয়েকটি প্রভাব রয়েছে।
প্রথমত, এর রিটার্ন মান yylex() a তে আর খাপ খায় না সংক্ষিপ্ত; দ্বিতীয়, শুরু
অ-টার্মিনালের মান এখন 0 এর পরিবর্তে 000xE257।
উৎপন্ন পার্সার পুনরাবৃত্তিমূলক হতে পারে: কর্ম কল করতে পারে yyparse, উদাহরণস্বরূপ
এক ধরণের বাস্তবায়ন # অন্তর্ভুক্ত একটি দোভাষী বিবৃতি.
অবশেষে, পার্সারের কিছু অনথিভুক্ত অভ্যন্তরীণ কাজ পরিবর্তন করা হয়েছে, যা
প্রোগ্রামগুলিকে প্রভাবিত করতে পারে যা এর গঠন সম্পর্কে খুব বেশি জানে।
onworks.net পরিষেবা ব্যবহার করে অনলাইনে yaccplan9 ব্যবহার করুন