Dobry podvecer vo spolok prajem. Ako uz nazov naznacuje, chcem sa opytat ci neveiete (nestretli ste sa, nepracujete s(na), ...) o nejakej peknej kniznici pre javu, ktora by zobrala vstup: String, sparsovala a vytvorila k nemu comand-y (interface) a ich argumenty. Samozrejme commandy by som si napisal sam. Jednoducho by som napisal vstup, v zmysle syntaxe danej konzoly (jazyka, ..., a neviem coho ineho), asi nejako takto: "cmd arg arg arg cmd2 arg cmd3 cmd4 arg arg" Ono by sa to sparsovalo a vyplulo by mi to nieco taketo -> output = cmd(arg, arg, arg, cmd2(arg, cmd3(cmd4.execute(), arg).execute() ).execute() ).execute(). Alebo by mi to vytvorilo strom z tych commandov a argumentov. Nieco ako funguje v linuxe shell (Nemusi sa v tom zrovna dat programovat, len aby to dokazalo sparsovat takyto string). A este by bolo dobre keby to vedelo zvalidovat ten vstup a pripadne vyhodit nejaku chybovu hlasku s objektom Tu (oznacujucim poziciu v stringu, moze to byt aj int).
Fórum › Java
Console in java
Java REPL: http://www.javarepl.com/console.html
aha.
muzes se podivat na gnu getopt: https://github.com/…/java-getopt - parsuje to argumenty prikazove radky.
pokud si chces napsat vlastni repl / interpreter, tak ti staci v podstate switch uvnitr while :)
#4 goddard
No to uz vyzera lepsie, ale neprecital som este kod.
Ja som si to skor cele predstavoval, ze budem mat parser nejakej lajny a Mapu prikazov. Lajna sa mi rozseka podla nejakych pravidiel a ulozi do stacku a prikaz bude vyzerat nejak takto:
public interface Command{
public Argument execute(Collection<Argument> args);
}
Cize on popne nieco zo stacku pozre sa do mapy a zhodnoti je to prikaz alebo argument. Ak argument nejkym sposobom sa vytvori Argument a vlozi sa do kolekcie, ak narazi na prikaz pozre sa kolko ma mat argumentov a z kolekcie sa vyberu. Argumenty sa vytiahnu a spracuju prikazom a ulozia sa naspat do kolekcie (mozno Dequeue by bola dobra volba, ale ani linked list by nebol na skodu). A na konci by my zostal iba 1 argument ako vysledok, alebo by mito hodilo vynimku do ksichtu. Chcel som to nejako takto aby mal uzivatel aspon aku taku moznost si vytvorit vlastny Command. Dam priklad (toto nechcem, ale ako priklad to posluzi): createFunction f a b minus a plus b multiply 2 a. A on by isiel 2 -> a ->2*a -> b + 2*a -> a - (b+2*a) -> map.put("f", a - (b+2*a)). Toto je len priklad v na toto by mi stacila symja (alebo nieco podobne), ja chcem nieco taketo, chcem len nieco viac abstraktne ako switch. Ale pozrem si ten odkaz dokladnejsie, vyzera to dobre, dakujem.
Dakujem uz som nieco spachal, co vyhovuje mojim predstavam. Keby som vedel svoje heslo, oznacil by som vlakno za vyriesen a dal by som +1 kedze to bolo ciastocnou inspiraciou ako aj rozhovor, k rieseniu mojho problemu.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Console.WriteLine — založil funkce
Console v Eclipse — založil sikus
Nastavení console — založil jisla
Console i Form — založil rybar73
Nastavení Console icon — založil Mutagen
Moderátoři diskuze