From 0ab7718b557280bc3725a0cb29355e567e8bd1d8 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 12 Sep 2026 10:09:58 +0100 Subject: Update java-mammoth to 0ee7fbb98f8f119d6086bc08bfbe959643e9dd44 --- Mammoth/Couscous/java/util/Queue.cs | 1 + Mammoth/Couscous/mammoth/internal/util/Queues.cs | 12 ++++++++---- Mammoth/generated.cs | 8 +++++++- java-mammoth | 2 +- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/Mammoth/Couscous/java/util/Queue.cs b/Mammoth/Couscous/java/util/Queue.cs index 6cb462f..8b757db 100644 --- a/Mammoth/Couscous/java/util/Queue.cs +++ b/Mammoth/Couscous/java/util/Queue.cs @@ -3,6 +3,7 @@ using Mammoth.Couscous.java.lang; namespace Mammoth.Couscous.java.util { internal interface Queue : Iterable { void add(T value); + bool isEmpty(); T remove(); } } diff --git a/Mammoth/Couscous/mammoth/internal/util/Queues.cs b/Mammoth/Couscous/mammoth/internal/util/Queues.cs index 9bf099c..325b29a 100644 --- a/Mammoth/Couscous/mammoth/internal/util/Queues.cs +++ b/Mammoth/Couscous/mammoth/internal/util/Queues.cs @@ -8,18 +8,22 @@ namespace Mammoth.Couscous.org.zwobble.mammoth.@internal.util return new Stack(); } } - + internal class Stack : Queue { private readonly System.Collections.Generic.IList _stack = new System.Collections.Generic.List(); - + public Iterator iterator() { return ToJava.EnumeratorToIterator(_stack.GetEnumerator()); } - + public void add(T value) { _stack.Add(value); } - + + public bool isEmpty() { + return _stack.Count == 0; + } + public T remove() { var index = _stack.Count - 1; var value = _stack[index]; diff --git a/Mammoth/generated.cs b/Mammoth/generated.cs index 0155ded..54fbfc1 100644 --- a/Mammoth/generated.cs +++ b/Mammoth/generated.cs @@ -4163,6 +4163,9 @@ namespace Mammoth.Couscous.org.zwobble.mammoth.@internal.docx { (this._complexFieldStack).add(Mammoth.Couscous.org.zwobble.mammoth.@internal.docx.StatefulBodyXmlReader__ComplexField_static.begin(element)); (this._currentInstrText).setLength(0); } else if (type.Equals("end")) { + if ((this._complexFieldStack).isEmpty()) { + return Mammoth.Couscous.org.zwobble.mammoth.@internal.docx.ReadResult.emptyWithWarning("Ignoring complex field end character without corresponding start character"); + } Mammoth.Couscous.org.zwobble.mammoth.@internal.docx.StatefulBodyXmlReader__ComplexField complexField = (this._complexFieldStack).remove(); if (complexField is Mammoth.Couscous.org.zwobble.mammoth.@internal.docx.StatefulBodyXmlReader__BeginComplexField) { complexField = this.parseCurrentInstrText(complexField); @@ -4171,6 +4174,9 @@ namespace Mammoth.Couscous.org.zwobble.mammoth.@internal.docx { return Mammoth.Couscous.org.zwobble.mammoth.@internal.docx.ReadResult.success(new Mammoth.Couscous.org.zwobble.mammoth.@internal.documents.Checkbox(((Mammoth.Couscous.org.zwobble.mammoth.@internal.docx.StatefulBodyXmlReader__CheckboxComplexField) complexField)._checked)); } } else if (type.Equals("separate")) { + if ((this._complexFieldStack).isEmpty()) { + return Mammoth.Couscous.org.zwobble.mammoth.@internal.docx.ReadResult.emptyWithWarning("Ignoring complex field separator character without corresponding start character"); + } Mammoth.Couscous.org.zwobble.mammoth.@internal.docx.StatefulBodyXmlReader__ComplexField complexFieldSeparate = (this._complexFieldStack).remove(); Mammoth.Couscous.org.zwobble.mammoth.@internal.docx.StatefulBodyXmlReader__ComplexField complexField = this.parseCurrentInstrText(complexFieldSeparate); (this._complexFieldStack).add(complexField); @@ -6854,7 +6860,7 @@ namespace Mammoth.Couscous.org.zwobble.mammoth.@internal.styles.parsing { return new Mammoth.Couscous.org.zwobble.mammoth.@internal.styles.parsing.TokenIterator(Mammoth.Couscous.org.zwobble.mammoth.@internal.styles.parsing.StyleMappingTokeniser.tokeniseToList(line), new Mammoth.Couscous.org.zwobble.mammoth.@internal.styles.parsing.Token(line.Length, Mammoth.Couscous.org.zwobble.mammoth.@internal.styles.parsing.TokenType._EOF, "")); } public static Mammoth.Couscous.java.util.List> tokeniseToList(string line) { - string stringPrefix = "'(?:(?:\\\\.|[^'])*)"; + string stringPrefix = "'(?:(?:\\\\(?:.|$)|[^'\\\\])*)"; string identifierCharacter = "(?:[a-zA-Z\\-_]|\\\\.)"; Mammoth.Couscous.org.zwobble.mammoth.@internal.styles.parsing.RegexTokeniser tokeniser = new Mammoth.Couscous.org.zwobble.mammoth.@internal.styles.parsing.RegexTokeniser(Mammoth.Couscous.org.zwobble.mammoth.@internal.styles.parsing.TokenType._UNKNOWN, Mammoth.Couscous.org.zwobble.mammoth.@internal.util.Lists.list>(new Mammoth.Couscous.org.zwobble.mammoth.@internal.styles.parsing.RegexTokeniser__TokenRule[] {Mammoth.Couscous.org.zwobble.mammoth.@internal.styles.parsing.RegexTokeniser.rule(Mammoth.Couscous.org.zwobble.mammoth.@internal.styles.parsing.TokenType._IDENTIFIER, ((identifierCharacter + "(?:") + identifierCharacter) + "|[0-9])*"), Mammoth.Couscous.org.zwobble.mammoth.@internal.styles.parsing.RegexTokeniser.rule(Mammoth.Couscous.org.zwobble.mammoth.@internal.styles.parsing.TokenType._SYMBOL, ":|>|=>|\\^=|=|\\(|\\)|\\[|\\]|\\||!|\\."), Mammoth.Couscous.org.zwobble.mammoth.@internal.styles.parsing.RegexTokeniser.rule(Mammoth.Couscous.org.zwobble.mammoth.@internal.styles.parsing.TokenType._WHITESPACE, "\\s+"), Mammoth.Couscous.org.zwobble.mammoth.@internal.styles.parsing.RegexTokeniser.rule(Mammoth.Couscous.org.zwobble.mammoth.@internal.styles.parsing.TokenType._STRING, stringPrefix + "'"), Mammoth.Couscous.org.zwobble.mammoth.@internal.styles.parsing.RegexTokeniser.rule(Mammoth.Couscous.org.zwobble.mammoth.@internal.styles.parsing.TokenType._UNTERMINATED_STRING, stringPrefix), Mammoth.Couscous.org.zwobble.mammoth.@internal.styles.parsing.RegexTokeniser.rule(Mammoth.Couscous.org.zwobble.mammoth.@internal.styles.parsing.TokenType._INTEGER, "[0-9]+")})); return tokeniser.tokenise(line); diff --git a/java-mammoth b/java-mammoth index 972b8e2..0ee7fbb 160000 --- a/java-mammoth +++ b/java-mammoth @@ -1 +1 @@ -Subproject commit 972b8e2407f11d00927e81cd54efe6f1fe5c2346 +Subproject commit 0ee7fbb98f8f119d6086bc08bfbe959643e9dd44 -- cgit v1.2.3