.[ ČeskéHry.cz ].
"Překlad" textového formátu do jiného

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Obecné
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
uiii



Založen: 12. 08. 2007
Příspěvky: 251

PříspěvekZaslal: 15. listopad 2011, 18:15:09    Předmět: "Překlad" textového formátu do jiného Odpovědět s citátem

Čau, ve škole jsem si zapsal předmět o principech překladačů a učíme se s flexem, bisonem apod. Pracuji na aplikaci pro tvorbu zpěvníku, kde potřebuju konvertovat jeden textový formát do jiného, konkrétně muj vlastní formát pisničky do LaTexu. Jde mi o to, zda existuje nějaky "elegantní" způsob jak toho docílit? Napadá mě na to použít právě postup z tvorby překladače, že bych si napsal lexikalní analýzu v flexu a pomocí gramatiky a bisonu to pak zpracovával dál (víc zatím neumím Very Happy). Jdu správnou cestou? Nebo jsou tyto nástroje vhodné jen pro pragramovací jazyky a na textové formáty se hodí něco jinýho. Diky za každou radu. Uiii
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Lemik



Založen: 30. 07. 2007
Příspěvky: 138

PříspěvekZaslal: 15. listopad 2011, 18:44:09    Předmět: Odpovědět s citátem

Asi jsem natvrdlej, ale můžeš dát konkrétní příklad, čeho by jsi chtěl dosáhnout?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
uiii



Založen: 12. 08. 2007
Příspěvky: 251

PříspěvekZaslal: 15. listopad 2011, 18:57:53    Předmět: Odpovědět s citátem

No proste co je cílem kompilátoru? Přeložit zdrojový kód v nějakém jazyce do jazyka jiného. Já potřebuju "přeložit" vstupní formát do LaTexu. Vstup může vypadat třeba takhle:

kód:

Název písně (Skladatel)

:  Ami   G    C
1. La lalalala lal lal
:  D     E    Ami
   lalalaaaa lalallala

:    G     C     G
Rec. La La La La La La

1. La lalalala lal lal
   lalalaaaa lalallala


no a výstup pak takhle:
kód:

\begin{song}{Název písně}{Skladatel}
   \Verse {|Ami|La lal||G|alala||C| lal lal|\n
   |D|lalala||E|aaa l||Ami|alallala|}
   \Rec {|G|La La ||C|La La ||G|La La|}
   \Verse {La lalalala lal lal\n
   lalalaaaa lalallala}
   \ChordDiagrams {Ami,G,C,D,E}
\end{song}


Skript v pythonu pro to konvertování mám naprogramovanej, ale je to taková splácanina. Teď dělám pro to GUI a píšu to v C++ a napadlo mě, že bych ten konvertovací proces moh nějak zformalizovat. Ten formát můžu popsat nějakou gramatikou a pak na to pužít ty nástroje pro tvorbu překladače. Mohl bych pak třeba i v tom GUI informovat o chybách v zápisu atd. Jde mi ale jen o to, jestli je tohle ten nejvhodnější způsob na tuhle konkrétní činnost. Jeslti prostě neexistujou nějaký nástroje přímo určený na tvorbu konvertoru statickejch formátů (tj pouze popis struktury ne program s příkazama). Možná je to celkově blbej dotaz. Ale prostě se v týhle problematice neorientuju a jediný co znám je prostě ten Flex a Bison. Takže mě automaticky napadej jen tyhle dva nástroje. Doufám že už je to jasnější.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
OndraSej



Založen: 28. 07. 2007
Příspěvky: 767
Bydliště: Brandýs nad Labem

PříspěvekZaslal: 15. listopad 2011, 19:08:33    Předmět: Odpovědět s citátem

uiii> Prijde mi, ze "klasicke" gramatiky (rekneme ve smyslu Chomskeho hierarchie) na tuhle ulohu moc nehodi, protoze tvuj vstup neni jen stream znaku, ale spis 2d struktura (akordy a text jsou vertikalne zarovnane), takze to fakt bude chtit neco specialniho.

Jinak pozor, ze budes muset nejak specialne osetrit misto, kde se akordy stridaji rychleji nez jdou slabiky (napriklad nejake vypustky v textu, ktere se pak pri prevodu do LaTeXu sliji do jedineho slova).
_________________
http://trionteam.net
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
uiii



Založen: 12. 08. 2007
Příspěvky: 251

PříspěvekZaslal: 15. listopad 2011, 19:39:11    Předmět: Odpovědět s citátem

OndraSej napsal:
... ale spis 2d struktura (akordy a text jsou vertikalne zarovnane), takze to fakt bude chtit neco specialniho.


Takze to spis vypada ze si budu muset napsat neco sam uplne od nuly? (Což sice mám, ale kdybych chtěl nějak šikovně zpracovávat chyby, tak bych to musel nejspíš úplně přepsat)

OndraSej napsal:
Jinak pozor, ze budes muset nejak specialne osetrit misto, kde se akordy stridaji rychleji nez jdou slabiky (napriklad nejake vypustky v textu, ktere se pak pri prevodu do LaTeXu sliji do jedineho slova).


Tohle už mám ošetřený. V tom vstupním formátu se to musí zapsat tak, aby mezi akordama byla aspoň jedna mezera a do slov se doplní pomlčky. V LaTexu to pak mám taky ošetřený aby se to co nejlíp vykreslilo.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
OndraSej



Založen: 28. 07. 2007
Příspěvky: 767
Bydliště: Brandýs nad Labem

PříspěvekZaslal: 15. listopad 2011, 20:40:46    Předmět: Odpovědět s citátem

Rekl bych, ze jo... ale tenhle "prirozeny" zapis moc chyb nedovoluje, ne? Takze jejich osetrovani nebude nic tak sloziteho.
_________________
http://trionteam.net
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Obecné Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna