Search in sources :

Example 11 with CEDescrBuilder

use of org.drools.compiler.lang.api.CEDescrBuilder in project drools by kiegroup.

the class DRL6StrictParser method lhsPatternBind.

/**
 * lhsPatternBind := label?
 *                ( LEFT_PAREN lhsPattern (OR lhsPattern)* RIGHT_PAREN
 *                | lhsPattern )
 *
 * @param ce
 * @return
 * @throws org.antlr.runtime.RecognitionException
 */
@SuppressWarnings("unchecked")
private BaseDescr lhsPatternBind(PatternContainerDescrBuilder<?, ?> ce, final boolean allowOr) throws RecognitionException {
    PatternDescrBuilder<?> pattern = null;
    CEDescrBuilder<?, OrDescr> or = null;
    BaseDescr result = null;
    Token first = input.LT(1);
    pattern = helper.start((DescrBuilder<?, ?>) ce, PatternDescrBuilder.class, null);
    if (pattern != null) {
        result = pattern.getDescr();
    }
    String label = null;
    boolean isUnification = false;
    if (input.LA(1) == DRL6Lexer.ID && input.LA(2) == DRL6Lexer.COLON && !helper.validateCEKeyword(1)) {
        label = label(DroolsEditorType.IDENTIFIER_PATTERN);
        if (state.failed)
            return null;
    } else if (input.LA(1) == DRL6Lexer.ID && input.LA(2) == DRL6Lexer.UNIFY && !helper.validateCEKeyword(1)) {
        label = unif(DroolsEditorType.IDENTIFIER_PATTERN);
        if (state.failed)
            return null;
        isUnification = true;
    }
    if (input.LA(1) == DRL6Lexer.LEFT_PAREN) {
        try {
            match(input, DRL6Lexer.LEFT_PAREN, null, null, DroolsEditorType.SYMBOL);
            if (state.failed)
                return null;
            if (helper.validateCEKeyword(1)) {
                failMismatchedTokenException();
                // in case it is backtracking
                return null;
            }
            lhsPattern(pattern, label, isUnification);
            if (state.failed)
                return null;
            if (allowOr && helper.validateIdentifierKey(DroolsSoftKeywords.OR) && ce instanceof CEDescrBuilder) {
                if (state.backtracking == 0) {
                    // this is necessary because of the crappy bind with multi-pattern OR syntax
                    or = ((CEDescrBuilder<DescrBuilder<?, ?>, OrDescr>) ce).or();
                    result = or.getDescr();
                    helper.end(PatternDescrBuilder.class, pattern);
                    helper.start(or, CEDescrBuilder.class, null);
                    // adjust real or starting token:
                    helper.setStart(or, first);
                    // remove original pattern from the parent CE child list:
                    ((ConditionalElementDescr) ce.getDescr()).getDescrs().remove(pattern.getDescr());
                    // add pattern to the OR instead
                    or.getDescr().addDescr(pattern.getDescr());
                }
                while (helper.validateIdentifierKey(DroolsSoftKeywords.OR)) {
                    match(input, DRL6Lexer.ID, DroolsSoftKeywords.OR, null, DroolsEditorType.KEYWORD);
                    if (state.failed)
                        return null;
                    pattern = helper.start(or, PatternDescrBuilder.class, null);
                    // new pattern, same binding
                    lhsPattern(pattern, label, isUnification);
                    if (state.failed)
                        return null;
                    helper.end(PatternDescrBuilder.class, pattern);
                }
            }
            match(input, DRL6Lexer.RIGHT_PAREN, null, null, DroolsEditorType.SYMBOL);
            if (state.failed)
                return null;
        } finally {
            if (or != null) {
                helper.end(CEDescrBuilder.class, or);
            } else {
                helper.end(PatternDescrBuilder.class, pattern);
            }
        }
    } else {
        try {
            lhsPattern(pattern, label, isUnification);
            if (state.failed)
                return null;
        } finally {
            helper.end(PatternDescrBuilder.class, pattern);
        }
    }
    return result;
}
Also used : CEDescrBuilder(org.drools.compiler.lang.api.CEDescrBuilder) PatternDescrBuilder(org.drools.compiler.lang.api.PatternDescrBuilder) BaseDescr(org.drools.compiler.lang.descr.BaseDescr) AnnotatedBaseDescr(org.drools.compiler.lang.descr.AnnotatedBaseDescr) Token(org.antlr.runtime.Token) CommonToken(org.antlr.runtime.CommonToken) DescrBuilder(org.drools.compiler.lang.api.DescrBuilder) AccumulateImportDescrBuilder(org.drools.compiler.lang.api.AccumulateImportDescrBuilder) AccumulateDescrBuilder(org.drools.compiler.lang.api.AccumulateDescrBuilder) EnumDeclarationDescrBuilder(org.drools.compiler.lang.api.EnumDeclarationDescrBuilder) PatternContainerDescrBuilder(org.drools.compiler.lang.api.PatternContainerDescrBuilder) WindowDeclarationDescrBuilder(org.drools.compiler.lang.api.WindowDeclarationDescrBuilder) ForallDescrBuilder(org.drools.compiler.lang.api.ForallDescrBuilder) TypeDeclarationDescrBuilder(org.drools.compiler.lang.api.TypeDeclarationDescrBuilder) PackageDescrBuilder(org.drools.compiler.lang.api.PackageDescrBuilder) CEDescrBuilder(org.drools.compiler.lang.api.CEDescrBuilder) DeclareDescrBuilder(org.drools.compiler.lang.api.DeclareDescrBuilder) FunctionDescrBuilder(org.drools.compiler.lang.api.FunctionDescrBuilder) RuleDescrBuilder(org.drools.compiler.lang.api.RuleDescrBuilder) EntryPointDeclarationDescrBuilder(org.drools.compiler.lang.api.EntryPointDeclarationDescrBuilder) EnumLiteralDescrBuilder(org.drools.compiler.lang.api.EnumLiteralDescrBuilder) QueryDescrBuilder(org.drools.compiler.lang.api.QueryDescrBuilder) AnnotatedDescrBuilder(org.drools.compiler.lang.api.AnnotatedDescrBuilder) PatternDescrBuilder(org.drools.compiler.lang.api.PatternDescrBuilder) AnnotationDescrBuilder(org.drools.compiler.lang.api.AnnotationDescrBuilder) ImportDescrBuilder(org.drools.compiler.lang.api.ImportDescrBuilder) CollectDescrBuilder(org.drools.compiler.lang.api.CollectDescrBuilder) AttributeDescrBuilder(org.drools.compiler.lang.api.AttributeDescrBuilder) EvalDescrBuilder(org.drools.compiler.lang.api.EvalDescrBuilder) ConditionalBranchDescrBuilder(org.drools.compiler.lang.api.ConditionalBranchDescrBuilder) UnitDescrBuilder(org.drools.compiler.lang.api.UnitDescrBuilder) NamedConsequenceDescrBuilder(org.drools.compiler.lang.api.NamedConsequenceDescrBuilder) FieldDescrBuilder(org.drools.compiler.lang.api.FieldDescrBuilder) BehaviorDescrBuilder(org.drools.compiler.lang.api.BehaviorDescrBuilder) GlobalDescrBuilder(org.drools.compiler.lang.api.GlobalDescrBuilder) OrDescr(org.drools.compiler.lang.descr.OrDescr)

