-
Notifications
You must be signed in to change notification settings - Fork 3
TODO
Tehtävää ennen EppaBasic 1.0:n julkaisua:
Henkkuli
- Break ja Continue silmukoihin (Break x mielellään lopettaa x tasoa jne.)
- komento End (lopettaa ohjelman ja sulkee ikkunan)
- komento Restart (käynnistää ohjelman uudestaan)
- Boolean täysveriseksi tyypiksi (True ja False, tulostus)
- vakiot kääntäjään (liittyy yllä olevaan)
- taulukon indeksoinnissa tarkistus, että oikealla välillä
Scintillo
- jos ei ole kirjautunut, täytyy pystyä silti lataamaan esimerkkejä
- koodissa olevasta virheestä täytyy tulla parempi ilmoitus (rivin värittäminen punaisella on liian epäselvä ja ilmoitus ei katoa, vaikka virheen korjaisi)
- uuden koodin aloittamisen ja latauksen pitää varmistaa, haluaako tallentaa vanhan koodin (jos sitä on muokattu)
- jos tallentaminen epäonnistuu, tästä pitää tulla selkeämpi virheilmoitus
- EppaBasic-foorumi
pllk
- standardikirjaston tarkistaminen ja täydentäminen
- kattavampi manuaali, joka komennosta esimerkki
- ohjelmoinnin opas aloittajalle (manuaali ei riitä tähän)
Vanhaa sisältöä
This is a list of stuff that needs to be worked on.
-
Expression optimisation One could add an optimizer before compiler which goes through ast and optimizes constant expression out at the compile time.
-
Expression optimisation One could add support for variables in compiled code. Now everything is first pushed to the stack and then popped out. Temporary values should not go through stack but use variables.
Another possible optimisation would be adding new CompilerExpressionReference-type, which wouldn't save the computed value anywhere but instead return the whole expression when value is to be taken.
These both optimisation should be added via some kind of Compiler*References.
-
Better casting via CompilerReference CompilerReferences know their types, so they should be able to properly cast types to each others. The main problem is with casting doubles to integers. Currently compiler casts them with ((double)|0) which is not accepted by asm.js. It should be done with (~~(double)) syntax.
pllk:n toivelista
tärkeimmät asiat:
-
koodi ei jumiudu, jos DRAWSCREEN puuttuu
-
AND ja OR mahdolliseksi IF-komentoon
-
toimivat merkkijonot (ASCII riittää aluksi), sijoitus on kopiointi, välitys parametrina, merkkijonon palautus funktiosta, merkkijonon merkin muuttaminen (taulukkosyntaksi on ok)
-
toimivat taulukot (kiinteän kokoiset riittävät aluksi), sijoitus on kopiointi, välitys parametrina (kopiointi oletuksena, mutta referenssiä tarvitsee ainakin standardikirjastossa, jotta voi toteuttaa SORT jne.) (palautus funktiosta ei ole niin tärkeää)
-
kuvatyyppi, kuvan lataus ja piirto
-
PRINT mahdollistaa syntaksin: PRINT a, b, c (ei tarvitse tukea omissa aliohjelmissa)
nämäkin olisivat kivoja:
-
taulukot ovat muuttuvan kokoisia
-
merkkijonoissa Unicode
-
sisäänrakennettuna suuret kokonaisluvut