/*! * Copyright 2016 The ANTLR Project. All rights reserved. * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information. */ import { BufferedTokenStream } from "./BufferedTokenStream"; import { Token } from "./Token"; import { TokenSource } from "./TokenSource"; /** * This class extends {@link BufferedTokenStream} with functionality to filter * token streams to tokens on a particular channel (tokens where * {@link Token#getChannel} returns a particular value). * * This token stream provides access to all tokens by index or when calling * methods like {@link #getText}. The channel filtering is only used for code * accessing tokens via the lookahead methods {@link #LA}, {@link #LT}, and * {@link #LB}. * * By default, tokens are placed on the default channel * ({@link Token#DEFAULT_CHANNEL}), but may be reassigned by using the * `->channel(HIDDEN)` lexer command, or by using an embedded action to * call {@link Lexer#setChannel}. * * Note: lexer rules which use the `->skip` lexer command or call * {@link Lexer#skip} do not produce tokens at all, so input text matched by * such a rule will not be available as part of the token stream, regardless of * channel. */ export declare class CommonTokenStream extends BufferedTokenStream { /** * Specifies the channel to use for filtering tokens. * * The default value is {@link Token#DEFAULT_CHANNEL}, which matches the * default channel assigned to tokens created by the lexer. */ protected channel: number; /** * Constructs a new {@link CommonTokenStream} using the specified token * source and filtering tokens to the specified channel. Only tokens whose * {@link Token#getChannel} matches `channel` or have the * `Token.type` equal to {@link Token#EOF} will be returned by the * token stream lookahead methods. * * @param tokenSource The token source. * @param channel The channel to use for filtering tokens. */ constructor(tokenSource: TokenSource, channel?: number); protected adjustSeekIndex(i: number): number; protected tryLB(k: number): Token | undefined; tryLT(k: number): Token | undefined; /** Count EOF just once. */ getNumberOfOnChannelTokens(): number; }