Add exposed modules + elm-format
parent
cd0c687307
commit
78794ef59b
2
elm.json
2
elm.json
|
@ -5,6 +5,8 @@
|
||||||
"license": "EUPL-1.1",
|
"license": "EUPL-1.1",
|
||||||
"version": "2.1.2",
|
"version": "2.1.2",
|
||||||
"exposed-modules": [
|
"exposed-modules": [
|
||||||
|
"Internal.Grammar.ServerName",
|
||||||
|
"Internal.Grammar.UserId",
|
||||||
"Matrix",
|
"Matrix",
|
||||||
"Matrix.Event",
|
"Matrix.Event",
|
||||||
"Matrix.Settings"
|
"Matrix.Settings"
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
module Internal.Tools.ParserExtra exposing (..)
|
module Internal.Tools.ParserExtra exposing (..)
|
||||||
|
|
||||||
import Parser as P exposing (Parser, (|.), (|=))
|
import Parser as P exposing ((|.), (|=), Parser)
|
||||||
|
|
||||||
|
|
||||||
zeroOrMore : Parser a -> Parser (List a)
|
zeroOrMore : Parser a -> Parser (List a)
|
||||||
zeroOrMore parser =
|
zeroOrMore parser =
|
||||||
|
@ -13,12 +14,14 @@ zeroOrMore parser =
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
oneOrMore : Parser a -> Parser (List a)
|
oneOrMore : Parser a -> Parser (List a)
|
||||||
oneOrMore parser =
|
oneOrMore parser =
|
||||||
P.succeed (::)
|
P.succeed (::)
|
||||||
|= parser
|
|= parser
|
||||||
|= zeroOrMore parser
|
|= zeroOrMore parser
|
||||||
|
|
||||||
|
|
||||||
atLeast : Int -> Parser a -> Parser (List a)
|
atLeast : Int -> Parser a -> Parser (List a)
|
||||||
atLeast n parser =
|
atLeast n parser =
|
||||||
P.loop []
|
P.loop []
|
||||||
|
@ -26,6 +29,7 @@ atLeast n parser =
|
||||||
if List.length tail < n then
|
if List.length tail < n then
|
||||||
P.succeed (\head -> P.Loop (head :: tail))
|
P.succeed (\head -> P.Loop (head :: tail))
|
||||||
|= parser
|
|= parser
|
||||||
|
|
||||||
else
|
else
|
||||||
P.oneOf
|
P.oneOf
|
||||||
[ P.succeed (\head -> P.Loop (head :: tail))
|
[ P.succeed (\head -> P.Loop (head :: tail))
|
||||||
|
@ -34,6 +38,7 @@ atLeast n parser =
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
atMost : Int -> Parser a -> Parser (List a)
|
atMost : Int -> Parser a -> Parser (List a)
|
||||||
atMost n parser =
|
atMost n parser =
|
||||||
P.loop []
|
P.loop []
|
||||||
|
@ -44,33 +49,40 @@ atMost n parser =
|
||||||
|= parser
|
|= parser
|
||||||
, P.succeed (P.Done (List.reverse tail))
|
, P.succeed (P.Done (List.reverse tail))
|
||||||
]
|
]
|
||||||
|
|
||||||
else
|
else
|
||||||
P.succeed (P.Done (List.reverse tail))
|
P.succeed (P.Done (List.reverse tail))
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
times : Int -> Int -> Parser a -> Parser (List a)
|
times : Int -> Int -> Parser a -> Parser (List a)
|
||||||
times inf sup parser =
|
times inf sup parser =
|
||||||
let
|
let
|
||||||
low : Int
|
low : Int
|
||||||
low = max 0 (min inf sup)
|
low =
|
||||||
|
max 0 (min inf sup)
|
||||||
|
|
||||||
high : Int
|
high : Int
|
||||||
high = max 0 sup
|
high =
|
||||||
|
max 0 sup
|
||||||
in
|
in
|
||||||
P.loop []
|
P.loop []
|
||||||
(\tail ->
|
(\tail ->
|
||||||
if List.length tail < low then
|
if List.length tail < low then
|
||||||
P.succeed (\head -> P.Loop (head :: tail))
|
P.succeed (\head -> P.Loop (head :: tail))
|
||||||
|
|= parser
|
||||||
|
|
||||||
|
else if List.length tail < high then
|
||||||
|
P.oneOf
|
||||||
|
[ P.succeed (\head -> P.Loop (head :: tail))
|
||||||
|= parser
|
|= parser
|
||||||
else if List.length tail < high then
|
, P.succeed (P.Done (List.reverse tail))
|
||||||
P.oneOf
|
]
|
||||||
[ P.succeed (\head -> P.Loop (head :: tail))
|
|
||||||
|= parser
|
else
|
||||||
, P.succeed (P.Done (List.reverse tail))
|
P.succeed (P.Done (List.reverse tail))
|
||||||
]
|
)
|
||||||
else
|
|
||||||
P.succeed (P.Done (List.reverse tail))
|
|
||||||
)
|
|
||||||
|
|
||||||
exactly : Int -> Parser a -> Parser (List a)
|
exactly : Int -> Parser a -> Parser (List a)
|
||||||
exactly n =
|
exactly n =
|
||||||
|
|
Loading…
Reference in New Issue