Example 12 with CEDescrBuilder

use of org.drools.compiler.lang.api.CEDescrBuilder in project drools by kiegroup.

the class DRL5Parser method lhsPatternBind.

/**
 * lhsPatternBind := label?
 *                ( LEFT_PAREN lhsPattern (OR lhsPattern)* RIGHT_PAREN
 *                | lhsPattern )
 *
 * @param ce
 * @return
 * @throws RecognitionException
 */
@SuppressWarnings("unchecked")
private BaseDescr lhsPatternBind(PatternContainerDescrBuilder<?, ?> ce, final boolean allowOr) throws RecognitionException {
    PatternDescrBuilder<?> pattern = null;
    CEDescrBuilder<?, OrDescr> or = null;
    BaseDescr result = null;
    Token first = input.LT(1);
    pattern = helper.start((DescrBuilder<?, ?>) ce, PatternDescrBuilder.class, null);
    if (pattern != null) {
        result = pattern.getDescr();
    }
    String label = null;
    boolean isUnification = false;
    if (input.LA(1) == DRL5Lexer.ID && input.LA(2) == DRL5Lexer.COLON && !helper.validateCEKeyword(1)) {
        label = label(DroolsEditorType.IDENTIFIER_PATTERN);
        if (state.failed)
            return null;
    } else if (input.LA(1) == DRL5Lexer.ID && input.LA(2) == DRL5Lexer.UNIFY && !helper.validateCEKeyword(1)) {
        label = unif(DroolsEditorType.IDENTIFIER_PATTERN);
        if (state.failed)
            return null;
        isUnification = true;
    }
    if (input.LA(1) == DRL5Lexer.LEFT_PAREN) {
        try {
            match(input, DRL5Lexer.LEFT_PAREN, null, null, DroolsEditorType.SYMBOL);
            if (state.failed)
                return null;
            if (helper.validateCEKeyword(1)) {
                failMismatchedTokenException();
                // in case it is backtracking
                return null;
            }
            lhsPattern(pattern, label, isUnification);
            if (state.failed)
                return null;
            if (allowOr && helper.validateIdentifierKey(DroolsSoftKeywords.OR) && ce instanceof CEDescrBuilder) {
                if (state.backtracking == 0) {
                    // this is necessary because of the crappy bind with multi-pattern OR syntax
                    or = ((CEDescrBuilder<DescrBuilder<?, ?>, OrDescr>) ce).or();
                    result = or.getDescr();
                    helper.end(PatternDescrBuilder.class, pattern);
                    helper.start(or, CEDescrBuilder.class, null);
                    // adjust real or starting token:
                    helper.setStart(or, first);
                    // remove original pattern from the parent CE child list:
                    ((ConditionalElementDescr) ce.getDescr()).getDescrs().remove(pattern.getDescr());
                    // add pattern to the OR instead
                    or.getDescr().addDescr(pattern.getDescr());
                }
                while (helper.validateIdentifierKey(DroolsSoftKeywords.OR)) {
                    match(input, DRL5Lexer.ID, DroolsSoftKeywords.OR, null, DroolsEditorType.KEYWORD);
                    if (state.failed)
                        return null;
                    pattern = helper.start(or, PatternDescrBuilder.class, null);
                    // new pattern, same binding
                    lhsPattern(pattern, label, isUnification);
                    if (state.failed)
                        return null;
                    helper.end(PatternDescrBuilder.class, pattern);
                }
            }
            match(input, DRL5Lexer.RIGHT_PAREN, null, null, DroolsEditorType.SYMBOL);
            if (state.failed)
                return null;
        } finally {
            if (or != null) {
                helper.end(CEDescrBuilder.class, or);
            } else {
                helper.end(PatternDescrBuilder.class, pattern);
            }
        }
    } else {
        try {
            lhsPattern(pattern, label, isUnification);
            if (state.failed)
                return null;
        } finally {
            helper.end(PatternDescrBuilder.class, pattern);
        }
    }
    return result;
}
Also used : CEDescrBuilder(org.drools.compiler.lang.api.CEDescrBuilder) PatternDescrBuilder(org.drools.compiler.lang.api.PatternDescrBuilder) BaseDescr(org.drools.compiler.lang.descr.BaseDescr) Token(org.antlr.runtime.Token) CommonToken(org.antlr.runtime.CommonToken) DescrBuilder(org.drools.compiler.lang.api.DescrBuilder) AccumulateDescrBuilder(org.drools.compiler.lang.api.AccumulateDescrBuilder) EnumDeclarationDescrBuilder(org.drools.compiler.lang.api.EnumDeclarationDescrBuilder) PatternContainerDescrBuilder(org.drools.compiler.lang.api.PatternContainerDescrBuilder) WindowDeclarationDescrBuilder(org.drools.compiler.lang.api.WindowDeclarationDescrBuilder) ForallDescrBuilder(org.drools.compiler.lang.api.ForallDescrBuilder) TypeDeclarationDescrBuilder(org.drools.compiler.lang.api.TypeDeclarationDescrBuilder) PackageDescrBuilder(org.drools.compiler.lang.api.PackageDescrBuilder) CEDescrBuilder(org.drools.compiler.lang.api.CEDescrBuilder) DeclareDescrBuilder(org.drools.compiler.lang.api.DeclareDescrBuilder) FunctionDescrBuilder(org.drools.compiler.lang.api.FunctionDescrBuilder) RuleDescrBuilder(org.drools.compiler.lang.api.RuleDescrBuilder) EntryPointDeclarationDescrBuilder(org.drools.compiler.lang.api.EntryPointDeclarationDescrBuilder) EnumLiteralDescrBuilder(org.drools.compiler.lang.api.EnumLiteralDescrBuilder) QueryDescrBuilder(org.drools.compiler.lang.api.QueryDescrBuilder) AnnotatedDescrBuilder(org.drools.compiler.lang.api.AnnotatedDescrBuilder) PatternDescrBuilder(org.drools.compiler.lang.api.PatternDescrBuilder) AnnotationDescrBuilder(org.drools.compiler.lang.api.AnnotationDescrBuilder) ImportDescrBuilder(org.drools.compiler.lang.api.ImportDescrBuilder) CollectDescrBuilder(org.drools.compiler.lang.api.CollectDescrBuilder) AttributeDescrBuilder(org.drools.compiler.lang.api.AttributeDescrBuilder) EvalDescrBuilder(org.drools.compiler.lang.api.EvalDescrBuilder) ConditionalBranchDescrBuilder(org.drools.compiler.lang.api.ConditionalBranchDescrBuilder) NamedConsequenceDescrBuilder(org.drools.compiler.lang.api.NamedConsequenceDescrBuilder) FieldDescrBuilder(org.drools.compiler.lang.api.FieldDescrBuilder) BehaviorDescrBuilder(org.drools.compiler.lang.api.BehaviorDescrBuilder) GlobalDescrBuilder(org.drools.compiler.lang.api.GlobalDescrBuilder) OrDescr(org.drools.compiler.lang.descr.OrDescr)

