@@ -1936,6 +1936,7 @@ def csnames(group, names):
1936
1936
p .function = csnames ("name" , self ._function_names )
1937
1937
1938
1938
p .group = p .start_group + ZeroOrMore (p .token )("group" ) + p .end_group
1939
+ p .unclosed_group = (p .start_group + ZeroOrMore (p .token )("group" ) + StringEnd ())
1939
1940
1940
1941
p .frac = cmd (r"\frac" , p .required_group ("num" ) + p .required_group ("den" ))
1941
1942
p .dfrac = cmd (r"\dfrac" , p .required_group ("num" ) + p .required_group ("den" ))
@@ -1984,6 +1985,7 @@ def csnames(group, names):
1984
1985
p .token <<= (
1985
1986
p .simple
1986
1987
| p .auto_delim
1988
+ | p .unclosed_group
1987
1989
| p .unknown_symbol # Must be last
1988
1990
)
1989
1991
@@ -2072,7 +2074,7 @@ def main(self, s, loc, toks):
2072
2074
return [Hlist (toks )]
2073
2075
2074
2076
def math_string (self , s , loc , toks ):
2075
- return self ._math_expression .parseString (toks [0 ][1 :- 1 ])
2077
+ return self ._math_expression .parseString (toks [0 ][1 :- 1 ], parseAll = True )
2076
2078
2077
2079
def math (self , s , loc , toks ):
2078
2080
hlist = Hlist (toks )
@@ -2294,6 +2296,9 @@ def end_group(self, s, loc, toks):
2294
2296
self .pop_state ()
2295
2297
return []
2296
2298
2299
+ def unclosed_group (self , s , loc , toks ):
2300
+ raise ParseFatalException (s , len (s ), "Expected '}'" )
2301
+
2297
2302
def font (self , s , loc , toks ):
2298
2303
self .get_state ().font = toks ["font" ]
2299
2304
return []
0 commit comments