diff options
author | Qieerb <qieerbushe7@gmail.com> | 2018-03-23 15:04:58 +0000 |
---|---|---|
committer | Qieerb <qieerbushe7@gmail.com> | 2018-03-23 15:04:58 +0000 |
commit | 5fcc6f0309ae564aada04bdf7b841fd080c3e6e4 (patch) | |
tree | 0e04948117dc86581680d0a8549cc644ffcdfe63 /FMark | |
parent | c3c390e9c788188e0bfbccf0bf5bcbfc9754d553 (diff) | |
download | FMark-5fcc6f0309ae564aada04bdf7b841fd080c3e6e4.tar.gz FMark-5fcc6f0309ae564aada04bdf7b841fd080c3e6e4.zip |
miller fix
Diffstat (limited to 'FMark')
-rw-r--r-- | FMark/src/Common/TOCite/RefParse.fs | 15 |
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 |