manpagez: man pages & more
man page_util_flow(n)
Home | html | info | man
page_util_flow(n)           Parser generator tools           page_util_flow(n)



______________________________________________________________________________


NAME

       page_util_flow - page dataflow/treewalker utility


SYNOPSIS

       package require page::util::flow  ?0.1?

       package require snit

       ::page::util::flow start flowvar nodevar script

       flow visit node

       flow visitl nodelist

       flow visita node...

_________________________________________________________________


DESCRIPTION

       This  package provides a single utility command for easy dataflow based
       manipulation of arbitrary data structures, especially  abstract  syntax
       trees.


API

       ::page::util::flow start flowvar nodevar script
              This  command contains the core logic to drive the walking of an
              arbitrary data structure which  can  partitioned  into  separate
              parts. Examples of such structures are trees and graphs.

              The  command  makes  no  assumptions at all about the API of the
              structure to be walked, except that that its parts, here  called
              nodes, are identified by strings. These strings are taken as is,
              from the arguments, and the body, and handed back to  the  body,
              without modification.

              Access to the actual data structure, and all decisions regarding
              which nodes to visit in what order are delegated to the body  of
              the loop, i.e. the script.

              The  body is invoked first for the nodes in the start-set speci-
              fied via start), and from then on for the  nodes  the  body  has
              requested to be visited. The command stops when the set of nodes
              to visit becomes empty. Note that a node  can  be  visited  more
              than once. The body has complete control about this.

              The  body  is invoked in the context of the caller. The variable
              named by nodevar will be set to the current node, and the  vari-
              able  named  by  flowvar  will be set to the command of the flow
              object through which the body can request  the  nodes  to  visit
              next.  The  API provided by this object is described in the next
              section, FLOW API.

              Note that the command makes no promises regarding the  order  in
              which  nodes  are  visited, excpt that the nodes requested to be
              visited by the current iteration will be visited  afterward,  in
              some order.



FLOW API

       This  section describes the API provided by the flow object made acces-
       sible to the body script of ::page::util::flow.

       flow visit node
              Invoking this method requests that the node n is  visited  after
              the current iteration.

       flow visitl nodelist
              Invoking  this  method  requests that all the nodes found in the
              list nodelist are visited after the current iteration.

       flow visita node...
              This is the variadic arguments form of the  method  visitl,  see
              above.



BUGS, IDEAS, FEEDBACK

       This  document,  will  undoubtedly  contain  bugs  and  other problems.
       Please report such in the category  page  of  the  Tcllib  SF  Trackers
       [http://sourceforge.net/tracker/?group_id=12883].   Please  also report
       any ideas for enhancements you may have.


KEYWORDS

       dataflow, graph walking, page, parser generator, text processing,  tree
       walking


CATEGORY

       Page Parser Generator


COPYRIGHT

       Copyright (c) 2007 Andreas Kupries <andreas_kupries@users.sourceforge.net>




page                                  1.0                    page_util_flow(n)

Mac OS X 10.8 - Generated Mon Sep 10 16:32:11 CDT 2012
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.