[ atanas_bg @ 25.05.2012. 01:39 ] @
Radimo prijatelji i ja jedan projekat, i potrebno nam je par smernica...

Uradili smo C++ text editor u Qt-u.
Ideja je da u terminalu u linux-u kucamo komande (recimo forloop, include i sl), a da nam se u nasem editoru generise C kod, i da se kursor pozicionira na odredjeno mesto. Primer je da iz terminala kao pozadinski proces pokrenemo ovaj nas editor, a zatim da ukucamo forloop i da on u nasem otvorenom fajlu ispise: for(...;...;...) {...} i da kursor pozicionira na prve tri tacke.

Sad bi nam od velike koristi bio predlog u kom pravcu da idemo. Pitanje koja nam se javlja, izmedju ostalog, jeste kako da u vec otvoreni fajl pisemo, i da on sam sebe reloaduje na te promene.

Takodje, da li bi od neke koristi bilo da koristimo yacc i da pisemo C gramatiku, ili jednostavno da imamo mnogo if-ova u samom programu...

Nadam se da sam bio dovoljno precizan, i da je tema dovoljno interesantna za diskusiju :)

Hvala!
[ Nedeljko @ 25.05.2012. 11:25 ] @
Napravi neku klasu "Command" (ako tvoje naredbe iz terminala neće imati parametre, umesto ove klase možeš da koristiš običan string) i prilikom startovanja editora neka on napravi neku deljenu memoriju u kojoj će da se nalazi red za čekanje (qeue) pokazivača na objekte tipa Command. U zasebnoj niti (thread) editor treba da proverava da li ima nečega u redu za čekanje, pa ako ima, da izvadi jednu komandu i izvrši je. Sa druge strane, svaka komanda terminala treba da bude implementirana kao program koji se kači na istu deljenu memoriju i ubacuje komandu u red za čekanje. Naravno, deljena memorija se mora zaključavati prilikom pristupa i otključavati nakon toga.

Smem li da pitam šta će vam ovo?
[ atanas_bg @ 25.05.2012. 22:11 ] @
Naravno da smes :) Radimo projekat za fakultet, i zelja nam je da ga na kraju povezemo sa programom koji prima glasovne komande, i da na glasovne komande generise sam C kod.

Sam projekat je poprilicno zahtevan, pa u nedostatku inspiracije sta dalje da radimo smo resili da potrazimo pomoc ovde :)

Hvala puno na odgovoru, pokusacemo da poradimo na takvoj implementaciji, pa javljamo kako ide...