سؤال

أنا أعمل على DSL في قواعد مايكروسوفت M الجديدة، وتحتاج إلى السماح بالقيم العشرية. لقد حددت عشرية كما

token digits = "0".."9";
token spot = ".";
token decimal = digits+ | digits+ spot digits+ | spot digits+;

يبدو أن العمل، ولكن هل هناك طريقة أفضل؟ انها مجرد شعور وكأنني أفتقد شيئا.

هل كانت مفيدة؟

المحلول

بعد حفر كثيرة وجدت أنه يمكنك استخدام البناء في اللغة. كما في

syntax Cost = Language.Grammar.Decimal

تحتوي لغة "مساحة الاسم" أيضا على بعض البتات المفيدة. كل من language.base و langure.grammar مبنية في IntelliPad.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top