toch blij ff gevraagd te hebben, met de code van
Wikipedia: Operator-precedence parser heb ik een goede basis, ff modulo toevoegen.
De c code functie daar is een goed voorbeeld en is anders hoe ik het in eerste instantie bedacht. mijn idee zette alleen extra haakjes om vermenigvuldigen terwijl het c voorbeeld echt met lagen werkt.
Betreft beginner, nee dat ben ik niet en mn parser, ach, nu bezig met versie 3 en nadat ik de if, elseif, else, foreach & while erin had zitten, de for getest. Hij parsed al redelijk snel maar ben er toch achter gekomen om de boel maar naar php te converteren voordat ik hem uitvoer, hij deed namelijk 2msec per { for} iteratie met een variable assignment erin en een if statement met een variable en integer om te breaken. oftewel leuk voor 100 iteraties (200ms) maarja dat doet php toch vele malen sneller...
Waarom ik vraag: ik kon geen zekerheid voor de modulo vinden, daarnaast de logica achter het extra complex maken van wiskundige berekeningen, onderscheid maken hierin, daarnaast is echte wiskunde minstens zo'n 20 jaar geleden geweest en ben nu te weten gekomen dat er onderscheid gemaakt wordt tussen programmeertalen hierin.
ach en daarnaast programmeer ik al best lang en complexe berekeningen is voor mij ook 4 werkgevers terug. En met materie is het bij mij zo, als je er niet echt meer in zit, maar een vermoeden hebt, dan kun je beter even vragen aan de kenners...
Maar waarom noem jij het een lexer (ik noem het Token::all() en heb jij je parser ook op github staan, mag ik een kijkje nemen ?
Wat voor een bron bestanden kan je parser aan, kan die ook overweg met methoden, multiline methoden, assignments, class definities, functie definities ? Ik bedoel daar moet je parser waarschijnlijk ook in groeien...
Zo maak ik gretig gebruik van json, maar ook van variabelen, methode aanroepen in die json, dus parse ik json bestanden, maar ook html, maar in principe tot aan binaire bestanden toe straks.
Nog een tip; indien je in php parsed zou ik het afraden om de token_get_all() functie te gebruiken. Het idee is leuk, je zult waarschijnlijk hetzelfde moeten doen, maar deze functie wijkt waarschijnlijk per php versie af en voordat je al die edge cases gedetecteerd hebt of er bij een versie update (anders wellicht iets kapot kan gaan) zou ik die zelf maken.
[
Voor 178% gewijzigd door
Verwijderd op 29-04-2019 23:42
. Reden: betere reactie ]