From: <md...@us...> - 2007-09-04 19:29:47
|
Revision: 3777 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=3777&view=rev Author: mdboom Date: 2007-09-04 12:29:45 -0700 (Tue, 04 Sep 2007) Log Message: ----------- Better error messages. Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/mathtext.py Modified: trunk/matplotlib/lib/matplotlib/mathtext.py =================================================================== --- trunk/matplotlib/lib/matplotlib/mathtext.py 2007-09-04 19:00:18 UTC (rev 3776) +++ trunk/matplotlib/lib/matplotlib/mathtext.py 2007-09-04 19:29:45 UTC (rev 3777) @@ -138,7 +138,7 @@ Combine, Group, Optional, Forward, NotAny, alphas, nums, alphanums, \ StringStart, StringEnd, ParseFatalException, FollowedBy, Regex, \ operatorPrecedence, opAssoc, ParseResults, Or, Suppress, oneOf, \ - ParseException, MatchFirst, NoMatch + ParseException, MatchFirst, NoMatch, Empty from matplotlib.afm import AFM from matplotlib.cbook import enumerate, iterable, Bunch, get_realpath_and_stat, \ @@ -1787,6 +1787,14 @@ ############################################################################## # PARSER +def Error(msg): + def raise_error(s, loc, toks): + raise ParseFatalException(msg) + + empty = Empty() + empty.setParseAction(raise_error) + return empty + class Parser(object): _binary_operators = Set(r''' + * @@ -1887,9 +1895,10 @@ ).setParseAction(self.space).setName('space') customspace =(Literal(r'\hspace') - + lbrace - + float - + rbrace + + (( lbrace + + float + + rbrace + ) | Error(r"Expected \hspace{n}")) ).setParseAction(self.customspace).setName('customspace') symbol =(Regex(r"([a-zA-Z0-9 +\-*/<>=:,.;!'@()])|(\\[%${}\[\]])") @@ -1926,8 +1935,8 @@ bslash + Literal("frac") ) - + group - + group + + ((group + group) + | Error(r"Expected \frac{num}{den}")) ).setParseAction(self.frac).setName("frac") sqrt = Group( @@ -1946,7 +1955,7 @@ + Suppress(Literal("]")), default = None ) - + group + + (group | Error("Expected \sqrt{value}")) ).setParseAction(self.sqrt).setName("sqrt") placeable <<(accent @@ -1955,7 +1964,7 @@ ^ group ^ frac ^ sqrt - ) + ) | Error("Expected symbol or group") simple <<(space | customspace @@ -1983,12 +1992,12 @@ leftDelim = oneOf(r"( [ { \lfloor \langle \lceil") rightDelim = oneOf(r") ] } \rfloor \rangle \rceil") autoDelim <<(Suppress(Literal(r"\left")) - + (leftDelim | ambiDelim) + + ((leftDelim | ambiDelim) | Error("Expected a delimiter")) + Group( autoDelim ^ OneOrMore(simple)) + Suppress(Literal(r"\right")) - + (rightDelim | ambiDelim) + + ((rightDelim | ambiDelim) | Error("Expected a delimiter")) ) math = OneOrMore( @@ -2007,7 +2016,8 @@ + ZeroOrMore( Suppress(math_delim) + math - + Suppress(math_delim) + + (Suppress(math_delim) + | Error("Expected end of math '$'")) + non_math ) ) + StringEnd() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |