summaryrefslogtreecommitdiffstats
path: root/Demo/tkinter/guido
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2000-10-06 17:38:42 (GMT)
committerGuido van Rossum <guido@python.org>2000-10-06 17:38:42 (GMT)
commit75698a4937130b0ca8019c553a4be7f02eb5ab0a (patch)
tree0a7f3b60273d3d017896c014f9b0b66487520f94 /Demo/tkinter/guido
parent70280b859eddfa178d9a5f8824112135ace87b40 (diff)
downloadcpython-75698a4937130b0ca8019c553a4be7f02eb5ab0a.zip
cpython-75698a4937130b0ca8019c553a4be7f02eb5ab0a.tar.gz
cpython-75698a4937130b0ca8019c553a4be7f02eb5ab0a.tar.bz2
Removing these scripts. redemo.py lives on in Tools/scripts/.
regexdemo.py is obsolete with the regex module.
Diffstat (limited to 'Demo/tkinter/guido')
-rw-r--r--Demo/tkinter/guido/redemo.py171
-rw-r--r--Demo/tkinter/guido/regexdemo.py127
2 files changed, 0 insertions, 298 deletions
diff --git a/Demo/tkinter/guido/redemo.py b/Demo/tkinter/guido/redemo.py
deleted file mode 100644
index 535e756..0000000
--- a/Demo/tkinter/guido/redemo.py
+++ /dev/null
@@ -1,171 +0,0 @@
-"""Basic regular expression demostration facility (Perl style syntax)."""
-
-from Tkinter import *
-import re
-
-class ReDemo:
-
- def __init__(self, master):
- self.master = master
-
- self.promptdisplay = Label(self.master, anchor=W,
- text="Enter a Perl-style regular expression:")
- self.promptdisplay.pack(side=TOP, fill=X)
-
- self.regexdisplay = Entry(self.master)
- self.regexdisplay.pack(fill=X)
- self.regexdisplay.focus_set()
-
- self.addoptions()
-
- self.statusdisplay = Label(self.master, text="", anchor=W)
- self.statusdisplay.pack(side=TOP, fill=X)
-
- self.labeldisplay = Label(self.master, anchor=W,
- text="Enter a string to search:")
- self.labeldisplay.pack(fill=X)
- self.labeldisplay.pack(fill=X)
-
- self.showframe = Frame(master)
- self.showframe.pack(fill=X, anchor=W)
-
- self.showvar = StringVar(master)
- self.showvar.set("first")
-
- self.showfirstradio = Radiobutton(self.showframe,
- text="Highlight first match",
- variable=self.showvar,
- value="first",
- command=self.recompile)
- self.showfirstradio.pack(side=LEFT)
-
- self.showallradio = Radiobutton(self.showframe,
- text="Highlight all matches",
- variable=self.showvar,
- value="all",
- command=self.recompile)
- self.showallradio.pack(side=LEFT)
-
- self.stringdisplay = Text(self.master, width=60, height=4)
- self.stringdisplay.pack(fill=BOTH, expand=1)
- self.stringdisplay.tag_configure("hit", background="yellow")
-
- self.grouplabel = Label(self.master, text="Groups:", anchor=W)
- self.grouplabel.pack(fill=X)
-
- self.grouplist = Listbox(self.master)
- self.grouplist.pack(expand=1, fill=BOTH)
-
- self.regexdisplay.bind('<Key>', self.recompile)
- self.stringdisplay.bind('<Key>', self.reevaluate)
-
- self.compiled = None
- self.recompile()
-
- btags = self.regexdisplay.bindtags()
- self.regexdisplay.bindtags(btags[1:] + btags[:1])
-
- btags = self.stringdisplay.bindtags()
- self.stringdisplay.bindtags(btags[1:] + btags[:1])
-
- def addoptions(self):
- self.frames = []
- self.boxes = []
- self.vars = []
- for name in ('IGNORECASE',
- 'LOCALE',
- 'MULTILINE',
- 'DOTALL',
- 'VERBOSE'):
- if len(self.boxes) % 3 == 0:
- frame = Frame(self.master)
- frame.pack(fill=X)
- self.frames.append(frame)
- val = getattr(re, name)
- var = IntVar()
- box = Checkbutton(frame,
- variable=var, text=name,
- offvalue=0, onvalue=val,
- command=self.recompile)
- box.pack(side=LEFT)
- self.boxes.append(box)
- self.vars.append(var)
-
- def getflags(self):
- flags = 0
- for var in self.vars:
- flags = flags | var.get()
- flags = flags
- return flags
-
- def recompile(self, event=None):
- try:
- self.compiled = re.compile(self.regexdisplay.get(),
- self.getflags())
- bg = self.promptdisplay['background']
- self.statusdisplay.config(text="", background=bg)
- except re.error, msg:
- self.compiled = None
- self.statusdisplay.config(
- text="re.error: %s" % str(msg),
- background="red")
- self.reevaluate()
-
- def reevaluate(self, event=None):
- try:
- self.stringdisplay.tag_remove("hit", "1.0", END)
- except TclError:
- pass
- try:
- self.stringdisplay.tag_remove("hit0", "1.0", END)
- except TclError:
- pass
- self.grouplist.delete(0, END)
- if not self.compiled:
- return
- self.stringdisplay.tag_configure("hit", background="yellow")
- self.stringdisplay.tag_configure("hit0", background="orange")
- text = self.stringdisplay.get("1.0", END)
- last = 0
- nmatches = 0
- while last <= len(text):
- m = self.compiled.search(text, last)
- if m is None:
- break
- first, last = m.span()
- if last == first:
- last = first+1
- tag = "hit0"
- else:
- tag = "hit"
- pfirst = "1.0 + %d chars" % first
- plast = "1.0 + %d chars" % last
- self.stringdisplay.tag_add(tag, pfirst, plast)
- if nmatches == 0:
- self.stringdisplay.yview_pickplace(pfirst)
- groups = list(m.groups())
- groups.insert(0, m.group())
- for i in range(len(groups)):
- g = "%2d: %s" % (i, `groups[i]`)
- self.grouplist.insert(END, g)
- nmatches = nmatches + 1
- if self.showvar.get() == "first":
- break
-
- if nmatches == 0:
- self.statusdisplay.config(text="(no match)",
- background="yellow")
- else:
- self.statusdisplay.config(text="")
-
-
-# Main function, run when invoked as a stand-alone Python program.
-
-def main():
- root = Tk()
- demo = ReDemo(root)
- root.protocol('WM_DELETE_WINDOW', root.quit)
- root.mainloop()
-
-if __name__ == '__main__':
- main()
diff --git a/Demo/tkinter/guido/regexdemo.py b/Demo/tkinter/guido/regexdemo.py
deleted file mode 100644
index bfb527f..0000000
--- a/Demo/tkinter/guido/regexdemo.py
+++ /dev/null
@@ -1,127 +0,0 @@
-"""Basic regular expression demostration facility.
-
-This displays a window with two type-in boxes. In the top box, you enter a
-regular expression. In the bottom box, you enter a string. The first
-match in the string of the regular expression is highlighted with a yellow
-background (or red if the match is empty -- then the character at the match
-is highlighted). The highlighting is continuously updated. At the bottom
-are a number of checkboxes which control the regular expression syntax used
-(see the regex_syntax module for descriptions). When there's no match, or
-when the regular expression is syntactically incorrect, an error message is
-displayed.
-
-"""
-
-from Tkinter import *
-import regex
-import regex_syntax
-
-class RegexDemo:
-
- def __init__(self, master):
- self.master = master
- self.topframe = Frame(self.master)
- self.topframe.pack(fill=X)
- self.promptdisplay = Label(self.topframe, text="Enter a regex:")
- self.promptdisplay.pack(side=LEFT)
- self.statusdisplay = Label(self.topframe, text="", anchor=W)
- self.statusdisplay.pack(side=LEFT, fill=X)
- self.regexdisplay = Entry(self.master)
- self.regexdisplay.pack(fill=X)
- self.regexdisplay.focus_set()
- self.labeldisplay = Label(self.master, anchor=W,
- text="Enter a string:")
- self.labeldisplay.pack(fill=X)
- self.labeldisplay.pack(fill=X)
- self.stringdisplay = Text(self.master, width=60, height=4)
- self.stringdisplay.pack(fill=BOTH, expand=1)
- self.stringdisplay.tag_configure("hit", background="yellow")
- self.addoptions()
- self.regexdisplay.bind('<Key>', self.recompile)
- self.stringdisplay.bind('<Key>', self.reevaluate)
- self.compiled = None
- self.recompile()
- btags = self.regexdisplay.bindtags()
- self.regexdisplay.bindtags(btags[1:] + btags[:1])
- btags = self.stringdisplay.bindtags()
- self.stringdisplay.bindtags(btags[1:] + btags[:1])
-
- def addoptions(self):
- self.frames = []
- self.boxes = []
- self.vars = []
- for name in ( 'RE_NO_BK_PARENS',
- 'RE_NO_BK_VBAR',
- 'RE_BK_PLUS_QM',
- 'RE_TIGHT_VBAR',
- 'RE_NEWLINE_OR',
- 'RE_CONTEXT_INDEP_OPS'):
- if len(self.boxes) % 3 == 0:
- frame = Frame(self.master)
- frame.pack(fill=X)
- self.frames.append(frame)
- val = getattr(regex_syntax, name)
- var = IntVar()
- box = Checkbutton(frame,
- variable=var, text=name,
- offvalue=0, onvalue=val,
- command=self.newsyntax)
- box.pack(side=LEFT)
- self.boxes.append(box)
- self.vars.append(var)
-
- def newsyntax(self):
- syntax = 0
- for var in self.vars:
- syntax = syntax | var.get()
- regex.set_syntax(syntax)
- self.recompile()
-
- def recompile(self, event=None):
- try:
- self.compiled = regex.compile(self.regexdisplay.get())
- self.statusdisplay.config(text="")
- except regex.error, msg:
- self.compiled = None
- self.statusdisplay.config(text="regex.error: %s" % str(msg))
- self.reevaluate()
-
- def reevaluate(self, event=None):
- try:
- self.stringdisplay.tag_remove("hit", "1.0", END)
- except TclError:
- pass
- if not self.compiled:
- return
- text = self.stringdisplay.get("1.0", END)
- i = self.compiled.search(text)
- if i < 0:
- self.statusdisplay.config(text="(no match)")
- else:
- self.statusdisplay.config(text="")
- regs = self.compiled.regs
- first, last = regs[0]
- if last == first:
- last = first+1
- self.stringdisplay.tag_configure("hit",
- background="red")
- else:
- self.stringdisplay.tag_configure("hit",
- background="yellow")
- pfirst = "1.0 + %d chars" % first
- plast = "1.0 + %d chars" % last
- self.stringdisplay.tag_add("hit", pfirst, plast)
- self.stringdisplay.yview_pickplace(pfirst)
-
-
-
-# Main function, run when invoked as a stand-alone Python program.
-
-def main():
- root = Tk()
- demo = RegexDemo(root)
- root.protocol('WM_DELETE_WINDOW', root.quit)
- root.mainloop()
-
-if __name__ == '__main__':
- main()