Package org.fife.rsta.ac.common
Class CodeBlock
java.lang.Object
org.fife.rsta.ac.common.CodeBlock
A block of code. This can be used to implement very simple
parsing for languages that have some concept of code blocks, such as C,
Perl, Java, etc. Currently, using
CodeBlocks provides a
means of remembering where variables are defined, as well as their scopes.- Version:
- 1.0
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate intprivate CodeBlockprivate intprivate List<VariableDeclaration> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddChildCodeBlock(int start) Creates and returns a child (nested) code block.voidaddVariable(VariableDeclaration varDec) Adds a variable declaration.booleancontains(int offset) Returns whether this code block contains a given offset.getChildCodeBlock(int index) Returns a child code block.intReturns the number of child code blocks.getDeepestCodeBlockContaining(int offs) Returns the deepest code block nested under this one (or this one itself) containing a given offset.intReturns the end offset of this code block.Returns the parent code block.intReturns the start offset of this code block.getVariableDeclaration(int index) Returns a variable declaration.intReturns the number of variable declarations in this code block.getVariableDeclarationsBefore(int offs) Returns all local variables declared before a given offset, both in this code block and in all parent blocks.voidsetEndOffset(int end) Sets the end offset of this code block.
-
Field Details
-
start
private int start -
end
private int end -
parent
-
children
-
varDeclarations
-
-
Constructor Details
-
CodeBlock
public CodeBlock(int start) Constructor.- Parameters:
start- The starting offset of the code block.
-
-
Method Details
-
addChildCodeBlock
Creates and returns a child (nested) code block.- Parameters:
start- The starting offset of the nested code block.- Returns:
- The code block.
-
addVariable
Adds a variable declaration.- Parameters:
varDec- The variable declaration.
-
contains
public boolean contains(int offset) Returns whether this code block contains a given offset.- Parameters:
offset- The offset.- Returns:
- Whether this code block contains that offset.
-
getChildCodeBlock
Returns a child code block.- Parameters:
index- The index of the child code block.- Returns:
- The child code block.
- See Also:
-
getChildCodeBlockCount
public int getChildCodeBlockCount()Returns the number of child code blocks.- Returns:
- The child code block count.
- See Also:
-
getDeepestCodeBlockContaining
Returns the deepest code block nested under this one (or this one itself) containing a given offset.- Parameters:
offs- The offset to look for.- Returns:
- The deepest-nested code block containing the offset, or
nullif this code block and none of its children contain the offset.
-
getEndOffset
public int getEndOffset()Returns the end offset of this code block.- Returns:
- The end offset.
- See Also:
-
getParent
Returns the parent code block.- Returns:
- The parent code block, or
nullif there isn't one.
-
getStartOffset
public int getStartOffset()Returns the start offset of this code block.- Returns:
- The start offset.
- See Also:
-
getVariableDeclaration
Returns a variable declaration.- Parameters:
index- The index of the declaration.- Returns:
- The declaration.
- See Also:
-
getVariableDeclarationCount
public int getVariableDeclarationCount()Returns the number of variable declarations in this code block.- Returns:
- The number of variable declarations.
- See Also:
-
getVariableDeclarationsBefore
Returns all local variables declared before a given offset, both in this code block and in all parent blocks.- Parameters:
offs- The offset.- Returns:
- The
VariableDeclarations, or an empty list of none were declared before the offset.
-
setEndOffset
public void setEndOffset(int end) Sets the end offset of this code block.- Parameters:
end- The end offset.- See Also:
-