|
ActiveTcl User Guide |
|
[ Main table Of Contents | Tcllib Table Of Contents | Tcllib Index ]
term::receive::bind(n) 0.1 "Terminal control"
term::receive::bind - Keyboard dispatch from terminals
TABLE OF
CONTENTS
SYNOPSIS
DESCRIPTION
Class API
Object API
Notes
KEYWORDS
COPYRIGHT
package require Tcl 8.4
package require term::receive::bind ?0.1?
This package provides a class for the creation of simple
dispatchers from character sequences to actions. Internally each
dispatcher is in essence a deterministic finite automaton with tree
structure.
The package exports a single command, the class command,
enabling the creation of dispatcher instances. Its API is:
- term::receive::bind object ?map?
- This command creates a new dispatcher object with the name object, initializes it, and returns the fully
qualified name of the object command as its result.
The argument is a dictionary mapping from strings, i.e. character
sequences to the command prefices to invoke when the sequence is
found in the input stream.
The objects created by the class command provide the methods
listed below:
- object map str cmd
- This method adds an additional mapping from the string str to the action cmd. The
mapping will take effect immediately should the processor be in a
prefix of str, or at the next reset operation.
The action is a command prefix and will be invoked with one
argument appended to it, the character sequence causing the
invokation. It is executed in the global namespace.
- object default
cmd
- This method defines a default action cmd
which will be invoked whenever an unknown character sequence is
encountered. The command prefix is handled in the same as the
regular action defined via method map.
- object listen
?chan?
- This methods sets up a filevent listener for the channel with
handle chan and invokes the dispatcher object
whenever characters have been received, or EOF was reached.
If not specified chan defaults to
stdin.
- object unlisten
?chan?
- This methods removes the filevent listener for the channel with
handle chan.
If not specified chan defaults to
stdin.
- object
reset
- This method resets the character processor to the beginning of
the tree.
- object next char
- This method causes the character processor to process the
character c. This may simply advance the
internal state, or invoke an associated action for a recognized
sequence.
- object process
str
- This method causes the character processor to process the
character sequence str, advancing the internal
state and invoking action as necessary. This is a callback for
listen.
- object
eof
- This method causes the character processor to handle EOF on the
input. This is currently no-op. This is a callback for
listen.
The simplicity of the DFA means that it is not possible to
recognize a character sequence with has a another recognized
character sequence as its prefix.
In other words, the set of recognized strings has to form a
prefix code.
character input , control , dispatcher , listener , receiver , terminal
Copyright © 2006 Andreas Kupries
<andreas_kupries@users.sourceforge.net>