Cursus Raku / Reguliere expressies en grammatica’s / Grammatica’s / Tokens en regels / Exercises / Een toekenning met spaties
Oplossing: Een toekenning met spaties
Hier is een mogelijke oplossing voor de taak.
Code
grammar Assign {
rule TOP { <key> '=' <value> }
token key { \w+ }
token value { \w+ }
}
say Assign.parse('x = 5').defined;🦋 Je kunt de broncode vinden in het bestand spaced-assignment.raku.
Uitvoer
TrueOpmerkingen
Omdat
TOPeenruleis, staan de spaties in het patroon witruimte om de=in de invoer toe.Dus
'x = 5'wordt ontleed. Met eentokenvoorTOPzou alleen'x=5'matchen.
De witruimte die een rule toestaat is
optioneel, niet verplicht: de betekenisvolle spatie
matcht net zo graag nul spaties als één, dus wordt de vorm
zonder spaties ook ontleed:
say Assign.parse('x=5').defined; # TrueDe rule aanvaardt dus 'x = 5',
'x=5' en zelfs 'x =5' allemaal — flexibiliteit
zonder uit te spellen waar wel of geen spatie mag staan.
Cursusnavigatie
← Een toekenning met spaties | Grammatica’s, klassen en overerving →