# Class BufferedRuleBasedScanner

java.lang.Object
org.eclipse.jface.text.rules.RuleBasedScanner
org.eclipse.jface.text.rules.BufferedRuleBasedScanner

All Implemented Interfaces:
  `ICharacterScanner, ITokenScanner`

Direct Known Subclasses:
  `RuleBasedPartitionScanner`

public class BufferedRuleBasedScanner extends RuleBasedScanner
A buffered rule based scanner. The buffer always contains a section of a fixed size of the document to be scanned. Completely adheres to the contract of `RuleBasedScanner`.

Since:
  3.14

## Field Summary

### Fields inherited from class RuleBasedScanner

`fColumn, fDefaultReturnToken, fDelimiters, fDocument, fOffset, fRangeEnd, fRules, fTokenOffset, UNDEFINED`

### Fields inherited from interface ICharacterScanner

`EOF`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`BufferedRuleBasedScanner()`
Creates a new buffered rule based scanner which does not have any rule and a default buffer size of 500 characters.
``
`BufferedRuleBasedScanner(int size)`
Creates a new buffered rule based scanner which does not have any rule.

## Method Summary

Modifier and Type
Method
Description
`int`
`read()`
Returns the next character or EOF if end of file has been reached
`protected void`
`setBufferSize(int size)`
Sets the buffer to the given number of characters.
`void`
`setRange(IDocument document, int offset, int length)`
Configures the scanner by providing access to the document range that should be scanned.
`void`
`unread()`
Rewinds the scanner before the last read character.

### Methods inherited from class RuleBasedScanner

`getColumn, getLegalLineDelimiters, getTokenLength, getTokenOffset, nextToken, setDefaultReturnToken, setRules`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### BufferedRuleBasedScanner

protected BufferedRuleBasedScanner()
Creates a new buffered rule based scanner which does not have any rule and a default buffer size of 500 characters.

### BufferedRuleBasedScanner

public BufferedRuleBasedScanner(int size)
Creates a new buffered rule based scanner which does not have any rule. The buffer size is set to the given number of characters.

Parameters:
  `size` - the buffer size

## Method Details

### setBufferSize

protected void setBufferSize(int size)
Sets the buffer to the given number of characters.

Parameters:
  `size` - the buffer size

### setRange

public void setRange(IDocument document, int offset, int length)
Description copied from interface: `ITokenScanner`
Configures the scanner by providing access to the document range that should be scanned.

Specified by:
  `setRange` in interface `ITokenScanner`
Overrides:
  `setRange` in class `RuleBasedScanner`
Parameters:
  `document` - the document to scan
  `offset` - the offset of the document range to scan
  `length` - the length of the document range to scan

### read

public int read()
Description copied from interface: `ICharacterScanner`
Returns the next character or EOF if end of file has been reached

Specified by:
  `read` in interface `ICharacterScanner`
Overrides:
  `read` in class `RuleBasedScanner`
Returns:
  the next character or EOF

### unread

public void unread()
Description copied from interface: `ICharacterScanner`
Rewinds the scanner before the last read character.

Specified by:
  `unread` in interface `ICharacterScanner`
Overrides:
  `unread` in class `RuleBasedScanner`