Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
uiii
Založen: 12. 08. 2007 Příspěvky: 251
|
Zaslal: 15. listopad 2011, 18:15:09 Předmět: "Překlad" textového formátu do jiného |
|
|
Č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 ). 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 |
|
|
Lemik
Založen: 30. 07. 2007 Příspěvky: 138
|
Zaslal: 15. listopad 2011, 18:44:09 Předmět: |
|
|
Asi jsem natvrdlej, ale můžeš dát konkrétní příklad, čeho by jsi chtěl dosáhnout? |
|
Návrat nahoru |
|
|
uiii
Založen: 12. 08. 2007 Příspěvky: 251
|
Zaslal: 15. listopad 2011, 18:57:53 Předmět: |
|
|
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 |
|
|
OndraSej
Založen: 28. 07. 2007 Příspěvky: 767 Bydliště: Brandýs nad Labem
|
Zaslal: 15. listopad 2011, 19:08:33 Předmět: |
|
|
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 |
|
|
uiii
Založen: 12. 08. 2007 Příspěvky: 251
|
Zaslal: 15. listopad 2011, 19:39:11 Předmět: |
|
|
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 |
|
|
OndraSej
Založen: 28. 07. 2007 Příspěvky: 767 Bydliště: Brandýs nad Labem
|
Zaslal: 15. listopad 2011, 20:40:46 Předmět: |
|
|
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 |
|
|
|