eXept Software AG Logo

Smalltalk/X Webserver

Documentation of class 'RBBlockNode':

Home

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

Class: RBBlockNode


Inheritance:

   Object
   |
   +--RBProgramNode
      |
      +--RBStatementNode
         |
         +--RBValueNode
            |
            +--RBBlockNode
               |
               +--RBPatternBlockNode

Package:
stx:goodies/refactoryBrowser/parser
Category:
Refactory-AST-Nodes
Version:
rev: 1.37 date: 2024/02/09 11:35:33
user: stefan
file: RBBlockNode.st directory: goodies/refactoryBrowser/parser
module: stx stc-classLibrary: parser

Description:


BRBlockNode is an AST node that represents a block "[...]".

Instance Variables:
	arguments	<SequenceableCollection of: BRVariableNode>	the arguments for the block
	bar	<Integer | nil>	position of the | after the arguments
	body	<BRSequenceNode>	the code inside the block
	colons	<SequenceableCollection of: Integer>	positions of each : before each argument
	left	<Integer>	position of [
	right	<Integer>	position of ]


Class protocol:

instance creation
o  arguments: argNodes body: sequenceNode

o  body: sequenceNode


Instance protocol:

accessing
o  allArgumentVariablesInto: aCollection
(self argumentNames includes:'stringToSearchFor')ifTrue:[self halt].

o  allDefinedVariables

o  allVariablesOnScope

o  argumentCount

o  argumentNames

o  arguments

o  arguments: argCollection

o  bar
return the position of the bar, if any

o  bar: barPosition

o  blockScope

o  blockVariables

o  body

o  body: stmtsNode

o  children

o  colons: anObject

o  firstLineNumber

o  firstLineNumber: something

o  lastLineNumber

o  lastLineNumber: something

o  left

o  left: anObject

o  numArgs
marked as obsolete by Stefan Vogel at 9-Feb-2024

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  precedence

o  right

o  right: anObject

o  startWithoutParentheses

o  stopWithoutParentheses
right

comparing
o  = anObject
(comment from inherited method)
return true if the receiver and the arg have the same structure.
Notice:
This method is partially open coded (inlined) by the compiler(s)
identical objects are always considered equal.
redefining it may not work as expected.

o  equalTo: anObject withMapping: aDictionary
return true, if I am equal to another node, with a given variable name mapping.
Side effect: update the mapping dictionary as required to reflect a matching mapping (if possible)

o  equalTo: anObject withSelectorMapping: aDictionary
return true, if I am equal to another node, with a given selector name mapping.
Side effect: update the mapping dictionary as required to reflect a matching mapping (if possible)

o  hash
(comment from inherited method)
return an Integer useful as a hash key for the receiver.
This hash should return same values for objects with same
contents (i.e. use this to hash on structure)

o  semanticallyEqualTo: anObject withMapping: aDictionary
return true, if I am semantically equal to another node, with a given variable name mapping.
Side effect: update the mapping dictionary as required to reflect a matching mapping (if possible)

copying-private
o  postCopy
super postCopy.

enumeration
o  variableNodesDo: aBlock
evaluate a Block for all variable nodes

matching
o  copyInContext: aDictionary

o  match: aNode inContext: aDictionary
Modified (format): / 19-11-2016 / 15:55:28 / cg

replacing
o  replaceNode: aNode withNode: anotherNode

testing
o  defines: aName

o  directlyUses: aNode

o  hasArguments

o  hasFalseValue

o  hasStatements

o  hasTrueValue

o  isBlock

o  isImmediate

o  isLast: aNode

o  references: aVariableName

o  uses: aNode

visitor
o  acceptVisitor: aProgramNodeVisitor



ST/X 7.7.0.0; WebServer 1.702 at 20f6060372b9.unknown:8081; Thu, 21 Nov 2024 12:02:33 GMT