Example 13 with CEDescrBuilder

use of org.drools.compiler.lang.api.CEDescrBuilder in project drools by kiegroup.

the class DRL5Parser method lhsAccumulate.

/**
 * lhsAccumulate := ACCUMULATE LEFT_PAREN lhsAnd (COMMA|SEMICOLON)
 *                      accumulateFunctionBinding (COMMA accumulateFunctionBinding)*
 *                      (SEMICOLON constraints)?
 *                  RIGHT_PAREN SEMICOLON?
 *
 * @param ce
 * @return
 * @throws RecognitionException
 */
private BaseDescr lhsAccumulate(PatternContainerDescrBuilder<?, ?> ce) throws RecognitionException {
    PatternDescrBuilder<?> pattern = null;
    BaseDescr result = null;
    pattern = helper.start((DescrBuilder<?, ?>) ce, PatternDescrBuilder.class, null);
    if (pattern != null) {
        result = pattern.getDescr();
    }
    try {
        if (state.backtracking == 0) {
            pattern.type("Object[]");
            pattern.isQuery(false);
        // might have to add the implicit bindings as well
        }
        AccumulateDescrBuilder<?> accumulate = helper.start(pattern, AccumulateDescrBuilder.class, null);
        try {
            match(input, DRL5Lexer.ID, DroolsSoftKeywords.ACCUMULATE, null, DroolsEditorType.KEYWORD);
            if (state.failed)
                return null;
            if (state.backtracking == 0 && input.LA(1) != DRL5Lexer.EOF) {
                helper.emit(Location.LOCATION_LHS_FROM_ACCUMULATE);
            }
            match(input, DRL5Lexer.LEFT_PAREN, null, null, DroolsEditorType.SYMBOL);
            if (state.failed)
                return null;
            CEDescrBuilder<?, AndDescr> source = accumulate.source();
            try {
                helper.start(source, CEDescrBuilder.class, null);
                lhsAnd(source, false);
                if (state.failed)
                    return null;
                if (source.getDescr() != null && source.getDescr() instanceof ConditionalElementDescr) {
                    ConditionalElementDescr root = (ConditionalElementDescr) source.getDescr();
                    BaseDescr[] descrs = root.getDescrs().toArray(new BaseDescr[root.getDescrs().size()]);
                    root.getDescrs().clear();
                    for (int i = 0; i < descrs.length; i++) {
                        root.addOrMerge(descrs[i]);
                    }
                }
            } finally {
                helper.end(CEDescrBuilder.class, source);
            }
            if (input.LA(1) == DRL5Lexer.COMMA) {
                match(input, DRL5Lexer.COMMA, null, null, DroolsEditorType.SYMBOL);
                if (state.failed)
                    return null;
            } else if (input.LA(-1) != DRL5Lexer.SEMICOLON) {
                // lhsUnary will consume an optional SEMICOLON, so we need to check if it was consumed already
                // or if we must fail consuming it now
                match(input, DRL5Lexer.SEMICOLON, null, null, DroolsEditorType.SYMBOL);
                if (state.failed)
                    return null;
            }
            // accumulate functions
            accumulateFunctionBinding(accumulate);
            if (state.failed)
                return null;
            while (input.LA(1) == DRL5Lexer.COMMA) {
                match(input, DRL5Lexer.COMMA, null, null, DroolsEditorType.SYMBOL);
                if (state.failed)
                    return null;
                accumulateFunctionBinding(accumulate);
                if (state.failed)
                    return null;
            }
            if (input.LA(1) == DRL5Lexer.SEMICOLON) {
                match(input, DRL5Lexer.SEMICOLON, null, null, DroolsEditorType.SYMBOL);
                if (state.failed)
                    return null;
                constraints(pattern);
            }
            match(input, DRL5Lexer.RIGHT_PAREN, null, null, DroolsEditorType.SYMBOL);
            if (state.failed)
                return null;
        } finally {
            helper.end(AccumulateDescrBuilder.class, accumulate);
            if (state.backtracking == 0 && input.LA(1) != DRL5Lexer.EOF) {
                helper.emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION);
            }
        }
    } finally {
        helper.end(PatternDescrBuilder.class, pattern);
    }
    if (input.LA(1) == DRL5Lexer.SEMICOLON) {
        match(input, DRL5Lexer.SEMICOLON, null, null, DroolsEditorType.SYMBOL);
        if (state.failed)
            return null;
    }
    return result;
}
Also used : PatternDescrBuilder(org.drools.compiler.lang.api.PatternDescrBuilder) AndDescr(org.drools.compiler.lang.descr.AndDescr) BaseDescr(org.drools.compiler.lang.descr.BaseDescr) DescrBuilder(org.drools.compiler.lang.api.DescrBuilder) AccumulateDescrBuilder(org.drools.compiler.lang.api.AccumulateDescrBuilder) EnumDeclarationDescrBuilder(org.drools.compiler.lang.api.EnumDeclarationDescrBuilder) PatternContainerDescrBuilder(org.drools.compiler.lang.api.PatternContainerDescrBuilder) WindowDeclarationDescrBuilder(org.drools.compiler.lang.api.WindowDeclarationDescrBuilder) ForallDescrBuilder(org.drools.compiler.lang.api.ForallDescrBuilder) TypeDeclarationDescrBuilder(org.drools.compiler.lang.api.TypeDeclarationDescrBuilder) PackageDescrBuilder(org.drools.compiler.lang.api.PackageDescrBuilder) CEDescrBuilder(org.drools.compiler.lang.api.CEDescrBuilder) DeclareDescrBuilder(org.drools.compiler.lang.api.DeclareDescrBuilder) FunctionDescrBuilder(org.drools.compiler.lang.api.FunctionDescrBuilder) RuleDescrBuilder(org.drools.compiler.lang.api.RuleDescrBuilder) EntryPointDeclarationDescrBuilder(org.drools.compiler.lang.api.EntryPointDeclarationDescrBuilder) EnumLiteralDescrBuilder(org.drools.compiler.lang.api.EnumLiteralDescrBuilder) QueryDescrBuilder(org.drools.compiler.lang.api.QueryDescrBuilder) AnnotatedDescrBuilder(org.drools.compiler.lang.api.AnnotatedDescrBuilder) PatternDescrBuilder(org.drools.compiler.lang.api.PatternDescrBuilder) AnnotationDescrBuilder(org.drools.compiler.lang.api.AnnotationDescrBuilder) ImportDescrBuilder(org.drools.compiler.lang.api.ImportDescrBuilder) CollectDescrBuilder(org.drools.compiler.lang.api.CollectDescrBuilder) AttributeDescrBuilder(org.drools.compiler.lang.api.AttributeDescrBuilder) EvalDescrBuilder(org.drools.compiler.lang.api.EvalDescrBuilder) ConditionalBranchDescrBuilder(org.drools.compiler.lang.api.ConditionalBranchDescrBuilder) NamedConsequenceDescrBuilder(org.drools.compiler.lang.api.NamedConsequenceDescrBuilder) FieldDescrBuilder(org.drools.compiler.lang.api.FieldDescrBuilder) BehaviorDescrBuilder(org.drools.compiler.lang.api.BehaviorDescrBuilder) GlobalDescrBuilder(org.drools.compiler.lang.api.GlobalDescrBuilder) ConditionalElementDescr(org.drools.compiler.lang.descr.ConditionalElementDescr)

