Zdar. Nevie niekto kde su cvika z tohto predmetu, teda popis toho zadania co mame na cely semester ?
Quote from: jaros51 on 03.03.2009, 21:21:35
Zdar. Nevie niekto kde su cvika z tohto predmetu, teda popis toho zadania co mame na cely semester ?
zeby v moodli?
Quote from: ywetka on 03.03.2009, 21:23:13
Quote from: jaros51 on 03.03.2009, 21:21:35
Zdar. Nevie niekto kde su cvika z tohto predmetu, teda popis toho zadania co mame na cely semester ?
zeby v moodli?
No len keby ten kod bol. :(
magsicka
no toto aj ja viem a ten predmet ani nemam :P
Quote from: ywetka on 03.03.2009, 21:32:04
magsicka
no toto aj ja viem a ten predmet ani nemam :P
pwn :D
http://img8.imageshack.us/my.php?image=wasserman.jpg (http://img8.imageshack.us/my.php?image=wasserman.jpg)
Quote from: ywetka on 03.03.2009, 21:32:04
magsicka
no toto aj ja viem a ten predmet ani nemam :P
Gratulujem :) a dikes.
Quote from: Bc. nemtom on 03.03.2009, 21:48:25
http://img8.imageshack.us/my.php?image=wasserman.jpg (http://img8.imageshack.us/my.php?image=wasserman.jpg)
:D este ze mam s porubanom :D
Quote from: Bc. nemtom on 03.03.2009, 21:48:25
http://img8.imageshack.us/my.php?image=wasserman.jpg (http://img8.imageshack.us/my.php?image=wasserman.jpg)
to je fakt on? :-O inak ako on vyzera vobec? odfotte ho dakto :D
jj pohodak, ale stop lebo to zmazem
Quote from: ywetka on 03.03.2009, 21:32:04
magsicka
no toto aj ja viem a ten predmet ani nemam :P
ta ty co nevies? :P
spat k cvikam, ako implementujete to rozhranie a potom cely ten crud system, ma to byt v povodnom adresari? alebo to ma ficat inde ? Piste svoje postrehy pls.
Quote from: jaros51 on 04.03.2009, 19:28:59
spat k cvikam, ako implementujete to rozhranie a potom cely ten crud system, ma to byt v povodnom adresari? alebo to ma ficat inde ? Piste svoje postrehy pls.
dobra otazka. Ale co ma byt vlastne v tom CRUD?? (create update delete, a este nieco? a kde su vlastne zoznami objektov? ci nejaky entity manager tam dat ci what?)
zoznam objektov je trieda model
Quote from: Bc. nemtom on 04.03.2009, 22:20:21
zoznam objektov je trieda model
Myslel som uz v generovanom kode
Quote from: Raleon on 04.03.2009, 22:51:27
Quote from: Bc. nemtom on 04.03.2009, 22:20:21
zoznam objektov je trieda model
Myslel som uz v generovanom kode
No podla mna to uz ti odpovie databaza s riadkami danej tabulke.
kto vie co je toto za chybu
Exception in thread "main" java.lang.NoClassDefFoundError: sk/tuke/magsa/generator/DatabaseScriptGenerator
hlasi to na riadku
new DatabaseScriptGenerator(model).generate();
edit: viac info na www.net.in-web.sk/mag.jpg (http://www.net.in-web.sk/mag.jpg)
kto somnou po icq prediskutuje 3cv? mam problemy :P
ozvi sa...
Čo má byť v implementácii rozhrania? Dotazy na DB alebo čo? Nejak veľmi stručne je to napísané v moodli :)
Quote from: Frankie on 08.03.2009, 00:48:11
Čo má byť v implementácii rozhrania? Dotazy na DB alebo čo? Nejak veľmi stručne je to napísané v moodli :)
Ma tam byt implementacia CRUD operacii, je na tebe ako to spravis, ci napises sql queries, pouzijes persistence, alebo daco ine..
Quote from: kane77 on 08.03.2009, 18:17:02
Quote from: Frankie on 08.03.2009, 00:48:11
Čo má byť v implementácii rozhrania? Dotazy na DB alebo čo? Nejak veľmi stručne je to napísané v moodli :)
Ma tam byt implementacia CRUD operacii, je na tebe ako to spravis, ci napises sql queries, pouzijes persistence, alebo daco ine..
Ok, dík.
Quote from: MKI on 07.03.2009, 20:04:40
kto vie co je toto za chybu
Exception in thread "main" java.lang.NoClassDefFoundError: sk/tuke/magsa/generator/DatabaseScriptGenerator
hlasi to na riadku
new DatabaseScriptGenerator(model).generate();
edit: viac info na www.net.in-web.sk/mag.jpg (http://www.net.in-web.sk/mag.jpg)
ja to mam takto:
LineParser lp=new LineParser();
Model model=null;
try {
model=lp.parseDir(new File(System.getProperty("user.dir")+"\\src\\entities\\"));
DatabaseScriptGenerator dsg = new DatabaseScriptGenerator(model);
dsg.generate();
} catch (ParserException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (GeneratorException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
;)
Caute ludia, ako robite ten Regex? Date mu nejaky String a pri teste kontrolujete pomocou tohto Stringu ako patternu ci sedi so vstupom? Ci ako? :embarassed: ???
Inac, Pondelok rano Poruban asi nedojde, taze zbytocne tam ist , keby ste aj chceli...
nie asi, ale urcite ;)
Quote from: mishelka on 22.03.2009, 15:44:51
Caute ludia, ako robite ten Regex? Date mu nejaky String a pri teste kontrolujete pomocou tohto Stringu ako patternu ci sedi so vstupom? Ci ako? :embarassed: ???
protected Regex regex(Pattern regex) {
return new Regex(regex);
}
mno a potom volane: regex(Pattern.compile("[_$a-zA-Z][$_a-zA-Z0-9]*"))
_a-zA-Z0-9 mozes napisat ako \w, informatik bakalar :D
Quote from: Bc. nemtom on 23.03.2009, 05:00:36
_a-zA-Z0-9 mozes napisat ako \w, informatik bakalar :D
Quote from: Bc. nemtom on 23.03.2009, 05:00:36
_a-zA-Z0-9 mozes napisat ako \w, informatik bakalar :D
I did it myyyyyy way
ktomi zrobi druhu cast v c++ ? za prachy :D
Quote from: Bc.Veduci on 23.03.2009, 02:22:15
Quote from: mishelka on 22.03.2009, 15:44:51
Caute ludia, ako robite ten Regex? Date mu nejaky String a pri teste kontrolujete pomocou tohto Stringu ako patternu ci sedi so vstupom? Ci ako? :embarassed: ???
protected Regex regex(Pattern regex) {
return new Regex(regex);
}
mno a potom volane: regex(Pattern.compile("[_$a-zA-Z][$_a-zA-Z0-9]*"))
sak ale toto mam, ne toto som myslela.. az toto dalsie, ked to davas uz do tej metody test.. cize normalne take blaboly tam napises do ej triedy DefinedConstraints ze regex("[0-9]*[A-Z][A-Z]") a potom v tej metode test dam len "blabla".match("[0-9]*[A-Z][A-Z]")?? Neviem ci to len mne tak kruto jednoducho pripada, alebo to tak fakt ma byt :D
A este taka dalsia otazocka.. ako kontrolujete v mysql databaze regex? Alebo dlzku Stringu? Alebo rozsah cisiel? Prosim, ak to robite, hodte mi tu dakto priklad databazoveho skriptu :embarassed:, diky :hug:
http://dev.mysql.com/doc/refman/5.0/en/index.html (http://dev.mysql.com/doc/refman/5.0/en/index.html) enjoy :P
to len ja som taka blba, ze pomaham kazdemu, ci co? bu
:) keby som uz robil tie cvika tak ti helfnem, ale odkedy bola kontrola som to este ani nevidel, rusny weekend bude :D
ufff, fajne to mas, fajne.. kebyze potrebujes daco helfnut, tak sa kludne ozvi na icq, ak tu budem. Ale nemal by si mat problem, je to tak polopatisticky napisane, ze az nechapem :o. Kazdopadne dik aspon za link, snad tam daco najdem, i ked to moc neplanujem hladat
:) dufam ze nebude treba helfovat :P uvidime
moreeee vsak zrobte mi niekto to zadanicko, nooo nebudte taky ony
no ta ked to chces v C++? Nemam sajnu jak to spravit v tom :D :P
ktory kral koderov/kralovna koderiek pouzil/a v niektorom template take daco:
#include( "one.txt" )
to kde si nasiel? :o
citujem Porubana dneska: "vam uz rovno 5 bodov pisem, bo vy viem ze mate" :emot-LMAO:
Quote from: Bc.Veduci on 30.03.2009, 21:51:29
ktory kral koderov/kralovna koderiek pouzil/a v niektorom template take daco:
#include( "one.txt" )
ja mam vela #include ale vsetky su bud #include <something> alebo #include "something.h"
Quote from: mishelka on 31.03.2009, 01:15:42
to kde si nasiel? :o
citujem Porubana dneska: "vam uz rovno 5 bodov pisem, bo vy viem ze mate" :emot-LMAO:
The #include script element allows the template designer to import a local file, which is then inserted into the location where the #include directive is defined. The contents of the file are not rendered through the template engine. For security reasons, the file to be included may only be under TEMPLATE_ROOT.
len som zatial nezistil, kde je ten TEMPLATE_ROOT ... idem goooooglit ;)
#include( "one.txt" )
vie mi niekto povedat, ako to bude so zapoctom u porubana? ... kedze sam vie, ze kto to robil sam a kto len sposobom copy - paste
Quote from: Bc.Veduci on 31.03.2009, 19:24:42
Quote from: mishelka on 31.03.2009, 01:15:42
to kde si nasiel? :o
citujem Porubana dneska: "vam uz rovno 5 bodov pisem, bo vy viem ze mate" :emot-LMAO:
The #include script element allows the template designer to import a local file, which is then inserted into the location where the #include directive is defined. The contents of the file are not rendered through the template engine. For security reasons, the file to be included may only be under TEMPLATE_ROOT.
len som zatial nezistil, kde je ten TEMPLATE_ROOT ... idem goooooglit ;)
#include( "one.txt" )
ta good luck v tomto ;) ked sa to to podari zistit daj vediet ja som sa na to nakoniec vykaslal a pouzil direktivu #evaluate(<String>) a zrobil si utility metodu co mi vrati retazec zo suboru.
cize uvitam ak sa to da elegantnejsie :)
Quote from: rolin21 on 05.04.2009, 19:54:31
vie mi niekto povedat, ako to bude so zapoctom u porubana? ... kedze sam vie, ze kto to robil sam a kto len sposobom copy - paste
ten co nerobi sam bude "zjedeny aj s hovnami" ... ehm.. nech nesom vulgarny: "skonzumovany aj s exkrementami" ;)
Quote from: Bc.Veduci on 06.04.2009, 04:36:58
Quote from: rolin21 on 05.04.2009, 19:54:31
vie mi niekto povedat, ako to bude so zapoctom u porubana? ... kedze sam vie, ze kto to robil sam a kto len sposobom copy - paste
ten co nerobi sam bude "zjedeny aj s hovnami" ... ehm.. nech nesom vulgarny: "skonzumovany aj s exkrementami" ;)
no vela som sa dozvedel :)
kazdy podla zasluh :D
podla mna ked prides a ukazes ze sa do toho rozumies (inymi slovami, ze si to robil - ci uz sam alebo nie, ale rozumies sa tomu ako keby si to robil sam :D ) tak mas... mozno nejake body za omeskanie sa budu strhavat....
poruben to bere pribliz vazne, neviem naco sa hra typek
to bola podla mna len momentalna zla nalada a nejako potom uz sa mu nechcelo menit ten system...
more vy kde date databazu ? alebo ako mu mam ukazat ze to mam funkcne ? to tam v skole si budem instalovat mySQL ?
no uz vidim to cviko :) poviem ze mam oracle ha? co zrobi ? kym nainstaluje tam na tych pc-ckach oracle ta mu skonci obciansky moe
Úloha: V triede UIProcessor implementujte metódu void validate(), ktorej úlohou je validácia opisu UI obsiahnutom vo vstupnom XML dokumente.
Poznámka: Úloha tejto validačnej metódy je analogická ku úlohe metódy void validate() triedy ConstraintBuilder.
kto stym vie helpnut lebo ja constrintbuidler metodu validate nemam nevime ci som ju prekoscil ci co vy ju tam mate ?
Quote from: MKI on 19.04.2009, 03:41:31
lebo ja constrintbuidler metodu validate nemam nevime ci som ju prekoscil ci co vy ju tam mate ?
ani ja .. a zatial som validate() neriesil
... aaaa nemal dakto problem pri schemagen, ze sa mu to stazovalo, ze nevie najst triedu Column??
Quote from: MKI on 19.04.2009, 03:41:31
Úloha: V triede UIProcessor implementujte metódu void validate(), ktorej úlohou je validácia opisu UI obsiahnutom vo vstupnom XML dokumente.
Poznámka: Úloha tejto validačnej metódy je analogická ku úlohe metódy void validate() triedy ConstraintBuilder.
kto stym vie helpnut lebo ja constrintbuidler metodu validate nemam nevime ci som ju prekoscil ci co vy ju tam mate ?
ano je pravda ze tam metoda validate() nieje :) ale podstatou tejto metody ma byt napriklad validovanie entityName v Dialog ci vobec taka entita existuje potom napr. validovanie ci v Componente propertyName je nazov existujucej property atd... (zvysok nechavam na originalite citatela :))
a ako veduci pisal zatial sa tymto netrap pridu ine veci :) a validaciu poriesis potom
Quote from: Bc.Veduci on 19.04.2009, 04:46:25
... aaaa nemal dakto problem pri schemagen, ze sa mu to stazovalo, ze nevie najst triedu Column??
schemagen.exe -cp tools.jar src\sk\tuke\magsa\metamodel\ui\*.java
Mal niekto troblemy s tymi anotaciami ?
mne furt podciarkne
@XmlTransient
ze nemoze byt aplikovany na taky typ deklaracie.
hoci to dam tam kde podla ulohy treba .
Quote from: Raleon on 19.04.2009, 06:47:40
Mal niekto troblemy s tymi anotaciami ?
mne furt podciarkne
@XmlTransient
ze nemoze byt aplikovany na taky typ deklaracie.
hoci to dam tam kde podla ulohy treba .
@Retention(value=RUNTIME) @Target(value={FIELD,METHOD,TYPE}) public @interface XmlTransient
cize musi to ist na triedy, metody a fieldy.
cudne...
u mna hlasi chybu aj v kode inych...
u inych moj kod je ok.
Milujem netbeans :hammer:
ta skus checknut aku verziu jdk mas a take srandy (vies jak to ze to ide u inych moze znamenat ze maju inu konfiguraciu systemu ine jdk a pod)
napr v jave EE 5 ma @XmlTransient @Target(value={FIELD,METHOD})
no v java SE 6 ma @XmlTransient @Target(value={FIELD,METHOD,TYPE})
by som odporucil si pozriet presne deklaraciu tej anotacie @XmlTransient (v NB ctrl+click nad @XmlTransient elemente v kode )
a ked ani to nepomoze ta moze to byt chyba v NB samotnom (potom uz len indicky sposob turn on/off) :)
kto mi posle vsetky vpracovane ulohy? budem jeho dlznikom
a cim platis? naturalie?
zenam hej, chlapom pivo
aby si zenam neostal len visiet ;)
:D nemaj boj
Quote from: BCAA on 19.04.2009, 23:07:08
ta skus checknut aku verziu jdk mas a take srandy (vies jak to ze to ide u inych moze znamenat ze maju inu konfiguraciu systemu ine jdk a pod)
napr v jave EE 5 ma @XmlTransient @Target(value={FIELD,METHOD})
no v java SE 6 ma @XmlTransient @Target(value={FIELD,METHOD,TYPE})
by som odporucil si pozriet presne deklaraciu tej anotacie @XmlTransient (v NB ctrl+click nad @XmlTransient elemente v kode )
a ked ani to nepomoze ta moze to byt chyba v NB samotnom (potom uz len indicky sposob turn on/off) :)
dpc fakt :(
diky
to UI ako treba generovat? mam si vytvorit nejaky class na to abo da sa to dajak vyrobit s velocity? ako to robite? more ja som javalama :D
uz to mam, dik za odpovede ;)
riesil uz niekto 10. ulohu (tie veci s @Identifier a @References) ?
treba nabuduci tyzden magsu alebo len 13ty ?
o co kua ide v tej poslednej ulohe ... sak tam v db napriklad neviem jaky je ten vztah medzi entitami (len viem, ze je tam reference) ... ci 1:N abo M:N ... more ta jak potom v db .. len fk pridat do jednej .... abo pridat este linkovaciu tabulku .. haaaa?
nevie niekto nahodou kde je problem ak sa mi pri spusteni webovej aplikacie v prehliadaci nic neotvori (stranka nenajdena) a glassfish nic nevypisuje? please, uz neviem co s tym :'(
EDIT: uz som na to prisla (dufam), idem vsetko preinstalovat :buttrock:
EDIT2: hmmm... nepomohlo.. ale na XP to ide.. na Viste nie, v oboch prehliadacoch (ff, ie).. ma niekto podobny problem?
EDIT3: ok, uz to ide, vyriesili sme to na magse s porubanom a radom. Problem bol v kompatibilite Eset smart security s Win Hlista, bolo treba zmenit jeden konfiguracny subor.. Keby mal niekto podobny problem...
KDE NAJDEM DAJAKE MATERIALI NA SKUSKU ??? z COHO SA MOZEM UCIT ????
http://people.tuke.sk/jan.kollar/MGSA/ (http://people.tuke.sk/jan.kollar/MGSA/)
Quote from: mishelka on 04.05.2009, 15:55:55
http://people.tuke.sk/jan.kollar/MGSA/ (http://people.tuke.sk/jan.kollar/MGSA/)
god bless your soul little girl
Nehovoril on na zaciatku, ze skuska bude formou testu v moodli? To, co je na jeho stranke mi nepripada ako test...
aka je sanca ze na poslednej prednaske bude jedina prezencka ?
more ja nedokazem zrobit to zadanie :(
Quote from: psicho on 05.05.2009, 04:13:56
aka je sanca ze na poslednej prednaske bude jedina prezencka ?
ked je sanca, ze za jednu ucast dostanem 9b., tak to uz skusim prist ;)
asi tiez dojdem bo biedne stojim s zadanim :( kedy a kdeje ta prednaska ? :)
kua rozmyslam ze aj ja dojdem a mu oznamim ze ten stvrtok mi nevyhovuje :D
Quote from: Bc. nemtom on 05.05.2009, 05:33:28
kua rozmyslam ze aj ja dojdem a mu oznamim ze ten stvrtok mi nevyhovuje :D
sak to nebude jediny termin ... ci?
ja som tak pocul ze kollar by chcel aby kazdy siel na ten aby nemusel robit dalsie, zial bude musiet :D
podla mna to bude cele take, ze ak sa len trosku budes chytat, tak prejdes..
Quote from: mishelka on 05.05.2009, 15:12:46
podla mna to bude cele take, ze ak sa len trosku budes chytat, tak prejdes..
ja nie preto vravim ze spravi dalsi ze by som nepresiel, ale preto ze budem mimo SR
Quote from: Bc. nemtom on 05.05.2009, 17:53:15
Quote from: mishelka on 05.05.2009, 15:12:46
podla mna to bude cele take, ze ak sa len trosku budes chytat, tak prejdes..
ja nie preto vravim ze spravi dalsi ze by som nepresiel, ale preto ze budem mimo SR
lebo nemtom pasuje drogy medzi columbiou a slovenskom
http://www.cassofest.sk/ (http://www.cassofest.sk/) ... no kto mu tam pride 14. ?
no ja som xel ist na ten cassofest silno, ale ked nejakym zazrakom pondelok dostanem zapocet z magsi ta radsej pojdem na skusku z magsi :D bo mi drbe v lebeni :D
Quote from: psicho on 05.05.2009, 20:15:52
no ja som xel ist na ten cassofest silno, ale ked nejakym zazrakom pondelok dostanem zapocet z magsi ta radsej pojdem na skusku z magsi :D bo mi drbe v lebeni :D
:D
WUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, LET's PANICCCCCCCCCC WUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
more o com je 10. cviko? na kkt tam kktiny miesaju, porubsirokeen si chce masirovat ego ze nam kaze citat svoju pracu? ci co? WTF
DO THE PANIC, WUAAAAAAAAAAAAAAAAAA
mozem si nadefinovat vlastnu syntax pre ten model alebo musim pouzit tu jeblu verziu ktora je uvedena tam na moodli ?
Quote from: psicho on 05.05.2009, 18:15:36
Quote from: Bc. nemtom on 05.05.2009, 17:53:15
Quote from: mishelka on 05.05.2009, 15:12:46
podla mna to bude cele take, ze ak sa len trosku budes chytat, tak prejdes..
ja nie preto vravim ze spravi dalsi ze by som nepresiel, ale preto ze budem mimo SR
lebo nemtom pasuje drogy medzi columbiou a slovenskom
ta ked uz nemtom do kolumbie pojde ta nech mi donesie magnetku ;) pls
ak nebudu mat prasaciu chripku, donesiem ti ju
Quote from: Bc. nemtom on 05.05.2009, 21:38:26
WUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, LET's PANICCCCCCCCCC WUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
more o com je 10. cviko? na kkt tam kktiny miesaju, porubsirokeen si chce masirovat ego ze nam kaze citat svoju pracu? ci co? WTF
DO THE PANIC, WUAAAAAAAAAAAAAAAAAA
10. je v poho .... posledne je cool, bo neviem presne jak to myslia :(
ja ani 10, davaj het na icq povedz mi, dik
no a teraz ma naucte ako sa pocitaju tie priklady, dikes
pisal dakto na prednaske? vie sa podelit o postrehy? :)
:-*
kto mi povie co mam robit v 10. cviku a ako to mam robit?
Quote from: eminkaa on 06.05.2009, 20:00:29
potom ti poslem
eminkaa vedela by si, prosim ta, naskenovat tie priklady z dnesnej prednasok a zavesila by si to niekde na web? ... vela ludi by ti bolo velmii vdacnych :) ... dakujem
no kto tu hodi nejaky tutorial na to dvanste cviko bo skacem z okna asi :D
moze rovno aj na 10, 11
To tu akoze vsetci maju 9tku spravenu?
kto mi vysvetli ako spravit 10. cviko? ale ziadne omacky ale priamo step by step, nemam cas lustit hadanky :D
Quote from: Bc. nemtom on 10.05.2009, 16:53:36
kto mi vysvetli ako spravit 10. cviko? ale ziadne omacky ale priamo step by step, nemam cas lustit hadanky :D
snad ti napomoze cast mojej komunikaci so spoluziakom, ktory tomu tiez nie velmi rozumel:
startovaci symbol je Model
cize pojdes to triedy model a do konstruktora das @Range(minOccurs =1), kedze v ebnf je zapisane entity+ a to vyjadruje, ze model musi obsahovat aspon jednu entitu
tzn. ze konstruktor Model musi mat pred Entity[] entities anotaciu @Range(minOccurs = 1)
model by bol vyrieseny a ides hlbsie, kedze parametrom modelu je objekt typu Entity, tak ides do tej triedy
a teraz vidis, ze v ebnf je Entity rozpisana ako ako 'entity' <NAME> ...
to znamena ze pred konstruktor das anotaciu before a ako parameter je das ENTITY (ked si blizsie pozries ten subor package-info.java, tak tam su definovane lexikalne jednotky a pod tokenom ENTITY sa skryva entity)
a teraz v konstruktori prvy parameter je name, cize to uz bude @Token("NAME")
a potom ide 1 a viac properties
cize ked pozries ebnf, tak tam najprv vidis {
cize pred Property[] properties das @Before("LBR") a zaroven aj @After("RBR"), lebo zatvrokami koncia aj definovanie entity v ebnf
a este tam das @Range(minOccurs = 1), lebo entita musi mat aspon jednu property podla ebnf
Snad by ti to uz malo byt jasne. Teraz uvidis vyhodu vyuzitia tohto generatora oproti vlastnemu krkolomnemu parseru, ktory sme robili na zaciatku ;-)
Ked to budes mat cele, tak pozri subor grammar.ebnf a mal byt taky isty ako je v tom 10. cviku (niektore zatvorky si mozes odmysliet v tej vygenerovanej gramatike) a este to co je na stranke ako Entity+ budes mat vo svojej gramatike ako (Entity (Entity)*). Potom uz len staci 2-krat skompilovat a nasledne spustit a nezabudni pridat do konstruktora vytvorenie toho parsera ako je v 5. tej ulohe.
thx, kuknem na to a ked to pojde podakujem zas :P zatial mozes hladat komunikaciu ohladom dalsieho cvika :D
ta ja som kkt z toho :D kto mi spravi? :D
Quote from: paly-sk on 10.05.2009, 18:09:32
startovaci symbol je Model
cize pojdes to triedy model a do konstruktora das @Range(minOccurs =1), kedze v ebnf je zapisane entity+ a to vyjadruje, ze model musi obsahovat aspon jednu entitu
tzn. ze konstruktor Model musi mat pred Entity[] entities anotaciu @Range(minOccurs = 1)
model by bol vyrieseny a ides hlbsie, kedze parametrom modelu je objekt typu Entity, tak ides do tej triedy
a teraz vidis, ze v ebnf je Entity rozpisana ako ako 'entity' <NAME> ...
to znamena ze pred konstruktor das anotaciu before a ako parameter je das ENTITY (ked si blizsie pozries ten subor package-info.java, tak tam su definovane lexikalne jednotky a pod tokenom ENTITY sa skryva entity)
a teraz v konstruktori prvy parameter je name, cize to uz bude @Token("NAME")
a potom ide 1 a viac properties
cize ked pozries ebnf, tak tam najprv vidis {
cize pred Property[] properties das @Before("LBR") a zaroven aj @After("RBR"), lebo zatvrokami koncia aj definovanie entity v ebnf
a este tam das @Range(minOccurs = 1), lebo entita musi mat aspon jednu property podla ebnf
Snad by ti to uz malo byt jasne. Teraz uvidis vyhodu vyuzitia tohto generatora oproti vlastnemu krkolomnemu parseru, ktory sme robili na zaciatku ;-)
Ked to budes mat cele, tak pozri subor grammar.ebnf a mal byt taky isty ako je v tom 10. cviku (niektore zatvorky si mozes odmysliet v tej vygenerovanej gramatike) a este to co je na stranke ako Entity+ budes mat vo svojej gramatike ako (Entity (Entity)*). Potom uz len staci 2-krat skompilovat a nasledne spustit a nezabudni pridat do konstruktora vytvorenie toho parsera ako je v 5. tej ulohe.
Hmm. diky, Tebou popisana cast aj ide.
Ale ako dalej annotovat property, atd.? bo uz tam mi netbeans neakceptuje tie tokeny, before alebo after, ...
public Property(
@Token("NAME") String name,
@Before("COLON") Type type,
@Separator("COMMA") Constraint[] constraints) {
...
}
a zaroven treba anotavat aj enumeracny typ:
public enum Type {
@Token("INTEGER") INTEGER,
@Token("REAL") REAL,
@Token("STRING") STRING;
}
ako zistim ze to mam dobre?
sk.tuke.magsa.parserext.javacc.Parser mate tam ten parser? lebo ja ne
Quote from: paly-sk on 10.05.2009, 22:02:13
public Property(
@Token("NAME") String name,
@Before("COLON") Type type,
@Separator("COMMA") Constraint[] constraints) {
...
}
a zaroven treba anotavat aj enumeracny typ:
public enum Type {
@Token("INTEGER") INTEGER,
@Token("REAL") REAL,
@Token("STRING") STRING;
}
Na token name pri property mi hodi netbeans chybu:
Incompatible types
found: org.javacc.parser.Token
required: java.lang.annotation.Annotation
a tak isto pri enumeracii :(
Quote from: Bc. nemtom on 10.05.2009, 22:10:25
ako zistim ze to mam dobre?
pozries si subor grammar.ebnf a porovnas ho s tym, co je v 10. cviku
Quote from: Bc. nemtom on 10.05.2009, 22:15:40
sk.tuke.magsa.parserext.javacc.Parser mate tam ten parser? lebo ja ne
ten parser ti nevygenerovalo, lebo mas nejaku chybu. ked si pozries ten stack trace pri exception, tak tam zistis, ze kde je chyba
Quote from: Raleon on 10.05.2009, 22:22:17
Na token name pri property mi hodi netbeans chybu:
Incompatible types
found: org.javacc.parser.Token
required: java.lang.annotation.Annotation
a tak isto pri enumeracii :(
oznacil si druhy konstruktor anotaciou @Exclude?
Quote from: paly-sk on 10.05.2009, 22:31:39
Quote from: Raleon on 10.05.2009, 22:22:17
Na token name pri property mi hodi netbeans chybu:
Incompatible types
found: org.javacc.parser.Token
required: java.lang.annotation.Annotation
a tak isto pri enumeracii :(
oznacil si druhy konstruktor anotaciou @Exclude?
ano. Inak i to da do ebnf s |...
zaujimave, ze co vypluje ten onen, tak to vyzera takto ::
Entity ::= (<ENTITY> <NAME> (<LBR> (Property (Property)*) <RBR>))
Length ::= (<MIN_LENGTH> <MAX_LENGTH>)
Model ::= (Entity (Entity)*)
Property ::= (<NAME> (<COLON> Type) ((Constraint ((<COMMA> Constraint))*))?)
(to je len cast z toho / nemm tam normalne dvojbodku, ale tak blbo ze colon, atd)
Tu je kod property:
public class Property {
private final String name;
private Constraint[] constraints;
public Property(@Token("NAME") String name ,@Before("COLON") Type type, @Separator("COMMA") Constraint[] constraints)
{
this.name=name;
this.type=type;
this.constraints=constraints;
}
@Exclude
public Property(String name, Type type) {
this.name = name;
this.type = type;
}
public Constraint[] getConstraints() {
return constraints;
}
public void setConstraints(Constraint[] constraints) {
this.constraints = constraints;
}
public enum Type {
@Token("INTEGER") INTEGER, @Token("REAL") REAL, @Token("STRING") STRING;
}
private final Type type;
public String getName() {
return name;
}
public Type getType() {
return type;
}
public <T extends Constraint> T getConstraint(Class<T> clazz) {
if (constraints==null) return null;
for (Constraint c : constraints) {
if (c.getClass().getSimpleName().compareTo(clazz.getSimpleName()) == 0) {
return (T) c;
}
}
return null;
}
public boolean hasConstraint(Class<? extends Constraint> clazz) {
if (constraints==null) return false;
for (Constraint c : constraints) {
if (c.getClass().getSimpleName().compareTo(clazz.getSimpleName()) == 0) {
return true;
}
}
return false;
}
@Override
public String toString() {
if (constraints != null) {
return name + Arrays.asList(constraints);
} else {
return name;
}
}
}
Pri Clean and build vypise toto:
init:
deps-clean:
Deleting directory E:\Thomass\Programming\Java\mags\build
clean:
init:
deps-jar:
Created dir: E:\Thomass\Programming\Java\mags\build\classes
Compiling 40 source files to E:\Thomass\Programming\Java\mags\build\classes
E:\Thomass\Programming\Java\mags\src\sk\tuke\magsa\parserext\Parser.java:4: package sk.tuke.magsa.parserext.javacc does not exist
private static sk.tuke.magsa.parserext.javacc.Parser parser;
YAJCo parser generator 0.1
YAJCo: Generating output to 'file:/E:/Thomass/Programming/Java/mags/src/sk/tuke/magsa/parserext/javacc/grammar.jj'
Java Compiler Compiler Version 4.0 (Parser Generator)
(type "javacc" with no arguments for help)
Reading from file E:\Thomass\Programming\Java\mags\src\sk\tuke\magsa\parserext\javacc\grammar.jj . . .
org.javacc.parser.ParseException: Encountered ")" at line 70, column 3.
Was expecting one of:
"LOOKAHEAD" ...
"try" ...
"(" ...
"{" ...
"[" ...
"boolean" ...
"char" ...
"byte" ...
"short" ...
"int" ...
"long" ...
"float" ...
"double" ...
<IDENTIFIER> ...
"+" ...
"-" ...
"++" ...
"--" ...
"~" ...
"!" ...
<INTEGER_LITERAL> ...
<FLOATING_POINT_LITERAL> ...
<CHARACTER_LITERAL> ...
<STRING_LITERAL> ...
"true" ...
"false" ...
"null" ...
"this" ...
"super" ...
"new" ...
"void" ...
"options" ...
"IGNORE_CASE" ...
"PARSER_BEGIN" ...
"PARSER_END" ...
"JAVACODE" ...
"TOKEN" ...
"SPECIAL_TOKEN" ...
"MORE" ...
"SKIP" ...
"TOKEN_MGR_DECLS" ...
"EOF" ...
"<" ...
Detected 1 errors and 0 warnings.
E:\Thomass\Programming\Java\mags\src\sk\tuke\magsa\parserext\Parser.java:4: package sk.tuke.magsa.parserext.javacc does not exist
private static sk.tuke.magsa.parserext.javacc.Parser parser;
E:\Thomass\Programming\Java\mags\src\sk\tuke\magsa\parserext\Parser.java:12: package sk.tuke.magsa.parserext.javacc does not exist
parser = new sk.tuke.magsa.parserext.javacc.Parser(reader);
E:\Thomass\Programming\Java\mags\src\sk\tuke\magsa\parserext\Parser.java:14: package sk.tuke.magsa.parserext.javacc does not exist
sk.tuke.magsa.parserext.javacc.Parser.ReInit(reader);
E:\Thomass\Programming\Java\mags\src\sk\tuke\magsa\parserext\Parser.java:18: package sk.tuke.magsa.parserext.javacc does not exist
sk.tuke.magsa.metamodel.Model root = sk.tuke.magsa.parserext.javacc.Parser.parse();
E:\Thomass\Programming\Java\mags\src\sk\tuke\magsa\parserext\Parser.java:21: package sk.tuke.magsa.parserext.javacc does not exist
} catch (sk.tuke.magsa.parserext.javacc.ParseException e) {
Note: E:\Thomass\Programming\Java\mags\src\sk\tuke\magsa\metamodel\Property.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
5 errors
BUILD FAILED (total time: 0 seconds)
Raleon podla mna si importol zly Token preto ti to nesedi..
import tuke.pargen.annotation.Token;
Quote from: hlsman on 10.05.2009, 22:47:51
Raleon podla mna si importol zly Token preto ti to nesedi..
import tuke.pargen.annotation.Token;
Sakra. Ano. :embarassed:
Uz ten token berie...
Ale i tak hodi build tie iste chyby, a stale pise COLON namiesto : (atd)
(aha, moze byt ze preto , lebo este constraints som nepoannotoval ?)
Quote from: Raleon on 10.05.2009, 22:52:16
Quote from: hlsman on 10.05.2009, 22:47:51
Raleon podla mna si importol zly Token preto ti to nesedi..
import tuke.pargen.annotation.Token;
Sakra. Ano. :embarassed:
Uz ten token berie...
Ale i tak hodi build tie iste chyby, a stale pise COLON namiesto : (atd)
(aha, moze byt ze preto , lebo este constraints som nepoannotoval ?)
COLON je v pohode, lebo tie lexikalne jednotky az potom nahradi, cize je to OK
skus to skompilovat s parametrom -Xlint:unchecked
a este taka finta f, v tom nbproject/project.property ako sa pridavaju tie javac argumenty..
mne to nechcelo brat ten $basedir pretoze obsahoval medzeri a tak mi rozparsovalo jeden argument na viacero.. treba dat do uvodzoviek.
Quote from: paly-sk on 10.05.2009, 23:01:15
Quote from: Raleon on 10.05.2009, 22:52:16
Quote from: hlsman on 10.05.2009, 22:47:51
Raleon podla mna si importol zly Token preto ti to nesedi..
import tuke.pargen.annotation.Token;
Sakra. Ano. :embarassed:
Uz ten token berie...
Ale i tak hodi build tie iste chyby, a stale pise COLON namiesto : (atd)
(aha, moze byt ze preto , lebo este constraints som nepoannotoval ?)
COLON je v pohode, lebo tie lexikalne jednotky az potom nahradi, cize je to OK
skus to skompilovat s parametrom -Xlint:unchecked
vyskusam...
Aha, po popisani vsetkych constraints uz chyba neni.. len taky cudny warning, ale vypluje aj nejake java subory..
Diky za pomoc.
Model.el zkade zozeniem ?
(ak treba pisat, tak ako :) )
tu mam gramatiku, priamo z grammar.ebnf, este to je teple
Constraint ::= (Regex | StringOptions | Range | Length | Required)
Entity ::= (<ENTITY> <STRING_VALUE> (<LBR> (Property (Property)*) <RBR>))
Length ::= (<LENGTH> <INT_VALUE> <INT_VALUE>)
Model ::= (Entity (Entity)*)
Property ::= (<NAME> (<COLON> Type) ((Constraint ((<COMMA> Constraint))*))?)
Range ::= (<RANGE> <INT_VALUE> <INT_VALUE>)
Regex ::= (<REGEX> <STRING_VALUE>)
Required ::= <REQUIRED>
StringOptions ::= (<STROPTIONS> (<STRING_VALUE> (<STRING_VALUE>)*))
Type ::= (<INTEGER> | <REAL> | <STRING>)
a tu mam model.el, tiez este teple
entity Student {
meno : string
}
malo by to zhltnut nie? bo nekce :(
aha uz viiiiiim, hlsman mi pomohol aj ked o tom nevedel :D v Entity nema byt STRING_VALUE ale NAME
Quote from: Bc. nemtom on 11.05.2009, 00:09:30
...
entity Student {
meno : string
}
malo by to zhltnut nie? bo nekce :(
Thanx for inspiration...
Prosim , co sa ma robit v 12 tom cviku ?
Quote from: Raleon on 11.05.2009, 02:23:03
Prosim , co sa ma robit v 12 tom cviku ?
jebat nato :D
kvoli 5 bodom si takto nicite zdravie po nociach :D
Otazka ku skuske:
Napíšte syntaktický analyzátor so zotavením, teda doplnte telá procedúr Error, Check
a A pre pravidlo:
A -> [B|c]{d|E}F
za predpokladu, že množiny H(B), H(E), and H(F) sú známe. V programe použite
HB, HE a HF, aktuálny symbol sym a procedúru getsymbol().
Riesenie:
Error (symbolset K) {
while !(sym = K) getsymbol()
}
Check( symbolset K) {
if !(sym = K) Error ()
}
A (symbolset K){
if(sym = {{c} u HB}) {
switch (sym)
'c': getsymbol();
sym = HB: B ( check({d}uHEuHFuK)
while (sym = {{d}uHE}) {
switch(sym)
'd': getsymbol()
sym = HE: E( check( {d} u HE u HF u K )
}
F(K)
)
}
while (sym = {{d}uHE}) {
switch(sym)
'd': getsymbol()
sym = HE: E( check( {d} u HE u HF u K )
}
F(K)
Otazka: moze to byt takto ?
a mam este jednu otazku k prikladu 4a:
T[[ while ... ]] = catch <L2> e[[Expr]] falsejump<L1> s[[Stat_seq]] jump <L2> catch <L1>
malo by to byt takto, ale to co som si opisal z tabule, kde myslim bolo:
e[[Expr]] falsejump<L1> s[[Stat_seq]] catch <L1>
lebo toto sa mi nezda ako loop ?!
Quote from: LM on 12.05.2009, 19:28:30
a mam este jednu otazku k prikladu 4a:
T[[ while ... ]] = catch <L2> e[[Expr]] falsejump<L1> s[[Stat_seq]] jump <L2> catch <L1>
malo by to byt takto, ale to co som si opisal z tabule, kde myslim bolo:
e[[Expr]] falsejump<L1> s[[Stat_seq]] catch <L1>
lebo toto sa mi nezda ako loop ?!
tam miesto catch je label tusim :P
a to druhe veruze nie je loop lebo skaces maximalne von z toho wannabe cyklu ... povedal by som skor, ze to je IF bez vetvy else
ved hej aj mne to tak pripada, ale na tabulu pisal urcite catch <label>
takze to prve je urcite s loopom, ja len ci som dobre videl... co pisal ..
nie catch, ale label<Li>
a co tie zapisi znamenaju? naco toje dobre? kde ich pouzijem na skuske? co snimi dosiahnem ?
Quote from: mishelka on 12.05.2009, 21:41:41
nie catch, ale label<Li>
okey beriem vas za slovo :)
este jedna otazka, k tym uloha m 5, o com to vlastne je ???
to LM: oks, vidim, ze si siel domov sprtat, takze sa tesim, ze mi to zajtra vecer na izbe secko pekne vysvetlis... :)
co chces vysvetlovat bdu s a anuc tri stran ynaspamet aleob tahak 5 x 5 cm :D
co sa na tom chcete ucit, sak to je take lahucke.. a este vsetko na prednaske podrobne vysvetlil...
Quote from: LM on 12.05.2009, 19:13:47
Otazka ku skuske:
A->[B|c]{d|E}F
Otazka: moze to byt takto ?
to nemas asi dobre...ja by som dal...
A (symbolset K){
if(sym in {H(B) u c}) {
check(H(B) u c u K)
switch (sym)
sym in H(B): B(d u H(E) u H(F) u K)
sym = 'c': getsymbol();
default error(H(B) u c u K)
}
check(d u H(E) u K)
while (sym in {d u H(E)}) {
check(d u H(E) u K)
switch(sym)
sym = 'd': getsymbol()
sym in H(E): E(d u H(E) u K)
default error(d u H(E) u K)
check(d u H(E) u H(F) u K)
}
F(K)
}
ocom tocite dorb enedobre sak toto toto co tu ema hodila neje dobre ?
ano to co hodila eminkaa je spravne ale LM pisal syn. analyzator pre ine pravidlo
Quote from: buhehe on 13.05.2009, 04:38:32
Quote from: LM on 12.05.2009, 19:13:47
Otazka ku skuske:
A->[B|c]{d|E}F
Otazka: moze to byt takto ?
to nemas asi dobre...ja by som dal...
A (symbolset K){
if(sym in {H(B) u c}) {
check(H(B) u c u K)
switch (sym)
sym in H(B): B(d u H(E) u H(F) u K)
sym = 'c': getsymbol();
default error(H(B) u c u K)
}
check(d u H(E) u K)
while (sym in {d u H(E)}) {
check(d u H(E) u K)
switch(sym)
sym = 'd': getsymbol()
sym in H(E): E(d u H(E) u K)
default error(d u H(E) u K)
check(d u H(E) u H(F) u K)
}
F(K)
}
ten default error ti je tam podla mna na figu, kedze to testujes pred switchom (check)...
inak taka otazka... aky je rozdiel medzi [] a () ???
[] 0 alebo 1 krat, teda moze byt alebo nemusi
() prave raz
Quote from: Mao on 13.05.2009, 05:35:23
[] 0 alebo 1 krat, teda moze byt alebo nemusi
() prave raz
moc pekne dakujem
a tota 3ka v eminych poznamkach je spravna ? :)
QuoteOtazka ku skuske:
A->[B|c]{d|E}F
Otazka: moze to byt takto ?
no ja by som to skor dal takto:
void A (symbolset K){
check(HB u {'c'} u {'d'} u HE u HF)
if(sym in {HB u {'c'}}) {
switch (sym)
in HB: B({'d'} u HE u HF u K)
'c': getSymbol()
}
check({'d'} u HE u HF u K)
while (sym in {{'d'} u HE}) {
switch(sym)
'd': getSymbol()
in HE: E({'d'} u HE u HF u K)
check({'d'} u HE u HF u K)
}
check(HF u K)
F(K)
}
pricom rozmyslam, ci ten prvy a posledny check co tam mam su uplne nutne, ale tak pre istotu to nie je zle aj ked tam su
nasledne to co dala Ema z prednasky:
A->B{dE}(c|F) ja by som to napisal takto:
void A (Symbolset K) {
B({'d'} u HE u {'c'} u HF u K)
check({'d'} u HE u {'c'} u HF u K)
while (sym in {'d'}) {
getSymbol()
E({'d'} u HE u {'c'} u HF u K)
check({'d'} u HE u {'c'} u HF u K)
}
check({'c'} u HF u K)
switch (sym)
'c': getSymbol()
in HF: F(K)
default: Error({'c'} u HF u K) // prv som tu mal Error(K) v podstate to podla mna aj teraz nic nemeni, jediny rozdiel je podla mna ak error zaroven robi aj vypisy pre pouzivatela
}
ale ako vravim je to moj pohlad na danu vec a este sam si niektore veci snazim ujasnit ale zatia by som to dal takto
je nejake pravidlo ako labelovat navestia??? myslim poradie L1 L2 and so on..
myslim, ze by mali ist po poradi (povedal damien), takze ak mas skok niekam na zaciatok programu (prikazu), tak label na zaciatku by mal byt L1 (pri spracovani sa to najprv zapise). ale je to podla mna jedno, lebo toto kollar tiez len tak preleti :)
Quote from: DeeL on 14.05.2009, 00:03:29
QuoteOtazka ku skuske:
pricom rozmyslam, ci ten prvy a posledny check co tam mam su uplne nutne, ale tak pre istotu to nie je zle aj ked tam su
nasledne to co dala Ema z prednasky:
A->B{dE}(c|F)
ja by som to napisal takto:
void A (Symbolset K) {
B({'d'} u HE u {'c'} u HF u K)
check({'d'} u HE u {'c'} u HF u K)
while (sym in {'d'} u H(E)) {
if(sym == 'd') getsymbol(); else error({'d'} u HE u {'c'} u HF u K);
E({'d'} u HE u {'c'} u HF u K)
check({'d'} u HE u {'c'} u HF u K)
}
check({'c'} u HF u K)
switch (sym)
'c': getSymbol()
in HF: F(K)
default: Error({'c'} u HF u K) // prv som tu mal Error(K) v podstate to podla mna aj teraz nic nemeni, jediny rozdiel je podla mna ak error zaroven robi aj vypisy pre pouzivatela
}
ale ako vravim je to moj pohlad na danu vec a este sam si niektore veci snazim ujasnit ale zatia by som to dal takto
myslim ze toto ma byt takto, lebo inak cele H(E) preskoci, cize tam musi byt ten H(E) v tom while..
hej miska, dikes za to, ze sme si to vysvetlili... je to tak spravne a chapem aj preco uz ;)
je okrem mna este niekto kto nebol na skuske?
Quote from: Bc. nemtom on 17.05.2009, 07:45:56
je okrem mna este niekto kto nebol na skuske?
Pokial viem, tak ty si jediny...
Quote from: Bc. nemtom on 17.05.2009, 07:45:56
je okrem mna este niekto kto nebol na skuske?
more to preco si nebol?
nebol som doma
teraz si ta podaju, jak nasekanu salatu... muheheheeee :D :D :D
:D hej
:D