当前位置: 首页>>代码示例>>Java>>正文


Java Token.getStartIndex方法代码示例

本文整理汇总了Java中org.antlr.v4.runtime.Token.getStartIndex方法的典型用法代码示例。如果您正苦于以下问题:Java Token.getStartIndex方法的具体用法?Java Token.getStartIndex怎么用?Java Token.getStartIndex使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.antlr.v4.runtime.Token的用法示例。


在下文中一共展示了Token.getStartIndex方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: recover

import org.antlr.v4.runtime.Token; //导入方法依赖的package包/类
@Override
public void recover(final Parser recognizer, final RecognitionException re) {
    final Token token = re.getOffendingToken();
    String message;

    if (token == null) {
        message = "no parse token found.";
    } else if (re instanceof InputMismatchException) {
        message = "unexpected token [" + getTokenErrorDisplay(token) + "]" +
                " was expecting one of [" + re.getExpectedTokens().toString(recognizer.getVocabulary()) + "].";
    } else if (re instanceof NoViableAltException) {
        if (token.getType() == PainlessParser.EOF) {
            message = "unexpected end of script.";
        } else {
            message = "invalid sequence of tokens near [" + getTokenErrorDisplay(token) + "].";
        }
    } else {
        message =  "unexpected token near [" + getTokenErrorDisplay(token) + "].";
    }

    Location location = new Location(sourceName, token == null ? -1 : token.getStartIndex());
    throw location.createError(new IllegalArgumentException(message, re));
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:24,代码来源:ParserErrorStrategy.java

示例2: getAnchor

import org.antlr.v4.runtime.Token; //导入方法依赖的package包/类
@Override
protected int getAnchor(String content) {
	List<Token> tokens = codeAssist.getGrammar().lex(content);
	if (tokens.isEmpty()) {
		return 0;
	} else {
		Token lastToken = tokens.get(tokens.size()-1);
		String contentAfterLastToken = content.substring(lastToken.getStopIndex()+1);
		if (contentAfterLastToken.length() > 0) {
			contentAfterLastToken = StringUtils.trimStart(contentAfterLastToken);
			return content.length() - contentAfterLastToken.length();
		} else {
			return lastToken.getStartIndex();
		}
	}
}
 
开发者ID:jmfgdev,项目名称:gitplex-mit,代码行数:17,代码来源:ANTLRAssistBehavior.java

示例3: 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;
}
 
开发者ID:mwillema,项目名称:protobuf-netbeans-plugin,代码行数:24,代码来源:AntlrDocument.java

示例4: 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();
}
 
开发者ID:jhuapl-saralab,项目名称:exterminator,代码行数:20,代码来源:CoqSyntaxException.java

示例5: 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;
}
 
开发者ID:waterguo,项目名称:antsdb,代码行数:38,代码来源:ExprGenerator.java

示例6: recoverInline

import org.antlr.v4.runtime.Token; //导入方法依赖的package包/类
@Override
public Token recoverInline(final Parser recognizer) throws RecognitionException {
    final Token token = recognizer.getCurrentToken();
    final String message = "unexpected token [" + getTokenErrorDisplay(token) + "]" +
        " was expecting one of [" + recognizer.getExpectedTokens().toString(recognizer.getVocabulary()) + "].";

    Location location = new Location(sourceName, token.getStartIndex());
    throw location.createError(new IllegalArgumentException(message));
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:10,代码来源:ParserErrorStrategy.java

示例7: 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();
}
 
开发者ID:pgcodekeeper,项目名称:pgcodekeeper,代码行数:9,代码来源:AntlrError.java

示例8: 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();
}
 
开发者ID:rockscript,项目名称:rockscript,代码行数:8,代码来源:Location.java

示例9: 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);
}
 
开发者ID:mwillema,项目名称:protobuf-netbeans-plugin,代码行数:17,代码来源:ProtobufDocument.java

示例10: isInString

import org.antlr.v4.runtime.Token; //导入方法依赖的package包/类
@Override
public final boolean isInString(int offset) {
    Token rhsToken = tokenAt(offset, FORWARD_BIAS);

    if (isString(rhsToken)) {
        return offset != rhsToken.getStartIndex();
    }

    if (offset <= 0) {
        return false;
    }

    Token lhsToken = tokenAt(offset, BACKWARD_BIAS);
    return isUnclosedString(lhsToken);
}
 
开发者ID:mwillema,项目名称:protobuf-netbeans-plugin,代码行数:16,代码来源:AntlrDocument.java

示例11: isInComment

import org.antlr.v4.runtime.Token; //导入方法依赖的package包/类
@Override
public final boolean isInComment(int offset) {
    Token rhsToken = tokenAt(offset, FORWARD_BIAS);

    if (isComment(rhsToken)) {
        return offset != rhsToken.getStartIndex();
    }

    if (offset <= 0) {
        return false;
    }

    Token lhsToken = tokenAt(offset, BACKWARD_BIAS);
    return isLineComment(lhsToken);
}
 
开发者ID:mwillema,项目名称:protobuf-netbeans-plugin,代码行数:16,代码来源:AntlrDocument.java

示例12: 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;
}
 
开发者ID:kasonyang,项目名称:kalang,代码行数:11,代码来源:OffsetRangeHelper.java

示例13: 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();
	}
}
 
开发者ID:curiosag,项目名称:ftc,代码行数:9,代码来源:NameRecognition.java

示例14: 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();
}
 
开发者ID:ShapeChange,项目名称:ShapeChange,代码行数:28,代码来源:SbvrErrorListener.java

示例15: 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();
	}
 
开发者ID:ShapeChange,项目名称:ShapeChange,代码行数:9,代码来源:SbvrErrorInfo.java


注:本文中的org.antlr.v4.runtime.Token.getStartIndex方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。