Example 14 with CEDescrBuilder

use of org.drools.compiler.lang.api.CEDescrBuilder in project drools by kiegroup.

the class DRL5Parser method namedConsequence.

/**
 * namedConsequence := DO LEFT_SQUARE ID RIGHT_SQUARE BREAK?
 */
private BaseDescr namedConsequence(CEDescrBuilder<?, ?> ce, NamedConsequenceDescrBuilder<?> namedConsequence) throws RecognitionException {
    if (namedConsequence == null) {
        namedConsequence = helper.start((DescrBuilder<?, ?>) ce, NamedConsequenceDescrBuilder.class, null);
    }
    try {
        match(input, DRL5Lexer.ID, DroolsSoftKeywords.DO, null, DroolsEditorType.KEYWORD);
        if (state.failed)
            return null;
        match(input, DRL5Lexer.LEFT_SQUARE, null, null, DroolsEditorType.SYMBOL);
        if (state.failed)
            return null;
        Token label = match(input, DRL5Lexer.ID, null, null, DroolsEditorType.SYMBOL);
        if (state.failed)
            return null;
        namedConsequence.name(label.getText());
        match(input, DRL5Lexer.RIGHT_SQUARE, null, null, DroolsEditorType.SYMBOL);
        if (state.failed)
            return null;
    } finally {
        helper.end(NamedConsequenceDescrBuilder.class, namedConsequence);
    }
    return namedConsequence.getDescr();
}
Also used : Token(org.antlr.runtime.Token) CommonToken(org.antlr.runtime.CommonToken) DescrBuilder(org.drools.compiler.lang.api.DescrBuilder) AccumulateDescrBuilder(org.drools.compiler.lang.api.AccumulateDescrBuilder) EnumDeclarationDescrBuilder(org.drools.compiler.lang.api.EnumDeclarationDescrBuilder) PatternContainerDescrBuilder(org.drools.compiler.lang.api.PatternContainerDescrBuilder) WindowDeclarationDescrBuilder(org.drools.compiler.lang.api.WindowDeclarationDescrBuilder) ForallDescrBuilder(org.drools.compiler.lang.api.ForallDescrBuilder) TypeDeclarationDescrBuilder(org.drools.compiler.lang.api.TypeDeclarationDescrBuilder) PackageDescrBuilder(org.drools.compiler.lang.api.PackageDescrBuilder) CEDescrBuilder(org.drools.compiler.lang.api.CEDescrBuilder) DeclareDescrBuilder(org.drools.compiler.lang.api.DeclareDescrBuilder) FunctionDescrBuilder(org.drools.compiler.lang.api.FunctionDescrBuilder) RuleDescrBuilder(org.drools.compiler.lang.api.RuleDescrBuilder) EntryPointDeclarationDescrBuilder(org.drools.compiler.lang.api.EntryPointDeclarationDescrBuilder) EnumLiteralDescrBuilder(org.drools.compiler.lang.api.EnumLiteralDescrBuilder) QueryDescrBuilder(org.drools.compiler.lang.api.QueryDescrBuilder) AnnotatedDescrBuilder(org.drools.compiler.lang.api.AnnotatedDescrBuilder) PatternDescrBuilder(org.drools.compiler.lang.api.PatternDescrBuilder) AnnotationDescrBuilder(org.drools.compiler.lang.api.AnnotationDescrBuilder) ImportDescrBuilder(org.drools.compiler.lang.api.ImportDescrBuilder) CollectDescrBuilder(org.drools.compiler.lang.api.CollectDescrBuilder) AttributeDescrBuilder(org.drools.compiler.lang.api.AttributeDescrBuilder) EvalDescrBuilder(org.drools.compiler.lang.api.EvalDescrBuilder) ConditionalBranchDescrBuilder(org.drools.compiler.lang.api.ConditionalBranchDescrBuilder) NamedConsequenceDescrBuilder(org.drools.compiler.lang.api.NamedConsequenceDescrBuilder) FieldDescrBuilder(org.drools.compiler.lang.api.FieldDescrBuilder) BehaviorDescrBuilder(org.drools.compiler.lang.api.BehaviorDescrBuilder) GlobalDescrBuilder(org.drools.compiler.lang.api.GlobalDescrBuilder) NamedConsequenceDescrBuilder(org.drools.compiler.lang.api.NamedConsequenceDescrBuilder)

