Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
nou

Založen: 28. 07. 2007 Příspěvky: 1051
|
Zaslal: 6. březen 2011, 13:38:40 Předmět: Bison grammar |
|
|
takze prilezitost pre gramar nazi
mam nasledovnu gramatiku http://nopaste.ceske-hry.cz/223280 tu je osekana verzia
kód: |
9 BOOLEXP: BOOL
10 | "(" BOOLEXP ")"
25 REALEXP: IDREF
26 | "(" REALEXP ")"
31 IDREF: CELLREF
32 | CONSTANT
33 | FUNCTION
37 CONSTANT: INT
38 | REAL
39 | "const function"
40 | "?"
53 BOOL: "t"
54 | "f"
55 | "?" |
a problem je nasledovny. tato gramatika umoznuje naseldovny zapis (?) teda otaznik v zatvorke. na to ale existuje dvojity meter. a to povazovat to za BOOL hodnotu alebo za CONSTANT. vyznam je neznama v trojhodnotevej logike pri BOOL a CONSTANT je to ekvivalent NaN.
z toho vznika konflikt. poradi ako ho niekto vyriesit? _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
Quiark

Založen: 29. 07. 2007 Příspěvky: 816 Bydliště: Chlívek 401
|
Zaslal: 6. březen 2011, 14:13:04 Předmět: |
|
|
No jak na to koukám, tak ? může být jak constant, tak bool. Podle čeho má ten parser poznat, co si tam zrovna představuješ? _________________ Mám strach |
|
Návrat nahoru |
|
 |
sulthan

Založen: 24. 10. 2007 Příspěvky: 104
|
Zaslal: 6. březen 2011, 15:30:52 Předmět: |
|
|
Oba otazniky znamenaji neco jineho, tak misto jednoho z nich dej jiny terminal, treba "fuzzy" misto otazniku pro bool.
edit: druha moznost, co me napada - dat otaznik uz k IDREF a s tim, jestli zastupuje bool nebo konstantu, se vyporadat az v semanticke analyze. Samozrejme netusim, ceho presne chces gramatikou a tim otaznikem dosahnout, tak se tezko radi  |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1051
|
Zaslal: 6. březen 2011, 15:39:31 Předmět: |
|
|
to je riesenie ktore ma tiez napadlo. ono ta gramatika je ale uz zadana z jedneho paperu takze som ju chcel dodrzat co najpresnejsie. ono sa to rozoznat da z kontextu. kedze bool moze byt v spojeni s and,or,xor,imp... a zase const v spolonosti relacnych operatorov. lenze kontextove gramatiky akosi neficia. aspon teda som nenasiel generator parsera ktory by vedel contextove gramatiky.
hlavne som sa chcel uistit ze nie je nejake elegantne riesenie. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
Quiark

Založen: 29. 07. 2007 Příspěvky: 816 Bydliště: Chlívek 401
|
Zaslal: 6. březen 2011, 16:43:46 Předmět: |
|
|
Ono to nějak jde - když máš třeba bool var = true AND ?; tak už od bool ta gramatika může vědět, co to bude. Ale bude to složitější a gramatika bude vypadat hnusně. _________________ Mám strach |
|
Návrat nahoru |
|
 |
Al
Založen: 23. 10. 2007 Příspěvky: 196
|
Zaslal: 7. březen 2011, 03:03:55 Předmět: |
|
|
Nejsem až takový expert na překladače, takže se možná pletu. Myslím, že by se neměla míchat analýza syntaxe se sémantikou. Takže gramatiku bych asi jen upravil, aby se tam otazník správně označil jako terminál typu BOOLORCONSTANT. |
|
Návrat nahoru |
|
 |
sulthan

Založen: 24. 10. 2007 Příspěvky: 104
|
Zaslal: 7. březen 2011, 11:47:45 Předmět: |
|
|
AI: michat by se samozrejme nemela, ale u nekterych hnusnych gramatik to uplne nejde... a nechtelo se mi ji studovat tak podrobne.
Kdyz koukam na tu gramatiku, tak to zrejme rozeznat pujde, ale psat ty pravidla nebude moc snadne... Kdybych to delal ja, tak se asi vykaslu na bizona a napisu si proste rekurzivni funkce pro analyzu shora. Ta gramatika je kratoucka, tak bys to mel za dve hodky hotove... a tam by sis kontext poresil mnohem jednoduseji. |
|
Návrat nahoru |
|
 |
|