www.jammni.de

Logo - Kleiner Drache
Login
Username:

Passwort:

Daten merken
Auto-Login
Registrieren
 
Online
niemand
 
Forumsuche
Suche nach:

Logo - DracheHaskell-Forum

vorherige Seite 1 2  

arnold74

Gepostet:
13.05.2010 08:29

   
Hallo,
Ja wäre super wenn ich es direkt in GHCI testen könnte, oder vielleicht eine Beispielgrammatik in FirstFollow.hs einfügen könnte. Leider gelingt mir das nicht. Habe durch kompilieren gesehen, dass bis jetzt die einzelnen Funktionen korrekt sind.Aber vielleicht kannst Du mir ja sagen wie ich das machen soll?
Hier meine Fehlermeldung direkt im GHCI (idealer wäre es die Grammatik direkt im hs-File zu deklarieren)

Prelude FirstFollow> find2 "A" ["A" ["A","+","B"],"B" []]

<interactive>:1:11:
Couldn't match expected type `t -> Grammar.Production'
against inferred type `[Char]'
In the expression: "A" ["A", "+", "B"]
In the second argument of `find2', namely
`["A" ["A", "+", ....], "B" []]'
In the expression: find2 "A" ["A" ["A", "+", ....], "B" []]
Die Grammatikd ist ja folgendermaßen definiert:

type Variable = String
type Terminal = Char
data Symbol = V Variable | T Terminal
deriving (Eq, Ord)

data Grammar = Grammar Variable [Production]

data Production = Production Variable [Symbol]
deriving Eq


danke
Zum Seitenanfang    
 
Siracusa

Gepostet:
14.05.2010 17:22

   
Hallo,

also die Grammatik ist falsch. Laut Definition muss jede Grammatik auch mit dem Datenkonstruktor Grammar beginnen, analog gilt dies auch für alle anderen Typen. Eine einfache Grammatik für S ::= aS | a könnte so aussehen (ungetestet):
gram1 :: Grammar
gram1 = Grammar "S" [Production "S" [T 'a', V "S"], Production "S" [T 'a']]


Viele Grüße

Siracusa
Zum Seitenanfang    
 

vorherige Seite 1 2