Example 15 with CEDescrBuilder

use of org.drools.compiler.lang.api.CEDescrBuilder in project drools by kiegroup.

the class DRL5Parser method breakingNamedConsequence.

/**
 * breakingNamedConsequence := BREAK LEFT_SQUARE ID RIGHT_SQUARE
 */
private BaseDescr breakingNamedConsequence(CEDescrBuilder<?, ?> ce, NamedConsequenceDescrBuilder<?> namedConsequence) throws RecognitionException {
    if (namedConsequence == null) {
        namedConsequence = helper.start((DescrBuilder<?, ?>) ce, NamedConsequenceDescrBuilder.class, null);
    }
    try {
        match(input, DRL5Lexer.ID, DroolsSoftKeywords.BREAK, null, DroolsEditorType.KEYWORD);
        if (state.failed)
            return null;
        match(input, DRL5Lexer.LEFT_SQUARE, null, null, DroolsEditorType.SYMBOL);
        if (state.failed)
            return null;
        Token label = match(input, DRL5Lexer.ID, null, null, DroolsEditorType.SYMBOL);
        if (state.failed)
            return null;
        namedConsequence.name(label.getText());
        namedConsequence.breaking(true);
        match(input, DRL5Lexer.RIGHT_SQUARE, null, null, DroolsEditorType.SYMBOL);
        if (state.failed)
            return null;
    } finally {
        helper.end(NamedConsequenceDescrBuilder.class, namedConsequence);
    }
    return namedConsequence.getDescr();
}
Also used : Token(org.antlr.runtime.Token) CommonToken(org.antlr.runtime.CommonToken) DescrBuilder(org.drools.compiler.lang.api.DescrBuilder) AccumulateDescrBuilder(org.drools.compiler.lang.api.AccumulateDescrBuilder) EnumDeclarationDescrBuilder(org.drools.compiler.lang.api.EnumDeclarationDescrBuilder) PatternContainerDescrBuilder(org.drools.compiler.lang.api.PatternContainerDescrBuilder) WindowDeclarationDescrBuilder(org.drools.compiler.lang.api.WindowDeclarationDescrBuilder) ForallDescrBuilder(org.drools.compiler.lang.api.ForallDescrBuilder) TypeDeclarationDescrBuilder(org.drools.compiler.lang.api.TypeDeclarationDescrBuilder) PackageDescrBuilder(org.drools.compiler.lang.api.PackageDescrBuilder) CEDescrBuilder(org.drools.compiler.lang.api.CEDescrBuilder) DeclareDescrBuilder(org.drools.compiler.lang.api.DeclareDescrBuilder) FunctionDescrBuilder(org.drools.compiler.lang.api.FunctionDescrBuilder) RuleDescrBuilder(org.drools.compiler.lang.api.RuleDescrBuilder) EntryPointDeclarationDescrBuilder(org.drools.compiler.lang.api.EntryPointDeclarationDescrBuilder) EnumLiteralDescrBuilder(org.drools.compiler.lang.api.EnumLiteralDescrBuilder) QueryDescrBuilder(org.drools.compiler.lang.api.QueryDescrBuilder) AnnotatedDescrBuilder(org.drools.compiler.lang.api.AnnotatedDescrBuilder) PatternDescrBuilder(org.drools.compiler.lang.api.PatternDescrBuilder) AnnotationDescrBuilder(org.drools.compiler.lang.api.AnnotationDescrBuilder) ImportDescrBuilder(org.drools.compiler.lang.api.ImportDescrBuilder) CollectDescrBuilder(org.drools.compiler.lang.api.CollectDescrBuilder) AttributeDescrBuilder(org.drools.compiler.lang.api.AttributeDescrBuilder) EvalDescrBuilder(org.drools.compiler.lang.api.EvalDescrBuilder) ConditionalBranchDescrBuilder(org.drools.compiler.lang.api.ConditionalBranchDescrBuilder) NamedConsequenceDescrBuilder(org.drools.compiler.lang.api.NamedConsequenceDescrBuilder) FieldDescrBuilder(org.drools.compiler.lang.api.FieldDescrBuilder) BehaviorDescrBuilder(org.drools.compiler.lang.api.BehaviorDescrBuilder) GlobalDescrBuilder(org.drools.compiler.lang.api.GlobalDescrBuilder) NamedConsequenceDescrBuilder(org.drools.compiler.lang.api.NamedConsequenceDescrBuilder)

