|
From: <md...@us...> - 2007-08-21 19:08:59
|
Revision: 3725
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=3725&view=rev
Author: mdboom
Date: 2007-08-21 12:08:55 -0700 (Tue, 21 Aug 2007)
Log Message:
-----------
Fix the parser so it doesn't silently fail. Speed up by using
pyparsing's packrat feature.
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/_mathtext_data.py
trunk/matplotlib/lib/matplotlib/mathtext.py
Modified: trunk/matplotlib/lib/matplotlib/_mathtext_data.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/_mathtext_data.py 2007-08-21 17:25:57 UTC (rev 3724)
+++ trunk/matplotlib/lib/matplotlib/_mathtext_data.py 2007-08-21 19:08:55 UTC (rev 3725)
@@ -30,7 +30,6 @@
r'\bigwedge' : ('cmex10', 4),
r'\bigvee' : ('cmex10', 37),
r'\coprod' : ('cmex10', 42),
- r'\sqrt' : ('cmex10', 48),
r'\leftbrace' : ('cmex10', 92),
r'{' : ('cmex10', 92),
r'\{' : ('cmex10', 92),
@@ -317,7 +316,6 @@
r'\Pi' : ('psyr', 213),
r'\prod' : ('psyr', 213),
r'\surd' : ('psyr', 214),
- r'\sqrt' : ('psyr', 214),
r'\cdot' : ('psyr', 215),
r'\urcorner' : ('psyr', 216),
r'\vee' : ('psyr', 217),
@@ -2046,7 +2044,6 @@
'rightzigzagarrow': 8669,
'rightarrow': 8594,
'leftarrow': 8592,
-'sqrt': 8730,
'twoheaddownarrow': 8609,
'oint': 8750,
'bigvee': 8897,
@@ -2556,7 +2553,6 @@
'rightzigzagarrow': 'uni21DD',
'rightarrow': 'uni2192',
'leftarrow': 'uni2190',
-'sqrt': 'uni221A',
'twoheaddownarrow': 'uni21A1',
'oint': 'uni222E',
'bigvee': 'uni22C1',
Modified: trunk/matplotlib/lib/matplotlib/mathtext.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/mathtext.py 2007-08-21 17:25:57 UTC (rev 3724)
+++ trunk/matplotlib/lib/matplotlib/mathtext.py 2007-08-21 19:08:55 UTC (rev 3725)
@@ -143,7 +143,7 @@
Combine, Group, Optional, Forward, NotAny, alphas, nums, alphanums, \
StringStart, StringEnd, ParseFatalException, FollowedBy, Regex, \
operatorPrecedence, opAssoc, ParseResults, Or, Suppress, oneOf, \
- ParseException, MatchFirst
+ ParseException, MatchFirst, NoMatch
from matplotlib.afm import AFM
from matplotlib.cbook import enumerate, iterable, Bunch, get_realpath_and_stat, \
@@ -1806,12 +1806,12 @@
+ rbrace
).setParseAction(self.customspace).setName('customspace')
- symbol =(Regex(r"[a-zA-Z0-9 +\-*/<>=:,.;!'@()[\]]")
- ^ Combine(
- bslash
- + oneOf(tex2uni.keys())
- )
- ).setParseAction(self.symbol).leaveWhitespace()
+ symbol =(Regex(r"([a-zA-Z0-9 +\-*/<>=:,.;!'@()])|(\\[%${}\[\]])")
+ | Combine(
+ bslash
+ + oneOf(tex2uni.keys())
+ )
+ ).setParseAction(self.symbol).leaveWhitespace()
accent = Group(
Combine(bslash + accent)
@@ -1823,7 +1823,7 @@
group = Group(
start_group
- + OneOrMore(
+ + ZeroOrMore(
autoDelim
| simple)
+ end_group
@@ -1907,7 +1907,7 @@
math = OneOrMore(
autoDelim
- | simple
+ ^ simple
).setParseAction(self.math).setName("math")
math_delim =(~bslash
@@ -1916,16 +1916,18 @@
non_math = Regex(r"(?:[^$]|(?:\\\$))*"
).setParseAction(self.non_math).setName("non_math").leaveWhitespace()
- self._expression <<(
- non_math
- + ZeroOrMore(
- Suppress(math_delim)
- + math
- + Suppress(math_delim)
- + non_math
- )
- )
+ self._expression << (
+ non_math
+ + ZeroOrMore(
+ Suppress(math_delim)
+ + math
+ + Suppress(math_delim)
+ + non_math
+ )
+ ) + StringEnd()
+ self._expression.enablePackrat()
+
self.clear()
def clear(self):
@@ -1966,6 +1968,7 @@
self._state_stack.append(self.get_state().copy())
def finish(self, s, loc, toks):
+ #~ print "finish", toks
self._expr = Hlist(toks)
return [self._expr]
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|