Class: CommonTokenStream
- Inherits:
-
BufferedTokenStream
- Object
- TokenStream
- BufferedTokenStream
- CommonTokenStream
- Defined in:
- lib/antlr4/CommonTokenStream.rb
Instance Attribute Summary collapse
-
#channel ⇒ Object
Returns the value of attribute channel.
Attributes inherited from BufferedTokenStream
#fetchedEOF, #index, #tokenSource, #tokens
Instance Method Summary collapse
- #adjustSeekIndex(i) ⇒ Object
-
#getNumberOfOnChannelTokens ⇒ Object
Count EOF just once.#/.
-
#initialize(lexer, _channel = Token::DEFAULT_CHANNEL) ⇒ CommonTokenStream
constructor
A new instance of CommonTokenStream.
- #LB(k) ⇒ Object
- #LT(k) ⇒ Object
Methods inherited from BufferedTokenStream
#LA, #consume, #fetch, #fill, #filterForChannel, #get, #getHiddenTokensToLeft, #getHiddenTokensToRight, #getSourceName, #getText, #getTokens, #lazyInit, #mark, #nextTokenOnChannel, #previousTokenOnChannel, #release, #reset, #seek, #setTokenSource, #setup, #sync
Constructor Details
#initialize(lexer, _channel = Token::DEFAULT_CHANNEL) ⇒ CommonTokenStream
Returns a new instance of CommonTokenStream.
5 6 7 8 |
# File 'lib/antlr4/CommonTokenStream.rb', line 5 def initialize(lexer, _channel=Token::DEFAULT_CHANNEL) super(lexer) @channel = _channel end |
Instance Attribute Details
#channel ⇒ Object
Returns the value of attribute channel.
4 5 6 |
# File 'lib/antlr4/CommonTokenStream.rb', line 4 def channel @channel end |
Instance Method Details
#adjustSeekIndex(i) ⇒ Object
10 11 12 |
# File 'lib/antlr4/CommonTokenStream.rb', line 10 def adjustSeekIndex(i) return self.nextTokenOnChannel(i, self.channel) end |
#getNumberOfOnChannelTokens ⇒ Object
Count EOF just once.#/
44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/antlr4/CommonTokenStream.rb', line 44 def getNumberOfOnChannelTokens n = 0 self.fill() for i in 0..self.tokens.length-1 do t = self.tokens[i] if t.channel==self.channel n = n + 1 end break if t.type==Token::EOF end return n end |
#LB(k) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/antlr4/CommonTokenStream.rb', line 14 def LB(k) return nil if k==0 or (self.index-k)<0 i = self.index n = 1 # find k good tokens looking backwards while n <= k do # skip off-channel tokens i = self.previousTokenOnChannel(i - 1, self.channel) n = n + 1 end return nil if i < 0 return self.tokens[i] end |
#LT(k) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/antlr4/CommonTokenStream.rb', line 27 def LT(k) self.lazyInit() return nil if k == 0 return self.LB(-k) if k < 0 i = self.index n = 1 # we know tokens[pos] is a good one # find k good tokens while n < k do # skip off-channel tokens, but make sure to not look past EOF if self.sync(i + 1) i = self.nextTokenOnChannel(i + 1, self.channel) end n = n + 1 end return self.tokens[i] end |