بسيط للاستخدام ، وتأليف ، رأس فقط ، محلل سطر الأوامر لـ C ++ 11 وما بعده.
| يحصل على | |
| رخصة | |
| المعايير | |
| الإحصائيات | |
| الاختبارات |
تم توزيعه تحت ترخيص برنامج Boost ، الإصدار 1.0. (راجع ترخيص الملف المصاحب.
رأس فقط مع عدم وجود تبعيات خارجية (باستثناء مكتبة std ).
حدد الواجهة الخاصة بك مرة واحدة للحصول على تحليل ، اكتب التحويلات وسلاسل الاستخدام دون التكرار.
تأليف. كل opt أو arg هو محلل مستقل. الجمع بين هذه لإنتاج محلل مركب - يمكن القيام بذلك على مراحل عبر مكالمات وظائف متعددة - أو حتى مشاريع.
ربط المحللين مباشرة بالمتغيرات التي ستتلقى نتائج الحاجز - لا توجد قواميس وسيطة تقلق بشأنها.
أو يمكن أن يربط محللات محلية أيضًا بـ Lambdas لمزيد من المناولة المخصصة.
يستنتج أنواعًا من المتغيرات المربوطة أو lambdas ويقوم بتحويل النوع (عبر ostream << ) ، مع معالجة الأخطاء ، وراء الكواليس.
ربط المحللين إلى المتجهات لـ ARGS التي يمكن أن يكون لها قيم متعددة.
يستخدم أنواع النتائج لانتشار الخطأ ، بدلاً من الاستثناءات (لا تبني بعد مع تعطيل الاستثناءات ، لكن ذلك سيأتي لاحقًا)
نماذج POSIX معايير لسلوك الاختيار القصير والطويل.
بناء جملة الخيار القابل للتخصيص.
حدد Cardinality of arg -s من واحد إلى كثير.
الحد من قيم الخيار إلى مجموعة محددة من القيم.
مجموعات الحجة العودية مع رد الاتصال للكشف. هذا يسمح بمواصفات سهلة وعامة الأفلام الفرعية.
للاستخدام ، فقط #include <lyra/lyra.hpp>
يمكن إنشاء المحلل اللاحق لخيار واحد مثل هذا:
int width = 0 ;
auto cli = lyra::cli()
| lyra::opt( width, " width " )
[ " -w " ][ " --width " ]
( " How wide should it be? " );يمكنك استخدام هذا المحلل مباشرة مثل هذا:
auto result = cli.parse( { argc, argv } );
if ( !result )
{
std::cerr << " Error in command line: " << result. message () << std::endl;
exit ( 1 );
}
// Everything was ok, width will have a value if supplied on command line.لاحظ أن الاستثناءات لا تستخدم لمعالجة الأخطاء.
يمكنك الجمع بين المحلات من خلال التأليف مع | ، مثله:
int width = 0 ;
std::string name;
bool doIt = false ;
std::string command;
auto cli
= lyra::opt( width, " width " )
[ " -w " ][ " --width " ]
( " How wide should it be? " )
| lyra::opt( name, " name " )
[ " -n " ][ " --name " ]
( " By what name should I be known " )
| lyra::opt( doIt )
[ " -d " ][ " --doit " ]
( " Do the thing " )
| lyra::arg( command, " command " )
( " which command to run " ); يحدد opt الخيارات التي تبدأ باندفاعة قصيرة ( - ) أو طويلة ( -- ). يمكن أن تكون الخيارات هي أخذ الوسيطة (مثل -w 42 ) ، وفي هذه الحالة يأخذ opt وسيطة ثانية -تلميح ، أو أنها أعلام نقية (مثل -d ) ، وفي هذه الحالة ، فإن opt لديها وسيطة واحدة فقط -والتي يجب أن تكون منطقية. يتم توفير أسماء الخيارات في مجموعة واحدة أو أكثر من الأقواس المربعة ، ويمكن توفير سلسلة وصف بين أقواس. الوسيطة الأولى لـ opt هي أي متغير ، عضو محلي ، عالمي ، من أي نوع يمكن تحويله من سلسلة باستخدام std::ostream .
يحدد arg الوسائط غير المرتبطة بالخيارات ، وبالتالي لا يوجد بها أسماء قوس مربعة. وإلا تعمل مثل opt .
يمكن الحصول على سلسلة الاستخدام عن طريق إدخال المحلل في تيار. تم تصميم سلسلة الاستخدام من المعلومات المقدمة.
باعتبارها راحة ، يمكن تحديد خيارات المساعدة القياسية ( -h ، --help و -? ) باستخدام محلل help ، والذي يأخذ فقط منطقية لربطها.
يوجد إصدار من رأس واحد يتم إنشاؤه من الملفات المصدر. يمكنك العثور عليه في data/single_include/lyra/lyra.hpp . بعض التحذيرات لذلك:
إنها ليست الطريقة المفضلة لاستخدام المكتبة.
لم يتم اختباره بدقة.
إنه مخصص لاستخدام حالات مثل برنامج التحويل البرمجي. حيث يسمح بالتجربة الفورية.
دعمها لن يكون أولوية.
ومن ثم يفضلون استخدام مصادر متعددة الملفات العادية في مشاريعك.
لمزيد من المعلومات والوثائق ، راجع موقع الويب.