LCOV - code coverage report
Current view: top level - usr/include/antlr4-runtime - CommonTokenStream.h (source / functions) Hit Total Coverage
Test: ROSE Lines: 0 1 0.0 %
Date: 2022-12-08 13:48:47 Functions: 0 0 -
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
       2             :  * Use of this file is governed by the BSD 3-clause license that
       3             :  * can be found in the LICENSE.txt file in the project root.
       4             :  */
       5             : 
       6             : #pragma once
       7             : 
       8             : #include "BufferedTokenStream.h"
       9             : 
      10             : namespace antlr4 {
      11             : 
      12             :   /**
      13             :    * This class extends {@link BufferedTokenStream} with functionality to filter
      14             :    * token streams to tokens on a particular channel (tokens where
      15             :    * {@link Token#getChannel} returns a particular value).
      16             :    *
      17             :    * <p>
      18             :    * This token stream provides access to all tokens by index or when calling
      19             :    * methods like {@link #getText}. The channel filtering is only used for code
      20             :    * accessing tokens via the lookahead methods {@link #LA}, {@link #LT}, and
      21             :    * {@link #LB}.</p>
      22             :    *
      23             :    * <p>
      24             :    * By default, tokens are placed on the default channel
      25             :    * ({@link Token#DEFAULT_CHANNEL}), but may be reassigned by using the
      26             :    * {@code ->channel(HIDDEN)} lexer command, or by using an embedded action to
      27             :    * call {@link Lexer#setChannel}.
      28             :    * </p>
      29             :    *
      30             :    * <p>
      31             :    * Note: lexer rules which use the {@code ->skip} lexer command or call
      32             :    * {@link Lexer#skip} do not produce tokens at all, so input text matched by
      33             :    * such a rule will not be available as part of the token stream, regardless of
      34             :    * channel.</p>
      35             :    */
      36           0 :   class ANTLR4CPP_PUBLIC CommonTokenStream : public BufferedTokenStream {
      37             :   public:
      38             :     /**
      39             :      * Constructs a new {@link CommonTokenStream} using the specified token
      40             :      * source and the default token channel ({@link Token#DEFAULT_CHANNEL}).
      41             :      *
      42             :      * @param tokenSource The token source.
      43             :      */
      44             :     CommonTokenStream(TokenSource *tokenSource);
      45             : 
      46             :     /**
      47             :      * Constructs a new {@link CommonTokenStream} using the specified token
      48             :      * source and filtering tokens to the specified channel. Only tokens whose
      49             :      * {@link Token#getChannel} matches {@code channel} or have the
      50             :      * {@link Token#getType} equal to {@link Token#EOF} will be returned by the
      51             :      * token stream lookahead methods.
      52             :      *
      53             :      * @param tokenSource The token source.
      54             :      * @param channel The channel to use for filtering tokens.
      55             :      */
      56             :     CommonTokenStream(TokenSource *tokenSource, size_t channel);
      57             : 
      58             :     virtual Token* LT(ssize_t k) override;
      59             : 
      60             :     /// Count EOF just once.
      61             :     virtual int getNumberOfOnChannelTokens();
      62             :     
      63             :   protected:
      64             :     /**
      65             :      * Specifies the channel to use for filtering tokens.
      66             :      *
      67             :      * <p>
      68             :      * The default value is {@link Token#DEFAULT_CHANNEL}, which matches the
      69             :      * default channel assigned to tokens created by the lexer.</p>
      70             :      */
      71             :     size_t channel;
      72             : 
      73             :     virtual ssize_t adjustSeekIndex(size_t i) override;
      74             : 
      75             :     virtual Token* LB(size_t k) override;
      76             : 
      77             :   };
      78             : 
      79             : } // namespace antlr4

Generated by: LCOV version 1.14