K was op zoek naar info over Stack-based Parsen en dit is wat ik hier op het forum vond.
ik stoote op de vraag : Hoe 'parse' je door je string heen?
ik had het al geprobeerd met preg_match maar dan krijg je alleen de eerste en heb je dus een probleempie als je er meerdere matches in je string heb zitten.
en hoe houd je je parsed data bij?!?
Zit er al een tijdje mee te dubben. heb ook al op googel gezocht en heb door de source van yapter gespit, maar daar werd ik niet veel wijzer van. ik begin er een beetje gek van te worden.
hopelijk kunnen jullie me helpen
dus ben ik aan de gang gegaan, maar al vrij snel liep ik vastEen stack is een LIFO collectie. LIFO staat voor 'Last In First Out'.
Een andere vorm van collecties is een FIFO stucture (First In First Out), bijvoorbeeld Queues.
Een voorbeeld van een stack is een array in PHP waar je alleen een item afhaalt als dat als laatste is toegevoegd.
Met stack-based parsen wordt dan ook een manier van parsen bedoeld waarbij je gebruik maakt van een stack. Doorgaans wordt het subject (de string) van begin tot eind doorlopen en worden in de stack states opgeslagen.
Wanneer je bijvoorbeeld een openings- tegenkomt sla je die op in de stack (met een 'push' method). Hierna kun je natuurlijk alleen nieuwe openingstags tegenkomen, of een sluitings- tag. Iedere openingstag push je weer op de stack en bij een sluitingstag haal je weer een element van de stack af (en als het goed is, is dat altijd het bijbehorende element, je haalt ze weer in omgekeerde volgorde eraf). Een item van de stack halen doe je met een 'pop' method.
Heb je heel je string doorlopen, dan moet je stack weer leeg zijn.
De loop is dan de engine van je parser en de stack gebruik je om de state in op te slaan.
Je kunt zelf een LIFO stucture ontwerpen, maar je kunt ook gewoon een PHP array nemen en je bij het gebruik daarvan aan de regels houden die bij
een stack horen.

ik stoote op de vraag : Hoe 'parse' je door je string heen?
ik had het al geprobeerd met preg_match maar dan krijg je alleen de eerste en heb je dus een probleempie als je er meerdere matches in je string heb zitten.
en hoe houd je je parsed data bij?!?
Zit er al een tijdje mee te dubben. heb ook al op googel gezocht en heb door de source van yapter gespit, maar daar werd ik niet veel wijzer van. ik begin er een beetje gek van te worden.

hopelijk kunnen jullie me helpen