aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQieerb <qieerbushe7@gmail.com>2018-03-23 15:04:58 +0000
committerQieerb <qieerbushe7@gmail.com>2018-03-23 15:04:58 +0000
commit5fcc6f0309ae564aada04bdf7b841fd080c3e6e4 (patch)
tree0e04948117dc86581680d0a8549cc644ffcdfe63
parentc3c390e9c788188e0bfbccf0bf5bcbfc9754d553 (diff)
downloadFMark-5fcc6f0309ae564aada04bdf7b841fd080c3e6e4.tar.gz
FMark-5fcc6f0309ae564aada04bdf7b841fd080c3e6e4.zip
miller fix
-rw-r--r--FMark/src/Common/TOCite/RefParse.fs15
1 files changed, 12 insertions, 3 deletions
diff --git a/FMark/src/Common/TOCite/RefParse.fs b/FMark/src/Common/TOCite/RefParse.fs
index 24dbd93..a55d9b7 100644
--- a/FMark/src/Common/TOCite/RefParse.fs
+++ b/FMark/src/Common/TOCite/RefParse.fs
@@ -1,4 +1,5 @@
module RefParse
+open Shared
open ParserHelperFuncs
open Types
@@ -161,6 +162,15 @@ let (|AgnoEqual|_|) = function
Some tl
| _ -> None
+let pickOutURL toks =
+ let rec pickOutURL' rtoks toks =
+ match toks with
+ | COMMA::tl -> rtoks, tl
+ | a::tl -> pickOutURL' (a::rtoks) tl
+ | [] -> rtoks, []
+ pickOutURL' [] toks
+ |> fun(x,y) -> strAllToks (List.rev x), y
+
// parses a single reference entry
// This probably should never see ENDLINE
let refParser style tLst =
@@ -197,9 +207,8 @@ let refParser style tLst =
| NUMBER a::tl -> refPar' {refData with Year = Some (int a)} tl
| _ -> refPar' refData tl
| "url" ->
- match tl with
- | LITERAL s::tl -> refPar' {refData with URL = Some s} tl
- | _ -> refPar' refData tl
+ let (s,tail) = pickOutURL tl
+ refPar' {refData with URL = Some s} tail
| "access" ->
dateFormat tl
|> fun (x,y) -> refPar' {refData with AccessDate = x} y