Class ASourceInputStream
Unit
parsing
Declaration
type ASourceInputStream = class(ATextInputStream)
Description
This class is defined for convenience and need not be used, strictly speaking, since instances of ASourceScanner will happily accept any valid instance of ATextInputStream or its descendants. However, this class overrides AStream.Iterator to make the construction of a source scanner for a given source stream more convenient. It retains a reference to a language definition, which is automatically passed to the scanner it creates, and it defines a constructor to make wrapping another stream convenient.
Hierarchy
Overview
Fields
Methods
Description
Fields
|
MyLanguage: AParsedLanguage; |
Refers to the language definition associated with the source stream
|
Methods
|
constructor using(const ThisLanguage: AParsedLanguage; const ThisTarget: AStream; const takeOwnershipOfTarget: boolean = true); virtual; |
Construct a new source input stream that will be parsed using the specified language definition and that will wrap the specified target stream.
If takeOwnershipOfTarget is True , then the instance will assume ownership of ThisTarget and will free it when it is, itself, freed.
The language specified by ThisLanguage will be saved and passed along to the instance of ASourceScanner created when ASourceInputStream.Iterator is called.
|
|
function init: boolean; override; |
Initializer
|
|
function Iterator: AnIterator; override; |
Construct an iterator suitable for iterating over the contents of the stream.
This method overrides the behavior inherited from AStream: it constructs and returns an instance of ASourceScanner, passing along the value of ASourceInputStream.Language. The caller is responsible for freeing the scanner when it is no longer required.
|
|
function Language: AParsedLanguage; virtual; |
Retrieve the language definition associated with the source stream.
This value is set when the stream is constructed by a call to ASourceInputStream.using and cannot be changed.
|
Generated by PasDoc 0.13.0 on 2015-06-25 11:12:03
|