Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
ANTLR Runtime Source Code
ANTLR is a powerful parser generator for multiple programming languages including Java.
ANTLR contains 2 major modules:
ANTLR Runtime Source Code files are provided in the distribution packge (antlr4-4.10.1.zip). You can download them at ANTLR Website.
You can also browse the source code below:
✍: FYIcenter
⏎ org/antlr/v4/runtime/CommonTokenStream.java
/* * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. * Use of this file is governed by the BSD 3-clause license that * can be found in the LICENSE.txt file in the project root. */ package org.antlr.v4.runtime; /** * 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). * * <p> * 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}.</p> * * <p> * By default, tokens are placed on the default channel * ({@link Token#DEFAULT_CHANNEL}), but may be reassigned by using the * {@code ->channel(HIDDEN)} lexer command, or by using an embedded action to * call {@link Lexer#setChannel}. * </p> * * <p> * Note: lexer rules which use the {@code ->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.</p>we */ public class CommonTokenStream extends BufferedTokenStream { /** * Specifies the channel to use for filtering tokens. * * <p> * The default value is {@link Token#DEFAULT_CHANNEL}, which matches the * default channel assigned to tokens created by the lexer.</p> */ protected int channel = Token.DEFAULT_CHANNEL; /** * Constructs a new {@link CommonTokenStream} using the specified token * source and the default token channel ({@link Token#DEFAULT_CHANNEL}). * * @param tokenSource The token source. */ public CommonTokenStream(TokenSource tokenSource) { super(tokenSource); } /** * Constructs a new {@link CommonTokenStream} using the specified token * source and filtering tokens to the specified channel. Only tokens whose * {@link Token#getChannel} matches {@code channel} or have the * {@link Token#getType} 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. */ public CommonTokenStream(TokenSource tokenSource, int channel) { this(tokenSource); this.channel = channel; } @Override protected int adjustSeekIndex(int i) { return nextTokenOnChannel(i, channel); } @Override protected Token LB(int k) { if ( k==0 || (p-k)<0 ) return null; int i = p; int n = 1; // find k good tokens looking backwards while ( n<=k && i>0 ) { // skip off-channel tokens i = previousTokenOnChannel(i - 1, channel); n++; } if ( i<0 ) return null; return tokens.get(i); } @Override public Token LT(int k) { //System.out.println("enter LT("+k+")"); lazyInit(); if ( k == 0 ) return null; if ( k < 0 ) return LB(-k); int i = p; int n = 1; // we know tokens[p] is a good one // find k good tokens while ( n<k ) { // skip off-channel tokens, but make sure to not look past EOF if (sync(i + 1)) { i = nextTokenOnChannel(i + 1, channel); } n++; } // if ( i>range ) range = i; return tokens.get(i); } /** Count EOF just once. */ public int getNumberOfOnChannelTokens() { int n = 0; fill(); for (int i = 0; i < tokens.size(); i++) { Token t = tokens.get(i); if ( t.getChannel()==channel ) n++; if ( t.getType()==Token.EOF ) break; } return n; } }
⏎ org/antlr/v4/runtime/CommonTokenStream.java
Or download all of them as a single archive file:
File name: antlr-runtime-4.10.1-sources.jar File size: 308953 bytes Release date: 2022-04-15 Download
⇐ What Is ANTLR Parser Generator
2018-10-21, 30980👍, 0💬
Popular Posts:
commons-io-1.4.jar is the JAR file for Commons IO 1.4, which is a library of utilities to assist wit...
ASM is an all purpose Java bytecode manipulation and analysis framework. It can be used to modify ex...
JDK 8 jconsole.jar is the JAR file for JDK 8 JConsole, which is a graphical monitoring tool to monit...
What Is junit-3.8.1.jar? junit-3.8.1.jar is the version 3.8.1 of JUnit JAR library file. JUnit is a ...
JDK 11 jdk.jdi.jmod is the JMOD file for JDK 11 JDI (Java Debug Interface) tool. JDK 11 JDI tool com...