annotate Tools/scripts/redemo.py @ 17405:afbb65b60fa2 2.0

Inspired by Tim Peters' 1.14->1.15 checkin to asynchat Quoting orignal message: ''' Fix from the Madusa mailing list: http://groups.yahoo.com/group/medusa/message/333 It's clear that Medusa should not be checking for an empty buffer via "buf is ''". The patch merely changes "is" to "==". However, there's a mystery here all the same: Python attempts to store null strings uniquely, so it's unclear why "buf is ''" ever returned false when buf actually was empty. *Some* string operations produce non-unique null strings, e.g. '''
author Moshe Zadka <moshez@math.huji.ac.il>
date Wed, 11 Apr 2001 08:06:02 +0000
parents 08e6f1019171
children 14a27acc755a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15054
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
1 """Basic regular expression demostration facility (Perl style syntax)."""
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
2
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
3 from Tkinter import *
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
4 import re
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
5
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
6 class ReDemo:
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
7
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
8 def __init__(self, master):
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
9 self.master = master
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
10
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
11 self.promptdisplay = Label(self.master, anchor=W,
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
12 text="Enter a Perl-style regular expression:")
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
13 self.promptdisplay.pack(side=TOP, fill=X)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
14
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
15 self.regexdisplay = Entry(self.master)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
16 self.regexdisplay.pack(fill=X)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
17 self.regexdisplay.focus_set()
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
18
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
19 self.addoptions()
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
20
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
21 self.statusdisplay = Label(self.master, text="", anchor=W)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
22 self.statusdisplay.pack(side=TOP, fill=X)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
23
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
24 self.labeldisplay = Label(self.master, anchor=W,
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
25 text="Enter a string to search:")
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
26 self.labeldisplay.pack(fill=X)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
27 self.labeldisplay.pack(fill=X)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
28
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
29 self.showframe = Frame(master)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
30 self.showframe.pack(fill=X, anchor=W)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
31
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
32 self.showvar = StringVar(master)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
33 self.showvar.set("first")
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
34
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
35 self.showfirstradio = Radiobutton(self.showframe,
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
36 text="Highlight first match",
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
37 variable=self.showvar,
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
38 value="first",
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
39 command=self.recompile)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
40 self.showfirstradio.pack(side=LEFT)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
41
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
42 self.showallradio = Radiobutton(self.showframe,
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
43 text="Highlight all matches",
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
44 variable=self.showvar,
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
45 value="all",
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
46 command=self.recompile)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
47 self.showallradio.pack(side=LEFT)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
48
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
49 self.stringdisplay = Text(self.master, width=60, height=4)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
50 self.stringdisplay.pack(fill=BOTH, expand=1)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
51 self.stringdisplay.tag_configure("hit", background="yellow")
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
52
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
53 self.grouplabel = Label(self.master, text="Groups:", anchor=W)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
54 self.grouplabel.pack(fill=X)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
55
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
56 self.grouplist = Listbox(self.master)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
57 self.grouplist.pack(expand=1, fill=BOTH)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
58
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
59 self.regexdisplay.bind('<Key>', self.recompile)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
60 self.stringdisplay.bind('<Key>', self.reevaluate)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
61
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
62 self.compiled = None
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
63 self.recompile()
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
64
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
65 btags = self.regexdisplay.bindtags()
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
66 self.regexdisplay.bindtags(btags[1:] + btags[:1])
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
67
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
68 btags = self.stringdisplay.bindtags()
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
69 self.stringdisplay.bindtags(btags[1:] + btags[:1])
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
70
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
71 def addoptions(self):
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
72 self.frames = []
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
73 self.boxes = []
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
74 self.vars = []
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
75 for name in ('IGNORECASE',
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
76 'LOCALE',
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
77 'MULTILINE',
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
78 'DOTALL',
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
79 'VERBOSE'):
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
80 if len(self.boxes) % 3 == 0:
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
81 frame = Frame(self.master)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
82 frame.pack(fill=X)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
83 self.frames.append(frame)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
84 val = getattr(re, name)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
85 var = IntVar()
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
86 box = Checkbutton(frame,
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
87 variable=var, text=name,
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
88 offvalue=0, onvalue=val,
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
89 command=self.recompile)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
90 box.pack(side=LEFT)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
91 self.boxes.append(box)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
92 self.vars.append(var)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
93
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
94 def getflags(self):
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
95 flags = 0
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
96 for var in self.vars:
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
97 flags = flags | var.get()
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
98 flags = flags
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
99 return flags
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
100
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
101 def recompile(self, event=None):
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
102 try:
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
103 self.compiled = re.compile(self.regexdisplay.get(),
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
104 self.getflags())
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
105 bg = self.promptdisplay['background']
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
106 self.statusdisplay.config(text="", background=bg)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
107 except re.error, msg:
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
108 self.compiled = None
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
109 self.statusdisplay.config(
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
110 text="re.error: %s" % str(msg),
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
111 background="red")
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
112 self.reevaluate()
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
113
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
114 def reevaluate(self, event=None):
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
115 try:
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
116 self.stringdisplay.tag_remove("hit", "1.0", END)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
117 except TclError:
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
118 pass
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
119 try:
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
120 self.stringdisplay.tag_remove("hit0", "1.0", END)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
121 except TclError:
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
122 pass
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
123 self.grouplist.delete(0, END)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
124 if not self.compiled:
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
125 return
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
126 self.stringdisplay.tag_configure("hit", background="yellow")
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
127 self.stringdisplay.tag_configure("hit0", background="orange")
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
128 text = self.stringdisplay.get("1.0", END)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
129 last = 0
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
130 nmatches = 0
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
131 while last <= len(text):
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
132 m = self.compiled.search(text, last)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
133 if m is None:
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
134 break
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
135 first, last = m.span()
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
136 if last == first:
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
137 last = first+1
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
138 tag = "hit0"
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
139 else:
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
140 tag = "hit"
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
141 pfirst = "1.0 + %d chars" % first
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
142 plast = "1.0 + %d chars" % last
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
143 self.stringdisplay.tag_add(tag, pfirst, plast)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
144 if nmatches == 0:
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
145 self.stringdisplay.yview_pickplace(pfirst)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
146 groups = list(m.groups())
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
147 groups.insert(0, m.group())
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
148 for i in range(len(groups)):
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
149 g = "%2d: %s" % (i, `groups[i]`)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
150 self.grouplist.insert(END, g)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
151 nmatches = nmatches + 1
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
152 if self.showvar.get() == "first":
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
153 break
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
154
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
155 if nmatches == 0:
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
156 self.statusdisplay.config(text="(no match)",
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
157 background="yellow")
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
158 else:
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
159 self.statusdisplay.config(text="")
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
160
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
161
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
162 # Main function, run when invoked as a stand-alone Python program.
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
163
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
164 def main():
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
165 root = Tk()
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
166 demo = ReDemo(root)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
167 root.protocol('WM_DELETE_WINDOW', root.quit)
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
168 root.mainloop()
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
169
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
170 if __name__ == '__main__':
08e6f1019171 I'm moving redemo.py here from Demo/tkinter/guido, since it is
Guido van Rossum <guido@python.org>
parents:
diff changeset
171 main()