Voor een general purpose parser unit ben ik nu bezig met een LR(0) parse table generator die de parse table voor mn LR(0) parser gaat aanleveren. (Ik gebruik geen generators/parsers die beschikbaar zijn omdat mn lexical analyzer nogal uitgebreid is en daardoor bestaande parsers/tablegenerators niet voldoen).
Om de Item List generator te testen gebruik ik de simpele grammatica van: http://www.wikipedia.org/wiki/LR_parser , een goede page waar ook het algoritme voor de LR(0) parse table generation is uitgelegd. Om niet teveel tijd kwijt te zijn aan het checken van andere resultaten dan die op deze page zijn vermeld, wil ik mn algoritme iig gelijk houden aan wat op die page is uitgelegd, echter is zie een rariteit op die page waar volgens mij geen basis voor is:
Bij het genereren van de vervolg item sets op set 0, wordt eerst gekeken naar de terminals die volgen op de dot, en daarna pas naar de non-terminals. In Aho-Sethi-Ullman kon ik ook niets vinden waaruit zal blijken dat men eerst de terminals moet bekijken en daarna de non-terminals, echter deze volgorde heeft wel gevolgen voor de volgorde van de sets en dus voor de uiteindelijke action/goto table. Ik vermoed dat die volgorde niets uitmaakt, maar weet dat niet zeker.
Mijn vraag is dus: maakt het uit of je bij het genereren van vervolgsets eerst begint met de terminals of niet? .
Bvd.
ps: ik ben niet wetenschappelijk bezig met talen en vertalers, dus mocht je links hebben naar wellicht tot op de vezel correct zijnde wetenschappelijke artikelen: bedankt, maar dat kost me teveel tijd om te doorgronden (terwijl de algo's in feite bar simpel zijn, zie de wikipedia pages).
Om de Item List generator te testen gebruik ik de simpele grammatica van: http://www.wikipedia.org/wiki/LR_parser , een goede page waar ook het algoritme voor de LR(0) parse table generation is uitgelegd. Om niet teveel tijd kwijt te zijn aan het checken van andere resultaten dan die op deze page zijn vermeld, wil ik mn algoritme iig gelijk houden aan wat op die page is uitgelegd, echter is zie een rariteit op die page waar volgens mij geen basis voor is:
Bij het genereren van de vervolg item sets op set 0, wordt eerst gekeken naar de terminals die volgen op de dot, en daarna pas naar de non-terminals. In Aho-Sethi-Ullman kon ik ook niets vinden waaruit zal blijken dat men eerst de terminals moet bekijken en daarna de non-terminals, echter deze volgorde heeft wel gevolgen voor de volgorde van de sets en dus voor de uiteindelijke action/goto table. Ik vermoed dat die volgorde niets uitmaakt, maar weet dat niet zeker.
Mijn vraag is dus: maakt het uit of je bij het genereren van vervolgsets eerst begint met de terminals of niet? .
Bvd.
ps: ik ben niet wetenschappelijk bezig met talen en vertalers, dus mocht je links hebben naar wellicht tot op de vezel correct zijnde wetenschappelijke artikelen: bedankt, maar dat kost me teveel tijd om te doorgronden (terwijl de algo's in feite bar simpel zijn, zie de wikipedia pages).

