Skip to content

Commit 09313eb

Browse files
committed
[ refactor ] Add parser primitive for basic username
1 parent 875dd62 commit 09313eb

File tree

3 files changed

+17
-16
lines changed

3 files changed

+17
-16
lines changed

src/Idris/Parser.idr

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ decoratedDataConstructorName : OriginDesc -> Rule Name
7676
decoratedDataConstructorName fname = decorate fname Data dataConstructorName
7777

7878
decoratedSimpleBinderUName : OriginDesc -> Rule Name
79-
decoratedSimpleBinderUName fname = decorate fname Bound (UN . Basic <$> unqualifiedName)
79+
decoratedSimpleBinderUName fname = decorate fname Bound userName
8080

8181
decoratedSimpleNamedArg : OriginDesc -> Rule String
8282
decoratedSimpleNamedArg fname
@@ -1627,10 +1627,7 @@ parameters {auto fname : OriginDesc} {auto indents : IndentInfo}
16271627
commit
16281628
decoratedSymbol fname "("
16291629
us <- sepBy (decoratedSymbol fname ",")
1630-
(do n <- optional $ do
1631-
x <- unqualifiedName
1632-
decoratedSymbol fname ":"
1633-
pure (UN $ Basic x)
1630+
(do n <- optional $ userName <* decoratedSymbol fname ":"
16341631
ty <- typeExpr pdef fname indents
16351632
pure (n, ty))
16361633
decoratedSymbol fname ")"

src/Parser/Rule/Source.idr

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,10 @@ export
347347
unqualifiedName : Rule String
348348
unqualifiedName = identPart
349349

350+
export
351+
userName : Rule Name
352+
userName = UN . Basic <$> unqualifiedName
353+
350354
export
351355
holeName : Rule String
352356
holeName

src/TTImp/Parser.idr

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ atom fname
5959
pure (IVar (MkFC fname start end) x)
6060
<|> do start <- location
6161
symbol "$"
62-
x <- UN . Basic <$> unqualifiedName
62+
x <- userName
6363
end <- location
6464
pure (IBindVar (MkFC fname start end) x)
6565
<|> do start <- location
@@ -185,7 +185,7 @@ mutual
185185
implicitArg fname indents
186186
= do start <- location
187187
symbol "{"
188-
x <- UN . Basic <$> unqualifiedName
188+
x <- userName
189189
(do symbol "="
190190
commit
191191
tm <- expr fname indents
@@ -203,7 +203,7 @@ mutual
203203
as : OriginDesc -> IndentInfo -> Rule RawImp
204204
as fname indents
205205
= do start <- location
206-
x <- UN . Basic <$> unqualifiedName
206+
x <- userName
207207
nameEnd <- location
208208
symbol "@"
209209
pat <- simpleExpr fname indents
@@ -245,26 +245,26 @@ mutual
245245
bindList fname start indents
246246
= forget <$> sepBy1 (symbol ",")
247247
(do rigc <- multiplicity
248-
n <- unqualifiedName
248+
n <- userName
249249
end <- location
250250
ty <- option
251251
(Implicit (MkFC fname start end) False)
252252
(do symbol ":"
253253
appExpr fname indents)
254254
rig <- getMult rigc
255-
pure (rig, UN (Basic n), ty))
255+
pure (rig, n, ty))
256256

257257

258258
pibindListName : OriginDesc -> FilePos -> IndentInfo ->
259259
Rule (List (RigCount, Name, RawImp))
260260
pibindListName fname start indents
261261
= do rigc <- multiplicity
262-
ns <- sepBy1 (symbol ",") unqualifiedName
262+
ns <- sepBy1 (symbol ",") userName
263263
symbol ":"
264264
ty <- expr fname indents
265265
atEnd indents
266266
rig <- getMult rigc
267-
pure (map (\n => (rig, UN (Basic n), ty)) (forget ns))
267+
pure (map (\n => (rig, n, ty)) (forget ns))
268268
<|> forget <$> sepBy1 (symbol ",")
269269
(do rigc <- multiplicity
270270
n <- name
@@ -299,11 +299,11 @@ mutual
299299
keyword "forall"
300300
commit
301301
nstart <- location
302-
ns <- sepBy1 (symbol ",") unqualifiedName
302+
ns <- sepBy1 (symbol ",") userName
303303
nend <- location
304304
let nfc = MkFC fname nstart nend
305305
let binders = map (\n => ( erased {a=RigCount}
306-
, Just (UN $ Basic n)
306+
, Just n
307307
, Implicit nfc False))
308308
(forget ns)
309309
symbol "."
@@ -640,12 +640,12 @@ fieldDecl fname indents
640640
fieldBody : PiInfo RawImp -> Rule (List IField)
641641
fieldBody p
642642
= do start <- location
643-
ns <- sepBy1 (symbol ",") unqualifiedName
643+
ns <- sepBy1 (symbol ",") userName
644644
symbol ":"
645645
ty <- expr fname indents
646646
end <- location
647647
pure (map (\n => MkIField (MkFC fname start end)
648-
linear p (UN $ Basic n) ty) (forget ns))
648+
linear p n ty) (forget ns))
649649

650650
recordDecl : OriginDesc -> IndentInfo -> Rule ImpDecl
651651
recordDecl fname indents

0 commit comments

Comments
 (0)