diff --git a/src/GenericParser/DomainParser.purs b/src/GenericParser/DomainParser.purs index 17b7e30..5a080ca 100644 --- a/src/GenericParser/DomainParser.purs +++ b/src/GenericParser/DomainParser.purs @@ -26,13 +26,14 @@ import GenericParser.Parser (Parser(..) label :: Parser DomainError String label = do pos <- current_position + maybeu <- tryMaybe $ char '_' maybel <- tryMaybe letter case maybel of Nothing -> Parser \_ -> failureError pos (Just InvalidCharacter) Just l -> do s <- tryMaybe ldh_str lastpos <- current_position - let labelstr = CU.singleton l <> maybe "" CU.fromCharArray s + let labelstr = maybe "" (\_ -> "_") maybeu <> CU.singleton l <> maybe "" CU.fromCharArray s if (S.length labelstr > max_label_length) then Parser \_ -> failureError pos (Just <<< LabelTooLarge $ S.length labelstr) else if (S.length labelstr > 1 && not (parse_last_char labelstr let_dig))