Search in sources :

Example 96 with Result

use of org.antlr.v4.misc.EscapeSequenceParsing.Result in project oxTrust by GluuFederation.

the class ScimPersonFilterVisitor method visitATTR_OPER_EXPR.

/**
     * {@InheritDoc}
     * <p>
     * <p>The default implementation returns the result of calling
     * {@link #visitChildren} on {@code ctx}.</p>
     *
     * @param ctx
     */
@Override
public String visitATTR_OPER_EXPR(ScimFilterParser.ATTR_OPER_EXPRContext ctx) {
    logger.info(" ScimPersonFilterVisitor.visitATTR_OPER_EXPR() ");
    ParseTree parent = ctx.getParent();
    while (parent != null) {
        if (parent.getClass().getSimpleName().equalsIgnoreCase(ScimFilterParser.LBRAC_EXPR_RBRACContext.class.getSimpleName())) {
            logger.info("********** PARENT = " + parent.getClass().getSimpleName());
            String attrName = ((ScimFilterParser.LBRAC_EXPR_RBRACContext) parent).ATTRNAME() + "." + ctx.ATTRNAME().getText();
            return attrOperCriteriaResolver(attrName, visit(ctx.operator()), visit(ctx.expression()));
        } else {
            parent = parent.getParent();
        }
    }
    return attrOperCriteriaResolver(ctx.ATTRNAME().getText(), visit(ctx.operator()), visit(ctx.expression()));
}
Also used : ParseTree(org.antlr.v4.runtime.tree.ParseTree)

Example 97 with Result

use of org.antlr.v4.misc.EscapeSequenceParsing.Result in project oxTrust by GluuFederation.

the class GroupFilterVisitor method visitATTR_OPER_CRITERIA.

/**
     * {@InheritDoc}
     * <p>
     * <p>The default implementation returns the result of calling
     * {@link #visitChildren} on {@code ctx}.</p>
     *
     * @param ctx
     */
@Override
public String visitATTR_OPER_CRITERIA(ScimFilterParser.ATTR_OPER_CRITERIAContext ctx) {
    logger.info(" GroupFilterVisitor.visitATTR_OPER_CRITERIA() ");
    ParseTree parent = ctx.getParent();
    while (parent != null) {
        if (parent.getClass().getSimpleName().equalsIgnoreCase(ScimFilterParser.LBRAC_EXPR_RBRACContext.class.getSimpleName())) {
            logger.info("********** PARENT = " + parent.getClass().getSimpleName());
            String attrName = ((ScimFilterParser.LBRAC_EXPR_RBRACContext) parent).ATTRNAME() + "." + ctx.ATTRNAME().getText();
            return attrOperCriteriaResolver(attrName, visit(ctx.operator()), visit(ctx.criteria()));
        } else {
            parent = parent.getParent();
        }
    }
    return attrOperCriteriaResolver(ctx.ATTRNAME().getText(), visit(ctx.operator()), visit(ctx.criteria()));
}
Also used : ParseTree(org.antlr.v4.runtime.tree.ParseTree)

Example 98 with Result

use of org.antlr.v4.misc.EscapeSequenceParsing.Result in project oxTrust by GluuFederation.

the class GroupFilterVisitor method visitATTR_PR.

/**
     * {@InheritDoc}
     * <p>
     * <p>The default implementation returns the result of calling
     * {@link #visitChildren} on {@code ctx}.</p>
     *
     * @param ctx
     */
@Override
public String visitATTR_PR(ScimFilterParser.ATTR_PRContext ctx) {
    logger.info(" GroupFilterVisitor.visitATTR_PR() ");
    String attrName = ctx.ATTRNAME().getText();
    ParseTree parent = ctx.getParent();
    while (parent != null) {
        if (parent.getClass().getSimpleName().equalsIgnoreCase(ScimFilterParser.LBRAC_EXPR_RBRACContext.class.getSimpleName())) {
            logger.info("********** PARENT = " + parent.getClass().getSimpleName());
            attrName = ((ScimFilterParser.LBRAC_EXPR_RBRACContext) parent).ATTRNAME() + "." + ctx.ATTRNAME().getText();
            break;
        } else {
            parent = parent.getParent();
        }
    }
    attrName = FilterUtil.stripScim2Schema(attrName);
    String[] tokens = attrName.split("\\.");
    String ldapAttributeName = getGroupLdapAttributeName(attrName);
    logger.info(" ##### ATTRNAME = " + ctx.ATTRNAME().getText() + ", ldapAttributeName = " + ldapAttributeName);
    String expr = evaluateIsPresentCriteria(ldapAttributeName, tokens);
    logger.info(" ##### expr = " + expr);
    return expr;
}
Also used : ScimFilterParser(org.gluu.oxtrust.service.antlr.scimFilter.antlr4.ScimFilterParser) ParseTree(org.antlr.v4.runtime.tree.ParseTree)

