本文整理匯總了Java中org.antlr.v4.runtime.Token.getStopIndex方法的典型用法代碼示例。如果您正苦於以下問題:Java Token.getStopIndex方法的具體用法?Java Token.getStopIndex怎麽用?Java Token.getStopIndex使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類org.antlr.v4.runtime.Token
的用法示例。
在下文中一共展示了Token.getStopIndex方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: containsOffset
import org.antlr.v4.runtime.Token; //導入方法依賴的package包/類
/**
* @requires token != null
* @return true iff token contains offset or offset is at the start of token
* and forwardBias is true.
*/
private static boolean containsOffset(
Token token,
int offset,
boolean forwardBias) {
int startIndex;
int stopIndex;
if (forwardBias) {
startIndex = token.getStartIndex();
stopIndex = token.getStopIndex();
} else {
startIndex = token.getStartIndex() + 1;
stopIndex = token.getStopIndex() + 1;
}
return startIndex <= offset && offset <= stopIndex;
}
示例2: underlineError
import org.antlr.v4.runtime.Token; //導入方法依賴的package包/類
protected static String underlineError(CoqFTParser parser,
Token offendingToken, int line, int charPositionInLine) {
StringBuilder sb = new StringBuilder();
CommonTokenStream tokens = (CommonTokenStream)parser.getInputStream();
String input = tokens.getTokenSource().getInputStream().toString();
String[] lines = input.split("\n");
String errorLine = lines[line - 1];
sb.append(errorLine).append('\n');
for (int i=0; i<charPositionInLine; i++) sb.append(" ");
int start = offendingToken.getStartIndex();
int stop = offendingToken.getStopIndex();
if ( start>=0 && stop>=0 ) {
for (int i=start; i<=stop; i++) sb.append("^");
}
return sb.toString();
}
示例3: Problem
import org.antlr.v4.runtime.Token; //導入方法依賴的package包/類
/**
* create a problem which spans the entire context (grammar rule) passed to it
* @param message a description of the problem
* @param ctx the context (grammar rule) which the problem pertains to.
*/
Problem(String message, ParserRuleContext ctx, Severity severity) {
this.message = message;
this.severity = severity;
if(ctx != null) {
lineNum = ctx.getStart().getLine();
rangeStart = ctx.getStart().getStartIndex();
// appears to be null only if the input is an empty string
Token stop = ctx.getStop();
if(stop != null) {
rangeEnd = stop.getStopIndex();
} else {
rangeEnd = rangeStart;
}
} else {
lineNum = NO_LINE_NUM;
rangeStart = -1;
rangeEnd = -1;
}
}
示例4: getBytes
import org.antlr.v4.runtime.Token; //導入方法依賴的package包/類
private static byte[] getBytes(Literal_value_binaryContext rule) {
Token token = rule.STRING_LITERAL().getSymbol();
byte[] bytes = new byte[token.getStopIndex() - token.getStartIndex() - 1];
CharStream cs = token.getInputStream();
int pos = cs.index();
cs.seek(token.getStartIndex() + 1);
int j = 0;
for (int i = 0; i < bytes.length; i++) {
int ch = cs.LA(i + 1);
if (ch == '\\') {
i++;
ch = cs.LA(i + 1);
if (ch == '0') {
ch = 0;
}
else if (ch == 'n') {
ch = '\n';
}
else if (ch == 'r') {
ch = '\r';
}
else if (ch == 'Z') {
ch = '\032';
}
}
bytes[j] = (byte) ch;
j++;
}
cs.seek(pos);
if (j != bytes.length) {
// esacpe characters
byte[] old = bytes;
bytes = new byte[j];
System.arraycopy(old, 0, bytes, 0, j);
}
return bytes;
}
示例5: AntlrError
import org.antlr.v4.runtime.Token; //導入方法依賴的package包/類
public AntlrError(Token tokenError, int line, int charPositionInLine, String msg) {
this.line = line;
this.charPositionInLine = charPositionInLine;
this.msg = msg;
this.start = tokenError == null ? -1 : tokenError.getStartIndex();
this.stop = tokenError == null ? -1 : tokenError.getStopIndex();
this.text = tokenError == null ? null : tokenError.getText();
}
示例6: Location
import org.antlr.v4.runtime.Token; //導入方法依賴的package包/類
public Location(ParserRuleContext parserRuleContext) {
Token start = parserRuleContext.getStart();
this.start = start.getStartIndex();
Token stop = parserRuleContext.getStop();
end = stop.getStopIndex();
line = start.getLine();
}
示例7: isUnclosedBlockComment
import org.antlr.v4.runtime.Token; //導入方法依賴的package包/類
@Override
protected boolean isUnclosedBlockComment(Token token) {
if (!isBlockComment(token)) {
return false;
}
if (containsBlockCommentOpeningSymbol(token)) {
return true;
}
return token.getStopIndex() >= text().length() - 1;
}
示例8: containsBlockCommentOpeningSymbol
import org.antlr.v4.runtime.Token; //導入方法依賴的package包/類
/**
* @requires token != null && token.type = BLOCK_COMMENT
* @return true iff token contains another block comment opening symbol '/*'
*/
private boolean containsBlockCommentOpeningSymbol(Token token) {
int startOffset = token.getStartIndex() + 2;
int stopOffset = token.getStopIndex() - 1;
if (startOffset > stopOffset) {
return false;
}
return text()
.substring(startOffset, stopOffset)
.contains(BLOCK_COMMENT_OPENING_SYMBOL);
}
示例9: getOffsetRange
import org.antlr.v4.runtime.Token; //導入方法依賴的package包/類
public static OffsetRange getOffsetRange(Token start, Token stop) {
OffsetRange offset = new OffsetRange();
offset.startOffset = start.getStartIndex();
offset.stopOffset = stop.getStopIndex();
offset.startLine = start.getLine();
offset.startLineColumn = start.getCharPositionInLine();
offset.stopLine = stop.getLine();
offset.stopLineColumn = stop.getCharPositionInLine();
return offset;
}
示例10: setTotalBoundaries
import org.antlr.v4.runtime.Token; //導入方法依賴的package包/類
private void setTotalBoundaries(Token token) {
if (state.in(NameRecognitionState.NAME1, NameRecognitionState.QUALIFIER, NameRecognitionState.NAME2)) {
if (totalLo < 0)
totalLo = token.getStartIndex();
if (totalHi < token.getStopIndex())
totalHi = token.getStopIndex();
}
}
示例11: underlineError
import org.antlr.v4.runtime.Token; //導入方法依賴的package包/類
protected <T extends Token> void underlineError(
Recognizer<T, ?> recognizer, Token offendingToken, int line,
int charPositionInLine) {
CommonTokenStream tokens = (CommonTokenStream) recognizer
.getInputStream();
String input = tokens.getTokenSource().getInputStream().toString();
String[] lines = input.split("\n");
String errorLine = lines[line - 1];
System.out.println(errorLine);
for (int i = 0; i < charPositionInLine; i++)
System.out.print(" ");
int start = offendingToken.getStartIndex();
int stop = offendingToken.getStopIndex();
if (start >= 0 && stop >= 0) {
for (int i = start; i <= stop; i++)
System.out.print("^");
}
System.out.println();
}
示例12: setMetadataFromContext
import org.antlr.v4.runtime.Token; //導入方法依賴的package包/類
public void setMetadataFromContext(ParserRuleContext ctx) {
Token start = ctx.start;
Token stop = ctx.stop;
this.offendingTextStartIndex = start.getStartIndex();
this.offendingTextStopIndex = stop.getStopIndex();
}
示例13: syntaxError
import org.antlr.v4.runtime.Token; //導入方法依賴的package包/類
@Override
public void syntaxError(Recognizer<?, ?> recognizer, Object offendingSymbol, int line, int charPositionInLine,
String msg, RecognitionException e) {
super.syntaxError(recognizer, offendingSymbol, line, charPositionInLine, msg, e);
this.line = line;
if (recognizer.getInputStream() instanceof CommonTokenStream) {
StringBuilder errorBuilder = new StringBuilder(msg);
CommonTokenStream tokenStream = (CommonTokenStream) recognizer.getInputStream();
errorBuilder.append("\n");
String expression = tokenStream.getTokenSource().getInputStream().toString();
String[] split = expression.split("(\r\n|\n)");
String error = null;
if (split.length > 0) {
if (line - 1 >= 0 && line - 1 < split.length) {
error = split[line - 1].replace("\t", " ");
} else {
error = split[split.length - 1].replace("\t", " ");
}
errorBuilder.append(error);
errorBuilder.append("\n");
} else {
errorBuilder.append(expression);
errorBuilder.append("\n");
}
for (int i = 0; i < charPositionInLine; i++) {
errorBuilder.append(" ");
}
if (offendingSymbol instanceof Token) {
Token token = (Token) offendingSymbol;
int startIndex = token.getStartIndex();
int stopIndex = token.getStopIndex();
if (startIndex >= 0 && stopIndex >= 0 && startIndex <= stopIndex) {
for (int i = token.getStartIndex(); i <= token.getStopIndex(); i++) {
errorBuilder.append("^");
}
} else {
errorBuilder.append("^");
}
} else {
errorBuilder.append("^");
}
errorMessage = errorBuilder.toString();
} else {
errorMessage = msg;
}
}
示例14: create
import org.antlr.v4.runtime.Token; //導入方法依賴的package包/類
public static SyntaxElement create(Token t, SyntaxElementType type) {
return new SyntaxElement(t.getText(), t.getStartIndex(), t.getStopIndex(), t.getTokenIndex(), type);
}
示例15: setMetadataFromToken
import org.antlr.v4.runtime.Token; //導入方法依賴的package包/類
public void setMetadataFromToken(Token token) {
this.offendingTextStartIndex = token.getStartIndex();
this.offendingTextStopIndex = token.getStopIndex();
}