aboutsummaryrefslogtreecommitdiffstats
path: root/FMark
diff options
context:
space:
mode:
authorThunderMikey <mikecyj25@gmail.com>2018-03-23 11:52:02 +0000
committerThunderMikey <mikecyj25@gmail.com>2018-03-23 11:52:02 +0000
commitaddfc4ba4f1b3f2832dac467c4e8174519871bf8 (patch)
treea4d7bc153221085142f02984784afa7f329ce46e /FMark
parent84e61c2dd04e12b6a016bcfb7f90e6411a5b3258 (diff)
downloadFMark-addfc4ba4f1b3f2832dac467c4e8174519871bf8.tar.gz
FMark-addfc4ba4f1b3f2832dac467c4e8174519871bf8.zip
fix parser issues
Diffstat (limited to 'FMark')
-rw-r--r--FMark/src/Common/Parser/Parser.fs4
-rw-r--r--FMark/src/Common/Parser/ParserTest.fs16
2 files changed, 10 insertions, 10 deletions
diff --git a/FMark/src/Common/Parser/Parser.fs b/FMark/src/Common/Parser/Parser.fs
index 2e10969..02f7b0c 100644
--- a/FMark/src/Common/Parser/Parser.fs
+++ b/FMark/src/Common/Parser/Parser.fs
@@ -151,7 +151,7 @@ let (|MatchTOC|_|) hdList toks =
let createLinks (hdList:THeader list) =
let makeRelLink i (h:THeader) =
let linkText = Line(h.HeaderName)
- let linkID = headerIDGen i hdList.[i]
+ let linkID = hdList.[i].RefID
{h with HeaderName = [Link (linkText, sprintf "#%s" linkID)]}
//{h with HeaderName = Link((h.HeaderName), sprintf "#HEADER%i" i)} // Link of HyperText: TFrmtedString * URL: string
let linksLst = List.mapi makeRelLink hdList
@@ -274,7 +274,7 @@ let rec parseItem (hdLst: THeader list) (ftLst: ParsedObj list) (rawToks: Token
| MatchQuote (content, rtks) ->
(parseInLineElements2 ftLst content |> Quote , rtks)
|> Ok
- | HEADER i :: rtks -> (Header (hdLst.[i],(headerIDGen i hdLst.[i])), rtks) |> Ok
+ | HEADER i :: rtks -> (Header (hdLst.[i]), rtks) |> Ok
| PickoutList (list, retoks) -> (parseList list |> List, retoks) |> Ok
| PickoutParagraph (par, retoks) ->
(parseParagraph ftLst par, retoks) |> Ok
diff --git a/FMark/src/Common/Parser/ParserTest.fs b/FMark/src/Common/Parser/ParserTest.fs
index 3ab30e8..7e9f329 100644
--- a/FMark/src/Common/Parser/ParserTest.fs
+++ b/FMark/src/Common/Parser/ParserTest.fs
@@ -271,7 +271,7 @@ let testGlobal =
);
(
[ENDLINE;ENDLINE; HASH; HASH; WHITESPACE 2; LITERAL "h2"],
- [Header({HeaderName=[FrmtedString(Literal "h2")]; Level=2},"h20")] |>Ok, "h2 header"
+ [Header({HeaderName=[FrmtedString(Literal "h2")]; Level=2; RefID="h20"})] |>Ok, "h2 header"
);
(
[HASH; HASH; LITERAL "h2"],
@@ -525,9 +525,9 @@ let ``TOC tests`` =
let h3Tok = [HASH;HASH;HASH;WHITESPACE 1;LITERAL "h3"]
let twoEndlines = endline@endline
let parsedToc = ContentTable ({HeaderLst=[]})
- let h1THeader = {HeaderName = [Link (Line [FrmtedString (Literal "h1")],"#h10")]; Level = 1}
- let h1THeader2 = {HeaderName = [Link (Line [FrmtedString (Literal "h1")],"#h11")]; Level = 1}
- let h2THeader = {HeaderName = [Link (Line [FrmtedString (Literal "h2")],"#h21")]; Level = 2}
+ let h1THeader = {HeaderName = [Link (Line [FrmtedString (Literal "h1")],"#h10")]; Level = 1; RefID="h10"}
+ let h1THeader2 = {HeaderName = [Link (Line [FrmtedString (Literal "h1")],"#h11")]; Level = 1; RefID="h11"}
+ let h2THeader = {HeaderName = [Link (Line [FrmtedString (Literal "h2")],"#h21")]; Level = 2; RefID="h21"}
let h1ContentTable =
ContentTable
@@ -550,10 +550,10 @@ let ``TOC tests`` =
h1THeader;h2THeader
]
}
- let h1ParsedObj = Header ({HeaderName = [FrmtedString (Literal "h1")];Level = 1},"h10")
- let h1ParsedObj2 = Header ({HeaderName = [FrmtedString (Literal "h1")];Level = 1},"h11")
- let h2ParsedObj = Header ({HeaderName = [FrmtedString (Literal "h2")];Level = 2},"h21")
- let h3ParsedObj = Header ({HeaderName = [FrmtedString (Literal "h3")];Level = 3},"h32")
+ let h1ParsedObj = Header ({HeaderName = [FrmtedString (Literal "h1")];Level = 1; RefID="h10"})
+ let h1ParsedObj2 = Header ({HeaderName = [FrmtedString (Literal "h1")];Level = 1; RefID="h11"})
+ let h2ParsedObj = Header ({HeaderName = [FrmtedString (Literal "h2")];Level = 2; RefID="h21"})
+ let h3ParsedObj = Header ({HeaderName = [FrmtedString (Literal "h3")];Level = 3; RefID="h32"})
makeExpectoTestList id makeOk parse "TOC tests"[
(