Example 99 with Result

use of org.antlr.v4.misc.EscapeSequenceParsing.Result in project oxTrust by GluuFederation.

the class UserFilterVisitor method visitATTR_OPER_EXPR.

/**
     * {@InheritDoc}
     * <p>
     * <p>The default implementation returns the result of calling
     * {@link #visitChildren} on {@code ctx}.</p>
     *
     * @param ctx
     */
@Override
public String visitATTR_OPER_EXPR(ScimFilterParser.ATTR_OPER_EXPRContext ctx) {
    logger.info(" UserFilterVisitor.visitATTR_OPER_EXPR() ");
    ParseTree parent = ctx.getParent();
    while (parent != null) {
        if (parent.getClass().getSimpleName().equalsIgnoreCase(ScimFilterParser.LBRAC_EXPR_RBRACContext.class.getSimpleName())) {
            logger.info("********** PARENT = " + parent.getClass().getSimpleName());
            String attrName = ((ScimFilterParser.LBRAC_EXPR_RBRACContext) parent).ATTRNAME() + "." + ctx.ATTRNAME().getText();
            return attrOperCriteriaResolver(attrName, visit(ctx.operator()), visit(ctx.expression()));
        } else {
            parent = parent.getParent();
        }
    }
    return attrOperCriteriaResolver(ctx.ATTRNAME().getText(), visit(ctx.operator()), visit(ctx.expression()));
}
Also used : ParseTree(org.antlr.v4.runtime.tree.ParseTree)

Example 100 with Result

use of org.antlr.v4.misc.EscapeSequenceParsing.Result in project SSM by Intel-bigdata.

the class RuleStringParser method translate.

public TranslateResult translate() throws IOException {
    InputStream input = new ByteArrayInputStream(rule.getBytes());
    ANTLRInputStream antlrInput = new ANTLRInputStream(input);
    SmartRuleLexer lexer = new SmartRuleLexer(antlrInput);
    CommonTokenStream tokens = new CommonTokenStream(lexer);
    SmartRuleParser parser = new SmartRuleParser(tokens);
    parser.removeErrorListeners();
    parser.addErrorListener(new SSMRuleErrorListener());
    tree = parser.ssmrule();
    if (parseErrors.size() > 0) {
        throw new IOException(parserErrorMessage);
    }
    SmartRuleVisitTranslator visitor = new SmartRuleVisitTranslator(ctx);
    try {
        visitor.visit(tree);
    } catch (RuntimeException e) {
        throw new IOException(e.getMessage());
    }
    TranslateResult result = visitor.generateSql();
    return result;
}
Also used : CommonTokenStream(org.antlr.v4.runtime.CommonTokenStream) ByteArrayInputStream(java.io.ByteArrayInputStream) ANTLRInputStream(org.antlr.v4.runtime.ANTLRInputStream) ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) IOException(java.io.IOException) ANTLRInputStream(org.antlr.v4.runtime.ANTLRInputStream)

Aggregations

Test (org.junit.Test)131 LexerGrammar (org.antlr.v4.tool.LexerGrammar)78 ANTLRInputStream (org.antlr.v4.runtime.ANTLRInputStream)52 CommonTokenStream (org.antlr.v4.runtime.CommonTokenStream)49 LexerInterpreter (org.antlr.v4.runtime.LexerInterpreter)44 ATN (org.antlr.v4.runtime.atn.ATN)44 TokenStreamRewriter (org.antlr.v4.runtime.TokenStreamRewriter)38 IntervalSet (org.antlr.v4.runtime.misc.IntervalSet)38 BaseJavaTest (org.antlr.v4.test.runtime.java.BaseJavaTest)38 ParseTree (org.antlr.v4.runtime.tree.ParseTree)29 ATNState (org.antlr.v4.runtime.atn.ATNState)11 Grammar (org.antlr.v4.tool.Grammar)10 STGroupString (org.stringtemplate.v4.STGroupString)10 ByteBuffer (java.nio.ByteBuffer)8 IntBuffer (java.nio.IntBuffer)8 UTF8CodePointDecoder (org.antlr.v4.runtime.UTF8CodePointDecoder)8 BaseRuntimeTest.antlrOnString (org.antlr.v4.test.runtime.BaseRuntimeTest.antlrOnString)8 DOTGenerator (org.antlr.v4.tool.DOTGenerator)8 ParserATNFactory (org.antlr.v4.automata.ParserATNFactory)7 Rule (org.antlr.v4.tool.Rule)7