Aggregations

CEDescrBuilder (org.drools.compiler.lang.api.CEDescrBuilder)15 AccumulateDescrBuilder (org.drools.compiler.lang.api.AccumulateDescrBuilder)13 AttributeDescrBuilder (org.drools.compiler.lang.api.AttributeDescrBuilder)13 DeclareDescrBuilder (org.drools.compiler.lang.api.DeclareDescrBuilder)13 EntryPointDeclarationDescrBuilder (org.drools.compiler.lang.api.EntryPointDeclarationDescrBuilder)13 EnumDeclarationDescrBuilder (org.drools.compiler.lang.api.EnumDeclarationDescrBuilder)13 EnumLiteralDescrBuilder (org.drools.compiler.lang.api.EnumLiteralDescrBuilder)13 FieldDescrBuilder (org.drools.compiler.lang.api.FieldDescrBuilder)13 ForallDescrBuilder (org.drools.compiler.lang.api.ForallDescrBuilder)13 FunctionDescrBuilder (org.drools.compiler.lang.api.FunctionDescrBuilder)13 GlobalDescrBuilder (org.drools.compiler.lang.api.GlobalDescrBuilder)13 ImportDescrBuilder (org.drools.compiler.lang.api.ImportDescrBuilder)13 NamedConsequenceDescrBuilder (org.drools.compiler.lang.api.NamedConsequenceDescrBuilder)13 PackageDescrBuilder (org.drools.compiler.lang.api.PackageDescrBuilder)13 PatternDescrBuilder (org.drools.compiler.lang.api.PatternDescrBuilder)13 QueryDescrBuilder (org.drools.compiler.lang.api.QueryDescrBuilder)13 RuleDescrBuilder (org.drools.compiler.lang.api.RuleDescrBuilder)13 TypeDeclarationDescrBuilder (org.drools.compiler.lang.api.TypeDeclarationDescrBuilder)13 WindowDeclarationDescrBuilder (org.drools.compiler.lang.api.WindowDeclarationDescrBuilder)13 AnnotatedDescrBuilder (org.drools.compiler.lang.api.AnnotatedDescrBuilder)12