Ich versuche, eine kleine Würfel Notation zu schreiben (zum Beispiel „2W6“, wo 2
ist die count
und 6
ist die sterben size
) Parser der Bibliothek in elm-tools/parser
verwenden.Parsing Würfel Schreibweise mit Elm
Ein Ausdruck in Form sein sollte
[int] "d" int
aber ich kann nicht herausfinden, zu analysieren, die optionale führende int
(die 1
ausfällt, wenn es fehlt).
Bisher habe ich mit diesem kommen:
import Parser exposing (..)
type alias Roll =
{ count : Int
, size : Int
}
die : Parser Int
die =
succeed identity
|. keyword "d"
|= int
und ich möchte den Parser eine Roll
auf ein erfolgreiches Parse zurückzukehren, aber ich bin nicht sicher, wie es weitergeht.
Ich rate, dass ich oneOf
verwenden muss, aber ich bin mir nicht sicher, wie.
Leider kann ich keine guten Beispiele für die Verwendung dieser Bibliothek finden.
Diese Antwort [analysiert nicht das ursprüngliche Beispiel, das Sie von '" 2d6 "'] (https://ellie-app.com/3YVLMkCqM6ra1/0) seit 'int' parsen schlägt fehl, wenn es ein alphanumerisches Zeichen trifft. Es wäre jedoch erfolgreich, wenn Sie ein Leerzeichen nach "2" hätten. Hast du die Anforderungen geändert? –
Nein. Ich korrigiere den Code jetzt mit einem "privaten" 'integer' Parser anstelle von' int'. Es scheint, dass "int" auf dem "d" verwirrt wird, weil es eine legale Hexadezimalziffer ist. – Ralph
Wenn die Antwort von Chad Ihnen geholfen hat, sollten Sie sie auffrischen und vielleicht als die hilfreichste Antwort akzeptieren. – rubystallion