Skip to content

Commit ab480f1

Browse files
committed
I figured out how it should have done it.
1 parent 03adec2 commit ab480f1

File tree

3 files changed

+20
-21
lines changed

3 files changed

+20
-21
lines changed

src/SIL.Machine/Corpora/ScriptureRefUsfmParserHandlerBase.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -155,9 +155,9 @@ public override void EndSidebar(UsfmParserState state, string marker, bool close
155155
public override void StartSubComponent(UsfmParserState state, string marker, string caller, string category)
156156
{
157157
if (_curVerseRef.IsDefault)
158-
UpdateVerseRef(state.VerseRef, marker, startAsChildElement: true);
158+
UpdateVerseRef(state.VerseRef, marker);
159159

160-
if (CurrentTextType != ScriptureTextType.None && !_duplicateVerse)
160+
if (!_duplicateVerse)
161161
{
162162
// if we hit a note in a verse paragraph and we aren't in a verse, then start a non-verse segment
163163
CheckConvertVerseParaToNonVerse(state);
@@ -240,13 +240,12 @@ private void EndNonVerseText(UsfmParserState state)
240240
_curTextType.Pop();
241241
}
242242

243-
private void UpdateVerseRef(VerseRef verseRef, string marker, bool startAsChildElement = false)
243+
private void UpdateVerseRef(VerseRef verseRef, string marker)
244244
{
245245
if (!VerseRef.AreOverlappingVersesRanges(verseRef, _curVerseRef))
246246
{
247247
_curElements.Clear();
248-
int position = startAsChildElement ? 1 : 0;
249-
_curElements.Push(new ScriptureElement(position, marker));
248+
_curElements.Push(new ScriptureElement(0, marker));
250249
}
251250
_curVerseRef = verseRef;
252251
}

tests/SIL.Machine.Tests/Corpora/UsfmMemoryTextTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ public void GetRows_VersePara_CommentFirst()
168168
Assert.That(rows[0].Text, Is.EqualTo("World"));
169169
Assert.That(rows[0].Ref, Is.EqualTo(ScriptureRef.Parse("MAT 1:0/1:f")));
170170
Assert.That(rows[1].Text, Is.EqualTo("This is a comment"));
171-
Assert.That(rows[2].Ref, Is.EqualTo(ScriptureRef.Parse("MAT 1:0:2/ip")));
171+
Assert.That(rows[2].Ref, Is.EqualTo(ScriptureRef.Parse("MAT 1:0/2:ip")));
172172
Assert.That(rows, Has.Length.EqualTo(3), string.Join(",", rows.Select(tr => tr.Text)));
173173
}
174174

tests/SIL.Machine.Tests/Corpora/UsfmTokenizerTests.cs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,30 +11,30 @@ public void Tokenize()
1111
string usfm = ReadUsfm();
1212
var tokenizer = new UsfmTokenizer();
1313
IReadOnlyList<UsfmToken> tokens = tokenizer.Tokenize(usfm);
14-
Assert.That(tokens, Has.Count.EqualTo(240));
14+
Assert.That(tokens, Has.Count.EqualTo(236));
1515

1616
Assert.That(tokens[0].Type, Is.EqualTo(UsfmTokenType.Book));
1717
Assert.That(tokens[0].Marker, Is.EqualTo("id"));
1818
Assert.That(tokens[0].Data, Is.EqualTo("MAT"));
1919
Assert.That(tokens[0].LineNumber, Is.EqualTo(1));
2020
Assert.That(tokens[0].ColumnNumber, Is.EqualTo(1));
2121

22-
Assert.That(tokens[37].Type, Is.EqualTo(UsfmTokenType.Text));
23-
Assert.That(tokens[37].Text, Is.EqualTo("Chapter One "));
24-
Assert.That(tokens[37].LineNumber, Is.EqualTo(10));
25-
Assert.That(tokens[37].ColumnNumber, Is.EqualTo(4));
22+
Assert.That(tokens[30].Type, Is.EqualTo(UsfmTokenType.Text));
23+
Assert.That(tokens[30].Text, Is.EqualTo("Chapter One "));
24+
Assert.That(tokens[30].LineNumber, Is.EqualTo(9));
25+
Assert.That(tokens[30].ColumnNumber, Is.EqualTo(4));
2626

27-
Assert.That(tokens[38].Type, Is.EqualTo(UsfmTokenType.Verse));
28-
Assert.That(tokens[38].Marker, Is.EqualTo("v"));
29-
Assert.That(tokens[38].Data, Is.EqualTo("1"));
30-
Assert.That(tokens[38].LineNumber, Is.EqualTo(11));
31-
Assert.That(tokens[38].ColumnNumber, Is.EqualTo(1));
27+
Assert.That(tokens[31].Type, Is.EqualTo(UsfmTokenType.Verse));
28+
Assert.That(tokens[31].Marker, Is.EqualTo("v"));
29+
Assert.That(tokens[31].Data, Is.EqualTo("1"));
30+
Assert.That(tokens[31].LineNumber, Is.EqualTo(10));
31+
Assert.That(tokens[31].ColumnNumber, Is.EqualTo(1));
3232

33-
Assert.That(tokens[47].Type, Is.EqualTo(UsfmTokenType.SubComponent));
34-
Assert.That(tokens[47].Marker, Is.EqualTo("f"));
35-
Assert.That(tokens[47].Data, Is.EqualTo("+"));
36-
Assert.That(tokens[47].LineNumber, Is.EqualTo(11));
37-
Assert.That(tokens[47].ColumnNumber, Is.EqualTo(52));
33+
Assert.That(tokens[40].Type, Is.EqualTo(UsfmTokenType.SubComponent));
34+
Assert.That(tokens[40].Marker, Is.EqualTo("f"));
35+
Assert.That(tokens[40].Data, Is.EqualTo("+"));
36+
Assert.That(tokens[40].LineNumber, Is.EqualTo(10));
37+
Assert.That(tokens[40].ColumnNumber, Is.EqualTo(48));
3838
}
3939

4040
[Test]

0 commit comments

Comments
 (0)