eXept Software AG Logo

Smalltalk/X Webserver

Documentation of class 'RBProgramNodeVisitor':

Home

Documentation
www.exept.de
Everywhere
for:
[back]

Class: RBProgramNodeVisitor


Inheritance:

   Object
   |
   +--RBProgramNodeVisitor
      |
      +--CodeGenerator
      |
      +--ParseTreeSearcher
      |
      +--RBFormatter
      |
      +--RBPluggableProgramNodeVisitor
      |
      +--Tools::BreakpointBrowser::MessageArgumentExtractor

Package:
stx:goodies/refactoryBrowser/parser
Category:
Refactory-ParseTree Matching
Version:
rev: 1.21 date: 2021/01/20 11:48:20
user: cg
file: RBProgramNodeVisitor.st directory: goodies/refactoryBrowser/parser
module: stx stc-classLibrary: parser

Description:


BRProgramNodeVisitor is an abstract visitor for the BRProgramNodes.

cg: I have made it half-concrete, by allowing for a node-action to be
set. This allows for very lightweight use in search for something applications.


Class protocol:

instance creation
o  new
(comment from inherited method)
return an instance of myself without indexed variables


Instance protocol:

accessing
o  pluggableNodeAction: something

copying
o  copy
Here since IBM doesn't do postCopy's

copying-private
o  postCopy

initialize-release
o  initialize

visiting
o  visitArgument: each
Here to allow subclasses to detect arguments or temporaries.

o  visitArguments: aNodeCollection
returns aNodeCollection (actually: whatever its do: method returns)
(not sure if it must do so, or if it is sloppy programming)

o  visitNode: aNode

visitor-double dispatching
o  acceptArrayNode: anArrayNode
that's a squeak constructed array

o  acceptAssignmentNode: anAssignmentNode

o  acceptBlockNode: aBlockNode

o  acceptCascadeNode: aCascadeNode

o  acceptLiteralNode: aLiteralNode

o  acceptMessageNode: aMessageNode

o  acceptMethodNode: aMethodNode

o  acceptOptimizedNode: anOptimizedNode

o  acceptPragmaNode: aPragmaNode

o  acceptReturnNode: aReturnNode

o  acceptSTXPrimitiveCCodeNode: aPrimitiveCCodeNode

o  acceptSTXPrimitiveValueCCodeNode: aPrimitiveValueCCodeNode

o  acceptSequenceNode: aSequenceNode

o  acceptVariableNode: aVariableNode

o  passByNode: aNode
called when we passed by some node, aNode.
Can be redefined in a subclass to track any visited node
(without a need to redefine all of the accept***Node methods) in a subclass



ST/X 7.7.0.0; WebServer 1.702 at 20f6060372b9.unknown:8081; Sat, 21 Dec 2024 16:01:28 GMT