diff options
5 files changed, 13 insertions, 5 deletions
diff --git a/src/core/parser/stack/Stack.cpp b/src/core/parser/stack/Stack.cpp index cc1eb23..75a4b49 100644 --- a/src/core/parser/stack/Stack.cpp +++ b/src/core/parser/stack/Stack.cpp @@ -1528,8 +1528,11 @@ bool StackImpl::readToken(Token &token) { if (dataReader != nullptr) { dataReader->resetPeek(); - return dataReader->peek(token, currentTokens(), - currentWhitespaceMode()); + const HandlerInfo &info = currentInfo(); + const bool endAtWhitespace = + (!info.greedy && info.inImplicitDefaultField); + return dataReader->peek(token, currentTokens(), currentWhitespaceMode(), + endAtWhitespace); } return false; } diff --git a/testdata/integration/user_defined_syntax/math_limits.in.osml b/testdata/integration/user_defined_syntax/math_limits.in.osml index 3fdf77b..d8aa3d4 100644 --- a/testdata/integration/user_defined_syntax/math_limits.in.osml +++ b/testdata/integration/user_defined_syntax/math_limits.in.osml @@ -1,5 +1,5 @@ \document \import[ontology]{./ontologies/math} \begin{math} - \sum_{i=3}^{5} i_{M}^{2} + \sum_{i=3}^5 i_{M}^{2} \end{math} diff --git a/testdata/integration/user_defined_syntax/non_greedy_shortform.in.osml b/testdata/integration/user_defined_syntax/non_greedy_shortform.in.osml index 68866c6..0d700c2 100644 --- a/testdata/integration/user_defined_syntax/non_greedy_shortform.in.osml +++ b/testdata/integration/user_defined_syntax/non_greedy_shortform.in.osml @@ -1,2 +1,2 @@ \import[ontology]{./ontologies/non_greedy_shortform} -\begin{test}?a ?b?c ??d + ?+{?} \end{test} +\begin{test}?a ?b?c ??d + ?+{?} ??e f\end{test} diff --git a/testdata/integration/user_defined_syntax/non_greedy_shortform.out.osxml b/testdata/integration/user_defined_syntax/non_greedy_shortform.out.osxml index c2431eb..3ca0913 100644 --- a/testdata/integration/user_defined_syntax/non_greedy_shortform.out.osxml +++ b/testdata/integration/user_defined_syntax/non_greedy_shortform.out.osxml @@ -11,5 +11,8 @@ <test:b> <test:a/> </test:b> + <test:a/> + <test:a>e</test:a> + <test:text>f</test:text> </test:test> </document> diff --git a/testdata/integration/user_defined_syntax/ontologies/non_greedy_shortform.osml b/testdata/integration/user_defined_syntax/ontologies/non_greedy_shortform.osml index 7a370ac..6179237 100644 --- a/testdata/integration/user_defined_syntax/ontologies/non_greedy_shortform.osml +++ b/testdata/integration/user_defined_syntax/ontologies/non_greedy_shortform.osml @@ -3,6 +3,7 @@ \field \childRef[a] \childRef[b] + \childRef[text] \struct#a \syntax \short[false]{?} @@ -12,4 +13,5 @@ \short[false]{+} \field \childRef[a] - + \struct#text[transparent=true] + \primitive[type=string] |