Raku kurss / Regulārās izteiksmes un gramatikas / Gramatikas / Gramatikas, klases un mantošana / Exercises / Būla vērtība ar proto

Risinājums: Būla vērtība ar proto

Šeit ir iespējams risinājums uzdevumam.

Kods

grammar Bool {
    token TOP { <bool> }

    proto token bool {*}
    token bool:sym<true>  { 'true' }
    token bool:sym<false> { 'false' }
}

say Bool.parse('true').defined;
say Bool.parse('false').defined;
say Bool.parse('unknown').defined;

🦋 Atrodiet programmu failā proto-bool.raku.

Izvade

True
True
False

Komentāri

  1. Proto marķierim bool ir divi nosaukti varianti — true un false.

  2. Katra parsēšana izvēlas atbilstošo variantu, tāpēc izdodas gan 'true', gan 'false'. Proto marķieris ir gramatikas kārtīgais veids, kā pateikt «viens no šiem nosauktajiem variantiem».

  3. 'unknown' neatbilst nevienam variantam, tāpēc proto marķierim nav kam nodot vadību un parsēšana neizdodas — False. Proto pieņem tieši tos variantus, ko uzskaitāt, un neko citu.

Kursa navigācija

Būla vērtība ar proto   |   Parsēšanas koks, make un made