java类org.antlr.v4.runtime.tree.TerminalNodeImpl的实例源码

ColonWhitespaceListener.java 文件源码 项目:tailor 阅读 15 收藏 0 点赞 0 评论 0
@Override
public void enterTypeAnnotation(SwiftParser.TypeAnnotationContext ctx) {
    TerminalNodeImpl colon = (TerminalNodeImpl) ctx.getChild(0);
    ParseTree parentLeftSibling = ParseTreeUtil.getLeftSibling(colon.getParent());
    ParseTree rightSibling = ctx.getChild(1);

    Token left = ParseTreeUtil.getStopTokenForNode(parentLeftSibling);
    Token right = ParseTreeUtil.getStartTokenForNode(rightSibling);
    Token colonToken = colon.getSymbol();

    verifyColonLeftAssociation(left, right, colonToken);
}
ColonWhitespaceListener.java 文件源码 项目:tailor 阅读 17 收藏 0 点赞 0 评论 0
@Override
public void enterDictionaryType(SwiftParser.DictionaryTypeContext ctx) {
    Token left = ctx.sType(0).getStop();
    Token right = ctx.sType(1).getStart();
    Token colon = ((TerminalNodeImpl) ctx.getChild(2)).getSymbol();

    verifyColonLeftAssociation(left, right, colon);
}
ColonWhitespaceListener.java 文件源码 项目:tailor 阅读 17 收藏 0 点赞 0 评论 0
@Override
public void enterTypeInheritanceClause(SwiftParser.TypeInheritanceClauseContext ctx) {
    Token colon = ((TerminalNodeImpl) ctx.getChild(0)).getSymbol();
    Token right = ((ParserRuleContext) ctx.getChild(1)).getStart();
    Token left = ((ParserRuleContext) ParseTreeUtil.getLeftSibling(ctx)).getStop();

    verifyColonLeftAssociation(left, right, colon);
}
ColonWhitespaceListener.java 文件源码 项目:tailor 阅读 17 收藏 0 点赞 0 评论 0
@Override
public void enterConditionalOperator(SwiftParser.ConditionalOperatorContext ctx) {
    Token colon = ((TerminalNodeImpl) ctx.getChild(ctx.getChildCount() - 1)).getSymbol();
    Token left = ctx.expression().getStop();
    Token right = ((ParserRuleContext) ParseTreeUtil.getRightSibling(ctx)).getStart();

    verifyColonIsSpaceDelimited(left, right, colon);
}
ColonWhitespaceListener.java 文件源码 项目:tailor 阅读 17 收藏 0 点赞 0 评论 0
@Override
public void enterTupleElement(SwiftParser.TupleElementContext ctx) {
    if (ctx.identifier() != null) {
        Token colon = ((TerminalNodeImpl) ctx.getChild(1)).getSymbol();
        Token left = ctx.identifier().getStop();

        if (ctx.expression() != null) {
            Token right = ctx.expression().getStart();
            verifyColonLeftAssociation(left, right, colon);
        } else {
            verifier.verifyPunctuationLeftAssociation(left, colon, Messages.COLON);
        }
    }
}
ColonWhitespaceListener.java 文件源码 项目:tailor 阅读 16 收藏 0 点赞 0 评论 0
@Override
public void enterFunctionCallArgument(SwiftParser.FunctionCallArgumentContext ctx) {
    if (ctx.functionCallIdentifier() != null) {
        Token colon = ((TerminalNodeImpl) ctx.getChild(1)).getSymbol();
        Token left = ctx.functionCallIdentifier().getStop();
        if (ctx.expression() == null && ctx.operator() == null) {
            verifier.verifyPunctuationLeftAssociation(left, colon, Messages.COLON);
            return;
        }
        ParserRuleContext rightCtx = ctx.expression() == null ? ctx.operator() : ctx.expression();
        Token right = rightCtx.getStart();

        verifyColonLeftAssociation(left, right, colon);
    }
}
ColonWhitespaceListener.java 文件源码 项目:tailor 阅读 17 收藏 0 点赞 0 评论 0
@Override
public void enterGenericParameter(SwiftParser.GenericParameterContext ctx) {
    if (ctx.getChildCount() == 3) {
        Token colon = ((TerminalNodeImpl) ctx.getChild(1)).getSymbol();
        Token left = ctx.typeName().getStop();
        Token right = ((ParserRuleContext) ctx.getChild(2)).getStart();

        verifyColonLeftAssociation(left, right, colon);
    }
}
ColonWhitespaceListener.java 文件源码 项目:tailor 阅读 15 收藏 0 点赞 0 评论 0
@Override
public void enterArgumentName(SwiftParser.ArgumentNameContext ctx) {
    Token colon = ((TerminalNodeImpl) ctx.getChild(1)).getSymbol();
    Token left = ctx.identifier() == null
        ? ((TerminalNodeImpl) ctx.getChild(0)).getSymbol()
        : ctx.identifier().getStop();
    verifier.verifyPunctuationLeftAssociation(left, colon, Messages.COLON);
}
ArrowWhitespaceListener.java 文件源码 项目:tailor 阅读 14 收藏 0 点赞 0 评论 0
@Override
public void enterFunctionType(SwiftParser.FunctionTypeContext ctx) {
    Optional<ParseTree> arrowOptional = ctx.children.stream()
        .filter(node -> node.getText().equals("->"))
        .findFirst();
    if (!arrowOptional.isPresent()) {
        return;
    }
    ParseTree arrow = arrowOptional.get();
    Token left = ParseTreeUtil.getStopTokenForNode(ParseTreeUtil.getLeftSibling(arrow));
    Token right = ParseTreeUtil.getStartTokenForNode(ParseTreeUtil.getRightSibling(arrow));

    verifyArrowIsSpaceDelimited(left, right, ((TerminalNodeImpl) arrow).getSymbol());
}
ArrowWhitespaceListener.java 文件源码 项目:tailor 阅读 14 收藏 0 点赞 0 评论 0
private void checkWhitespaceAroundReturnArrow(ParserRuleContext ctx) {
    Token arrow = ((TerminalNodeImpl) ctx.getChild(0)).getSymbol();
    Token left = ParseTreeUtil.getStopTokenForNode(ParseTreeUtil.getLeftSibling(ctx));
    Token right = ParseTreeUtil.getStartTokenForNode(ctx.getChild(1));

    verifyArrowIsSpaceDelimited(left, right, arrow);
}


问题


面经


文章

微信
公众号

扫码关注公众号