Source Code Cross Referenced for DRLParser.java in  » Rule-Engine » drolls-Rule-Engine » org » drools » lang » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Rule Engine » drolls Rule Engine » org.drools.lang 
Source Cross Referenced  Class Diagram Java Document (Java Doc) 


00001:        // $ANTLR 3.0 /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2007-08-30 13:18:02
00002:
00003:        package org.drools.lang;
00004:
00005:        import java.util.List;
00006:        import java.util.ArrayList;
00007:        import java.util.Iterator;
00008:        import java.util.HashMap;
00009:        import java.util.StringTokenizer;
00010:        import org.drools.lang.descr.*;
00011:
00012:        import org.antlr.runtime.*;
00013:        import java.util.Stack;
00014:        import java.util.List;
00015:        import java.util.ArrayList;
00016:        import java.util.Map;
00017:        import java.util.HashMap;
00018:
00019:        public class DRLParser extends Parser {
00020:            public static final String[] tokenNames = new String[] {
00021:                    "<invalid>", "<EOR>", "<DOWN>", "<UP>", "PACKAGE",
00022:                    "IMPORT", "FUNCTION", "ID", "DOT", "GLOBAL", "LEFT_PAREN",
00023:                    "COMMA", "RIGHT_PAREN", "QUERY", "END", "TEMPLATE", "RULE",
00024:                    "WHEN", "ATTRIBUTES", "DATE_EFFECTIVE", "STRING",
00025:                    "DATE_EXPIRES", "ENABLED", "BOOL", "SALIENCE", "INT",
00026:                    "NO_LOOP", "AUTO_FOCUS", "ACTIVATION_GROUP",
00027:                    "RULEFLOW_GROUP", "AGENDA_GROUP", "DURATION", "DIALECT",
00028:                    "LOCK_ON_ACTIVE", "OR", "DOUBLE_PIPE", "AND",
00029:                    "DOUBLE_AMPER", "FROM", "EXISTS", "NOT", "EVAL", "FORALL",
00030:                    "ACCUMULATE", "INIT", "ACTION", "REVERSE", "RESULT",
00031:                    "COLLECT", "CONTAINS", "EXCLUDES", "MATCHES", "MEMBEROF",
00032:                    "IN", "FLOAT", "NULL", "LEFT_CURLY", "RIGHT_CURLY",
00033:                    "LEFT_SQUARE", "RIGHT_SQUARE", "THEN", "EOL", "WS",
00034:                    "EscapeSequence", "HexDigit", "UnicodeEscape",
00035:                    "OctalEscape", "SH_STYLE_SINGLE_LINE_COMMENT",
00036:                    "C_STYLE_SINGLE_LINE_COMMENT", "MULTI_LINE_COMMENT",
00037:                    "MISC", "';'", "'.*'", "':'", "'->'", "'=='", "'>'",
00038:                    "'>='", "'<'", "'<='", "'!='" };
00039:            public static final int COMMA = 11;
00040:            public static final int EXISTS = 39;
00041:            public static final int AUTO_FOCUS = 27;
00042:            public static final int END = 14;
00043:            public static final int HexDigit = 64;
00044:            public static final int FORALL = 42;
00045:            public static final int TEMPLATE = 15;
00046:            public static final int MISC = 70;
00047:            public static final int FLOAT = 54;
00048:            public static final int QUERY = 13;
00049:            public static final int THEN = 60;
00050:            public static final int RULE = 16;
00051:            public static final int INIT = 44;
00052:            public static final int IMPORT = 5;
00053:            public static final int DATE_EFFECTIVE = 19;
00054:            public static final int PACKAGE = 4;
00055:            public static final int OR = 34;
00056:            public static final int DOT = 8;
00057:            public static final int DOUBLE_PIPE = 35;
00058:            public static final int AND = 36;
00059:            public static final int FUNCTION = 6;
00060:            public static final int GLOBAL = 9;
00061:            public static final int EscapeSequence = 63;
00062:            public static final int DIALECT = 32;
00063:            public static final int INT = 25;
00064:            public static final int LOCK_ON_ACTIVE = 33;
00065:            public static final int DATE_EXPIRES = 21;
00066:            public static final int LEFT_SQUARE = 58;
00067:            public static final int CONTAINS = 49;
00068:            public static final int SH_STYLE_SINGLE_LINE_COMMENT = 67;
00069:            public static final int ATTRIBUTES = 18;
00070:            public static final int LEFT_CURLY = 56;
00071:            public static final int RESULT = 47;
00072:            public static final int ID = 7;
00073:            public static final int FROM = 38;
00074:            public static final int LEFT_PAREN = 10;
00075:            public static final int ACTIVATION_GROUP = 28;
00076:            public static final int DOUBLE_AMPER = 37;
00077:            public static final int RIGHT_CURLY = 57;
00078:            public static final int EXCLUDES = 50;
00079:            public static final int BOOL = 23;
00080:            public static final int MEMBEROF = 52;
00081:            public static final int WHEN = 17;
00082:            public static final int RULEFLOW_GROUP = 29;
00083:            public static final int WS = 62;
00084:            public static final int STRING = 20;
00085:            public static final int ACTION = 45;
00086:            public static final int COLLECT = 48;
00087:            public static final int IN = 53;
00088:            public static final int REVERSE = 46;
00089:            public static final int NO_LOOP = 26;
00090:            public static final int ACCUMULATE = 43;
00091:            public static final int UnicodeEscape = 65;
00092:            public static final int DURATION = 31;
00093:            public static final int EVAL = 41;
00094:            public static final int MATCHES = 51;
00095:            public static final int EOF = -1;
00096:            public static final int EOL = 61;
00097:            public static final int NULL = 55;
00098:            public static final int AGENDA_GROUP = 30;
00099:            public static final int OctalEscape = 66;
00100:            public static final int SALIENCE = 24;
00101:            public static final int MULTI_LINE_COMMENT = 69;
00102:            public static final int RIGHT_PAREN = 12;
00103:            public static final int NOT = 40;
00104:            public static final int ENABLED = 22;
00105:            public static final int RIGHT_SQUARE = 59;
00106:            public static final int C_STYLE_SINGLE_LINE_COMMENT = 68;
00107:
00108:            public DRLParser(TokenStream input) {
00109:                super (input);
00110:                ruleMemo = new HashMap[80 + 1];
00111:            }
00112:
00113:            public String[] getTokenNames() {
00114:                return tokenNames;
00115:            }
00116:
00117:            public String getGrammarFileName() {
00118:                return "/home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g";
00119:            }
00120:
00121:            private PackageDescr packageDescr;
00122:            private List errors = new ArrayList();
00123:            private String source = "unknown";
00124:            private int lineOffset = 0;
00125:            private DescrFactory factory = new DescrFactory();
00126:            private boolean parserDebug = false;
00127:            private Location location = new Location(Location.LOCATION_UNKNOWN);
00128:
00129:            // THE FOLLOWING LINES ARE DUMMY ATTRIBUTES TO WORK AROUND AN ANTLR BUG
00130:            private BaseDescr from = null;
00131:            private FieldConstraintDescr fc = null;
00132:            private RestrictionConnectiveDescr and = null;
00133:            private RestrictionConnectiveDescr or = null;
00134:            private ConditionalElementDescr base = null;
00135:
00136:            public void setParserDebug(boolean parserDebug) {
00137:                this .parserDebug = parserDebug;
00138:            }
00139:
00140:            public void debug(String message) {
00141:                if (parserDebug)
00142:                    System.err.println("drl parser: " + message);
00143:            }
00144:
00145:            public void setSource(String source) {
00146:                this .source = source;
00147:            }
00148:
00149:            public DescrFactory getFactory() {
00150:                return factory;
00151:            }
00152:
00153:            public String getSource() {
00154:                return this .source;
00155:            }
00156:
00157:            public PackageDescr getPackageDescr() {
00158:                return packageDescr;
00159:            }
00160:
00161:            private int offset(int line) {
00162:                return line + lineOffset;
00163:            }
00164:
00165:            /**
00166:             * This will set the offset to record when reparsing. Normally is zero of course 
00167:             */
00168:            public void setLineOffset(int i) {
00169:                this .lineOffset = i;
00170:            }
00171:
00172:            private String getString(String token) {
00173:                return token.substring(1, token.length() - 1);
00174:            }
00175:
00176:            private String cleanupSpaces(String input) {
00177:                return input.replaceAll("\\s", "");
00178:            }
00179:
00180:            public void reportError(RecognitionException ex) {
00181:                // if we've already reported an error and have not matched a token
00182:                // yet successfully, don't report any errors.
00183:                if (errorRecovery) {
00184:                    return;
00185:                }
00186:                errorRecovery = true;
00187:
00188:                ex.line = offset(ex.line); //add the offset if there is one
00189:                errors.add(ex);
00190:            }
00191:
00192:            /** return the raw RecognitionException errors */
00193:            public List getErrors() {
00194:                return errors;
00195:            }
00196:
00197:            /** Return a list of pretty strings summarising the errors */
00198:            public List getErrorMessages() {
00199:                List messages = new ArrayList();
00200:                for (Iterator errorIter = errors.iterator(); errorIter
00201:                        .hasNext();) {
00202:                    messages
00203:                            .add(createErrorMessage((RecognitionException) errorIter
00204:                                    .next()));
00205:                }
00206:                return messages;
00207:            }
00208:
00209:            /** return true if any parser errors were accumulated */
00210:            public boolean hasErrors() {
00211:                return !errors.isEmpty();
00212:            }
00213:
00214:            /** This will take a RecognitionException, and create a sensible error message out of it */
00215:            public String createErrorMessage(RecognitionException e) {
00216:                StringBuffer message = new StringBuffer();
00217:                message.append(source + ":" + e.line + ":"
00218:                        + e.charPositionInLine + " ");
00219:                if (e instanceof  MismatchedTokenException) {
00220:                    MismatchedTokenException mte = (MismatchedTokenException) e;
00221:                    if (mte.expecting >= 0 && mte.expecting < tokenNames.length) {
00222:                        message.append("mismatched token: " + e.token
00223:                                + "; expecting type "
00224:                                + tokenNames[mte.expecting]);
00225:                    } else {
00226:                        message.append("mismatched token: " + e.token + ";");
00227:                    }
00228:                } else if (e instanceof  MismatchedTreeNodeException) {
00229:                    MismatchedTreeNodeException mtne = (MismatchedTreeNodeException) e;
00230:                    if (mtne.expecting >= 0
00231:                            && mtne.expecting < tokenNames.length) {
00232:                        message.append("mismatched tree node: "
00233:                                + mtne.toString() + "; expecting type "
00234:                                + tokenNames[mtne.expecting]);
00235:                    } else {
00236:                        message.append("mismatched tree node: "
00237:                                + mtne.toString() + ";");
00238:                    }
00239:                } else if (e instanceof  NoViableAltException) {
00240:                    NoViableAltException nvae = (NoViableAltException) e;
00241:                    message.append("Unexpected token '" + e.token.getText()
00242:                            + "'");
00243:                    /*
00244:                    message.append("decision=<<"+nvae.grammarDecisionDescription+">>"+
00245:                                                       " state "+nvae.stateNumber+
00246:                                                       " (decision="+nvae.decisionNumber+
00247:                                                       ") no viable alt; token="+
00248:                                                       e.token);
00249:                     */
00250:                } else if (e instanceof  EarlyExitException) {
00251:                    EarlyExitException eee = (EarlyExitException) e;
00252:                    message.append("required (...)+ loop (decision="
00253:                            + eee.decisionNumber
00254:                            + ") did not match anything; token=" + e.token);
00255:                } else if (e instanceof  MismatchedSetException) {
00256:                    MismatchedSetException mse = (MismatchedSetException) e;
00257:                    message.append("mismatched token '" + e.token
00258:                            + "' expecting set " + mse.expecting);
00259:                } else if (e instanceof  MismatchedNotSetException) {
00260:                    MismatchedNotSetException mse = (MismatchedNotSetException) e;
00261:                    message.append("mismatched token '" + e.token
00262:                            + "' expecting set " + mse.expecting);
00263:                } else if (e instanceof  FailedPredicateException) {
00264:                    FailedPredicateException fpe = (FailedPredicateException) e;
00265:                    message
00266:                            .append("rule " + fpe.ruleName
00267:                                    + " failed predicate: {"
00268:                                    + fpe.predicateText + "}?");
00269:                } else if (e instanceof  GeneralParseException) {
00270:                    message.append(" " + e.getMessage());
00271:                }
00272:                return message.toString();
00273:            }
00274:
00275:            void checkTrailingSemicolon(String text, int line) {
00276:                if (text.trim().endsWith(";")) {
00277:                    this .errors.add(new GeneralParseException(
00278:                            "Trailing semi-colon not allowed", offset(line)));
00279:                }
00280:            }
00281:
00282:            public Location getLocation() {
00283:                return this .location;
00284:            }
00285:
00286:            // $ANTLR start opt_semicolon
00287:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:191:1: opt_semicolon : ( ';' )? ;
00288:            public final void opt_semicolon() throws RecognitionException {
00289:                try {
00290:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:192:2: ( ( ';' )? )
00291:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:192:4: ( ';' )?
00292:                    {
00293:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:192:4: ( ';' )?
00294:                        int alt1 = 2;
00295:                        int LA1_0 = input.LA(1);
00296:
00297:                        if ((LA1_0 == 71)) {
00298:                            alt1 = 1;
00299:                        }
00300:                        switch (alt1) {
00301:                        case 1:
00302:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:192:4: ';'
00303:                        {
00304:                            match(input, 71, FOLLOW_71_in_opt_semicolon39);
00305:                            if (failed)
00306:                                return;
00307:
00308:                        }
00309:                            break;
00310:
00311:                        }
00312:
00313:                    }
00314:
00315:                } catch (RecognitionException re) {
00316:                    reportError(re);
00317:                    recover(input, re);
00318:                } finally {
00319:                }
00320:                return;
00321:            }
00322:
00323:            // $ANTLR end opt_semicolon
00324:
00325:            // $ANTLR start compilation_unit
00326:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:195:1: compilation_unit : prolog ( statement )+ EOF ;
00327:            public final void compilation_unit() throws RecognitionException {
00328:
00329:                // reset Location information
00330:                this .location = new Location(Location.LOCATION_UNKNOWN);
00331:
00332:                try {
00333:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:200:2: ( prolog ( statement )+ EOF )
00334:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:200:4: prolog ( statement )+ EOF
00335:                    {
00336:                        pushFollow(FOLLOW_prolog_in_compilation_unit57);
00337:                        prolog();
00338:                        _fsp--;
00339:                        if (failed)
00340:                            return;
00341:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:201:3: ( statement )+
00342:                        int cnt2 = 0;
00343:                        loop2: do {
00344:                            int alt2 = 2;
00345:                            int LA2_0 = input.LA(1);
00346:
00347:                            if (((LA2_0 >= IMPORT && LA2_0 <= FUNCTION)
00348:                                    || LA2_0 == GLOBAL
00349:                                    || LA2_0 == QUERY
00350:                                    || (LA2_0 >= TEMPLATE && LA2_0 <= RULE)
00351:                                    || LA2_0 == DATE_EFFECTIVE
00352:                                    || (LA2_0 >= DATE_EXPIRES && LA2_0 <= ENABLED)
00353:                                    || LA2_0 == SALIENCE || (LA2_0 >= NO_LOOP && LA2_0 <= LOCK_ON_ACTIVE))) {
00354:                                alt2 = 1;
00355:                            }
00356:
00357:                            switch (alt2) {
00358:                            case 1:
00359:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:201:3: statement
00360:                            {
00361:                                pushFollow(FOLLOW_statement_in_compilation_unit62);
00362:                                statement();
00363:                                _fsp--;
00364:                                if (failed)
00365:                                    return;
00366:
00367:                            }
00368:                                break;
00369:
00370:                            default:
00371:                                if (cnt2 >= 1)
00372:                                    break loop2;
00373:                                if (backtracking > 0) {
00374:                                    failed = true;
00375:                                    return;
00376:                                }
00377:                                EarlyExitException eee = new EarlyExitException(
00378:                                        2, input);
00379:                                throw eee;
00380:                            }
00381:                            cnt2++;
00382:                        } while (true);
00383:
00384:                        match(input, EOF, FOLLOW_EOF_in_compilation_unit67);
00385:                        if (failed)
00386:                            return;
00387:
00388:                    }
00389:
00390:                } catch (RecognitionException e) {
00391:
00392:                    reportError(e);
00393:
00394:                } finally {
00395:                }
00396:                return;
00397:            }
00398:
00399:            // $ANTLR end compilation_unit
00400:
00401:            // $ANTLR start prolog
00402:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:208:1: prolog : (pkgstmt= package_statement )? ;
00403:            public final void prolog() throws RecognitionException {
00404:                String pkgstmt = null;
00405:
00406:                String packageName = "";
00407:
00408:                try {
00409:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:212:2: ( (pkgstmt= package_statement )? )
00410:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:212:4: (pkgstmt= package_statement )?
00411:                    {
00412:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:212:4: (pkgstmt= package_statement )?
00413:                        int alt3 = 2;
00414:                        int LA3_0 = input.LA(1);
00415:
00416:                        if ((LA3_0 == PACKAGE)) {
00417:                            alt3 = 1;
00418:                        }
00419:                        switch (alt3) {
00420:                        case 1:
00421:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:212:6: pkgstmt= package_statement
00422:                        {
00423:                            pushFollow(FOLLOW_package_statement_in_prolog96);
00424:                            pkgstmt = package_statement();
00425:                            _fsp--;
00426:                            if (failed)
00427:                                return;
00428:                            if (backtracking == 0) {
00429:                                packageName = pkgstmt;
00430:                            }
00431:
00432:                        }
00433:                            break;
00434:
00435:                        }
00436:
00437:                        if (backtracking == 0) {
00438:
00439:                            this .packageDescr = factory
00440:                                    .createPackage(packageName);
00441:
00442:                        }
00443:
00444:                    }
00445:
00446:                } catch (RecognitionException re) {
00447:                    reportError(re);
00448:                    recover(input, re);
00449:                } finally {
00450:                }
00451:                return;
00452:            }
00453:
00454:            // $ANTLR end prolog
00455:
00456:            // $ANTLR start statement
00457:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:219:1: statement : (a= rule_attribute | function_import_statement | import_statement | global | function | t= template | r= rule | q= query );
00458:            public final void statement() throws RecognitionException {
00459:                AttributeDescr a = null;
00460:
00461:                FactTemplateDescr t = null;
00462:
00463:                RuleDescr r = null;
00464:
00465:                QueryDescr q = null;
00466:
00467:                try {
00468:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:220:2: (a= rule_attribute | function_import_statement | import_statement | global | function | t= template | r= rule | q= query )
00469:                    int alt4 = 8;
00470:                    switch (input.LA(1)) {
00471:                    case DATE_EFFECTIVE:
00472:                    case DATE_EXPIRES:
00473:                    case ENABLED:
00474:                    case SALIENCE:
00475:                    case NO_LOOP:
00476:                    case AUTO_FOCUS:
00477:                    case ACTIVATION_GROUP:
00478:                    case RULEFLOW_GROUP:
00479:                    case AGENDA_GROUP:
00480:                    case DURATION:
00481:                    case DIALECT:
00482:                    case LOCK_ON_ACTIVE: {
00483:                        alt4 = 1;
00484:                    }
00485:                        break;
00486:                    case IMPORT: {
00487:                        int LA4_2 = input.LA(2);
00488:
00489:                        if ((LA4_2 == FUNCTION)) {
00490:                            alt4 = 2;
00491:                        } else if ((LA4_2 == ID)) {
00492:                            alt4 = 3;
00493:                        } else {
00494:                            if (backtracking > 0) {
00495:                                failed = true;
00496:                                return;
00497:                            }
00498:                            NoViableAltException nvae = new NoViableAltException(
00499:                                    "219:1: statement : (a= rule_attribute | function_import_statement | import_statement | global | function | t= template | r= rule | q= query );",
00500:                                    4, 2, input);
00501:
00502:                            throw nvae;
00503:                        }
00504:                    }
00505:                        break;
00506:                    case GLOBAL: {
00507:                        alt4 = 4;
00508:                    }
00509:                        break;
00510:                    case FUNCTION: {
00511:                        alt4 = 5;
00512:                    }
00513:                        break;
00514:                    case TEMPLATE: {
00515:                        alt4 = 6;
00516:                    }
00517:                        break;
00518:                    case RULE: {
00519:                        alt4 = 7;
00520:                    }
00521:                        break;
00522:                    case QUERY: {
00523:                        alt4 = 8;
00524:                    }
00525:                        break;
00526:                    default:
00527:                        if (backtracking > 0) {
00528:                            failed = true;
00529:                            return;
00530:                        }
00531:                        NoViableAltException nvae = new NoViableAltException(
00532:                                "219:1: statement : (a= rule_attribute | function_import_statement | import_statement | global | function | t= template | r= rule | q= query );",
00533:                                4, 0, input);
00534:
00535:                        throw nvae;
00536:                    }
00537:
00538:                    switch (alt4) {
00539:                    case 1:
00540:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:220:4: a= rule_attribute
00541:                    {
00542:                        pushFollow(FOLLOW_rule_attribute_in_statement121);
00543:                        a = rule_attribute();
00544:                        _fsp--;
00545:                        if (failed)
00546:                            return;
00547:                        if (backtracking == 0) {
00548:                            this .packageDescr.addAttribute(a);
00549:                        }
00550:
00551:                    }
00552:                        break;
00553:                    case 2:
00554:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:221:4: function_import_statement
00555:                    {
00556:                        pushFollow(FOLLOW_function_import_statement_in_statement128);
00557:                        function_import_statement();
00558:                        _fsp--;
00559:                        if (failed)
00560:                            return;
00561:
00562:                    }
00563:                        break;
00564:                    case 3:
00565:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:222:4: import_statement
00566:                    {
00567:                        pushFollow(FOLLOW_import_statement_in_statement134);
00568:                        import_statement();
00569:                        _fsp--;
00570:                        if (failed)
00571:                            return;
00572:
00573:                    }
00574:                        break;
00575:                    case 4:
00576:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:223:4: global
00577:                    {
00578:                        pushFollow(FOLLOW_global_in_statement140);
00579:                        global();
00580:                        _fsp--;
00581:                        if (failed)
00582:                            return;
00583:
00584:                    }
00585:                        break;
00586:                    case 5:
00587:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:224:4: function
00588:                    {
00589:                        pushFollow(FOLLOW_function_in_statement146);
00590:                        function();
00591:                        _fsp--;
00592:                        if (failed)
00593:                            return;
00594:
00595:                    }
00596:                        break;
00597:                    case 6:
00598:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:225:10: t= template
00599:                    {
00600:                        pushFollow(FOLLOW_template_in_statement160);
00601:                        t = template();
00602:                        _fsp--;
00603:                        if (failed)
00604:                            return;
00605:                        if (backtracking == 0) {
00606:                            this .packageDescr.addFactTemplate(t);
00607:                        }
00608:
00609:                    }
00610:                        break;
00611:                    case 7:
00612:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:226:4: r= rule
00613:                    {
00614:                        pushFollow(FOLLOW_rule_in_statement169);
00615:                        r = rule();
00616:                        _fsp--;
00617:                        if (failed)
00618:                            return;
00619:                        if (backtracking == 0) {
00620:                            this .packageDescr.addRule(r);
00621:                        }
00622:
00623:                    }
00624:                        break;
00625:                    case 8:
00626:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:227:4: q= query
00627:                    {
00628:                        pushFollow(FOLLOW_query_in_statement181);
00629:                        q = query();
00630:                        _fsp--;
00631:                        if (failed)
00632:                            return;
00633:                        if (backtracking == 0) {
00634:                            this .packageDescr.addRule(q);
00635:                        }
00636:
00637:                    }
00638:                        break;
00639:
00640:                    }
00641:                } catch (RecognitionException re) {
00642:                    reportError(re);
00643:                    recover(input, re);
00644:                } finally {
00645:                }
00646:                return;
00647:            }
00648:
00649:            // $ANTLR end statement
00650:
00651:            // $ANTLR start package_statement
00652:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:229:1: package_statement returns [String packageName] : PACKAGE n= dotted_name opt_semicolon ;
00653:            public final String package_statement() throws RecognitionException {
00654:                String packageName = null;
00655:
00656:                String n = null;
00657:
00658:                packageName = null;
00659:
00660:                try {
00661:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:233:2: ( PACKAGE n= dotted_name opt_semicolon )
00662:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:234:3: PACKAGE n= dotted_name opt_semicolon
00663:                    {
00664:                        match(input, PACKAGE,
00665:                                FOLLOW_PACKAGE_in_package_statement205);
00666:                        if (failed)
00667:                            return packageName;
00668:                        pushFollow(FOLLOW_dotted_name_in_package_statement209);
00669:                        n = dotted_name();
00670:                        _fsp--;
00671:                        if (failed)
00672:                            return packageName;
00673:                        pushFollow(FOLLOW_opt_semicolon_in_package_statement211);
00674:                        opt_semicolon();
00675:                        _fsp--;
00676:                        if (failed)
00677:                            return packageName;
00678:                        if (backtracking == 0) {
00679:
00680:                            packageName = n;
00681:
00682:                        }
00683:
00684:                    }
00685:
00686:                } catch (RecognitionException re) {
00687:                    reportError(re);
00688:                    recover(input, re);
00689:                } finally {
00690:                }
00691:                return packageName;
00692:            }
00693:
00694:            // $ANTLR end package_statement
00695:
00696:            // $ANTLR start import_statement
00697:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:242:1: import_statement : IMPORT import_name[importDecl] opt_semicolon ;
00698:            public final void import_statement() throws RecognitionException {
00699:                Token IMPORT1 = null;
00700:
00701:                ImportDescr importDecl = null;
00702:
00703:                try {
00704:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:246:2: ( IMPORT import_name[importDecl] opt_semicolon )
00705:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:246:4: IMPORT import_name[importDecl] opt_semicolon
00706:                    {
00707:                        IMPORT1 = (Token) input.LT(1);
00708:                        match(input, IMPORT,
00709:                                FOLLOW_IMPORT_in_import_statement242);
00710:                        if (failed)
00711:                            return;
00712:                        if (backtracking == 0) {
00713:
00714:                            importDecl = factory.createImport();
00715:                            importDecl
00716:                                    .setStartCharacter(((CommonToken) IMPORT1)
00717:                                            .getStartIndex());
00718:                            if (packageDescr != null) {
00719:                                packageDescr.addImport(importDecl);
00720:                            }
00721:
00722:                        }
00723:                        pushFollow(FOLLOW_import_name_in_import_statement265);
00724:                        import_name(importDecl);
00725:                        _fsp--;
00726:                        if (failed)
00727:                            return;
00728:                        pushFollow(FOLLOW_opt_semicolon_in_import_statement268);
00729:                        opt_semicolon();
00730:                        _fsp--;
00731:                        if (failed)
00732:                            return;
00733:
00734:                    }
00735:
00736:                } catch (RecognitionException re) {
00737:                    reportError(re);
00738:                    recover(input, re);
00739:                } finally {
00740:                }
00741:                return;
00742:            }
00743:
00744:            // $ANTLR end import_statement
00745:
00746:            // $ANTLR start function_import_statement
00747:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:257:1: function_import_statement : IMPORT FUNCTION import_name[importDecl] opt_semicolon ;
00748:            public final void function_import_statement()
00749:                    throws RecognitionException {
00750:                Token IMPORT2 = null;
00751:
00752:                FunctionImportDescr importDecl = null;
00753:
00754:                try {
00755:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:261:2: ( IMPORT FUNCTION import_name[importDecl] opt_semicolon )
00756:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:261:4: IMPORT FUNCTION import_name[importDecl] opt_semicolon
00757:                    {
00758:                        IMPORT2 = (Token) input.LT(1);
00759:                        match(input, IMPORT,
00760:                                FOLLOW_IMPORT_in_function_import_statement292);
00761:                        if (failed)
00762:                            return;
00763:                        match(input, FUNCTION,
00764:                                FOLLOW_FUNCTION_in_function_import_statement294);
00765:                        if (failed)
00766:                            return;
00767:                        if (backtracking == 0) {
00768:
00769:                            importDecl = factory.createFunctionImport();
00770:                            importDecl
00771:                                    .setStartCharacter(((CommonToken) IMPORT2)
00772:                                            .getStartIndex());
00773:                            if (packageDescr != null) {
00774:                                packageDescr.addFunctionImport(importDecl);
00775:                            }
00776:
00777:                        }
00778:                        pushFollow(FOLLOW_import_name_in_function_import_statement317);
00779:                        import_name(importDecl);
00780:                        _fsp--;
00781:                        if (failed)
00782:                            return;
00783:                        pushFollow(FOLLOW_opt_semicolon_in_function_import_statement320);
00784:                        opt_semicolon();
00785:                        _fsp--;
00786:                        if (failed)
00787:                            return;
00788:
00789:                    }
00790:
00791:                } catch (RecognitionException re) {
00792:                    reportError(re);
00793:                    recover(input, re);
00794:                } finally {
00795:                }
00796:                return;
00797:            }
00798:
00799:            // $ANTLR end function_import_statement
00800:
00801:            // $ANTLR start import_name
00802:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:273:1: import_name[ImportDescr importDecl] returns [String name] : ID ( DOT id= identifier )* (star= '.*' )? ;
00803:            public final String import_name(ImportDescr importDecl)
00804:                    throws RecognitionException {
00805:                String name = null;
00806:
00807:                Token star = null;
00808:                Token ID3 = null;
00809:                Token DOT4 = null;
00810:                identifier_return id = null;
00811:
00812:                name = null;
00813:
00814:                try {
00815:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:277:2: ( ID ( DOT id= identifier )* (star= '.*' )? )
00816:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:278:3: ID ( DOT id= identifier )* (star= '.*' )?
00817:                    {
00818:                        ID3 = (Token) input.LT(1);
00819:                        match(input, ID, FOLLOW_ID_in_import_name346);
00820:                        if (failed)
00821:                            return name;
00822:                        if (backtracking == 0) {
00823:
00824:                            name = ID3.getText();
00825:                            importDecl.setTarget(name);
00826:                            importDecl.setEndCharacter(((CommonToken) ID3)
00827:                                    .getStopIndex());
00828:
00829:                        }
00830:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:284:3: ( DOT id= identifier )*
00831:                        loop5: do {
00832:                            int alt5 = 2;
00833:                            int LA5_0 = input.LA(1);
00834:
00835:                            if ((LA5_0 == DOT)) {
00836:                                alt5 = 1;
00837:                            }
00838:
00839:                            switch (alt5) {
00840:                            case 1:
00841:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:284:5: DOT id= identifier
00842:                            {
00843:                                DOT4 = (Token) input.LT(1);
00844:                                match(input, DOT, FOLLOW_DOT_in_import_name358);
00845:                                if (failed)
00846:                                    return name;
00847:                                pushFollow(FOLLOW_identifier_in_import_name362);
00848:                                id = identifier();
00849:                                _fsp--;
00850:                                if (failed)
00851:                                    return name;
00852:                                if (backtracking == 0) {
00853:
00854:                                    name = name + DOT4.getText()
00855:                                            + input.toString(id.start, id.stop);
00856:                                    importDecl.setTarget(name);
00857:                                    importDecl
00858:                                            .setEndCharacter(((CommonToken) ((Token) id.start))
00859:                                                    .getStopIndex());
00860:
00861:                                }
00862:
00863:                            }
00864:                                break;
00865:
00866:                            default:
00867:                                break loop5;
00868:                            }
00869:                        } while (true);
00870:
00871:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:291:3: (star= '.*' )?
00872:                        int alt6 = 2;
00873:                        int LA6_0 = input.LA(1);
00874:
00875:                        if ((LA6_0 == 72)) {
00876:                            alt6 = 1;
00877:                        }
00878:                        switch (alt6) {
00879:                        case 1:
00880:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:291:5: star= '.*'
00881:                        {
00882:                            star = (Token) input.LT(1);
00883:                            match(input, 72, FOLLOW_72_in_import_name386);
00884:                            if (failed)
00885:                                return name;
00886:                            if (backtracking == 0) {
00887:
00888:                                name = name + star.getText();
00889:                                importDecl.setTarget(name);
00890:                                importDecl.setEndCharacter(((CommonToken) star)
00891:                                        .getStopIndex());
00892:
00893:                            }
00894:
00895:                        }
00896:                            break;
00897:
00898:                        }
00899:
00900:                    }
00901:
00902:                } catch (RecognitionException re) {
00903:                    reportError(re);
00904:                    recover(input, re);
00905:                } finally {
00906:                }
00907:                return name;
00908:            }
00909:
00910:            // $ANTLR end import_name
00911:
00912:            // $ANTLR start global
00913:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:301:1: global : GLOBAL type= dotted_name id= identifier opt_semicolon ;
00914:            public final void global() throws RecognitionException {
00915:                Token GLOBAL5 = null;
00916:                String type = null;
00917:
00918:                identifier_return id = null;
00919:
00920:                GlobalDescr global = null;
00921:
00922:                try {
00923:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:305:2: ( GLOBAL type= dotted_name id= identifier opt_semicolon )
00924:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:306:3: GLOBAL type= dotted_name id= identifier opt_semicolon
00925:                    {
00926:                        GLOBAL5 = (Token) input.LT(1);
00927:                        match(input, GLOBAL, FOLLOW_GLOBAL_in_global420);
00928:                        if (failed)
00929:                            return;
00930:                        if (backtracking == 0) {
00931:
00932:                            global = factory.createGlobal();
00933:                            global.setStartCharacter(((CommonToken) GLOBAL5)
00934:                                    .getStartIndex());
00935:                            packageDescr.addGlobal(global);
00936:
00937:                        }
00938:                        pushFollow(FOLLOW_dotted_name_in_global431);
00939:                        type = dotted_name();
00940:                        _fsp--;
00941:                        if (failed)
00942:                            return;
00943:                        if (backtracking == 0) {
00944:
00945:                            global.setType(type);
00946:
00947:                        }
00948:                        pushFollow(FOLLOW_identifier_in_global442);
00949:                        id = identifier();
00950:                        _fsp--;
00951:                        if (failed)
00952:                            return;
00953:                        pushFollow(FOLLOW_opt_semicolon_in_global444);
00954:                        opt_semicolon();
00955:                        _fsp--;
00956:                        if (failed)
00957:                            return;
00958:                        if (backtracking == 0) {
00959:
00960:                            global.setIdentifier(input.toString(id.start,
00961:                                    id.stop));
00962:                            global
00963:                                    .setEndCharacter(((CommonToken) ((Token) id.start))
00964:                                            .getStopIndex());
00965:
00966:                        }
00967:
00968:                    }
00969:
00970:                } catch (RecognitionException re) {
00971:                    reportError(re);
00972:                    recover(input, re);
00973:                } finally {
00974:                }
00975:                return;
00976:            }
00977:
00978:            // $ANTLR end global
00979:
00980:            // $ANTLR start function
00981:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:324:1: function : FUNCTION (retType= dotted_name )? id= identifier LEFT_PAREN ( (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )* )? RIGHT_PAREN body= curly_chunk ;
00982:            public final void function() throws RecognitionException {
00983:                Token FUNCTION6 = null;
00984:                String retType = null;
00985:
00986:                identifier_return id = null;
00987:
00988:                String paramType = null;
00989:
00990:                String paramName = null;
00991:
00992:                curly_chunk_return body = null;
00993:
00994:                FunctionDescr f = null;
00995:                String type = null;
00996:
00997:                try {
00998:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:329:2: ( FUNCTION (retType= dotted_name )? id= identifier LEFT_PAREN ( (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )* )? RIGHT_PAREN body= curly_chunk )
00999:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:330:3: FUNCTION (retType= dotted_name )? id= identifier LEFT_PAREN ( (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )* )? RIGHT_PAREN body= curly_chunk
01000:                    {
01001:                        FUNCTION6 = (Token) input.LT(1);
01002:                        match(input, FUNCTION, FOLLOW_FUNCTION_in_function469);
01003:                        if (failed)
01004:                            return;
01005:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:330:19: (retType= dotted_name )?
01006:                        int alt7 = 2;
01007:                        int LA7_0 = input.LA(1);
01008:
01009:                        if (((LA7_0 >= PACKAGE && LA7_0 <= ID)
01010:                                || LA7_0 == GLOBAL
01011:                                || (LA7_0 >= QUERY && LA7_0 <= ATTRIBUTES)
01012:                                || LA7_0 == ENABLED || LA7_0 == SALIENCE
01013:                                || (LA7_0 >= DURATION && LA7_0 <= DIALECT)
01014:                                || LA7_0 == FROM
01015:                                || (LA7_0 >= INIT && LA7_0 <= RESULT)
01016:                                || (LA7_0 >= CONTAINS && LA7_0 <= IN) || LA7_0 == THEN)) {
01017:                            int LA7_1 = input.LA(2);
01018:
01019:                            if (((LA7_1 >= PACKAGE && LA7_1 <= GLOBAL)
01020:                                    || (LA7_1 >= QUERY && LA7_1 <= ATTRIBUTES)
01021:                                    || LA7_1 == ENABLED || LA7_1 == SALIENCE
01022:                                    || (LA7_1 >= DURATION && LA7_1 <= DIALECT)
01023:                                    || LA7_1 == FROM
01024:                                    || (LA7_1 >= INIT && LA7_1 <= RESULT)
01025:                                    || (LA7_1 >= CONTAINS && LA7_1 <= IN)
01026:                                    || LA7_1 == LEFT_SQUARE || LA7_1 == THEN)) {
01027:                                alt7 = 1;
01028:                            }
01029:                        }
01030:                        switch (alt7) {
01031:                        case 1:
01032:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:330:19: retType= dotted_name
01033:                        {
01034:                            pushFollow(FOLLOW_dotted_name_in_function473);
01035:                            retType = dotted_name();
01036:                            _fsp--;
01037:                            if (failed)
01038:                                return;
01039:
01040:                        }
01041:                            break;
01042:
01043:                        }
01044:
01045:                        pushFollow(FOLLOW_identifier_in_function478);
01046:                        id = identifier();
01047:                        _fsp--;
01048:                        if (failed)
01049:                            return;
01050:                        if (backtracking == 0) {
01051:
01052:                            //System.err.println( "function :: " + n.getText() );
01053:                            type = retType != null ? retType : null;
01054:                            f = factory.createFunction(input.toString(id.start,
01055:                                    id.stop), type);
01056:                            f.setLocation(offset(FUNCTION6.getLine()),
01057:                                    FUNCTION6.getCharPositionInLine());
01058:                            f.setStartCharacter(((CommonToken) FUNCTION6)
01059:                                    .getStartIndex());
01060:                            packageDescr.addFunction(f);
01061:
01062:                        }
01063:                        match(input, LEFT_PAREN,
01064:                                FOLLOW_LEFT_PAREN_in_function487);
01065:                        if (failed)
01066:                            return;
01067:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:340:4: ( (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )* )?
01068:                        int alt11 = 2;
01069:                        int LA11_0 = input.LA(1);
01070:
01071:                        if (((LA11_0 >= PACKAGE && LA11_0 <= ID)
01072:                                || LA11_0 == GLOBAL
01073:                                || (LA11_0 >= QUERY && LA11_0 <= ATTRIBUTES)
01074:                                || LA11_0 == ENABLED || LA11_0 == SALIENCE
01075:                                || (LA11_0 >= DURATION && LA11_0 <= DIALECT)
01076:                                || LA11_0 == FROM
01077:                                || (LA11_0 >= INIT && LA11_0 <= RESULT)
01078:                                || (LA11_0 >= CONTAINS && LA11_0 <= IN) || LA11_0 == THEN)) {
01079:                            alt11 = 1;
01080:                        }
01081:                        switch (alt11) {
01082:                        case 1:
01083:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:340:6: (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )*
01084:                        {
01085:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:340:15: (paramType= dotted_name )?
01086:                            int alt8 = 2;
01087:                            alt8 = dfa8.predict(input);
01088:                            switch (alt8) {
01089:                            case 1:
01090:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:340:15: paramType= dotted_name
01091:                            {
01092:                                pushFollow(FOLLOW_dotted_name_in_function496);
01093:                                paramType = dotted_name();
01094:                                _fsp--;
01095:                                if (failed)
01096:                                    return;
01097:
01098:                            }
01099:                                break;
01100:
01101:                            }
01102:
01103:                            pushFollow(FOLLOW_argument_in_function501);
01104:                            paramName = argument();
01105:                            _fsp--;
01106:                            if (failed)
01107:                                return;
01108:                            if (backtracking == 0) {
01109:
01110:                                type = paramType != null ? paramType : null;
01111:                                f.addParameter(type, paramName);
01112:
01113:                            }
01114:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:345:5: ( COMMA (paramType= dotted_name )? paramName= argument )*
01115:                            loop10: do {
01116:                                int alt10 = 2;
01117:                                int LA10_0 = input.LA(1);
01118:
01119:                                if ((LA10_0 == COMMA)) {
01120:                                    alt10 = 1;
01121:                                }
01122:
01123:                                switch (alt10) {
01124:                                case 1:
01125:                                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:345:7: COMMA (paramType= dotted_name )? paramName= argument
01126:                                {
01127:                                    match(input, COMMA,
01128:                                            FOLLOW_COMMA_in_function515);
01129:                                    if (failed)
01130:                                        return;
01131:                                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:345:22: (paramType= dotted_name )?
01132:                                    int alt9 = 2;
01133:                                    alt9 = dfa9.predict(input);
01134:                                    switch (alt9) {
01135:                                    case 1:
01136:                                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:345:22: paramType= dotted_name
01137:                                    {
01138:                                        pushFollow(FOLLOW_dotted_name_in_function519);
01139:                                        paramType = dotted_name();
01140:                                        _fsp--;
01141:                                        if (failed)
01142:                                            return;
01143:
01144:                                    }
01145:                                        break;
01146:
01147:                                    }
01148:
01149:                                    pushFollow(FOLLOW_argument_in_function524);
01150:                                    paramName = argument();
01151:                                    _fsp--;
01152:                                    if (failed)
01153:                                        return;
01154:                                    if (backtracking == 0) {
01155:
01156:                                        type = paramType != null ? paramType
01157:                                                : null;
01158:                                        f.addParameter(type, paramName);
01159:
01160:                                    }
01161:
01162:                                }
01163:                                    break;
01164:
01165:                                default:
01166:                                    break loop10;
01167:                                }
01168:                            } while (true);
01169:
01170:                        }
01171:                            break;
01172:
01173:                        }
01174:
01175:                        match(input, RIGHT_PAREN,
01176:                                FOLLOW_RIGHT_PAREN_in_function548);
01177:                        if (failed)
01178:                            return;
01179:                        pushFollow(FOLLOW_curly_chunk_in_function554);
01180:                        body = curly_chunk();
01181:                        _fsp--;
01182:                        if (failed)
01183:                            return;
01184:                        if (backtracking == 0) {
01185:
01186:                            //strip out '{','}'
01187:                            f.setText(input.toString(body.start, body.stop)
01188:                                    .substring(
01189:                                            1,
01190:                                            input.toString(body.start,
01191:                                                    body.stop).length() - 1));
01192:                            f
01193:                                    .setEndCharacter(((CommonToken) ((Token) body.stop))
01194:                                            .getStopIndex());
01195:                            f.setEndLocation(offset(((Token) body.stop)
01196:                                    .getLine()), ((Token) body.stop)
01197:                                    .getCharPositionInLine());
01198:
01199:                        }
01200:
01201:                    }
01202:
01203:                } catch (RecognitionException re) {
01204:                    reportError(re);
01205:                    recover(input, re);
01206:                } finally {
01207:                }
01208:                return;
01209:            }
01210:
01211:            // $ANTLR end function
01212:
01213:            // $ANTLR start argument
01214:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:362:1: argument returns [String name] : id= identifier ( '[' ']' )* ;
01215:            public final String argument() throws RecognitionException {
01216:                String name = null;
01217:
01218:                identifier_return id = null;
01219:
01220:                name = null;
01221:
01222:                try {
01223:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:366:2: (id= identifier ( '[' ']' )* )
01224:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:366:4: id= identifier ( '[' ']' )*
01225:                    {
01226:                        pushFollow(FOLLOW_identifier_in_argument581);
01227:                        id = identifier();
01228:                        _fsp--;
01229:                        if (failed)
01230:                            return name;
01231:                        if (backtracking == 0) {
01232:                            name = input.toString(id.start, id.stop);
01233:                        }
01234:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:366:38: ( '[' ']' )*
01235:                        loop12: do {
01236:                            int alt12 = 2;
01237:                            int LA12_0 = input.LA(1);
01238:
01239:                            if ((LA12_0 == LEFT_SQUARE)) {
01240:                                alt12 = 1;
01241:                            }
01242:
01243:                            switch (alt12) {
01244:                            case 1:
01245:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:366:40: '[' ']'
01246:                            {
01247:                                match(input, LEFT_SQUARE,
01248:                                        FOLLOW_LEFT_SQUARE_in_argument587);
01249:                                if (failed)
01250:                                    return name;
01251:                                match(input, RIGHT_SQUARE,
01252:                                        FOLLOW_RIGHT_SQUARE_in_argument589);
01253:                                if (failed)
01254:                                    return name;
01255:                                if (backtracking == 0) {
01256:                                    name += "[]";
01257:                                }
01258:
01259:                            }
01260:                                break;
01261:
01262:                            default:
01263:                                break loop12;
01264:                            }
01265:                        } while (true);
01266:
01267:                    }
01268:
01269:                } catch (RecognitionException re) {
01270:                    reportError(re);
01271:                    recover(input, re);
01272:                } finally {
01273:                }
01274:                return name;
01275:            }
01276:
01277:            // $ANTLR end argument
01278:
01279:            // $ANTLR start query
01280:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:371:1: query returns [QueryDescr query] : QUERY queryName= name ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )? normal_lhs_block[lhs] END opt_semicolon ;
01281:            public final QueryDescr query() throws RecognitionException {
01282:                QueryDescr query = null;
01283:
01284:                Token paramName = null;
01285:                Token QUERY7 = null;
01286:                Token END8 = null;
01287:                String queryName = null;
01288:
01289:                qualified_id_return paramType = null;
01290:
01291:                query = null;
01292:                AndDescr lhs = null;
01293:                List params = null;
01294:                List types = null;
01295:
01296:                try {
01297:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:379:2: ( QUERY queryName= name ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )? normal_lhs_block[lhs] END opt_semicolon )
01298:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:380:3: QUERY queryName= name ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )? normal_lhs_block[lhs] END opt_semicolon
01299:                    {
01300:                        QUERY7 = (Token) input.LT(1);
01301:                        match(input, QUERY, FOLLOW_QUERY_in_query619);
01302:                        if (failed)
01303:                            return query;
01304:                        pushFollow(FOLLOW_name_in_query623);
01305:                        queryName = name();
01306:                        _fsp--;
01307:                        if (failed)
01308:                            return query;
01309:                        if (backtracking == 0) {
01310:
01311:                            query = factory.createQuery(queryName);
01312:                            query.setLocation(offset(QUERY7.getLine()), QUERY7
01313:                                    .getCharPositionInLine());
01314:                            query.setStartCharacter(((CommonToken) QUERY7)
01315:                                    .getStartIndex());
01316:                            lhs = new AndDescr();
01317:                            query.setLhs(lhs);
01318:                            lhs.setLocation(offset(QUERY7.getLine()), QUERY7
01319:                                    .getCharPositionInLine());
01320:                            location.setType(Location.LOCATION_RULE_HEADER);
01321:
01322:                        }
01323:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:389:3: ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )?
01324:                        int alt17 = 2;
01325:                        alt17 = dfa17.predict(input);
01326:                        switch (alt17) {
01327:                        case 1:
01328:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:389:5: LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN
01329:                        {
01330:                            match(input, LEFT_PAREN,
01331:                                    FOLLOW_LEFT_PAREN_in_query633);
01332:                            if (failed)
01333:                                return query;
01334:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:390:11: ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )?
01335:                            int alt16 = 2;
01336:                            int LA16_0 = input.LA(1);
01337:
01338:                            if ((LA16_0 == ID)) {
01339:                                alt16 = 1;
01340:                            }
01341:                            switch (alt16) {
01342:                            case 1:
01343:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:390:13: ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )*
01344:                            {
01345:                                if (backtracking == 0) {
01346:                                    params = new ArrayList();
01347:                                    types = new ArrayList();
01348:                                }
01349:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:392:15: ( (paramType= qualified_id )? paramName= ID )
01350:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:392:16: (paramType= qualified_id )? paramName= ID
01351:                                {
01352:                                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:392:25: (paramType= qualified_id )?
01353:                                    int alt13 = 2;
01354:                                    int LA13_0 = input.LA(1);
01355:
01356:                                    if ((LA13_0 == ID)) {
01357:                                        int LA13_1 = input.LA(2);
01358:
01359:                                        if (((LA13_1 >= ID && LA13_1 <= DOT) || LA13_1 == LEFT_SQUARE)) {
01360:                                            alt13 = 1;
01361:                                        }
01362:                                    }
01363:                                    switch (alt13) {
01364:                                    case 1:
01365:                                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:392:25: paramType= qualified_id
01366:                                    {
01367:                                        pushFollow(FOLLOW_qualified_id_in_query668);
01368:                                        paramType = qualified_id();
01369:                                        _fsp--;
01370:                                        if (failed)
01371:                                            return query;
01372:
01373:                                    }
01374:                                        break;
01375:
01376:                                    }
01377:
01378:                                    paramName = (Token) input.LT(1);
01379:                                    match(input, ID, FOLLOW_ID_in_query673);
01380:                                    if (failed)
01381:                                        return query;
01382:                                    if (backtracking == 0) {
01383:                                        params.add(paramName.getText());
01384:                                        String type = (paramType != null) ? paramType.text
01385:                                                : "Object";
01386:                                        types.add(type);
01387:                                    }
01388:
01389:                                }
01390:
01391:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:393:15: ( COMMA (paramType= qualified_id )? paramName= ID )*
01392:                                loop15: do {
01393:                                    int alt15 = 2;
01394:                                    int LA15_0 = input.LA(1);
01395:
01396:                                    if ((LA15_0 == COMMA)) {
01397:                                        alt15 = 1;
01398:                                    }
01399:
01400:                                    switch (alt15) {
01401:                                    case 1:
01402:                                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:393:16: COMMA (paramType= qualified_id )? paramName= ID
01403:                                    {
01404:                                        match(input, COMMA,
01405:                                                FOLLOW_COMMA_in_query694);
01406:                                        if (failed)
01407:                                            return query;
01408:                                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:393:31: (paramType= qualified_id )?
01409:                                        int alt14 = 2;
01410:                                        int LA14_0 = input.LA(1);
01411:
01412:                                        if ((LA14_0 == ID)) {
01413:                                            int LA14_1 = input.LA(2);
01414:
01415:                                            if (((LA14_1 >= ID && LA14_1 <= DOT) || LA14_1 == LEFT_SQUARE)) {
01416:                                                alt14 = 1;
01417:                                            }
01418:                                        }
01419:                                        switch (alt14) {
01420:                                        case 1:
01421:                                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:393:31: paramType= qualified_id
01422:                                        {
01423:                                            pushFollow(FOLLOW_qualified_id_in_query698);
01424:                                            paramType = qualified_id();
01425:                                            _fsp--;
01426:                                            if (failed)
01427:                                                return query;
01428:
01429:                                        }
01430:                                            break;
01431:
01432:                                        }
01433:
01434:                                        paramName = (Token) input.LT(1);
01435:                                        match(input, ID, FOLLOW_ID_in_query703);
01436:                                        if (failed)
01437:                                            return query;
01438:                                        if (backtracking == 0) {
01439:                                            params.add(paramName.getText());
01440:                                            String type = (paramType != null) ? paramType.text
01441:                                                    : "Object";
01442:                                            types.add(type);
01443:                                        }
01444:
01445:                                    }
01446:                                        break;
01447:
01448:                                    default:
01449:                                        break loop15;
01450:                                    }
01451:                                } while (true);
01452:
01453:                                if (backtracking == 0) {
01454:                                    query
01455:                                            .setParameters((String[]) params
01456:                                                    .toArray(new String[params
01457:                                                            .size()]));
01458:                                    query.setParameterTypes((String[]) types
01459:                                            .toArray(new String[types.size()]));
01460:
01461:                                }
01462:
01463:                            }
01464:                                break;
01465:
01466:                            }
01467:
01468:                            match(input, RIGHT_PAREN,
01469:                                    FOLLOW_RIGHT_PAREN_in_query753);
01470:                            if (failed)
01471:                                return query;
01472:
01473:                        }
01474:                            break;
01475:
01476:                        }
01477:
01478:                        if (backtracking == 0) {
01479:
01480:                            location
01481:                                    .setType(Location.LOCATION_LHS_BEGIN_OF_CONDITION);
01482:
01483:                        }
01484:                        pushFollow(FOLLOW_normal_lhs_block_in_query782);
01485:                        normal_lhs_block(lhs);
01486:                        _fsp--;
01487:                        if (failed)
01488:                            return query;
01489:                        END8 = (Token) input.LT(1);
01490:                        match(input, END, FOLLOW_END_in_query787);
01491:                        if (failed)
01492:                            return query;
01493:                        pushFollow(FOLLOW_opt_semicolon_in_query789);
01494:                        opt_semicolon();
01495:                        _fsp--;
01496:                        if (failed)
01497:                            return query;
01498:                        if (backtracking == 0) {
01499:
01500:                            query.setEndCharacter(((CommonToken) END8)
01501:                                    .getStopIndex());
01502:
01503:                        }
01504:
01505:                    }
01506:
01507:                } catch (RecognitionException re) {
01508:                    reportError(re);
01509:                    recover(input, re);
01510:                } finally {
01511:                }
01512:                return query;
01513:            }
01514:
01515:            // $ANTLR end query
01516:
01517:            // $ANTLR start template
01518:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:411:1: template returns [FactTemplateDescr template] : TEMPLATE templateName= name opt_semicolon (slot= template_slot )+ END opt_semicolon ;
01519:            public final FactTemplateDescr template()
01520:                    throws RecognitionException {
01521:                FactTemplateDescr template = null;
01522:
01523:                Token TEMPLATE9 = null;
01524:                Token END10 = null;
01525:                String templateName = null;
01526:
01527:                FieldTemplateDescr slot = null;
01528:
01529:                template = null;
01530:
01531:                try {
01532:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:415:2: ( TEMPLATE templateName= name opt_semicolon (slot= template_slot )+ END opt_semicolon )
01533:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:416:3: TEMPLATE templateName= name opt_semicolon (slot= template_slot )+ END opt_semicolon
01534:                    {
01535:                        TEMPLATE9 = (Token) input.LT(1);
01536:                        match(input, TEMPLATE, FOLLOW_TEMPLATE_in_template817);
01537:                        if (failed)
01538:                            return template;
01539:                        pushFollow(FOLLOW_name_in_template821);
01540:                        templateName = name();
01541:                        _fsp--;
01542:                        if (failed)
01543:                            return template;
01544:                        pushFollow(FOLLOW_opt_semicolon_in_template823);
01545:                        opt_semicolon();
01546:                        _fsp--;
01547:                        if (failed)
01548:                            return template;
01549:                        if (backtracking == 0) {
01550:
01551:                            template = new FactTemplateDescr(templateName);
01552:                            template.setLocation(offset(TEMPLATE9.getLine()),
01553:                                    TEMPLATE9.getCharPositionInLine());
01554:                            template
01555:                                    .setStartCharacter(((CommonToken) TEMPLATE9)
01556:                                            .getStartIndex());
01557:
01558:                        }
01559:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:422:3: (slot= template_slot )+
01560:                        int cnt18 = 0;
01561:                        loop18: do {
01562:                            int alt18 = 2;
01563:                            int LA18_0 = input.LA(1);
01564:
01565:                            if ((LA18_0 == ID)) {
01566:                                alt18 = 1;
01567:                            }
01568:
01569:                            switch (alt18) {
01570:                            case 1:
01571:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:423:4: slot= template_slot
01572:                            {
01573:                                pushFollow(FOLLOW_template_slot_in_template838);
01574:                                slot = template_slot();
01575:                                _fsp--;
01576:                                if (failed)
01577:                                    return template;
01578:                                if (backtracking == 0) {
01579:
01580:                                    template.addFieldTemplate(slot);
01581:
01582:                                }
01583:
01584:                            }
01585:                                break;
01586:
01587:                            default:
01588:                                if (cnt18 >= 1)
01589:                                    break loop18;
01590:                                if (backtracking > 0) {
01591:                                    failed = true;
01592:                                    return template;
01593:                                }
01594:                                EarlyExitException eee = new EarlyExitException(
01595:                                        18, input);
01596:                                throw eee;
01597:                            }
01598:                            cnt18++;
01599:                        } while (true);
01600:
01601:                        END10 = (Token) input.LT(1);
01602:                        match(input, END, FOLLOW_END_in_template853);
01603:                        if (failed)
01604:                            return template;
01605:                        pushFollow(FOLLOW_opt_semicolon_in_template855);
01606:                        opt_semicolon();
01607:                        _fsp--;
01608:                        if (failed)
01609:                            return template;
01610:                        if (backtracking == 0) {
01611:
01612:                            template.setEndCharacter(((CommonToken) END10)
01613:                                    .getStopIndex());
01614:
01615:                        }
01616:
01617:                    }
01618:
01619:                } catch (RecognitionException re) {
01620:                    reportError(re);
01621:                    recover(input, re);
01622:                } finally {
01623:                }
01624:                return template;
01625:            }
01626:
01627:            // $ANTLR end template
01628:
01629:            // $ANTLR start template_slot
01630:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:434:1: template_slot returns [FieldTemplateDescr field] : fieldType= qualified_id id= identifier opt_semicolon ;
01631:            public final FieldTemplateDescr template_slot()
01632:                    throws RecognitionException {
01633:                FieldTemplateDescr field = null;
01634:
01635:                qualified_id_return fieldType = null;
01636:
01637:                identifier_return id = null;
01638:
01639:                field = null;
01640:
01641:                try {
01642:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:438:2: (fieldType= qualified_id id= identifier opt_semicolon )
01643:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:439:11: fieldType= qualified_id id= identifier opt_semicolon
01644:                    {
01645:                        if (backtracking == 0) {
01646:
01647:                            field = factory.createFieldTemplate();
01648:
01649:                        }
01650:                        pushFollow(FOLLOW_qualified_id_in_template_slot901);
01651:                        fieldType = qualified_id();
01652:                        _fsp--;
01653:                        if (failed)
01654:                            return field;
01655:                        if (backtracking == 0) {
01656:
01657:                            field.setClassType(fieldType.text);
01658:                            field
01659:                                    .setStartCharacter(((CommonToken) ((Token) fieldType.start))
01660:                                            .getStartIndex());
01661:                            field
01662:                                    .setEndCharacter(((CommonToken) ((Token) fieldType.stop))
01663:                                            .getStopIndex());
01664:
01665:                        }
01666:                        pushFollow(FOLLOW_identifier_in_template_slot917);
01667:                        id = identifier();
01668:                        _fsp--;
01669:                        if (failed)
01670:                            return field;
01671:                        pushFollow(FOLLOW_opt_semicolon_in_template_slot919);
01672:                        opt_semicolon();
01673:                        _fsp--;
01674:                        if (failed)
01675:                            return field;
01676:                        if (backtracking == 0) {
01677:
01678:                            field.setName(input.toString(id.start, id.stop));
01679:                            field.setLocation(offset(((Token) id.start)
01680:                                    .getLine()), ((Token) id.start)
01681:                                    .getCharPositionInLine());
01682:                            field
01683:                                    .setEndCharacter(((CommonToken) ((Token) id.start))
01684:                                            .getStopIndex());
01685:
01686:                        }
01687:
01688:                    }
01689:
01690:                } catch (RecognitionException re) {
01691:                    reportError(re);
01692:                    recover(input, re);
01693:                } finally {
01694:                }
01695:                return field;
01696:            }
01697:
01698:            // $ANTLR end template_slot
01699:
01700:            // $ANTLR start rule
01701:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:457:1: rule returns [RuleDescr rule] : RULE ruleName= name ( rule_attributes[$rule] )? ( WHEN ( ':' )? normal_lhs_block[lhs] )? rhs_chunk[$rule] ;
01702:            public final RuleDescr rule() throws RecognitionException {
01703:                RuleDescr rule = null;
01704:
01705:                Token RULE11 = null;
01706:                Token WHEN12 = null;
01707:                String ruleName = null;
01708:
01709:                rule = null;
01710:                AndDescr lhs = null;
01711:
01712:                try {
01713:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:462:2: ( RULE ruleName= name ( rule_attributes[$rule] )? ( WHEN ( ':' )? normal_lhs_block[lhs] )? rhs_chunk[$rule] )
01714:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:463:3: RULE ruleName= name ( rule_attributes[$rule] )? ( WHEN ( ':' )? normal_lhs_block[lhs] )? rhs_chunk[$rule]
01715:                    {
01716:                        RULE11 = (Token) input.LT(1);
01717:                        match(input, RULE, FOLLOW_RULE_in_rule950);
01718:                        if (failed)
01719:                            return rule;
01720:                        pushFollow(FOLLOW_name_in_rule954);
01721:                        ruleName = name();
01722:                        _fsp--;
01723:                        if (failed)
01724:                            return rule;
01725:                        if (backtracking == 0) {
01726:
01727:                            location.setType(Location.LOCATION_RULE_HEADER);
01728:                            debug("start rule: " + ruleName);
01729:                            rule = new RuleDescr(ruleName, null);
01730:                            rule.setLocation(offset(RULE11.getLine()), RULE11
01731:                                    .getCharPositionInLine());
01732:                            rule.setStartCharacter(((CommonToken) RULE11)
01733:                                    .getStartIndex());
01734:
01735:                        }
01736:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:471:3: ( rule_attributes[$rule] )?
01737:                        int alt19 = 2;
01738:                        int LA19_0 = input.LA(1);
01739:
01740:                        if (((LA19_0 >= ATTRIBUTES && LA19_0 <= DATE_EFFECTIVE)
01741:                                || (LA19_0 >= DATE_EXPIRES && LA19_0 <= ENABLED)
01742:                                || LA19_0 == SALIENCE || (LA19_0 >= NO_LOOP && LA19_0 <= LOCK_ON_ACTIVE))) {
01743:                            alt19 = 1;
01744:                        }
01745:                        switch (alt19) {
01746:                        case 1:
01747:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:471:3: rule_attributes[$rule]
01748:                        {
01749:                            pushFollow(FOLLOW_rule_attributes_in_rule963);
01750:                            rule_attributes(rule);
01751:                            _fsp--;
01752:                            if (failed)
01753:                                return rule;
01754:
01755:                        }
01756:                            break;
01757:
01758:                        }
01759:
01760:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:472:3: ( WHEN ( ':' )? normal_lhs_block[lhs] )?
01761:                        int alt21 = 2;
01762:                        int LA21_0 = input.LA(1);
01763:
01764:                        if ((LA21_0 == WHEN)) {
01765:                            alt21 = 1;
01766:                        }
01767:                        switch (alt21) {
01768:                        case 1:
01769:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:473:4: WHEN ( ':' )? normal_lhs_block[lhs]
01770:                        {
01771:                            WHEN12 = (Token) input.LT(1);
01772:                            match(input, WHEN, FOLLOW_WHEN_in_rule975);
01773:                            if (failed)
01774:                                return rule;
01775:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:473:9: ( ':' )?
01776:                            int alt20 = 2;
01777:                            int LA20_0 = input.LA(1);
01778:
01779:                            if ((LA20_0 == 73)) {
01780:                                alt20 = 1;
01781:                            }
01782:                            switch (alt20) {
01783:                            case 1:
01784:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:473:9: ':'
01785:                            {
01786:                                match(input, 73, FOLLOW_73_in_rule977);
01787:                                if (failed)
01788:                                    return rule;
01789:
01790:                            }
01791:                                break;
01792:
01793:                            }
01794:
01795:                            if (backtracking == 0) {
01796:
01797:                                this .location
01798:                                        .setType(Location.LOCATION_LHS_BEGIN_OF_CONDITION);
01799:                                lhs = new AndDescr();
01800:                                rule.setLhs(lhs);
01801:                                lhs.setLocation(offset(WHEN12.getLine()),
01802:                                        WHEN12.getCharPositionInLine());
01803:                                lhs.setStartCharacter(((CommonToken) WHEN12)
01804:                                        .getStartIndex());
01805:
01806:                            }
01807:                            pushFollow(FOLLOW_normal_lhs_block_in_rule988);
01808:                            normal_lhs_block(lhs);
01809:                            _fsp--;
01810:                            if (failed)
01811:                                return rule;
01812:
01813:                        }
01814:                            break;
01815:
01816:                        }
01817:
01818:                        pushFollow(FOLLOW_rhs_chunk_in_rule998);
01819:                        rhs_chunk(rule);
01820:                        _fsp--;
01821:                        if (failed)
01822:                            return rule;
01823:
01824:                    }
01825:
01826:                } catch (RecognitionException re) {
01827:                    reportError(re);
01828:                    recover(input, re);
01829:                } finally {
01830:                }
01831:                return rule;
01832:            }
01833:
01834:            // $ANTLR end rule
01835:
01836:            // $ANTLR start rule_attributes
01837:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:487:1: rule_attributes[RuleDescr rule] : ( ATTRIBUTES ':' )? attr= rule_attribute ( ( ',' )? attr= rule_attribute )* ;
01838:            public final void rule_attributes(RuleDescr rule)
01839:                    throws RecognitionException {
01840:                AttributeDescr attr = null;
01841:
01842:                try {
01843:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:488:2: ( ( ATTRIBUTES ':' )? attr= rule_attribute ( ( ',' )? attr= rule_attribute )* )
01844:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:489:2: ( ATTRIBUTES ':' )? attr= rule_attribute ( ( ',' )? attr= rule_attribute )*
01845:                    {
01846:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:489:2: ( ATTRIBUTES ':' )?
01847:                        int alt22 = 2;
01848:                        int LA22_0 = input.LA(1);
01849:
01850:                        if ((LA22_0 == ATTRIBUTES)) {
01851:                            alt22 = 1;
01852:                        }
01853:                        switch (alt22) {
01854:                        case 1:
01855:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:489:4: ATTRIBUTES ':'
01856:                        {
01857:                            match(input, ATTRIBUTES,
01858:                                    FOLLOW_ATTRIBUTES_in_rule_attributes1018);
01859:                            if (failed)
01860:                                return;
01861:                            match(input, 73, FOLLOW_73_in_rule_attributes1020);
01862:                            if (failed)
01863:                                return;
01864:
01865:                        }
01866:                            break;
01867:
01868:                        }
01869:
01870:                        pushFollow(FOLLOW_rule_attribute_in_rule_attributes1028);
01871:                        attr = rule_attribute();
01872:                        _fsp--;
01873:                        if (failed)
01874:                            return;
01875:                        if (backtracking == 0) {
01876:                            rule.addAttribute(attr);
01877:                        }
01878:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:491:2: ( ( ',' )? attr= rule_attribute )*
01879:                        loop24: do {
01880:                            int alt24 = 2;
01881:                            int LA24_0 = input.LA(1);
01882:
01883:                            if ((LA24_0 == COMMA
01884:                                    || LA24_0 == DATE_EFFECTIVE
01885:                                    || (LA24_0 >= DATE_EXPIRES && LA24_0 <= ENABLED)
01886:                                    || LA24_0 == SALIENCE || (LA24_0 >= NO_LOOP && LA24_0 <= LOCK_ON_ACTIVE))) {
01887:                                alt24 = 1;
01888:                            }
01889:
01890:                            switch (alt24) {
01891:                            case 1:
01892:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:491:4: ( ',' )? attr= rule_attribute
01893:                            {
01894:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:491:4: ( ',' )?
01895:                                int alt23 = 2;
01896:                                int LA23_0 = input.LA(1);
01897:
01898:                                if ((LA23_0 == COMMA)) {
01899:                                    alt23 = 1;
01900:                                }
01901:                                switch (alt23) {
01902:                                case 1:
01903:                                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:491:4: ','
01904:                                {
01905:                                    match(input, COMMA,
01906:                                            FOLLOW_COMMA_in_rule_attributes1035);
01907:                                    if (failed)
01908:                                        return;
01909:
01910:                                }
01911:                                    break;
01912:
01913:                                }
01914:
01915:                                pushFollow(FOLLOW_rule_attribute_in_rule_attributes1040);
01916:                                attr = rule_attribute();
01917:                                _fsp--;
01918:                                if (failed)
01919:                                    return;
01920:                                if (backtracking == 0) {
01921:                                    rule.addAttribute(attr);
01922:                                }
01923:
01924:                            }
01925:                                break;
01926:
01927:                            default:
01928:                                break loop24;
01929:                            }
01930:                        } while (true);
01931:
01932:                    }
01933:
01934:                } catch (RecognitionException re) {
01935:                    reportError(re);
01936:                    recover(input, re);
01937:                } finally {
01938:                }
01939:                return;
01940:            }
01941:
01942:            // $ANTLR end rule_attributes
01943:
01944:            // $ANTLR start rule_attribute
01945:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:496:1: rule_attribute returns [AttributeDescr attr] : (a= salience | a= no_loop | a= agenda_group | a= duration | a= activation_group | a= auto_focus | a= date_effective | a= date_expires | a= enabled | a= ruleflow_group | a= lock_on_active | a= dialect );
01946:            public final AttributeDescr rule_attribute()
01947:                    throws RecognitionException {
01948:                AttributeDescr attr = null;
01949:
01950:                AttributeDescr a = null;
01951:
01952:                attr = null;
01953:
01954:                try {
01955:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:503:2: (a= salience | a= no_loop | a= agenda_group | a= duration | a= activation_group | a= auto_focus | a= date_effective | a= date_expires | a= enabled | a= ruleflow_group | a= lock_on_active | a= dialect )
01956:                    int alt25 = 12;
01957:                    switch (input.LA(1)) {
01958:                    case SALIENCE: {
01959:                        alt25 = 1;
01960:                    }
01961:                        break;
01962:                    case NO_LOOP: {
01963:                        alt25 = 2;
01964:                    }
01965:                        break;
01966:                    case AGENDA_GROUP: {
01967:                        alt25 = 3;
01968:                    }
01969:                        break;
01970:                    case DURATION: {
01971:                        alt25 = 4;
01972:                    }
01973:                        break;
01974:                    case ACTIVATION_GROUP: {
01975:                        alt25 = 5;
01976:                    }
01977:                        break;
01978:                    case AUTO_FOCUS: {
01979:                        alt25 = 6;
01980:                    }
01981:                        break;
01982:                    case DATE_EFFECTIVE: {
01983:                        alt25 = 7;
01984:                    }
01985:                        break;
01986:                    case DATE_EXPIRES: {
01987:                        alt25 = 8;
01988:                    }
01989:                        break;
01990:                    case ENABLED: {
01991:                        alt25 = 9;
01992:                    }
01993:                        break;
01994:                    case RULEFLOW_GROUP: {
01995:                        alt25 = 10;
01996:                    }
01997:                        break;
01998:                    case LOCK_ON_ACTIVE: {
01999:                        alt25 = 11;
02000:                    }
02001:                        break;
02002:                    case DIALECT: {
02003:                        alt25 = 12;
02004:                    }
02005:                        break;
02006:                    default:
02007:                        if (backtracking > 0) {
02008:                            failed = true;
02009:                            return attr;
02010:                        }
02011:                        NoViableAltException nvae = new NoViableAltException(
02012:                                "496:1: rule_attribute returns [AttributeDescr attr] : (a= salience | a= no_loop | a= agenda_group | a= duration | a= activation_group | a= auto_focus | a= date_effective | a= date_expires | a= enabled | a= ruleflow_group | a= lock_on_active | a= dialect );",
02013:                                25, 0, input);
02014:
02015:                        throw nvae;
02016:                    }
02017:
02018:                    switch (alt25) {
02019:                    case 1:
02020:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:503:4: a= salience
02021:                    {
02022:                        pushFollow(FOLLOW_salience_in_rule_attribute1077);
02023:                        a = salience();
02024:                        _fsp--;
02025:                        if (failed)
02026:                            return attr;
02027:
02028:                    }
02029:                        break;
02030:                    case 2:
02031:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:504:4: a= no_loop
02032:                    {
02033:                        pushFollow(FOLLOW_no_loop_in_rule_attribute1085);
02034:                        a = no_loop();
02035:                        _fsp--;
02036:                        if (failed)
02037:                            return attr;
02038:
02039:                    }
02040:                        break;
02041:                    case 3:
02042:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:505:4: a= agenda_group
02043:                    {
02044:                        pushFollow(FOLLOW_agenda_group_in_rule_attribute1094);
02045:                        a = agenda_group();
02046:                        _fsp--;
02047:                        if (failed)
02048:                            return attr;
02049:
02050:                    }
02051:                        break;
02052:                    case 4:
02053:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:506:4: a= duration
02054:                    {
02055:                        pushFollow(FOLLOW_duration_in_rule_attribute1103);
02056:                        a = duration();
02057:                        _fsp--;
02058:                        if (failed)
02059:                            return attr;
02060:
02061:                    }
02062:                        break;
02063:                    case 5:
02064:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:507:4: a= activation_group
02065:                    {
02066:                        pushFollow(FOLLOW_activation_group_in_rule_attribute1112);
02067:                        a = activation_group();
02068:                        _fsp--;
02069:                        if (failed)
02070:                            return attr;
02071:
02072:                    }
02073:                        break;
02074:                    case 6:
02075:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:508:4: a= auto_focus
02076:                    {
02077:                        pushFollow(FOLLOW_auto_focus_in_rule_attribute1120);
02078:                        a = auto_focus();
02079:                        _fsp--;
02080:                        if (failed)
02081:                            return attr;
02082:
02083:                    }
02084:                        break;
02085:                    case 7:
02086:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:509:4: a= date_effective
02087:                    {
02088:                        pushFollow(FOLLOW_date_effective_in_rule_attribute1128);
02089:                        a = date_effective();
02090:                        _fsp--;
02091:                        if (failed)
02092:                            return attr;
02093:
02094:                    }
02095:                        break;
02096:                    case 8:
02097:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:510:4: a= date_expires
02098:                    {
02099:                        pushFollow(FOLLOW_date_expires_in_rule_attribute1136);
02100:                        a = date_expires();
02101:                        _fsp--;
02102:                        if (failed)
02103:                            return attr;
02104:
02105:                    }
02106:                        break;
02107:                    case 9:
02108:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:511:4: a= enabled
02109:                    {
02110:                        pushFollow(FOLLOW_enabled_in_rule_attribute1144);
02111:                        a = enabled();
02112:                        _fsp--;
02113:                        if (failed)
02114:                            return attr;
02115:
02116:                    }
02117:                        break;
02118:                    case 10:
02119:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:512:4: a= ruleflow_group
02120:                    {
02121:                        pushFollow(FOLLOW_ruleflow_group_in_rule_attribute1152);
02122:                        a = ruleflow_group();
02123:                        _fsp--;
02124:                        if (failed)
02125:                            return attr;
02126:
02127:                    }
02128:                        break;
02129:                    case 11:
02130:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:513:4: a= lock_on_active
02131:                    {
02132:                        pushFollow(FOLLOW_lock_on_active_in_rule_attribute1160);
02133:                        a = lock_on_active();
02134:                        _fsp--;
02135:                        if (failed)
02136:                            return attr;
02137:
02138:                    }
02139:                        break;
02140:                    case 12:
02141:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:514:4: a= dialect
02142:                    {
02143:                        pushFollow(FOLLOW_dialect_in_rule_attribute1167);
02144:                        a = dialect();
02145:                        _fsp--;
02146:                        if (failed)
02147:                            return attr;
02148:
02149:                    }
02150:                        break;
02151:
02152:                    }
02153:                    if (backtracking == 0) {
02154:
02155:                        attr = a;
02156:
02157:                    }
02158:                } catch (RecognitionException re) {
02159:                    reportError(re);
02160:                    recover(input, re);
02161:                } finally {
02162:                }
02163:                return attr;
02164:            }
02165:
02166:            // $ANTLR end rule_attribute
02167:
02168:            // $ANTLR start date_effective
02169:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:517:1: date_effective returns [AttributeDescr descr] : DATE_EFFECTIVE STRING ;
02170:            public final AttributeDescr date_effective()
02171:                    throws RecognitionException {
02172:                AttributeDescr descr = null;
02173:
02174:                Token STRING13 = null;
02175:                Token DATE_EFFECTIVE14 = null;
02176:
02177:                descr = null;
02178:
02179:                try {
02180:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:521:2: ( DATE_EFFECTIVE STRING )
02181:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:522:3: DATE_EFFECTIVE STRING
02182:                    {
02183:                        DATE_EFFECTIVE14 = (Token) input.LT(1);
02184:                        match(input, DATE_EFFECTIVE,
02185:                                FOLLOW_DATE_EFFECTIVE_in_date_effective1193);
02186:                        if (failed)
02187:                            return descr;
02188:                        STRING13 = (Token) input.LT(1);
02189:                        match(input, STRING,
02190:                                FOLLOW_STRING_in_date_effective1195);
02191:                        if (failed)
02192:                            return descr;
02193:                        if (backtracking == 0) {
02194:
02195:                            descr = new AttributeDescr("date-effective",
02196:                                    getString(STRING13.getText()));
02197:                            descr.setLocation(
02198:                                    offset(DATE_EFFECTIVE14.getLine()),
02199:                                    DATE_EFFECTIVE14.getCharPositionInLine());
02200:                            descr
02201:                                    .setStartCharacter(((CommonToken) DATE_EFFECTIVE14)
02202:                                            .getStartIndex());
02203:                            descr.setEndCharacter(((CommonToken) STRING13)
02204:                                    .getStopIndex());
02205:
02206:                        }
02207:
02208:                    }
02209:
02210:                } catch (RecognitionException re) {
02211:                    reportError(re);
02212:                    recover(input, re);
02213:                } finally {
02214:                }
02215:                return descr;
02216:            }
02217:
02218:            // $ANTLR end date_effective
02219:
02220:            // $ANTLR start date_expires
02221:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:532:1: date_expires returns [AttributeDescr descr] : DATE_EXPIRES STRING ;
02222:            public final AttributeDescr date_expires()
02223:                    throws RecognitionException {
02224:                AttributeDescr descr = null;
02225:
02226:                Token STRING15 = null;
02227:                Token DATE_EXPIRES16 = null;
02228:
02229:                descr = null;
02230:
02231:                try {
02232:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:536:2: ( DATE_EXPIRES STRING )
02233:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:536:4: DATE_EXPIRES STRING
02234:                    {
02235:                        DATE_EXPIRES16 = (Token) input.LT(1);
02236:                        match(input, DATE_EXPIRES,
02237:                                FOLLOW_DATE_EXPIRES_in_date_expires1224);
02238:                        if (failed)
02239:                            return descr;
02240:                        STRING15 = (Token) input.LT(1);
02241:                        match(input, STRING, FOLLOW_STRING_in_date_expires1226);
02242:                        if (failed)
02243:                            return descr;
02244:                        if (backtracking == 0) {
02245:
02246:                            descr = new AttributeDescr("date-expires",
02247:                                    getString(STRING15.getText()));
02248:                            descr.setLocation(offset(DATE_EXPIRES16.getLine()),
02249:                                    DATE_EXPIRES16.getCharPositionInLine());
02250:                            descr
02251:                                    .setStartCharacter(((CommonToken) DATE_EXPIRES16)
02252:                                            .getStartIndex());
02253:                            descr.setEndCharacter(((CommonToken) STRING15)
02254:                                    .getStopIndex());
02255:
02256:                        }
02257:
02258:                    }
02259:
02260:                } catch (RecognitionException re) {
02261:                    reportError(re);
02262:                    recover(input, re);
02263:                } finally {
02264:                }
02265:                return descr;
02266:            }
02267:
02268:            // $ANTLR end date_expires
02269:
02270:            // $ANTLR start enabled
02271:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:545:1: enabled returns [AttributeDescr descr] : ENABLED BOOL ;
02272:            public final AttributeDescr enabled() throws RecognitionException {
02273:                AttributeDescr descr = null;
02274:
02275:                Token BOOL17 = null;
02276:                Token ENABLED18 = null;
02277:
02278:                descr = null;
02279:
02280:                try {
02281:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:549:2: ( ENABLED BOOL )
02282:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:549:5: ENABLED BOOL
02283:                    {
02284:                        ENABLED18 = (Token) input.LT(1);
02285:                        match(input, ENABLED, FOLLOW_ENABLED_in_enabled1255);
02286:                        if (failed)
02287:                            return descr;
02288:                        BOOL17 = (Token) input.LT(1);
02289:                        match(input, BOOL, FOLLOW_BOOL_in_enabled1257);
02290:                        if (failed)
02291:                            return descr;
02292:                        if (backtracking == 0) {
02293:
02294:                            descr = new AttributeDescr("enabled", BOOL17
02295:                                    .getText());
02296:                            descr.setLocation(offset(ENABLED18.getLine()),
02297:                                    ENABLED18.getCharPositionInLine());
02298:                            descr.setStartCharacter(((CommonToken) ENABLED18)
02299:                                    .getStartIndex());
02300:                            descr.setEndCharacter(((CommonToken) BOOL17)
02301:                                    .getStopIndex());
02302:
02303:                        }
02304:
02305:                    }
02306:
02307:                } catch (RecognitionException re) {
02308:                    reportError(re);
02309:                    recover(input, re);
02310:                } finally {
02311:                }
02312:                return descr;
02313:            }
02314:
02315:            // $ANTLR end enabled
02316:
02317:            // $ANTLR start salience
02318:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:558:1: salience returns [AttributeDescr descr] : SALIENCE ( INT | txt= paren_chunk ) ;
02319:            public final AttributeDescr salience() throws RecognitionException {
02320:                AttributeDescr descr = null;
02321:
02322:                Token SALIENCE19 = null;
02323:                Token INT20 = null;
02324:                paren_chunk_return txt = null;
02325:
02326:                descr = null;
02327:
02328:                try {
02329:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:562:2: ( SALIENCE ( INT | txt= paren_chunk ) )
02330:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:563:3: SALIENCE ( INT | txt= paren_chunk )
02331:                    {
02332:                        SALIENCE19 = (Token) input.LT(1);
02333:                        match(input, SALIENCE, FOLLOW_SALIENCE_in_salience1290);
02334:                        if (failed)
02335:                            return descr;
02336:                        if (backtracking == 0) {
02337:
02338:                            descr = new AttributeDescr("salience");
02339:                            descr.setLocation(offset(SALIENCE19.getLine()),
02340:                                    SALIENCE19.getCharPositionInLine());
02341:                            descr.setStartCharacter(((CommonToken) SALIENCE19)
02342:                                    .getStartIndex());
02343:
02344:                        }
02345:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:569:3: ( INT | txt= paren_chunk )
02346:                        int alt26 = 2;
02347:                        int LA26_0 = input.LA(1);
02348:
02349:                        if ((LA26_0 == INT)) {
02350:                            alt26 = 1;
02351:                        } else if ((LA26_0 == LEFT_PAREN)) {
02352:                            alt26 = 2;
02353:                        } else {
02354:                            if (backtracking > 0) {
02355:                                failed = true;
02356:                                return descr;
02357:                            }
02358:                            NoViableAltException nvae = new NoViableAltException(
02359:                                    "569:3: ( INT | txt= paren_chunk )", 26, 0,
02360:                                    input);
02361:
02362:                            throw nvae;
02363:                        }
02364:                        switch (alt26) {
02365:                        case 1:
02366:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:569:5: INT
02367:                        {
02368:                            INT20 = (Token) input.LT(1);
02369:                            match(input, INT, FOLLOW_INT_in_salience1301);
02370:                            if (failed)
02371:                                return descr;
02372:                            if (backtracking == 0) {
02373:
02374:                                descr.setValue(INT20.getText());
02375:                                descr.setEndCharacter(((CommonToken) INT20)
02376:                                        .getStopIndex());
02377:
02378:                            }
02379:
02380:                        }
02381:                            break;
02382:                        case 2:
02383:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:574:5: txt= paren_chunk
02384:                        {
02385:                            pushFollow(FOLLOW_paren_chunk_in_salience1316);
02386:                            txt = paren_chunk();
02387:                            _fsp--;
02388:                            if (failed)
02389:                                return descr;
02390:                            if (backtracking == 0) {
02391:
02392:                                descr.setValue(input.toString(txt.start,
02393:                                        txt.stop));
02394:                                descr
02395:                                        .setEndCharacter(((CommonToken) ((Token) txt.stop))
02396:                                                .getStopIndex());
02397:
02398:                            }
02399:
02400:                        }
02401:                            break;
02402:
02403:                        }
02404:
02405:                    }
02406:
02407:                } catch (RecognitionException re) {
02408:                    reportError(re);
02409:                    recover(input, re);
02410:                } finally {
02411:                }
02412:                return descr;
02413:            }
02414:
02415:            // $ANTLR end salience
02416:
02417:            // $ANTLR start no_loop
02418:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:582:1: no_loop returns [AttributeDescr descr] : NO_LOOP ( BOOL )? ;
02419:            public final AttributeDescr no_loop() throws RecognitionException {
02420:                AttributeDescr descr = null;
02421:
02422:                Token NO_LOOP21 = null;
02423:                Token BOOL22 = null;
02424:
02425:                descr = null;
02426:
02427:                try {
02428:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:586:2: ( NO_LOOP ( BOOL )? )
02429:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:586:4: NO_LOOP ( BOOL )?
02430:                    {
02431:                        NO_LOOP21 = (Token) input.LT(1);
02432:                        match(input, NO_LOOP, FOLLOW_NO_LOOP_in_no_loop1346);
02433:                        if (failed)
02434:                            return descr;
02435:                        if (backtracking == 0) {
02436:
02437:                            descr = new AttributeDescr("no-loop", "true");
02438:                            descr.setLocation(offset(NO_LOOP21.getLine()),
02439:                                    NO_LOOP21.getCharPositionInLine());
02440:                            descr.setStartCharacter(((CommonToken) NO_LOOP21)
02441:                                    .getStartIndex());
02442:                            descr.setEndCharacter(((CommonToken) NO_LOOP21)
02443:                                    .getStopIndex());
02444:
02445:                        }
02446:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:593:3: ( BOOL )?
02447:                        int alt27 = 2;
02448:                        int LA27_0 = input.LA(1);
02449:
02450:                        if ((LA27_0 == BOOL)) {
02451:                            alt27 = 1;
02452:                        }
02453:                        switch (alt27) {
02454:                        case 1:
02455:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:593:5: BOOL
02456:                        {
02457:                            BOOL22 = (Token) input.LT(1);
02458:                            match(input, BOOL, FOLLOW_BOOL_in_no_loop1359);
02459:                            if (failed)
02460:                                return descr;
02461:                            if (backtracking == 0) {
02462:
02463:                                descr.setValue(BOOL22.getText());
02464:                                descr.setEndCharacter(((CommonToken) BOOL22)
02465:                                        .getStopIndex());
02466:
02467:                            }
02468:
02469:                        }
02470:                            break;
02471:
02472:                        }
02473:
02474:                    }
02475:
02476:                } catch (RecognitionException re) {
02477:                    reportError(re);
02478:                    recover(input, re);
02479:                } finally {
02480:                }
02481:                return descr;
02482:            }
02483:
02484:            // $ANTLR end no_loop
02485:
02486:            // $ANTLR start auto_focus
02487:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:601:1: auto_focus returns [AttributeDescr descr] : AUTO_FOCUS ( BOOL )? ;
02488:            public final AttributeDescr auto_focus()
02489:                    throws RecognitionException {
02490:                AttributeDescr descr = null;
02491:
02492:                Token AUTO_FOCUS23 = null;
02493:                Token BOOL24 = null;
02494:
02495:                descr = null;
02496:
02497:                try {
02498:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:605:2: ( AUTO_FOCUS ( BOOL )? )
02499:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:605:4: AUTO_FOCUS ( BOOL )?
02500:                    {
02501:                        AUTO_FOCUS23 = (Token) input.LT(1);
02502:                        match(input, AUTO_FOCUS,
02503:                                FOLLOW_AUTO_FOCUS_in_auto_focus1394);
02504:                        if (failed)
02505:                            return descr;
02506:                        if (backtracking == 0) {
02507:
02508:                            descr = new AttributeDescr("auto-focus", "true");
02509:                            descr.setLocation(offset(AUTO_FOCUS23.getLine()),
02510:                                    AUTO_FOCUS23.getCharPositionInLine());
02511:                            descr
02512:                                    .setStartCharacter(((CommonToken) AUTO_FOCUS23)
02513:                                            .getStartIndex());
02514:                            descr.setEndCharacter(((CommonToken) AUTO_FOCUS23)
02515:                                    .getStopIndex());
02516:
02517:                        }
02518:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:612:3: ( BOOL )?
02519:                        int alt28 = 2;
02520:                        int LA28_0 = input.LA(1);
02521:
02522:                        if ((LA28_0 == BOOL)) {
02523:                            alt28 = 1;
02524:                        }
02525:                        switch (alt28) {
02526:                        case 1:
02527:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:612:5: BOOL
02528:                        {
02529:                            BOOL24 = (Token) input.LT(1);
02530:                            match(input, BOOL, FOLLOW_BOOL_in_auto_focus1407);
02531:                            if (failed)
02532:                                return descr;
02533:                            if (backtracking == 0) {
02534:
02535:                                descr.setValue(BOOL24.getText());
02536:                                descr.setEndCharacter(((CommonToken) BOOL24)
02537:                                        .getStopIndex());
02538:
02539:                            }
02540:
02541:                        }
02542:                            break;
02543:
02544:                        }
02545:
02546:                    }
02547:
02548:                } catch (RecognitionException re) {
02549:                    reportError(re);
02550:                    recover(input, re);
02551:                } finally {
02552:                }
02553:                return descr;
02554:            }
02555:
02556:            // $ANTLR end auto_focus
02557:
02558:            // $ANTLR start activation_group
02559:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:620:1: activation_group returns [AttributeDescr descr] : ACTIVATION_GROUP STRING ;
02560:            public final AttributeDescr activation_group()
02561:                    throws RecognitionException {
02562:                AttributeDescr descr = null;
02563:
02564:                Token STRING25 = null;
02565:                Token ACTIVATION_GROUP26 = null;
02566:
02567:                descr = null;
02568:
02569:                try {
02570:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:624:2: ( ACTIVATION_GROUP STRING )
02571:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:624:4: ACTIVATION_GROUP STRING
02572:                    {
02573:                        ACTIVATION_GROUP26 = (Token) input.LT(1);
02574:                        match(input, ACTIVATION_GROUP,
02575:                                FOLLOW_ACTIVATION_GROUP_in_activation_group1443);
02576:                        if (failed)
02577:                            return descr;
02578:                        STRING25 = (Token) input.LT(1);
02579:                        match(input, STRING,
02580:                                FOLLOW_STRING_in_activation_group1445);
02581:                        if (failed)
02582:                            return descr;
02583:                        if (backtracking == 0) {
02584:
02585:                            descr = new AttributeDescr("activation-group",
02586:                                    getString(STRING25.getText()));
02587:                            descr.setLocation(offset(ACTIVATION_GROUP26
02588:                                    .getLine()), ACTIVATION_GROUP26
02589:                                    .getCharPositionInLine());
02590:                            descr
02591:                                    .setStartCharacter(((CommonToken) ACTIVATION_GROUP26)
02592:                                            .getStartIndex());
02593:                            descr.setEndCharacter(((CommonToken) STRING25)
02594:                                    .getStopIndex());
02595:
02596:                        }
02597:
02598:                    }
02599:
02600:                } catch (RecognitionException re) {
02601:                    reportError(re);
02602:                    recover(input, re);
02603:                } finally {
02604:                }
02605:                return descr;
02606:            }
02607:
02608:            // $ANTLR end activation_group
02609:
02610:            // $ANTLR start ruleflow_group
02611:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:633:1: ruleflow_group returns [AttributeDescr descr] : RULEFLOW_GROUP STRING ;
02612:            public final AttributeDescr ruleflow_group()
02613:                    throws RecognitionException {
02614:                AttributeDescr descr = null;
02615:
02616:                Token STRING27 = null;
02617:                Token RULEFLOW_GROUP28 = null;
02618:
02619:                descr = null;
02620:
02621:                try {
02622:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:637:2: ( RULEFLOW_GROUP STRING )
02623:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:637:4: RULEFLOW_GROUP STRING
02624:                    {
02625:                        RULEFLOW_GROUP28 = (Token) input.LT(1);
02626:                        match(input, RULEFLOW_GROUP,
02627:                                FOLLOW_RULEFLOW_GROUP_in_ruleflow_group1473);
02628:                        if (failed)
02629:                            return descr;
02630:                        STRING27 = (Token) input.LT(1);
02631:                        match(input, STRING,
02632:                                FOLLOW_STRING_in_ruleflow_group1475);
02633:                        if (failed)
02634:                            return descr;
02635:                        if (backtracking == 0) {
02636:
02637:                            descr = new AttributeDescr("ruleflow-group",
02638:                                    getString(STRING27.getText()));
02639:                            descr.setLocation(
02640:                                    offset(RULEFLOW_GROUP28.getLine()),
02641:                                    RULEFLOW_GROUP28.getCharPositionInLine());
02642:                            descr
02643:                                    .setStartCharacter(((CommonToken) RULEFLOW_GROUP28)
02644:                                            .getStartIndex());
02645:                            descr.setEndCharacter(((CommonToken) STRING27)
02646:                                    .getStopIndex());
02647:
02648:                        }
02649:
02650:                    }
02651:
02652:                } catch (RecognitionException re) {
02653:                    reportError(re);
02654:                    recover(input, re);
02655:                } finally {
02656:                }
02657:                return descr;
02658:            }
02659:
02660:            // $ANTLR end ruleflow_group
02661:
02662:            // $ANTLR start agenda_group
02663:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:646:1: agenda_group returns [AttributeDescr descr] : AGENDA_GROUP STRING ;
02664:            public final AttributeDescr agenda_group()
02665:                    throws RecognitionException {
02666:                AttributeDescr descr = null;
02667:
02668:                Token STRING29 = null;
02669:                Token AGENDA_GROUP30 = null;
02670:
02671:                descr = null;
02672:
02673:                try {
02674:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:650:2: ( AGENDA_GROUP STRING )
02675:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:650:4: AGENDA_GROUP STRING
02676:                    {
02677:                        AGENDA_GROUP30 = (Token) input.LT(1);
02678:                        match(input, AGENDA_GROUP,
02679:                                FOLLOW_AGENDA_GROUP_in_agenda_group1503);
02680:                        if (failed)
02681:                            return descr;
02682:                        STRING29 = (Token) input.LT(1);
02683:                        match(input, STRING, FOLLOW_STRING_in_agenda_group1505);
02684:                        if (failed)
02685:                            return descr;
02686:                        if (backtracking == 0) {
02687:
02688:                            descr = new AttributeDescr("agenda-group",
02689:                                    getString(STRING29.getText()));
02690:                            descr.setLocation(offset(AGENDA_GROUP30.getLine()),
02691:                                    AGENDA_GROUP30.getCharPositionInLine());
02692:                            descr
02693:                                    .setStartCharacter(((CommonToken) AGENDA_GROUP30)
02694:                                            .getStartIndex());
02695:                            descr.setEndCharacter(((CommonToken) STRING29)
02696:                                    .getStopIndex());
02697:
02698:                        }
02699:
02700:                    }
02701:
02702:                } catch (RecognitionException re) {
02703:                    reportError(re);
02704:                    recover(input, re);
02705:                } finally {
02706:                }
02707:                return descr;
02708:            }
02709:
02710:            // $ANTLR end agenda_group
02711:
02712:            // $ANTLR start duration
02713:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:659:1: duration returns [AttributeDescr descr] : DURATION INT ;
02714:            public final AttributeDescr duration() throws RecognitionException {
02715:                AttributeDescr descr = null;
02716:
02717:                Token INT31 = null;
02718:                Token DURATION32 = null;
02719:
02720:                descr = null;
02721:
02722:                try {
02723:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:663:2: ( DURATION INT )
02724:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:663:4: DURATION INT
02725:                    {
02726:                        DURATION32 = (Token) input.LT(1);
02727:                        match(input, DURATION, FOLLOW_DURATION_in_duration1533);
02728:                        if (failed)
02729:                            return descr;
02730:                        INT31 = (Token) input.LT(1);
02731:                        match(input, INT, FOLLOW_INT_in_duration1535);
02732:                        if (failed)
02733:                            return descr;
02734:                        if (backtracking == 0) {
02735:
02736:                            descr = new AttributeDescr("duration", INT31
02737:                                    .getText());
02738:                            descr.setLocation(offset(DURATION32.getLine()),
02739:                                    DURATION32.getCharPositionInLine());
02740:                            descr.setStartCharacter(((CommonToken) DURATION32)
02741:                                    .getStartIndex());
02742:                            descr.setEndCharacter(((CommonToken) INT31)
02743:                                    .getStopIndex());
02744:
02745:                        }
02746:
02747:                    }
02748:
02749:                } catch (RecognitionException re) {
02750:                    reportError(re);
02751:                    recover(input, re);
02752:                } finally {
02753:                }
02754:                return descr;
02755:            }
02756:
02757:            // $ANTLR end duration
02758:
02759:            // $ANTLR start dialect
02760:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:672:1: dialect returns [AttributeDescr descr] : DIALECT STRING ;
02761:            public final AttributeDescr dialect() throws RecognitionException {
02762:                AttributeDescr descr = null;
02763:
02764:                Token STRING33 = null;
02765:                Token DIALECT34 = null;
02766:
02767:                descr = null;
02768:
02769:                try {
02770:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:676:2: ( DIALECT STRING )
02771:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:676:4: DIALECT STRING
02772:                    {
02773:                        DIALECT34 = (Token) input.LT(1);
02774:                        match(input, DIALECT, FOLLOW_DIALECT_in_dialect1563);
02775:                        if (failed)
02776:                            return descr;
02777:                        STRING33 = (Token) input.LT(1);
02778:                        match(input, STRING, FOLLOW_STRING_in_dialect1565);
02779:                        if (failed)
02780:                            return descr;
02781:                        if (backtracking == 0) {
02782:
02783:                            descr = new AttributeDescr("dialect",
02784:                                    getString(STRING33.getText()));
02785:                            descr.setLocation(offset(DIALECT34.getLine()),
02786:                                    DIALECT34.getCharPositionInLine());
02787:                            descr.setStartCharacter(((CommonToken) DIALECT34)
02788:                                    .getStartIndex());
02789:                            descr.setEndCharacter(((CommonToken) STRING33)
02790:                                    .getStopIndex());
02791:
02792:                        }
02793:
02794:                    }
02795:
02796:                } catch (RecognitionException re) {
02797:                    reportError(re);
02798:                    recover(input, re);
02799:                } finally {
02800:                }
02801:                return descr;
02802:            }
02803:
02804:            // $ANTLR end dialect
02805:
02806:            // $ANTLR start lock_on_active
02807:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:685:1: lock_on_active returns [AttributeDescr descr] : LOCK_ON_ACTIVE ( BOOL )? ;
02808:            public final AttributeDescr lock_on_active()
02809:                    throws RecognitionException {
02810:                AttributeDescr descr = null;
02811:
02812:                Token LOCK_ON_ACTIVE35 = null;
02813:                Token BOOL36 = null;
02814:
02815:                descr = null;
02816:
02817:                try {
02818:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:689:2: ( LOCK_ON_ACTIVE ( BOOL )? )
02819:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:689:4: LOCK_ON_ACTIVE ( BOOL )?
02820:                    {
02821:                        LOCK_ON_ACTIVE35 = (Token) input.LT(1);
02822:                        match(input, LOCK_ON_ACTIVE,
02823:                                FOLLOW_LOCK_ON_ACTIVE_in_lock_on_active1597);
02824:                        if (failed)
02825:                            return descr;
02826:                        if (backtracking == 0) {
02827:
02828:                            descr = new AttributeDescr("lock-on-active", "true");
02829:                            descr.setLocation(
02830:                                    offset(LOCK_ON_ACTIVE35.getLine()),
02831:                                    LOCK_ON_ACTIVE35.getCharPositionInLine());
02832:                            descr
02833:                                    .setStartCharacter(((CommonToken) LOCK_ON_ACTIVE35)
02834:                                            .getStartIndex());
02835:                            descr
02836:                                    .setEndCharacter(((CommonToken) LOCK_ON_ACTIVE35)
02837:                                            .getStopIndex());
02838:
02839:                        }
02840:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:696:3: ( BOOL )?
02841:                        int alt29 = 2;
02842:                        int LA29_0 = input.LA(1);
02843:
02844:                        if ((LA29_0 == BOOL)) {
02845:                            alt29 = 1;
02846:                        }
02847:                        switch (alt29) {
02848:                        case 1:
02849:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:696:5: BOOL
02850:                        {
02851:                            BOOL36 = (Token) input.LT(1);
02852:                            match(input, BOOL,
02853:                                    FOLLOW_BOOL_in_lock_on_active1610);
02854:                            if (failed)
02855:                                return descr;
02856:                            if (backtracking == 0) {
02857:
02858:                                descr.setValue(BOOL36.getText());
02859:                                descr.setEndCharacter(((CommonToken) BOOL36)
02860:                                        .getStopIndex());
02861:
02862:                            }
02863:
02864:                        }
02865:                            break;
02866:
02867:                        }
02868:
02869:                    }
02870:
02871:                } catch (RecognitionException re) {
02872:                    reportError(re);
02873:                    recover(input, re);
02874:                } finally {
02875:                }
02876:                return descr;
02877:            }
02878:
02879:            // $ANTLR end lock_on_active
02880:
02881:            // $ANTLR start normal_lhs_block
02882:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:704:1: normal_lhs_block[AndDescr descr] : (d= lhs[$descr] )* ;
02883:            public final void normal_lhs_block(AndDescr descr)
02884:                    throws RecognitionException {
02885:                BaseDescr d = null;
02886:
02887:                location.setType(Location.LOCATION_LHS_BEGIN_OF_CONDITION);
02888:
02889:                try {
02890:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:708:2: ( (d= lhs[$descr] )* )
02891:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:709:3: (d= lhs[$descr] )*
02892:                    {
02893:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:709:3: (d= lhs[$descr] )*
02894:                        loop30: do {
02895:                            int alt30 = 2;
02896:                            int LA30_0 = input.LA(1);
02897:
02898:                            if ((LA30_0 == ID || LA30_0 == LEFT_PAREN || (LA30_0 >= EXISTS && LA30_0 <= FORALL))) {
02899:                                alt30 = 1;
02900:                            }
02901:
02902:                            switch (alt30) {
02903:                            case 1:
02904:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:709:5: d= lhs[$descr]
02905:                            {
02906:                                pushFollow(FOLLOW_lhs_in_normal_lhs_block1649);
02907:                                d = lhs(descr);
02908:                                _fsp--;
02909:                                if (failed)
02910:                                    return;
02911:                                if (backtracking == 0) {
02912:                                    if (d != null)
02913:                                        descr.addDescr(d);
02914:                                }
02915:
02916:                            }
02917:                                break;
02918:
02919:                            default:
02920:                                break loop30;
02921:                            }
02922:                        } while (true);
02923:
02924:                    }
02925:
02926:                } catch (RecognitionException re) {
02927:                    reportError(re);
02928:                    recover(input, re);
02929:                } finally {
02930:                }
02931:                return;
02932:            }
02933:
02934:            // $ANTLR end normal_lhs_block
02935:
02936:            // $ANTLR start lhs
02937:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:715:1: lhs[ConditionalElementDescr ce] returns [BaseDescr d] : l= lhs_or ;
02938:            public final BaseDescr lhs(ConditionalElementDescr ce)
02939:                    throws RecognitionException {
02940:                BaseDescr d = null;
02941:
02942:                BaseDescr l = null;
02943:
02944:                d = null;
02945:
02946:                try {
02947:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:719:2: (l= lhs_or )
02948:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:719:4: l= lhs_or
02949:                    {
02950:                        pushFollow(FOLLOW_lhs_or_in_lhs1686);
02951:                        l = lhs_or();
02952:                        _fsp--;
02953:                        if (failed)
02954:                            return d;
02955:                        if (backtracking == 0) {
02956:                            d = l;
02957:                        }
02958:
02959:                    }
02960:
02961:                } catch (RecognitionException re) {
02962:                    reportError(re);
02963:                    recover(input, re);
02964:                } finally {
02965:                }
02966:                return d;
02967:            }
02968:
02969:            // $ANTLR end lhs
02970:
02971:            // $ANTLR start lhs_or
02972:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:723:1: lhs_or returns [BaseDescr d] : ( LEFT_PAREN OR (lhsand= lhs_and )+ RIGHT_PAREN | left= lhs_and ( ( OR | DOUBLE_PIPE ) right= lhs_and )* );
02973:            public final BaseDescr lhs_or() throws RecognitionException {
02974:                BaseDescr d = null;
02975:
02976:                BaseDescr lhsand = null;
02977:
02978:                BaseDescr left = null;
02979:
02980:                BaseDescr right = null;
02981:
02982:                d = null;
02983:                OrDescr or = null;
02984:
02985:                try {
02986:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:728:2: ( LEFT_PAREN OR (lhsand= lhs_and )+ RIGHT_PAREN | left= lhs_and ( ( OR | DOUBLE_PIPE ) right= lhs_and )* )
02987:                    int alt33 = 2;
02988:                    int LA33_0 = input.LA(1);
02989:
02990:                    if ((LA33_0 == LEFT_PAREN)) {
02991:                        int LA33_1 = input.LA(2);
02992:
02993:                        if ((LA33_1 == ID || LA33_1 == LEFT_PAREN
02994:                                || LA33_1 == AND || (LA33_1 >= EXISTS && LA33_1 <= FORALL))) {
02995:                            alt33 = 2;
02996:                        } else if ((LA33_1 == OR)) {
02997:                            alt33 = 1;
02998:                        } else {
02999:                            if (backtracking > 0) {
03000:                                failed = true;
03001:                                return d;
03002:                            }
03003:                            NoViableAltException nvae = new NoViableAltException(
03004:                                    "723:1: lhs_or returns [BaseDescr d] : ( LEFT_PAREN OR (lhsand= lhs_and )+ RIGHT_PAREN | left= lhs_and ( ( OR | DOUBLE_PIPE ) right= lhs_and )* );",
03005:                                    33, 1, input);
03006:
03007:                            throw nvae;
03008:                        }
03009:                    } else if ((LA33_0 == ID || (LA33_0 >= EXISTS && LA33_0 <= FORALL))) {
03010:                        alt33 = 2;
03011:                    } else {
03012:                        if (backtracking > 0) {
03013:                            failed = true;
03014:                            return d;
03015:                        }
03016:                        NoViableAltException nvae = new NoViableAltException(
03017:                                "723:1: lhs_or returns [BaseDescr d] : ( LEFT_PAREN OR (lhsand= lhs_and )+ RIGHT_PAREN | left= lhs_and ( ( OR | DOUBLE_PIPE ) right= lhs_and )* );",
03018:                                33, 0, input);
03019:
03020:                        throw nvae;
03021:                    }
03022:                    switch (alt33) {
03023:                    case 1:
03024:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:728:4: LEFT_PAREN OR (lhsand= lhs_and )+ RIGHT_PAREN
03025:                    {
03026:                        match(input, LEFT_PAREN,
03027:                                FOLLOW_LEFT_PAREN_in_lhs_or1711);
03028:                        if (failed)
03029:                            return d;
03030:                        match(input, OR, FOLLOW_OR_in_lhs_or1713);
03031:                        if (failed)
03032:                            return d;
03033:                        if (backtracking == 0) {
03034:
03035:                            or = new OrDescr();
03036:                            d = or;
03037:                            location
03038:                                    .setType(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR);
03039:
03040:                        }
03041:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:734:3: (lhsand= lhs_and )+
03042:                        int cnt31 = 0;
03043:                        loop31: do {
03044:                            int alt31 = 2;
03045:                            int LA31_0 = input.LA(1);
03046:
03047:                            if ((LA31_0 == ID || LA31_0 == LEFT_PAREN || (LA31_0 >= EXISTS && LA31_0 <= FORALL))) {
03048:                                alt31 = 1;
03049:                            }
03050:
03051:                            switch (alt31) {
03052:                            case 1:
03053:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:734:5: lhsand= lhs_and
03054:                            {
03055:                                pushFollow(FOLLOW_lhs_and_in_lhs_or1726);
03056:                                lhsand = lhs_and();
03057:                                _fsp--;
03058:                                if (failed)
03059:                                    return d;
03060:                                if (backtracking == 0) {
03061:
03062:                                    or.addDescr(lhsand);
03063:
03064:                                }
03065:
03066:                            }
03067:                                break;
03068:
03069:                            default:
03070:                                if (cnt31 >= 1)
03071:                                    break loop31;
03072:                                if (backtracking > 0) {
03073:                                    failed = true;
03074:                                    return d;
03075:                                }
03076:                                EarlyExitException eee = new EarlyExitException(
03077:                                        31, input);
03078:                                throw eee;
03079:                            }
03080:                            cnt31++;
03081:                        } while (true);
03082:
03083:                        match(input, RIGHT_PAREN,
03084:                                FOLLOW_RIGHT_PAREN_in_lhs_or1737);
03085:                        if (failed)
03086:                            return d;
03087:
03088:                    }
03089:                        break;
03090:                    case 2:
03091:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:740:10: left= lhs_and ( ( OR | DOUBLE_PIPE ) right= lhs_and )*
03092:                    {
03093:                        pushFollow(FOLLOW_lhs_and_in_lhs_or1755);
03094:                        left = lhs_and();
03095:                        _fsp--;
03096:                        if (failed)
03097:                            return d;
03098:                        if (backtracking == 0) {
03099:                            d = left;
03100:                        }
03101:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:741:3: ( ( OR | DOUBLE_PIPE ) right= lhs_and )*
03102:                        loop32: do {
03103:                            int alt32 = 2;
03104:                            int LA32_0 = input.LA(1);
03105:
03106:                            if (((LA32_0 >= OR && LA32_0 <= DOUBLE_PIPE))) {
03107:                                alt32 = 1;
03108:                            }
03109:
03110:                            switch (alt32) {
03111:                            case 1:
03112:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:741:5: ( OR | DOUBLE_PIPE ) right= lhs_and
03113:                            {
03114:                                if ((input.LA(1) >= OR && input.LA(1) <= DOUBLE_PIPE)) {
03115:                                    input.consume();
03116:                                    errorRecovery = false;
03117:                                    failed = false;
03118:                                } else {
03119:                                    if (backtracking > 0) {
03120:                                        failed = true;
03121:                                        return d;
03122:                                    }
03123:                                    MismatchedSetException mse = new MismatchedSetException(
03124:                                            null, input);
03125:                                    recoverFromMismatchedSet(input, mse,
03126:                                            FOLLOW_set_in_lhs_or1763);
03127:                                    throw mse;
03128:                                }
03129:
03130:                                if (backtracking == 0) {
03131:
03132:                                    location
03133:                                            .setType(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR);
03134:
03135:                                }
03136:                                pushFollow(FOLLOW_lhs_and_in_lhs_or1779);
03137:                                right = lhs_and();
03138:                                _fsp--;
03139:                                if (failed)
03140:                                    return d;
03141:                                if (backtracking == 0) {
03142:
03143:                                    if (or == null) {
03144:                                        or = new OrDescr();
03145:                                        or.addDescr(left);
03146:                                        d = or;
03147:                                    }
03148:
03149:                                    or.addDescr(right);
03150:
03151:                                }
03152:
03153:                            }
03154:                                break;
03155:
03156:                            default:
03157:                                break loop32;
03158:                            }
03159:                        } while (true);
03160:
03161:                    }
03162:                        break;
03163:
03164:                    }
03165:                } catch (RecognitionException re) {
03166:                    reportError(re);
03167:                    recover(input, re);
03168:                } finally {
03169:                }
03170:                return d;
03171:            }
03172:
03173:            // $ANTLR end lhs_or
03174:
03175:            // $ANTLR start lhs_and
03176:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:758:1: lhs_and returns [BaseDescr d] : ( LEFT_PAREN AND (lhsunary= lhs_unary )+ RIGHT_PAREN | left= lhs_unary ( ( AND | DOUBLE_AMPER ) right= lhs_unary )* );
03177:            public final BaseDescr lhs_and() throws RecognitionException {
03178:                BaseDescr d = null;
03179:
03180:                BaseDescr lhsunary = null;
03181:
03182:                BaseDescr left = null;
03183:
03184:                BaseDescr right = null;
03185:
03186:                d = null;
03187:                AndDescr and = null;
03188:
03189:                try {
03190:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:763:2: ( LEFT_PAREN AND (lhsunary= lhs_unary )+ RIGHT_PAREN | left= lhs_unary ( ( AND | DOUBLE_AMPER ) right= lhs_unary )* )
03191:                    int alt36 = 2;
03192:                    int LA36_0 = input.LA(1);
03193:
03194:                    if ((LA36_0 == LEFT_PAREN)) {
03195:                        int LA36_1 = input.LA(2);
03196:
03197:                        if ((LA36_1 == AND)) {
03198:                            alt36 = 1;
03199:                        } else if ((LA36_1 == ID || LA36_1 == LEFT_PAREN || (LA36_1 >= EXISTS && LA36_1 <= FORALL))) {
03200:                            alt36 = 2;
03201:                        } else {
03202:                            if (backtracking > 0) {
03203:                                failed = true;
03204:                                return d;
03205:                            }
03206:                            NoViableAltException nvae = new NoViableAltException(
03207:                                    "758:1: lhs_and returns [BaseDescr d] : ( LEFT_PAREN AND (lhsunary= lhs_unary )+ RIGHT_PAREN | left= lhs_unary ( ( AND | DOUBLE_AMPER ) right= lhs_unary )* );",
03208:                                    36, 1, input);
03209:
03210:                            throw nvae;
03211:                        }
03212:                    } else if ((LA36_0 == ID || (LA36_0 >= EXISTS && LA36_0 <= FORALL))) {
03213:                        alt36 = 2;
03214:                    } else {
03215:                        if (backtracking > 0) {
03216:                            failed = true;
03217:                            return d;
03218:                        }
03219:                        NoViableAltException nvae = new NoViableAltException(
03220:                                "758:1: lhs_and returns [BaseDescr d] : ( LEFT_PAREN AND (lhsunary= lhs_unary )+ RIGHT_PAREN | left= lhs_unary ( ( AND | DOUBLE_AMPER ) right= lhs_unary )* );",
03221:                                36, 0, input);
03222:
03223:                        throw nvae;
03224:                    }
03225:                    switch (alt36) {
03226:                    case 1:
03227:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:763:4: LEFT_PAREN AND (lhsunary= lhs_unary )+ RIGHT_PAREN
03228:                    {
03229:                        match(input, LEFT_PAREN,
03230:                                FOLLOW_LEFT_PAREN_in_lhs_and1810);
03231:                        if (failed)
03232:                            return d;
03233:                        match(input, AND, FOLLOW_AND_in_lhs_and1812);
03234:                        if (failed)
03235:                            return d;
03236:                        if (backtracking == 0) {
03237:
03238:                            and = new AndDescr();
03239:                            d = and;
03240:                            location
03241:                                    .setType(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR);
03242:
03243:                        }
03244:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:769:3: (lhsunary= lhs_unary )+
03245:                        int cnt34 = 0;
03246:                        loop34: do {
03247:                            int alt34 = 2;
03248:                            int LA34_0 = input.LA(1);
03249:
03250:                            if ((LA34_0 == ID || LA34_0 == LEFT_PAREN || (LA34_0 >= EXISTS && LA34_0 <= FORALL))) {
03251:                                alt34 = 1;
03252:                            }
03253:
03254:                            switch (alt34) {
03255:                            case 1:
03256:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:769:4: lhsunary= lhs_unary
03257:                            {
03258:                                pushFollow(FOLLOW_lhs_unary_in_lhs_and1824);
03259:                                lhsunary = lhs_unary();
03260:                                _fsp--;
03261:                                if (failed)
03262:                                    return d;
03263:                                if (backtracking == 0) {
03264:
03265:                                    and.addDescr(lhsunary);
03266:
03267:                                }
03268:
03269:                            }
03270:                                break;
03271:
03272:                            default:
03273:                                if (cnt34 >= 1)
03274:                                    break loop34;
03275:                                if (backtracking > 0) {
03276:                                    failed = true;
03277:                                    return d;
03278:                                }
03279:                                EarlyExitException eee = new EarlyExitException(
03280:                                        34, input);
03281:                                throw eee;
03282:                            }
03283:                            cnt34++;
03284:                        } while (true);
03285:
03286:                        match(input, RIGHT_PAREN,
03287:                                FOLLOW_RIGHT_PAREN_in_lhs_and1834);
03288:                        if (failed)
03289:                            return d;
03290:
03291:                    }
03292:                        break;
03293:                    case 2:
03294:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:775:10: left= lhs_unary ( ( AND | DOUBLE_AMPER ) right= lhs_unary )*
03295:                    {
03296:                        pushFollow(FOLLOW_lhs_unary_in_lhs_and1852);
03297:                        left = lhs_unary();
03298:                        _fsp--;
03299:                        if (failed)
03300:                            return d;
03301:                        if (backtracking == 0) {
03302:                            d = left;
03303:                        }
03304:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:776:3: ( ( AND | DOUBLE_AMPER ) right= lhs_unary )*
03305:                        loop35: do {
03306:                            int alt35 = 2;
03307:                            int LA35_0 = input.LA(1);
03308:
03309:                            if (((LA35_0 >= AND && LA35_0 <= DOUBLE_AMPER))) {
03310:                                alt35 = 1;
03311:                            }
03312:
03313:                            switch (alt35) {
03314:                            case 1:
03315:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:776:5: ( AND | DOUBLE_AMPER ) right= lhs_unary
03316:                            {
03317:                                if ((input.LA(1) >= AND && input.LA(1) <= DOUBLE_AMPER)) {
03318:                                    input.consume();
03319:                                    errorRecovery = false;
03320:                                    failed = false;
03321:                                } else {
03322:                                    if (backtracking > 0) {
03323:                                        failed = true;
03324:                                        return d;
03325:                                    }
03326:                                    MismatchedSetException mse = new MismatchedSetException(
03327:                                            null, input);
03328:                                    recoverFromMismatchedSet(input, mse,
03329:                                            FOLLOW_set_in_lhs_and1860);
03330:                                    throw mse;
03331:                                }
03332:
03333:                                if (backtracking == 0) {
03334:
03335:                                    location
03336:                                            .setType(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR);
03337:
03338:                                }
03339:                                pushFollow(FOLLOW_lhs_unary_in_lhs_and1876);
03340:                                right = lhs_unary();
03341:                                _fsp--;
03342:                                if (failed)
03343:                                    return d;
03344:                                if (backtracking == 0) {
03345:
03346:                                    if (and == null) {
03347:                                        and = new AndDescr();
03348:                                        and.addDescr(left);
03349:                                        d = and;
03350:                                    }
03351:
03352:                                    and.addDescr(right);
03353:
03354:                                }
03355:
03356:                            }
03357:                                break;
03358:
03359:                            default:
03360:                                break loop35;
03361:                            }
03362:                        } while (true);
03363:
03364:                    }
03365:                        break;
03366:
03367:                    }
03368:                } catch (RecognitionException re) {
03369:                    reportError(re);
03370:                    recover(input, re);
03371:                } finally {
03372:                }
03373:                return d;
03374:            }
03375:
03376:            // $ANTLR end lhs_and
03377:
03378:            // $ANTLR start lhs_unary
03379:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:793:1: lhs_unary returns [BaseDescr d] : ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source ) opt_semicolon ;
03380:            public final BaseDescr lhs_unary() throws RecognitionException {
03381:                BaseDescr d = null;
03382:
03383:                BaseDescr u = null;
03384:
03385:                BaseDescr ps = null;
03386:
03387:                d = null;
03388:
03389:                try {
03390:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:797:2: ( ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source ) opt_semicolon )
03391:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:797:4: ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source ) opt_semicolon
03392:                    {
03393:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:797:4: ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source )
03394:                        int alt37 = 6;
03395:                        int LA37_0 = input.LA(1);
03396:
03397:                        if ((LA37_0 == EXISTS) && (synpred1())) {
03398:                            alt37 = 1;
03399:                        } else if ((LA37_0 == NOT) && (synpred2())) {
03400:                            alt37 = 2;
03401:                        } else if ((LA37_0 == EVAL) && (synpred3())) {
03402:                            alt37 = 3;
03403:                        } else if ((LA37_0 == FORALL) && (synpred4())) {
03404:                            alt37 = 4;
03405:                        } else if ((LA37_0 == LEFT_PAREN) && (synpred5())) {
03406:                            alt37 = 5;
03407:                        } else if ((LA37_0 == ID)) {
03408:                            alt37 = 6;
03409:                        } else {
03410:                            if (backtracking > 0) {
03411:                                failed = true;
03412:                                return d;
03413:                            }
03414:                            NoViableAltException nvae = new NoViableAltException(
03415:                                    "797:4: ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source )",
03416:                                    37, 0, input);
03417:
03418:                            throw nvae;
03419:                        }
03420:                        switch (alt37) {
03421:                        case 1:
03422:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:797:6: ( EXISTS )=>u= lhs_exist
03423:                        {
03424:                            pushFollow(FOLLOW_lhs_exist_in_lhs_unary1921);
03425:                            u = lhs_exist();
03426:                            _fsp--;
03427:                            if (failed)
03428:                                return d;
03429:                            if (backtracking == 0) {
03430:                                d = u;
03431:                            }
03432:
03433:                        }
03434:                            break;
03435:                        case 2:
03436:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:798:5: ( NOT )=>u= lhs_not
03437:                        {
03438:                            pushFollow(FOLLOW_lhs_not_in_lhs_unary1939);
03439:                            u = lhs_not();
03440:                            _fsp--;
03441:                            if (failed)
03442:                                return d;
03443:                            if (backtracking == 0) {
03444:                                d = u;
03445:                            }
03446:
03447:                        }
03448:                            break;
03449:                        case 3:
03450:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:799:5: ( EVAL )=>u= lhs_eval
03451:                        {
03452:                            pushFollow(FOLLOW_lhs_eval_in_lhs_unary1958);
03453:                            u = lhs_eval();
03454:                            _fsp--;
03455:                            if (failed)
03456:                                return d;
03457:                            if (backtracking == 0) {
03458:                                d = u;
03459:                            }
03460:
03461:                        }
03462:                            break;
03463:                        case 4:
03464:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:800:5: ( FORALL )=>u= lhs_forall
03465:                        {
03466:                            pushFollow(FOLLOW_lhs_forall_in_lhs_unary1977);
03467:                            u = lhs_forall();
03468:                            _fsp--;
03469:                            if (failed)
03470:                                return d;
03471:                            if (backtracking == 0) {
03472:                                d = u;
03473:                            }
03474:
03475:                        }
03476:                            break;
03477:                        case 5:
03478:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:801:5: ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN
03479:                        {
03480:                            match(input, LEFT_PAREN,
03481:                                    FOLLOW_LEFT_PAREN_in_lhs_unary1994);
03482:                            if (failed)
03483:                                return d;
03484:                            pushFollow(FOLLOW_lhs_or_in_lhs_unary1998);
03485:                            u = lhs_or();
03486:                            _fsp--;
03487:                            if (failed)
03488:                                return d;
03489:                            match(input, RIGHT_PAREN,
03490:                                    FOLLOW_RIGHT_PAREN_in_lhs_unary2000);
03491:                            if (failed)
03492:                                return d;
03493:                            if (backtracking == 0) {
03494:                                d = u;
03495:                            }
03496:
03497:                        }
03498:                            break;
03499:                        case 6:
03500:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:802:5: ps= pattern_source
03501:                        {
03502:                            pushFollow(FOLLOW_pattern_source_in_lhs_unary2011);
03503:                            ps = pattern_source();
03504:                            _fsp--;
03505:                            if (failed)
03506:                                return d;
03507:                            if (backtracking == 0) {
03508:                                d = (BaseDescr) ps;
03509:                            }
03510:
03511:                        }
03512:                            break;
03513:
03514:                        }
03515:
03516:                        pushFollow(FOLLOW_opt_semicolon_in_lhs_unary2023);
03517:                        opt_semicolon();
03518:                        _fsp--;
03519:                        if (failed)
03520:                            return d;
03521:
03522:                    }
03523:
03524:                } catch (RecognitionException re) {
03525:                    reportError(re);
03526:                    recover(input, re);
03527:                } finally {
03528:                }
03529:                return d;
03530:            }
03531:
03532:            // $ANTLR end lhs_unary
03533:
03534:            // $ANTLR start pattern_source
03535:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:807:1: pattern_source returns [BaseDescr d] : u= lhs_pattern ( FROM ( options {k=1; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) ) )? ;
03536:            public final BaseDescr pattern_source() throws RecognitionException {
03537:                BaseDescr d = null;
03538:
03539:                BaseDescr u = null;
03540:
03541:                AccumulateDescr ac = null;
03542:
03543:                CollectDescr cs = null;
03544:
03545:                FromDescr fm = null;
03546:
03547:                d = null;
03548:
03549:                try {
03550:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:811:2: (u= lhs_pattern ( FROM ( options {k=1; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) ) )? )
03551:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:812:3: u= lhs_pattern ( FROM ( options {k=1; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) ) )?
03552:                    {
03553:                        pushFollow(FOLLOW_lhs_pattern_in_pattern_source2050);
03554:                        u = lhs_pattern();
03555:                        _fsp--;
03556:                        if (failed)
03557:                            return d;
03558:                        if (backtracking == 0) {
03559:                            d = u;
03560:                        }
03561:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:813:3: ( FROM ( options {k=1; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) ) )?
03562:                        int alt39 = 2;
03563:                        int LA39_0 = input.LA(1);
03564:
03565:                        if ((LA39_0 == FROM)) {
03566:                            alt39 = 1;
03567:                        }
03568:                        switch (alt39) {
03569:                        case 1:
03570:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:814:4: FROM ( options {k=1; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) )
03571:                        {
03572:                            match(input, FROM,
03573:                                    FOLLOW_FROM_in_pattern_source2062);
03574:                            if (failed)
03575:                                return d;
03576:                            if (backtracking == 0) {
03577:
03578:                                location.setType(Location.LOCATION_LHS_FROM);
03579:                                location.setProperty(
03580:                                        Location.LOCATION_FROM_CONTENT, "");
03581:
03582:                            }
03583:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:819:11: ( options {k=1; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) )
03584:                            int alt38 = 3;
03585:                            switch (input.LA(1)) {
03586:                            case ACCUMULATE: {
03587:                                alt38 = 1;
03588:                            }
03589:                                break;
03590:                            case COLLECT: {
03591:                                alt38 = 2;
03592:                            }
03593:                                break;
03594:                            case PACKAGE:
03595:                            case IMPORT:
03596:                            case FUNCTION:
03597:                            case ID:
03598:                            case GLOBAL:
03599:                            case QUERY:
03600:                            case END:
03601:                            case TEMPLATE:
03602:                            case RULE:
03603:                            case WHEN:
03604:                            case ATTRIBUTES:
03605:                            case ENABLED:
03606:                            case SALIENCE:
03607:                            case DURATION:
03608:                            case DIALECT:
03609:                            case FROM:
03610:                            case INIT:
03611:                            case ACTION:
03612:                            case REVERSE:
03613:                            case RESULT:
03614:                            case CONTAINS:
03615:                            case EXCLUDES:
03616:                            case MATCHES:
03617:                            case MEMBEROF:
03618:                            case IN:
03619:                            case THEN: {
03620:                                alt38 = 3;
03621:                            }
03622:                                break;
03623:                            default:
03624:                                if (backtracking > 0) {
03625:                                    failed = true;
03626:                                    return d;
03627:                                }
03628:                                NoViableAltException nvae = new NoViableAltException(
03629:                                        "819:11: ( options {k=1; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) )",
03630:                                        38, 0, input);
03631:
03632:                                throw nvae;
03633:                            }
03634:
03635:                            switch (alt38) {
03636:                            case 1:
03637:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:820:15: (ac= accumulate_statement )
03638:                            {
03639:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:820:15: (ac= accumulate_statement )
03640:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:820:17: ac= accumulate_statement
03641:                                {
03642:                                    pushFollow(FOLLOW_accumulate_statement_in_pattern_source2118);
03643:                                    ac = accumulate_statement();
03644:                                    _fsp--;
03645:                                    if (failed)
03646:                                        return d;
03647:                                    if (backtracking == 0) {
03648:                                        ((PatternDescr) d)
03649:                                                .setSource((PatternSourceDescr) ac);
03650:                                    }
03651:
03652:                                }
03653:
03654:                            }
03655:                                break;
03656:                            case 2:
03657:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:821:15: (cs= collect_statement )
03658:                            {
03659:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:821:15: (cs= collect_statement )
03660:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:821:17: cs= collect_statement
03661:                                {
03662:                                    pushFollow(FOLLOW_collect_statement_in_pattern_source2141);
03663:                                    cs = collect_statement();
03664:                                    _fsp--;
03665:                                    if (failed)
03666:                                        return d;
03667:                                    if (backtracking == 0) {
03668:                                        ((PatternDescr) d)
03669:                                                .setSource((PatternSourceDescr) cs);
03670:                                    }
03671:
03672:                                }
03673:
03674:                            }
03675:                                break;
03676:                            case 3:
03677:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:822:15: (fm= from_statement )
03678:                            {
03679:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:822:15: (fm= from_statement )
03680:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:822:17: fm= from_statement
03681:                                {
03682:                                    pushFollow(FOLLOW_from_statement_in_pattern_source2165);
03683:                                    fm = from_statement();
03684:                                    _fsp--;
03685:                                    if (failed)
03686:                                        return d;
03687:                                    if (backtracking == 0) {
03688:                                        ((PatternDescr) d)
03689:                                                .setSource((PatternSourceDescr) fm);
03690:                                    }
03691:
03692:                                }
03693:
03694:                            }
03695:                                break;
03696:
03697:                            }
03698:
03699:                        }
03700:                            break;
03701:
03702:                        }
03703:
03704:                    }
03705:
03706:                } catch (RecognitionException re) {
03707:                    reportError(re);
03708:                    recover(input, re);
03709:                } finally {
03710:                }
03711:                return d;
03712:            }
03713:
03714:            // $ANTLR end pattern_source
03715:
03716:            // $ANTLR start lhs_exist
03717:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:827:1: lhs_exist returns [BaseDescr d] : EXISTS ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern ) ;
03718:            public final BaseDescr lhs_exist() throws RecognitionException {
03719:                BaseDescr d = null;
03720:
03721:                Token EXISTS37 = null;
03722:                Token RIGHT_PAREN38 = null;
03723:                BaseDescr or = null;
03724:
03725:                BaseDescr pattern = null;
03726:
03727:                d = null;
03728:
03729:                try {
03730:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:831:2: ( EXISTS ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern ) )
03731:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:831:4: EXISTS ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )
03732:                    {
03733:                        EXISTS37 = (Token) input.LT(1);
03734:                        match(input, EXISTS, FOLLOW_EXISTS_in_lhs_exist2208);
03735:                        if (failed)
03736:                            return d;
03737:                        if (backtracking == 0) {
03738:
03739:                            d = new ExistsDescr();
03740:                            d.setLocation(offset(EXISTS37.getLine()), EXISTS37
03741:                                    .getCharPositionInLine());
03742:                            d.setStartCharacter(((CommonToken) EXISTS37)
03743:                                    .getStartIndex());
03744:                            location
03745:                                    .setType(Location.LOCATION_LHS_BEGIN_OF_CONDITION_EXISTS);
03746:
03747:                        }
03748:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:838:10: ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )
03749:                        int alt40 = 2;
03750:                        int LA40_0 = input.LA(1);
03751:
03752:                        if ((LA40_0 == LEFT_PAREN)) {
03753:                            alt40 = 1;
03754:                        } else if ((LA40_0 == ID)) {
03755:                            alt40 = 2;
03756:                        } else {
03757:                            if (backtracking > 0) {
03758:                                failed = true;
03759:                                return d;
03760:                            }
03761:                            NoViableAltException nvae = new NoViableAltException(
03762:                                    "838:10: ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )",
03763:                                    40, 0, input);
03764:
03765:                            throw nvae;
03766:                        }
03767:                        switch (alt40) {
03768:                        case 1:
03769:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:838:12: ( LEFT_PAREN or= lhs_or RIGHT_PAREN )
03770:                        {
03771:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:838:12: ( LEFT_PAREN or= lhs_or RIGHT_PAREN )
03772:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:838:14: LEFT_PAREN or= lhs_or RIGHT_PAREN
03773:                            {
03774:                                match(input, LEFT_PAREN,
03775:                                        FOLLOW_LEFT_PAREN_in_lhs_exist2228);
03776:                                if (failed)
03777:                                    return d;
03778:                                pushFollow(FOLLOW_lhs_or_in_lhs_exist2232);
03779:                                or = lhs_or();
03780:                                _fsp--;
03781:                                if (failed)
03782:                                    return d;
03783:                                if (backtracking == 0) {
03784:                                    if (or != null)
03785:                                        ((ExistsDescr) d).addDescr(or);
03786:                                }
03787:                                RIGHT_PAREN38 = (Token) input.LT(1);
03788:                                match(input, RIGHT_PAREN,
03789:                                        FOLLOW_RIGHT_PAREN_in_lhs_exist2262);
03790:                                if (failed)
03791:                                    return d;
03792:                                if (backtracking == 0) {
03793:                                    d
03794:                                            .setEndCharacter(((CommonToken) RIGHT_PAREN38)
03795:                                                    .getStopIndex());
03796:                                }
03797:
03798:                            }
03799:
03800:                        }
03801:                            break;
03802:                        case 2:
03803:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:843:12: pattern= lhs_pattern
03804:                        {
03805:                            pushFollow(FOLLOW_lhs_pattern_in_lhs_exist2312);
03806:                            pattern = lhs_pattern();
03807:                            _fsp--;
03808:                            if (failed)
03809:                                return d;
03810:                            if (backtracking == 0) {
03811:
03812:                                if (pattern != null) {
03813:                                    ((ExistsDescr) d).addDescr(pattern);
03814:                                    d
03815:                                            .setEndCharacter(pattern
03816:                                                    .getEndCharacter());
03817:                                }
03818:
03819:                            }
03820:
03821:                        }
03822:                            break;
03823:
03824:                        }
03825:
03826:                    }
03827:
03828:                } catch (RecognitionException re) {
03829:                    reportError(re);
03830:                    recover(input, re);
03831:                } finally {
03832:                }
03833:                return d;
03834:            }
03835:
03836:            // $ANTLR end lhs_exist
03837:
03838:            // $ANTLR start lhs_not
03839:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:853:1: lhs_not returns [NotDescr d] : NOT ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern ) ;
03840:            public final NotDescr lhs_not() throws RecognitionException {
03841:                NotDescr d = null;
03842:
03843:                Token NOT39 = null;
03844:                Token RIGHT_PAREN40 = null;
03845:                BaseDescr or = null;
03846:
03847:                BaseDescr pattern = null;
03848:
03849:                d = null;
03850:
03851:                try {
03852:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:857:2: ( NOT ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern ) )
03853:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:857:4: NOT ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )
03854:                    {
03855:                        NOT39 = (Token) input.LT(1);
03856:                        match(input, NOT, FOLLOW_NOT_in_lhs_not2364);
03857:                        if (failed)
03858:                            return d;
03859:                        if (backtracking == 0) {
03860:
03861:                            d = new NotDescr();
03862:                            d.setLocation(offset(NOT39.getLine()), NOT39
03863:                                    .getCharPositionInLine());
03864:                            d.setStartCharacter(((CommonToken) NOT39)
03865:                                    .getStartIndex());
03866:                            location
03867:                                    .setType(Location.LOCATION_LHS_BEGIN_OF_CONDITION_NOT);
03868:
03869:                        }
03870:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:864:3: ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )
03871:                        int alt41 = 2;
03872:                        int LA41_0 = input.LA(1);
03873:
03874:                        if ((LA41_0 == LEFT_PAREN)) {
03875:                            alt41 = 1;
03876:                        } else if ((LA41_0 == ID)) {
03877:                            alt41 = 2;
03878:                        } else {
03879:                            if (backtracking > 0) {
03880:                                failed = true;
03881:                                return d;
03882:                            }
03883:                            NoViableAltException nvae = new NoViableAltException(
03884:                                    "864:3: ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )",
03885:                                    41, 0, input);
03886:
03887:                            throw nvae;
03888:                        }
03889:                        switch (alt41) {
03890:                        case 1:
03891:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:864:5: ( LEFT_PAREN or= lhs_or RIGHT_PAREN )
03892:                        {
03893:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:864:5: ( LEFT_PAREN or= lhs_or RIGHT_PAREN )
03894:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:864:7: LEFT_PAREN or= lhs_or RIGHT_PAREN
03895:                            {
03896:                                match(input, LEFT_PAREN,
03897:                                        FOLLOW_LEFT_PAREN_in_lhs_not2377);
03898:                                if (failed)
03899:                                    return d;
03900:                                pushFollow(FOLLOW_lhs_or_in_lhs_not2381);
03901:                                or = lhs_or();
03902:                                _fsp--;
03903:                                if (failed)
03904:                                    return d;
03905:                                if (backtracking == 0) {
03906:                                    if (or != null)
03907:                                        d.addDescr(or);
03908:                                }
03909:                                RIGHT_PAREN40 = (Token) input.LT(1);
03910:                                match(input, RIGHT_PAREN,
03911:                                        FOLLOW_RIGHT_PAREN_in_lhs_not2412);
03912:                                if (failed)
03913:                                    return d;
03914:                                if (backtracking == 0) {
03915:                                    d
03916:                                            .setEndCharacter(((CommonToken) RIGHT_PAREN40)
03917:                                                    .getStopIndex());
03918:                                }
03919:
03920:                            }
03921:
03922:                        }
03923:                            break;
03924:                        case 2:
03925:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:870:3: pattern= lhs_pattern
03926:                        {
03927:                            pushFollow(FOLLOW_lhs_pattern_in_lhs_not2449);
03928:                            pattern = lhs_pattern();
03929:                            _fsp--;
03930:                            if (failed)
03931:                                return d;
03932:                            if (backtracking == 0) {
03933:
03934:                                if (pattern != null) {
03935:                                    d.addDescr(pattern);
03936:                                    d
03937:                                            .setEndCharacter(pattern
03938:                                                    .getEndCharacter());
03939:                                }
03940:
03941:                            }
03942:
03943:                        }
03944:                            break;
03945:
03946:                        }
03947:
03948:                    }
03949:
03950:                } catch (RecognitionException re) {
03951:                    reportError(re);
03952:                    recover(input, re);
03953:                } finally {
03954:                }
03955:                return d;
03956:            }
03957:
03958:            // $ANTLR end lhs_not
03959:
03960:            // $ANTLR start lhs_eval
03961:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:880:1: lhs_eval returns [BaseDescr d] : EVAL c= paren_chunk ;
03962:            public final BaseDescr lhs_eval() throws RecognitionException {
03963:                BaseDescr d = null;
03964:
03965:                Token EVAL41 = null;
03966:                paren_chunk_return c = null;
03967:
03968:                d = new EvalDescr();
03969:
03970:                try {
03971:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:884:2: ( EVAL c= paren_chunk )
03972:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:885:3: EVAL c= paren_chunk
03973:                    {
03974:                        EVAL41 = (Token) input.LT(1);
03975:                        match(input, EVAL, FOLLOW_EVAL_in_lhs_eval2495);
03976:                        if (failed)
03977:                            return d;
03978:                        if (backtracking == 0) {
03979:
03980:                            location.setType(Location.LOCATION_LHS_INSIDE_EVAL);
03981:
03982:                        }
03983:                        pushFollow(FOLLOW_paren_chunk_in_lhs_eval2506);
03984:                        c = paren_chunk();
03985:                        _fsp--;
03986:                        if (failed)
03987:                            return d;
03988:                        if (backtracking == 0) {
03989:
03990:                            d.setStartCharacter(((CommonToken) EVAL41)
03991:                                    .getStartIndex());
03992:                            if (input.toString(c.start, c.stop) != null) {
03993:                                this .location
03994:                                        .setType(Location.LOCATION_LHS_BEGIN_OF_CONDITION);
03995:                                String body = input.toString(c.start, c.stop)
03996:                                        .length() > 1 ? input.toString(c.start,
03997:                                        c.stop).substring(
03998:                                        1,
03999:                                        input.toString(c.start, c.stop)
04000:                                                .length() - 1) : "";
04001:                                checkTrailingSemicolon(body, offset(EVAL41
04002:                                        .getLine()));
04003:                                ((EvalDescr) d).setContent(body);
04004:                                location.setProperty(
04005:                                        Location.LOCATION_EVAL_CONTENT, body);
04006:                            }
04007:                            if (((Token) c.stop) != null) {
04008:                                d
04009:                                        .setEndCharacter(((CommonToken) ((Token) c.stop))
04010:                                                .getStopIndex());
04011:                            }
04012:
04013:                        }
04014:
04015:                    }
04016:
04017:                } catch (RecognitionException re) {
04018:                    reportError(re);
04019:                    recover(input, re);
04020:                } finally {
04021:                }
04022:                return d;
04023:            }
04024:
04025:            // $ANTLR end lhs_eval
04026:
04027:            // $ANTLR start lhs_forall
04028:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:905:1: lhs_forall returns [ForallDescr d] : FORALL LEFT_PAREN base= lhs_pattern (pattern= lhs_pattern )* RIGHT_PAREN ;
04029:            public final ForallDescr lhs_forall() throws RecognitionException {
04030:                ForallDescr d = null;
04031:
04032:                Token FORALL42 = null;
04033:                Token RIGHT_PAREN43 = null;
04034:                BaseDescr base = null;
04035:
04036:                BaseDescr pattern = null;
04037:
04038:                d = factory.createForall();
04039:
04040:                try {
04041:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:909:2: ( FORALL LEFT_PAREN base= lhs_pattern (pattern= lhs_pattern )* RIGHT_PAREN )
04042:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:909:4: FORALL LEFT_PAREN base= lhs_pattern (pattern= lhs_pattern )* RIGHT_PAREN
04043:                    {
04044:                        FORALL42 = (Token) input.LT(1);
04045:                        match(input, FORALL, FOLLOW_FORALL_in_lhs_forall2532);
04046:                        if (failed)
04047:                            return d;
04048:                        match(input, LEFT_PAREN,
04049:                                FOLLOW_LEFT_PAREN_in_lhs_forall2534);
04050:                        if (failed)
04051:                            return d;
04052:                        pushFollow(FOLLOW_lhs_pattern_in_lhs_forall2538);
04053:                        base = lhs_pattern();
04054:                        _fsp--;
04055:                        if (failed)
04056:                            return d;
04057:                        if (backtracking == 0) {
04058:
04059:                            d.setStartCharacter(((CommonToken) FORALL42)
04060:                                    .getStartIndex());
04061:                            // adding the base pattern
04062:                            d.addDescr(base);
04063:                            d.setLocation(offset(FORALL42.getLine()), FORALL42
04064:                                    .getCharPositionInLine());
04065:
04066:                        }
04067:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:916:3: (pattern= lhs_pattern )*
04068:                        loop42: do {
04069:                            int alt42 = 2;
04070:                            int LA42_0 = input.LA(1);
04071:
04072:                            if ((LA42_0 == ID)) {
04073:                                alt42 = 1;
04074:                            }
04075:
04076:                            switch (alt42) {
04077:                            case 1:
04078:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:916:5: pattern= lhs_pattern
04079:                            {
04080:                                pushFollow(FOLLOW_lhs_pattern_in_lhs_forall2553);
04081:                                pattern = lhs_pattern();
04082:                                _fsp--;
04083:                                if (failed)
04084:                                    return d;
04085:                                if (backtracking == 0) {
04086:
04087:                                    // adding additional patterns
04088:                                    d.addDescr(pattern);
04089:
04090:                                }
04091:
04092:                            }
04093:                                break;
04094:
04095:                            default:
04096:                                break loop42;
04097:                            }
04098:                        } while (true);
04099:
04100:                        RIGHT_PAREN43 = (Token) input.LT(1);
04101:                        match(input, RIGHT_PAREN,
04102:                                FOLLOW_RIGHT_PAREN_in_lhs_forall2569);
04103:                        if (failed)
04104:                            return d;
04105:                        if (backtracking == 0) {
04106:
04107:                            d.setEndCharacter(((CommonToken) RIGHT_PAREN43)
04108:                                    .getStopIndex());
04109:
04110:                        }
04111:
04112:                    }
04113:
04114:                } catch (RecognitionException re) {
04115:                    reportError(re);
04116:                    recover(input, re);
04117:                } finally {
04118:                }
04119:                return d;
04120:            }
04121:
04122:            // $ANTLR end lhs_forall
04123:
04124:            // $ANTLR start lhs_pattern
04125:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:928:1: lhs_pattern returns [BaseDescr d] : (f= fact_binding | f= fact[null] );
04126:            public final BaseDescr lhs_pattern() throws RecognitionException {
04127:                BaseDescr d = null;
04128:
04129:                BaseDescr f = null;
04130:
04131:                d = null;
04132:
04133:                try {
04134:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:935:2: (f= fact_binding | f= fact[null] )
04135:                    int alt43 = 2;
04136:                    int LA43_0 = input.LA(1);
04137:
04138:                    if ((LA43_0 == ID)) {
04139:                        int LA43_1 = input.LA(2);
04140:
04141:                        if ((LA43_1 == 73)) {
04142:                            alt43 = 1;
04143:                        } else if ((LA43_1 == DOT || LA43_1 == LEFT_PAREN || LA43_1 == LEFT_SQUARE)) {
04144:                            alt43 = 2;
04145:                        } else {
04146:                            if (backtracking > 0) {
04147:                                failed = true;
04148:                                return d;
04149:                            }
04150:                            NoViableAltException nvae = new NoViableAltException(
04151:                                    "928:1: lhs_pattern returns [BaseDescr d] : (f= fact_binding | f= fact[null] );",
04152:                                    43, 1, input);
04153:
04154:                            throw nvae;
04155:                        }
04156:                    } else {
04157:                        if (backtracking > 0) {
04158:                            failed = true;
04159:                            return d;
04160:                        }
04161:                        NoViableAltException nvae = new NoViableAltException(
04162:                                "928:1: lhs_pattern returns [BaseDescr d] : (f= fact_binding | f= fact[null] );",
04163:                                43, 0, input);
04164:
04165:                        throw nvae;
04166:                    }
04167:                    switch (alt43) {
04168:                    case 1:
04169:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:935:4: f= fact_binding
04170:                    {
04171:                        pushFollow(FOLLOW_fact_binding_in_lhs_pattern2602);
04172:                        f = fact_binding();
04173:                        _fsp--;
04174:                        if (failed)
04175:                            return d;
04176:
04177:                    }
04178:                        break;
04179:                    case 2:
04180:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:936:4: f= fact[null]
04181:                    {
04182:                        pushFollow(FOLLOW_fact_in_lhs_pattern2610);
04183:                        f = fact(null);
04184:                        _fsp--;
04185:                        if (failed)
04186:                            return d;
04187:
04188:                    }
04189:                        break;
04190:
04191:                    }
04192:                    if (backtracking == 0) {
04193:
04194:                        d = f;
04195:
04196:                    }
04197:                } catch (RecognitionException re) {
04198:                    reportError(re);
04199:                    recover(input, re);
04200:                } finally {
04201:                }
04202:                return d;
04203:            }
04204:
04205:            // $ANTLR end lhs_pattern
04206:
04207:            // $ANTLR start from_statement
04208:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:939:1: from_statement returns [FromDescr d] : ds= from_source[$d] ;
04209:            public final FromDescr from_statement() throws RecognitionException {
04210:                FromDescr d = null;
04211:
04212:                DeclarativeInvokerDescr ds = null;
04213:
04214:                d = factory.createFrom();
04215:
04216:                try {
04217:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:943:2: (ds= from_source[$d] )
04218:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:944:2: ds= from_source[$d]
04219:                    {
04220:                        pushFollow(FOLLOW_from_source_in_from_statement2637);
04221:                        ds = from_source(d);
04222:                        _fsp--;
04223:                        if (failed)
04224:                            return d;
04225:                        if (backtracking == 0) {
04226:
04227:                            d.setDataSource(ds);
04228:
04229:                        }
04230:
04231:                    }
04232:
04233:                } catch (RecognitionException re) {
04234:                    reportError(re);
04235:                    recover(input, re);
04236:                } finally {
04237:                }
04238:                return d;
04239:            }
04240:
04241:            // $ANTLR end from_statement
04242:
04243:            // $ANTLR start from_source
04244:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:950:1: from_source[FromDescr from] returns [DeclarativeInvokerDescr ds] : ident= identifier ( options {k=1; } : args= paren_chunk )? ( expression_chain[$from, ad] )? ;
04245:            public final DeclarativeInvokerDescr from_source(FromDescr from)
04246:                    throws RecognitionException {
04247:                DeclarativeInvokerDescr ds = null;
04248:
04249:                identifier_return ident = null;
04250:
04251:                paren_chunk_return args = null;
04252:
04253:                ds = null;
04254:                AccessorDescr ad = null;
04255:                FunctionCallDescr fc = null;
04256:
04257:                try {
04258:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:956:2: (ident= identifier ( options {k=1; } : args= paren_chunk )? ( expression_chain[$from, ad] )? )
04259:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:956:4: ident= identifier ( options {k=1; } : args= paren_chunk )? ( expression_chain[$from, ad] )?
04260:                    {
04261:                        pushFollow(FOLLOW_identifier_in_from_source2666);
04262:                        ident = identifier();
04263:                        _fsp--;
04264:                        if (failed)
04265:                            return ds;
04266:                        if (backtracking == 0) {
04267:
04268:                            ad = new AccessorDescr(ident.start.getText());
04269:                            ad.setLocation(offset(ident.start.getLine()),
04270:                                    ident.start.getCharPositionInLine());
04271:                            ad.setStartCharacter(((CommonToken) ident.start)
04272:                                    .getStartIndex());
04273:                            ad.setEndCharacter(((CommonToken) ident.start)
04274:                                    .getStopIndex());
04275:                            ds = ad;
04276:                            location.setProperty(
04277:                                    Location.LOCATION_FROM_CONTENT, ident.start
04278:                                            .getText());
04279:
04280:                        }
04281:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:965:3: ( options {k=1; } : args= paren_chunk )?
04282:                        int alt44 = 2;
04283:                        int LA44_0 = input.LA(1);
04284:
04285:                        if ((LA44_0 == LEFT_PAREN)) {
04286:                            alt44 = 1;
04287:                        }
04288:                        switch (alt44) {
04289:                        case 1:
04290:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:972:5: args= paren_chunk
04291:                        {
04292:                            pushFollow(FOLLOW_paren_chunk_in_from_source2694);
04293:                            args = paren_chunk();
04294:                            _fsp--;
04295:                            if (failed)
04296:                                return ds;
04297:                            if (backtracking == 0) {
04298:
04299:                                if (input.toString(args.start, args.stop) != null) {
04300:                                    ad.setVariableName(null);
04301:                                    fc = new FunctionCallDescr(
04302:                                            ((Token) ident.start).getText());
04303:                                    fc.setLocation(offset(((Token) ident.start)
04304:                                            .getLine()), ((Token) ident.start)
04305:                                            .getCharPositionInLine());
04306:                                    fc.setArguments(input.toString(args.start,
04307:                                            args.stop));
04308:                                    fc
04309:                                            .setStartCharacter(((CommonToken) ((Token) ident.start))
04310:                                                    .getStartIndex());
04311:                                    fc
04312:                                            .setEndCharacter(((CommonToken) ((Token) ident.start))
04313:                                                    .getStopIndex());
04314:                                    location.setProperty(
04315:                                            Location.LOCATION_FROM_CONTENT,
04316:                                            input.toString(args.start,
04317:                                                    args.stop));
04318:                                    from
04319:                                            .setEndCharacter(((CommonToken) ((Token) args.stop))
04320:                                                    .getStopIndex());
04321:                                }
04322:
04323:                            }
04324:
04325:                        }
04326:                            break;
04327:
04328:                        }
04329:
04330:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:986:3: ( expression_chain[$from, ad] )?
04331:                        int alt45 = 2;
04332:                        int LA45_0 = input.LA(1);
04333:
04334:                        if ((LA45_0 == DOT)) {
04335:                            alt45 = 1;
04336:                        }
04337:                        switch (alt45) {
04338:                        case 1:
04339:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:986:3: expression_chain[$from, ad]
04340:                        {
04341:                            pushFollow(FOLLOW_expression_chain_in_from_source2707);
04342:                            expression_chain(from, ad);
04343:                            _fsp--;
04344:                            if (failed)
04345:                                return ds;
04346:
04347:                        }
04348:                            break;
04349:
04350:                        }
04351:
04352:                    }
04353:
04354:                } catch (RecognitionException re) {
04355:                    reportError(re);
04356:                    recover(input, re);
04357:                } finally {
04358:
04359:                    if (ad != null) {
04360:                        if (fc != null) {
04361:                            ad.addFirstInvoker(fc);
04362:                        }
04363:                        location.setProperty(Location.LOCATION_FROM_CONTENT, ad
04364:                                .toString());
04365:                    }
04366:
04367:                }
04368:                return ds;
04369:            }
04370:
04371:            // $ANTLR end from_source
04372:
04373:            // $ANTLR start accumulate_statement
04374:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:998:1: accumulate_statement returns [AccumulateDescr d] : ACCUMULATE LEFT_PAREN pattern= pattern_source ( COMMA )? ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) ) RIGHT_PAREN ;
04375:            public final AccumulateDescr accumulate_statement()
04376:                    throws RecognitionException {
04377:                AccumulateDescr d = null;
04378:
04379:                Token id = null;
04380:                Token ACCUMULATE44 = null;
04381:                Token RIGHT_PAREN45 = null;
04382:                BaseDescr pattern = null;
04383:
04384:                paren_chunk_return text = null;
04385:
04386:                d = factory.createAccumulate();
04387:
04388:                try {
04389:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1002:2: ( ACCUMULATE LEFT_PAREN pattern= pattern_source ( COMMA )? ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) ) RIGHT_PAREN )
04390:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1003:10: ACCUMULATE LEFT_PAREN pattern= pattern_source ( COMMA )? ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) ) RIGHT_PAREN
04391:                    {
04392:                        ACCUMULATE44 = (Token) input.LT(1);
04393:                        match(input, ACCUMULATE,
04394:                                FOLLOW_ACCUMULATE_in_accumulate_statement2748);
04395:                        if (failed)
04396:                            return d;
04397:                        if (backtracking == 0) {
04398:
04399:                            d.setLocation(offset(ACCUMULATE44.getLine()),
04400:                                    ACCUMULATE44.getCharPositionInLine());
04401:                            d.setStartCharacter(((CommonToken) ACCUMULATE44)
04402:                                    .getStartIndex());
04403:                            location
04404:                                    .setType(Location.LOCATION_LHS_FROM_ACCUMULATE);
04405:
04406:                        }
04407:                        match(input, LEFT_PAREN,
04408:                                FOLLOW_LEFT_PAREN_in_accumulate_statement2758);
04409:                        if (failed)
04410:                            return d;
04411:                        pushFollow(FOLLOW_pattern_source_in_accumulate_statement2762);
04412:                        pattern = pattern_source();
04413:                        _fsp--;
04414:                        if (failed)
04415:                            return d;
04416:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1009:37: ( COMMA )?
04417:                        int alt46 = 2;
04418:                        int LA46_0 = input.LA(1);
04419:
04420:                        if ((LA46_0 == COMMA)) {
04421:                            alt46 = 1;
04422:                        }
04423:                        switch (alt46) {
04424:                        case 1:
04425:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1009:37: COMMA
04426:                        {
04427:                            match(input, COMMA,
04428:                                    FOLLOW_COMMA_in_accumulate_statement2764);
04429:                            if (failed)
04430:                                return d;
04431:
04432:                        }
04433:                            break;
04434:
04435:                        }
04436:
04437:                        if (backtracking == 0) {
04438:
04439:                            d.setInputPattern((PatternDescr) pattern);
04440:
04441:                        }
04442:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1013:3: ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) )
04443:                        int alt51 = 2;
04444:                        int LA51_0 = input.LA(1);
04445:
04446:                        if ((LA51_0 == INIT)) {
04447:                            alt51 = 1;
04448:                        } else if ((LA51_0 == ID)) {
04449:                            alt51 = 2;
04450:                        } else {
04451:                            if (backtracking > 0) {
04452:                                failed = true;
04453:                                return d;
04454:                            }
04455:                            NoViableAltException nvae = new NoViableAltException(
04456:                                    "1013:3: ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) )",
04457:                                    51, 0, input);
04458:
04459:                            throw nvae;
04460:                        }
04461:                        switch (alt51) {
04462:                        case 1:
04463:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1013:5: ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk )
04464:                        {
04465:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1013:5: ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk )
04466:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1014:4: INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk
04467:                            {
04468:                                match(input, INIT,
04469:                                        FOLLOW_INIT_in_accumulate_statement2782);
04470:                                if (failed)
04471:                                    return d;
04472:                                if (backtracking == 0) {
04473:
04474:                                    location
04475:                                            .setType(Location.LOCATION_LHS_FROM_ACCUMULATE_INIT);
04476:
04477:                                }
04478:                                pushFollow(FOLLOW_paren_chunk_in_accumulate_statement2795);
04479:                                text = paren_chunk();
04480:                                _fsp--;
04481:                                if (failed)
04482:                                    return d;
04483:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1018:21: ( COMMA )?
04484:                                int alt47 = 2;
04485:                                int LA47_0 = input.LA(1);
04486:
04487:                                if ((LA47_0 == COMMA)) {
04488:                                    alt47 = 1;
04489:                                }
04490:                                switch (alt47) {
04491:                                case 1:
04492:                                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1018:21: COMMA
04493:                                {
04494:                                    match(input, COMMA,
04495:                                            FOLLOW_COMMA_in_accumulate_statement2797);
04496:                                    if (failed)
04497:                                        return d;
04498:
04499:                                }
04500:                                    break;
04501:
04502:                                }
04503:
04504:                                if (backtracking == 0) {
04505:
04506:                                    if (input.toString(text.start, text.stop) != null) {
04507:                                        d.setInitCode(input.toString(
04508:                                                text.start, text.stop)
04509:                                                .substring(
04510:                                                        1,
04511:                                                        input.toString(
04512:                                                                text.start,
04513:                                                                text.stop)
04514:                                                                .length() - 1));
04515:                                        location
04516:                                                .setProperty(
04517:                                                        Location.LOCATION_PROPERTY_FROM_ACCUMULATE_INIT_CONTENT,
04518:                                                        d.getInitCode());
04519:                                        location
04520:                                                .setType(Location.LOCATION_LHS_FROM_ACCUMULATE_ACTION);
04521:                                    }
04522:
04523:                                }
04524:                                match(input, ACTION,
04525:                                        FOLLOW_ACTION_in_accumulate_statement2808);
04526:                                if (failed)
04527:                                    return d;
04528:                                pushFollow(FOLLOW_paren_chunk_in_accumulate_statement2812);
04529:                                text = paren_chunk();
04530:                                _fsp--;
04531:                                if (failed)
04532:                                    return d;
04533:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1026:28: ( COMMA )?
04534:                                int alt48 = 2;
04535:                                int LA48_0 = input.LA(1);
04536:
04537:                                if ((LA48_0 == COMMA)) {
04538:                                    alt48 = 1;
04539:                                }
04540:                                switch (alt48) {
04541:                                case 1:
04542:                                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1026:28: COMMA
04543:                                {
04544:                                    match(input, COMMA,
04545:                                            FOLLOW_COMMA_in_accumulate_statement2814);
04546:                                    if (failed)
04547:                                        return d;
04548:
04549:                                }
04550:                                    break;
04551:
04552:                                }
04553:
04554:                                if (backtracking == 0) {
04555:
04556:                                    if (input.toString(text.start, text.stop) != null) {
04557:                                        d.setActionCode(input.toString(
04558:                                                text.start, text.stop)
04559:                                                .substring(
04560:                                                        1,
04561:                                                        input.toString(
04562:                                                                text.start,
04563:                                                                text.stop)
04564:                                                                .length() - 1));
04565:                                        location
04566:                                                .setProperty(
04567:                                                        Location.LOCATION_PROPERTY_FROM_ACCUMULATE_ACTION_CONTENT,
04568:                                                        d.getActionCode());
04569:                                        location
04570:                                                .setType(Location.LOCATION_LHS_FROM_ACCUMULATE_REVERSE);
04571:                                    }
04572:
04573:                                }
04574:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1034:4: ( REVERSE text= paren_chunk ( COMMA )? )?
04575:                                int alt50 = 2;
04576:                                int LA50_0 = input.LA(1);
04577:
04578:                                if ((LA50_0 == REVERSE)) {
04579:                                    alt50 = 1;
04580:                                }
04581:                                switch (alt50) {
04582:                                case 1:
04583:                                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1034:6: REVERSE text= paren_chunk ( COMMA )?
04584:                                {
04585:                                    match(input, REVERSE,
04586:                                            FOLLOW_REVERSE_in_accumulate_statement2827);
04587:                                    if (failed)
04588:                                        return d;
04589:                                    pushFollow(FOLLOW_paren_chunk_in_accumulate_statement2831);
04590:                                    text = paren_chunk();
04591:                                    _fsp--;
04592:                                    if (failed)
04593:                                        return d;
04594:                                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1034:31: ( COMMA )?
04595:                                    int alt49 = 2;
04596:                                    int LA49_0 = input.LA(1);
04597:
04598:                                    if ((LA49_0 == COMMA)) {
04599:                                        alt49 = 1;
04600:                                    }
04601:                                    switch (alt49) {
04602:                                    case 1:
04603:                                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1034:31: COMMA
04604:                                    {
04605:                                        match(input, COMMA,
04606:                                                FOLLOW_COMMA_in_accumulate_statement2833);
04607:                                        if (failed)
04608:                                            return d;
04609:
04610:                                    }
04611:                                        break;
04612:
04613:                                    }
04614:
04615:                                    if (backtracking == 0) {
04616:
04617:                                        if (input.toString(text.start,
04618:                                                text.stop) != null) {
04619:                                            d
04620:                                                    .setReverseCode(input
04621:                                                            .toString(
04622:                                                                    text.start,
04623:                                                                    text.stop)
04624:                                                            .substring(
04625:                                                                    1,
04626:                                                                    input
04627:                                                                            .toString(
04628:                                                                                    text.start,
04629:                                                                                    text.stop)
04630:                                                                            .length() - 1));
04631:                                            location
04632:                                                    .setProperty(
04633:                                                            Location.LOCATION_PROPERTY_FROM_ACCUMULATE_REVERSE_CONTENT,
04634:                                                            d.getReverseCode());
04635:                                            location
04636:                                                    .setType(Location.LOCATION_LHS_FROM_ACCUMULATE_RESULT);
04637:                                        }
04638:
04639:                                    }
04640:
04641:                                }
04642:                                    break;
04643:
04644:                                }
04645:
04646:                                match(input, RESULT,
04647:                                        FOLLOW_RESULT_in_accumulate_statement2850);
04648:                                if (failed)
04649:                                    return d;
04650:                                pushFollow(FOLLOW_paren_chunk_in_accumulate_statement2854);
04651:                                text = paren_chunk();
04652:                                _fsp--;
04653:                                if (failed)
04654:                                    return d;
04655:                                if (backtracking == 0) {
04656:
04657:                                    if (input.toString(text.start, text.stop) != null) {
04658:                                        d.setResultCode(input.toString(
04659:                                                text.start, text.stop)
04660:                                                .substring(
04661:                                                        1,
04662:                                                        input.toString(
04663:                                                                text.start,
04664:                                                                text.stop)
04665:                                                                .length() - 1));
04666:                                        location
04667:                                                .setProperty(
04668:                                                        Location.LOCATION_PROPERTY_FROM_ACCUMULATE_RESULT_CONTENT,
04669:                                                        d.getResultCode());
04670:                                    }
04671:
04672:                                }
04673:
04674:                            }
04675:
04676:                        }
04677:                            break;
04678:                        case 2:
04679:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1052:3: (id= ID text= paren_chunk )
04680:                        {
04681:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1052:3: (id= ID text= paren_chunk )
04682:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1053:4: id= ID text= paren_chunk
04683:                            {
04684:                                id = (Token) input.LT(1);
04685:                                match(input, ID,
04686:                                        FOLLOW_ID_in_accumulate_statement2880);
04687:                                if (failed)
04688:                                    return d;
04689:                                pushFollow(FOLLOW_paren_chunk_in_accumulate_statement2884);
04690:                                text = paren_chunk();
04691:                                _fsp--;
04692:                                if (failed)
04693:                                    return d;
04694:                                if (backtracking == 0) {
04695:
04696:                                    if (id.getText() != null) {
04697:                                        d.setExternalFunction(true);
04698:                                        d.setFunctionIdentifier(id.getText());
04699:                                    }
04700:                                    if (input.toString(text.start, text.stop) != null) {
04701:                                        d.setExpression(input.toString(
04702:                                                text.start, text.stop)
04703:                                                .substring(
04704:                                                        1,
04705:                                                        input.toString(
04706:                                                                text.start,
04707:                                                                text.stop)
04708:                                                                .length() - 1));
04709:                                        location
04710:                                                .setProperty(
04711:                                                        Location.LOCATION_PROPERTY_FROM_ACCUMULATE_EXPRESSION_CONTENT,
04712:                                                        d.getExpression());
04713:                                    }
04714:
04715:                                }
04716:
04717:                            }
04718:
04719:                        }
04720:                            break;
04721:
04722:                        }
04723:
04724:                        RIGHT_PAREN45 = (Token) input.LT(1);
04725:                        match(input, RIGHT_PAREN,
04726:                                FOLLOW_RIGHT_PAREN_in_accumulate_statement2901);
04727:                        if (failed)
04728:                            return d;
04729:                        if (backtracking == 0) {
04730:
04731:                            location
04732:                                    .setType(Location.LOCATION_LHS_BEGIN_OF_CONDITION);
04733:                            d.setEndCharacter(((CommonToken) RIGHT_PAREN45)
04734:                                    .getStopIndex());
04735:
04736:                        }
04737:
04738:                    }
04739:
04740:                } catch (RecognitionException re) {
04741:                    reportError(re);
04742:                    recover(input, re);
04743:                } finally {
04744:                }
04745:                return d;
04746:            }
04747:
04748:            // $ANTLR end accumulate_statement
04749:
04750:            // $ANTLR start expression_chain
04751:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1073:1: expression_chain[FromDescr from, AccessorDescr as] : ( DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )? ) ;
04752:            public final void expression_chain(FromDescr from, AccessorDescr as)
04753:                    throws RecognitionException {
04754:                identifier_return field = null;
04755:
04756:                square_chunk_return sqarg = null;
04757:
04758:                paren_chunk_return paarg = null;
04759:
04760:                FieldAccessDescr fa = null;
04761:                MethodAccessDescr ma = null;
04762:
04763:                try {
04764:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1078:2: ( ( DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )? ) )
04765:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1079:2: ( DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )? )
04766:                    {
04767:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1079:2: ( DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )? )
04768:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1079:4: DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )?
04769:                        {
04770:                            match(input, DOT,
04771:                                    FOLLOW_DOT_in_expression_chain2930);
04772:                            if (failed)
04773:                                return;
04774:                            pushFollow(FOLLOW_identifier_in_expression_chain2934);
04775:                            field = identifier();
04776:                            _fsp--;
04777:                            if (failed)
04778:                                return;
04779:                            if (backtracking == 0) {
04780:
04781:                                fa = new FieldAccessDescr(((Token) field.start)
04782:                                        .getText());
04783:                                fa.setLocation(offset(((Token) field.start)
04784:                                        .getLine()), ((Token) field.start)
04785:                                        .getCharPositionInLine());
04786:                                fa
04787:                                        .setStartCharacter(((CommonToken) ((Token) field.start))
04788:                                                .getStartIndex());
04789:                                fa
04790:                                        .setEndCharacter(((CommonToken) ((Token) field.start))
04791:                                                .getStopIndex());
04792:
04793:                            }
04794:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1086:4: ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )?
04795:                            int alt52 = 3;
04796:                            alt52 = dfa52.predict(input);
04797:                            switch (alt52) {
04798:                            case 1:
04799:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1087:6: ( LEFT_SQUARE )=>sqarg= square_chunk
04800:                            {
04801:                                pushFollow(FOLLOW_square_chunk_in_expression_chain2965);
04802:                                sqarg = square_chunk();
04803:                                _fsp--;
04804:                                if (failed)
04805:                                    return;
04806:                                if (backtracking == 0) {
04807:
04808:                                    fa.setArgument(input.toString(sqarg.start,
04809:                                            sqarg.stop));
04810:                                    from
04811:                                            .setEndCharacter(((CommonToken) ((Token) sqarg.stop))
04812:                                                    .getStopIndex());
04813:
04814:                                }
04815:
04816:                            }
04817:                                break;
04818:                            case 2:
04819:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1093:6: ( LEFT_PAREN )=>paarg= paren_chunk
04820:                            {
04821:                                pushFollow(FOLLOW_paren_chunk_in_expression_chain2998);
04822:                                paarg = paren_chunk();
04823:                                _fsp--;
04824:                                if (failed)
04825:                                    return;
04826:                                if (backtracking == 0) {
04827:
04828:                                    ma = new MethodAccessDescr(
04829:                                            ((Token) field.start).getText(),
04830:                                            input.toString(paarg.start,
04831:                                                    paarg.stop));
04832:                                    ma.setLocation(offset(((Token) field.start)
04833:                                            .getLine()), ((Token) field.start)
04834:                                            .getCharPositionInLine());
04835:                                    ma
04836:                                            .setStartCharacter(((CommonToken) ((Token) field.start))
04837:                                                    .getStartIndex());
04838:                                    from
04839:                                            .setEndCharacter(((CommonToken) ((Token) paarg.stop))
04840:                                                    .getStopIndex());
04841:
04842:                                }
04843:
04844:                            }
04845:                                break;
04846:
04847:                            }
04848:
04849:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1101:4: ( expression_chain[from, as] )?
04850:                            int alt53 = 2;
04851:                            int LA53_0 = input.LA(1);
04852:
04853:                            if ((LA53_0 == DOT)) {
04854:                                alt53 = 1;
04855:                            }
04856:                            switch (alt53) {
04857:                            case 1:
04858:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1101:4: expression_chain[from, as]
04859:                            {
04860:                                pushFollow(FOLLOW_expression_chain_in_expression_chain3013);
04861:                                expression_chain(from, as);
04862:                                _fsp--;
04863:                                if (failed)
04864:                                    return;
04865:
04866:                            }
04867:                                break;
04868:
04869:                            }
04870:
04871:                        }
04872:
04873:                    }
04874:
04875:                } catch (RecognitionException re) {
04876:                    reportError(re);
04877:                    recover(input, re);
04878:                } finally {
04879:
04880:                    // must be added to the start, since it is a recursive rule
04881:                    if (ma != null) {
04882:                        as.addFirstInvoker(ma);
04883:                    } else {
04884:                        as.addFirstInvoker(fa);
04885:                    }
04886:
04887:                }
04888:                return;
04889:            }
04890:
04891:            // $ANTLR end expression_chain
04892:
04893:            // $ANTLR start collect_statement
04894:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1115:1: collect_statement returns [CollectDescr d] : COLLECT LEFT_PAREN pattern= pattern_source RIGHT_PAREN ;
04895:            public final CollectDescr collect_statement()
04896:                    throws RecognitionException {
04897:                CollectDescr d = null;
04898:
04899:                Token COLLECT46 = null;
04900:                Token RIGHT_PAREN47 = null;
04901:                BaseDescr pattern = null;
04902:
04903:                d = factory.createCollect();
04904:
04905:                try {
04906:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1119:2: ( COLLECT LEFT_PAREN pattern= pattern_source RIGHT_PAREN )
04907:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1120:10: COLLECT LEFT_PAREN pattern= pattern_source RIGHT_PAREN
04908:                    {
04909:                        COLLECT46 = (Token) input.LT(1);
04910:                        match(input, COLLECT,
04911:                                FOLLOW_COLLECT_in_collect_statement3064);
04912:                        if (failed)
04913:                            return d;
04914:                        if (backtracking == 0) {
04915:
04916:                            d.setLocation(offset(COLLECT46.getLine()),
04917:                                    COLLECT46.getCharPositionInLine());
04918:                            d.setStartCharacter(((CommonToken) COLLECT46)
04919:                                    .getStartIndex());
04920:                            location
04921:                                    .setType(Location.LOCATION_LHS_FROM_COLLECT);
04922:
04923:                        }
04924:                        match(input, LEFT_PAREN,
04925:                                FOLLOW_LEFT_PAREN_in_collect_statement3074);
04926:                        if (failed)
04927:                            return d;
04928:                        pushFollow(FOLLOW_pattern_source_in_collect_statement3078);
04929:                        pattern = pattern_source();
04930:                        _fsp--;
04931:                        if (failed)
04932:                            return d;
04933:                        RIGHT_PAREN47 = (Token) input.LT(1);
04934:                        match(input, RIGHT_PAREN,
04935:                                FOLLOW_RIGHT_PAREN_in_collect_statement3080);
04936:                        if (failed)
04937:                            return d;
04938:                        if (backtracking == 0) {
04939:
04940:                            d.setInputPattern((PatternDescr) pattern);
04941:                            d.setEndCharacter(((CommonToken) RIGHT_PAREN47)
04942:                                    .getStopIndex());
04943:                            location
04944:                                    .setType(Location.LOCATION_LHS_BEGIN_OF_CONDITION);
04945:
04946:                        }
04947:
04948:                    }
04949:
04950:                } catch (RecognitionException re) {
04951:                    reportError(re);
04952:                    recover(input, re);
04953:                } finally {
04954:                }
04955:                return d;
04956:            }
04957:
04958:            // $ANTLR end collect_statement
04959:
04960:            // $ANTLR start fact_binding
04961:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1134:1: fact_binding returns [BaseDescr d] : ID ':' (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN ) ;
04962:            public final BaseDescr fact_binding() throws RecognitionException {
04963:                BaseDescr d = null;
04964:
04965:                Token ID48 = null;
04966:                BaseDescr fe = null;
04967:
04968:                BaseDescr left = null;
04969:
04970:                BaseDescr right = null;
04971:
04972:                d = null;
04973:                OrDescr or = null;
04974:
04975:                try {
04976:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1139:3: ( ID ':' (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN ) )
04977:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1140:4: ID ':' (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN )
04978:                    {
04979:                        ID48 = (Token) input.LT(1);
04980:                        match(input, ID, FOLLOW_ID_in_fact_binding3112);
04981:                        if (failed)
04982:                            return d;
04983:                        match(input, 73, FOLLOW_73_in_fact_binding3114);
04984:                        if (failed)
04985:                            return d;
04986:                        if (backtracking == 0) {
04987:
04988:                            // handling incomplete parsing
04989:                            d = new PatternDescr();
04990:                            ((PatternDescr) d).setIdentifier(ID48.getText());
04991:
04992:                        }
04993:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1146:3: (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN )
04994:                        int alt55 = 2;
04995:                        int LA55_0 = input.LA(1);
04996:
04997:                        if ((LA55_0 == ID)) {
04998:                            alt55 = 1;
04999:                        } else if ((LA55_0 == LEFT_PAREN)) {
05000:                            alt55 = 2;
05001:                        } else {
05002:                            if (backtracking > 0) {
05003:                                failed = true;
05004:                                return d;
05005:                            }
05006:                            NoViableAltException nvae = new NoViableAltException(
05007:                                    "1146:3: (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN )",
05008:                                    55, 0, input);
05009:
05010:                            throw nvae;
05011:                        }
05012:                        switch (alt55) {
05013:                        case 1:
05014:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1146:5: fe= fact[$ID.text]
05015:                        {
05016:                            pushFollow(FOLLOW_fact_in_fact_binding3128);
05017:                            fe = fact(ID48.getText());
05018:                            _fsp--;
05019:                            if (failed)
05020:                                return d;
05021:                            if (backtracking == 0) {
05022:
05023:                                // override previously instantiated pattern
05024:                                d = fe;
05025:                                if (d != null) {
05026:                                    d.setStartCharacter(((CommonToken) ID48)
05027:                                            .getStartIndex());
05028:                                }
05029:
05030:                            }
05031:
05032:                        }
05033:                            break;
05034:                        case 2:
05035:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1155:4: LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN
05036:                        {
05037:                            match(input, LEFT_PAREN,
05038:                                    FOLLOW_LEFT_PAREN_in_fact_binding3144);
05039:                            if (failed)
05040:                                return d;
05041:                            pushFollow(FOLLOW_fact_in_fact_binding3148);
05042:                            left = fact(ID48.getText());
05043:                            _fsp--;
05044:                            if (failed)
05045:                                return d;
05046:                            if (backtracking == 0) {
05047:
05048:                                // override previously instantiated pattern
05049:                                d = left;
05050:                                if (d != null) {
05051:                                    d.setStartCharacter(((CommonToken) ID48)
05052:                                            .getStartIndex());
05053:                                }
05054:
05055:                            }
05056:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1163:4: ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )*
05057:                            loop54: do {
05058:                                int alt54 = 2;
05059:                                int LA54_0 = input.LA(1);
05060:
05061:                                if (((LA54_0 >= OR && LA54_0 <= DOUBLE_PIPE))) {
05062:                                    alt54 = 1;
05063:                                }
05064:
05065:                                switch (alt54) {
05066:                                case 1:
05067:                                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1163:6: ( OR | DOUBLE_PIPE ) right= fact[$ID.text]
05068:                                {
05069:                                    if ((input.LA(1) >= OR && input.LA(1) <= DOUBLE_PIPE)) {
05070:                                        input.consume();
05071:                                        errorRecovery = false;
05072:                                        failed = false;
05073:                                    } else {
05074:                                        if (backtracking > 0) {
05075:                                            failed = true;
05076:                                            return d;
05077:                                        }
05078:                                        MismatchedSetException mse = new MismatchedSetException(
05079:                                                null, input);
05080:                                        recoverFromMismatchedSet(input, mse,
05081:                                                FOLLOW_set_in_fact_binding3161);
05082:                                        throw mse;
05083:                                    }
05084:
05085:                                    pushFollow(FOLLOW_fact_in_fact_binding3173);
05086:                                    right = fact(ID48.getText());
05087:                                    _fsp--;
05088:                                    if (failed)
05089:                                        return d;
05090:                                    if (backtracking == 0) {
05091:
05092:                                        if (or == null) {
05093:                                            or = new OrDescr();
05094:                                            or.addDescr(left);
05095:                                            d = or;
05096:                                        }
05097:                                        or.addDescr(right);
05098:
05099:                                    }
05100:
05101:                                }
05102:                                    break;
05103:
05104:                                default:
05105:                                    break loop54;
05106:                                }
05107:                            } while (true);
05108:
05109:                            match(input, RIGHT_PAREN,
05110:                                    FOLLOW_RIGHT_PAREN_in_fact_binding3191);
05111:                            if (failed)
05112:                                return d;
05113:
05114:                        }
05115:                            break;
05116:
05117:                        }
05118:
05119:                    }
05120:
05121:                } catch (RecognitionException re) {
05122:                    reportError(re);
05123:                    recover(input, re);
05124:                } finally {
05125:                }
05126:                return d;
05127:            }
05128:
05129:            // $ANTLR end fact_binding
05130:
05131:            // $ANTLR start fact
05132:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1178:1: fact[String ident] returns [BaseDescr d] : id= qualified_id LEFT_PAREN ( constraints[pattern] )? RIGHT_PAREN ( EOF )? ;
05133:            public final BaseDescr fact(String ident)
05134:                    throws RecognitionException {
05135:                BaseDescr d = null;
05136:
05137:                Token LEFT_PAREN49 = null;
05138:                Token RIGHT_PAREN50 = null;
05139:                qualified_id_return id = null;
05140:
05141:                d = null;
05142:                PatternDescr pattern = null;
05143:
05144:                try {
05145:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1183:3: (id= qualified_id LEFT_PAREN ( constraints[pattern] )? RIGHT_PAREN ( EOF )? )
05146:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1184:11: id= qualified_id LEFT_PAREN ( constraints[pattern] )? RIGHT_PAREN ( EOF )?
05147:                    {
05148:                        if (backtracking == 0) {
05149:
05150:                            pattern = new PatternDescr();
05151:                            if (ident != null) {
05152:                                pattern.setIdentifier(ident);
05153:                            }
05154:                            d = pattern;
05155:
05156:                        }
05157:                        pushFollow(FOLLOW_qualified_id_in_fact3246);
05158:                        id = qualified_id();
05159:                        _fsp--;
05160:                        if (failed)
05161:                            return d;
05162:                        if (backtracking == 0) {
05163:
05164:                            if (id != null) {
05165:                                pattern.setObjectType(id.text);
05166:                                pattern.setEndCharacter(-1);
05167:                                pattern
05168:                                        .setStartCharacter(((CommonToken) ((Token) id.start))
05169:                                                .getStartIndex());
05170:                            }
05171:
05172:                        }
05173:                        LEFT_PAREN49 = (Token) input.LT(1);
05174:                        match(input, LEFT_PAREN, FOLLOW_LEFT_PAREN_in_fact3256);
05175:                        if (failed)
05176:                            return d;
05177:                        if (backtracking == 0) {
05178:
05179:                            location
05180:                                    .setType(Location.LOCATION_LHS_INSIDE_CONDITION_START);
05181:                            location.setProperty(
05182:                                    Location.LOCATION_PROPERTY_CLASS_NAME,
05183:                                    id.text);
05184:
05185:                            pattern.setLocation(offset(LEFT_PAREN49.getLine()),
05186:                                    LEFT_PAREN49.getCharPositionInLine());
05187:                            pattern
05188:                                    .setLeftParentCharacter(((CommonToken) LEFT_PAREN49)
05189:                                            .getStartIndex());
05190:
05191:                        }
05192:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1207:4: ( constraints[pattern] )?
05193:                        int alt56 = 2;
05194:                        int LA56_0 = input.LA(1);
05195:
05196:                        if (((LA56_0 >= PACKAGE && LA56_0 <= ID)
05197:                                || (LA56_0 >= GLOBAL && LA56_0 <= LEFT_PAREN)
05198:                                || (LA56_0 >= QUERY && LA56_0 <= ATTRIBUTES)
05199:                                || LA56_0 == ENABLED || LA56_0 == SALIENCE
05200:                                || (LA56_0 >= DURATION && LA56_0 <= DIALECT)
05201:                                || LA56_0 == FROM || LA56_0 == EVAL
05202:                                || (LA56_0 >= INIT && LA56_0 <= RESULT)
05203:                                || (LA56_0 >= CONTAINS && LA56_0 <= IN) || LA56_0 == THEN)) {
05204:                            alt56 = 1;
05205:                        }
05206:                        switch (alt56) {
05207:                        case 1:
05208:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1207:4: constraints[pattern]
05209:                        {
05210:                            pushFollow(FOLLOW_constraints_in_fact3268);
05211:                            constraints(pattern);
05212:                            _fsp--;
05213:                            if (failed)
05214:                                return d;
05215:
05216:                        }
05217:                            break;
05218:
05219:                        }
05220:
05221:                        RIGHT_PAREN50 = (Token) input.LT(1);
05222:                        match(input, RIGHT_PAREN,
05223:                                FOLLOW_RIGHT_PAREN_in_fact3275);
05224:                        if (failed)
05225:                            return d;
05226:                        if (backtracking == 0) {
05227:
05228:                            if (")".equals(RIGHT_PAREN50.getText())) {
05229:                                this .location
05230:                                        .setType(Location.LOCATION_LHS_BEGIN_OF_CONDITION);
05231:                                pattern.setEndLocation(offset(RIGHT_PAREN50
05232:                                        .getLine()), RIGHT_PAREN50
05233:                                        .getCharPositionInLine());
05234:                                pattern
05235:                                        .setEndCharacter(((CommonToken) RIGHT_PAREN50)
05236:                                                .getStopIndex());
05237:                                pattern
05238:                                        .setRightParentCharacter(((CommonToken) RIGHT_PAREN50)
05239:                                                .getStartIndex());
05240:                            }
05241:
05242:                        }
05243:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1217:4: ( EOF )?
05244:                        int alt57 = 2;
05245:                        int LA57_0 = input.LA(1);
05246:
05247:                        if ((LA57_0 == EOF)) {
05248:                            alt57 = 1;
05249:                        }
05250:                        switch (alt57) {
05251:                        case 1:
05252:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1217:4: EOF
05253:                        {
05254:                            match(input, EOF, FOLLOW_EOF_in_fact3284);
05255:                            if (failed)
05256:                                return d;
05257:
05258:                        }
05259:                            break;
05260:
05261:                        }
05262:
05263:                    }
05264:
05265:                } catch (RecognitionException re) {
05266:                    reportError(re);
05267:                    recover(input, re);
05268:                } finally {
05269:                }
05270:                return d;
05271:            }
05272:
05273:            // $ANTLR end fact
05274:
05275:            // $ANTLR start constraints
05276:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1221:1: constraints[PatternDescr pattern] : constraint[$pattern] ( COMMA constraint[$pattern] )* ;
05277:            public final void constraints(PatternDescr pattern)
05278:                    throws RecognitionException {
05279:                try {
05280:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1222:2: ( constraint[$pattern] ( COMMA constraint[$pattern] )* )
05281:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1222:4: constraint[$pattern] ( COMMA constraint[$pattern] )*
05282:                    {
05283:                        pushFollow(FOLLOW_constraint_in_constraints3302);
05284:                        constraint(pattern);
05285:                        _fsp--;
05286:                        if (failed)
05287:                            return;
05288:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1223:3: ( COMMA constraint[$pattern] )*
05289:                        loop58: do {
05290:                            int alt58 = 2;
05291:                            int LA58_0 = input.LA(1);
05292:
05293:                            if ((LA58_0 == COMMA)) {
05294:                                alt58 = 1;
05295:                            }
05296:
05297:                            switch (alt58) {
05298:                            case 1:
05299:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1223:5: COMMA constraint[$pattern]
05300:                            {
05301:                                match(input, COMMA,
05302:                                        FOLLOW_COMMA_in_constraints3309);
05303:                                if (failed)
05304:                                    return;
05305:                                if (backtracking == 0) {
05306:                                    location
05307:                                            .setType(Location.LOCATION_LHS_INSIDE_CONDITION_START);
05308:                                }
05309:                                pushFollow(FOLLOW_constraint_in_constraints3318);
05310:                                constraint(pattern);
05311:                                _fsp--;
05312:                                if (failed)
05313:                                    return;
05314:
05315:                            }
05316:                                break;
05317:
05318:                            default:
05319:                                break loop58;
05320:                            }
05321:                        } while (true);
05322:
05323:                    }
05324:
05325:                } catch (RecognitionException re) {
05326:                    reportError(re);
05327:                    recover(input, re);
05328:                } finally {
05329:                }
05330:                return;
05331:            }
05332:
05333:            // $ANTLR end constraints
05334:
05335:            // $ANTLR start constraint
05336:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1228:1: constraint[PatternDescr pattern] : or_constr[top] ;
05337:            public final void constraint(PatternDescr pattern)
05338:                    throws RecognitionException {
05339:
05340:                ConditionalElementDescr top = null;
05341:                location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_START);
05342:                location.setProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME,
05343:                        input.LT(1).getText());
05344:
05345:                try {
05346:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1234:2: ( or_constr[top] )
05347:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1235:3: or_constr[top]
05348:                    {
05349:                        if (backtracking == 0) {
05350:
05351:                            top = pattern.getConstraint();
05352:
05353:                        }
05354:                        pushFollow(FOLLOW_or_constr_in_constraint3351);
05355:                        or_constr(top);
05356:                        _fsp--;
05357:                        if (failed)
05358:                            return;
05359:
05360:                    }
05361:
05362:                } catch (RecognitionException re) {
05363:                    reportError(re);
05364:                    recover(input, re);
05365:                } finally {
05366:                }
05367:                return;
05368:            }
05369:
05370:            // $ANTLR end constraint
05371:
05372:            // $ANTLR start or_constr
05373:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1241:1: or_constr[ConditionalElementDescr base] : and_constr[or] ( DOUBLE_PIPE and_constr[or] )* ;
05374:            public final void or_constr(ConditionalElementDescr base)
05375:                    throws RecognitionException {
05376:
05377:                OrDescr or = new OrDescr();
05378:
05379:                try {
05380:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1245:2: ( and_constr[or] ( DOUBLE_PIPE and_constr[or] )* )
05381:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1246:3: and_constr[or] ( DOUBLE_PIPE and_constr[or] )*
05382:                    {
05383:                        pushFollow(FOLLOW_and_constr_in_or_constr3374);
05384:                        and_constr(or);
05385:                        _fsp--;
05386:                        if (failed)
05387:                            return;
05388:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1247:3: ( DOUBLE_PIPE and_constr[or] )*
05389:                        loop59: do {
05390:                            int alt59 = 2;
05391:                            int LA59_0 = input.LA(1);
05392:
05393:                            if ((LA59_0 == DOUBLE_PIPE)) {
05394:                                alt59 = 1;
05395:                            }
05396:
05397:                            switch (alt59) {
05398:                            case 1:
05399:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1247:5: DOUBLE_PIPE and_constr[or]
05400:                            {
05401:                                match(input, DOUBLE_PIPE,
05402:                                        FOLLOW_DOUBLE_PIPE_in_or_constr3382);
05403:                                if (failed)
05404:                                    return;
05405:                                if (backtracking == 0) {
05406:
05407:                                    location
05408:                                            .setType(Location.LOCATION_LHS_INSIDE_CONDITION_START);
05409:
05410:                                }
05411:                                pushFollow(FOLLOW_and_constr_in_or_constr3391);
05412:                                and_constr(or);
05413:                                _fsp--;
05414:                                if (failed)
05415:                                    return;
05416:
05417:                            }
05418:                                break;
05419:
05420:                            default:
05421:                                break loop59;
05422:                            }
05423:                        } while (true);
05424:
05425:                        if (backtracking == 0) {
05426:
05427:                            if (or.getDescrs().size() == 1) {
05428:                                base.addOrMerge((BaseDescr) or.getDescrs().get(
05429:                                        0));
05430:                            } else if (or.getDescrs().size() > 1) {
05431:                                base.addDescr(or);
05432:                            }
05433:
05434:                        }
05435:
05436:                    }
05437:
05438:                } catch (RecognitionException re) {
05439:                    reportError(re);
05440:                    recover(input, re);
05441:                } finally {
05442:                }
05443:                return;
05444:            }
05445:
05446:            // $ANTLR end or_constr
05447:
05448:            // $ANTLR start and_constr
05449:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1262:1: and_constr[ConditionalElementDescr base] : unary_constr[and] ( DOUBLE_AMPER unary_constr[and] )* ;
05450:            public final void and_constr(ConditionalElementDescr base)
05451:                    throws RecognitionException {
05452:
05453:                AndDescr and = new AndDescr();
05454:
05455:                try {
05456:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1266:2: ( unary_constr[and] ( DOUBLE_AMPER unary_constr[and] )* )
05457:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1267:3: unary_constr[and] ( DOUBLE_AMPER unary_constr[and] )*
05458:                    {
05459:                        pushFollow(FOLLOW_unary_constr_in_and_constr3423);
05460:                        unary_constr(and);
05461:                        _fsp--;
05462:                        if (failed)
05463:                            return;
05464:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1268:3: ( DOUBLE_AMPER unary_constr[and] )*
05465:                        loop60: do {
05466:                            int alt60 = 2;
05467:                            int LA60_0 = input.LA(1);
05468:
05469:                            if ((LA60_0 == DOUBLE_AMPER)) {
05470:                                alt60 = 1;
05471:                            }
05472:
05473:                            switch (alt60) {
05474:                            case 1:
05475:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1268:5: DOUBLE_AMPER unary_constr[and]
05476:                            {
05477:                                match(input, DOUBLE_AMPER,
05478:                                        FOLLOW_DOUBLE_AMPER_in_and_constr3431);
05479:                                if (failed)
05480:                                    return;
05481:                                if (backtracking == 0) {
05482:
05483:                                    location
05484:                                            .setType(Location.LOCATION_LHS_INSIDE_CONDITION_START);
05485:
05486:                                }
05487:                                pushFollow(FOLLOW_unary_constr_in_and_constr3440);
05488:                                unary_constr(and);
05489:                                _fsp--;
05490:                                if (failed)
05491:                                    return;
05492:
05493:                            }
05494:                                break;
05495:
05496:                            default:
05497:                                break loop60;
05498:                            }
05499:                        } while (true);
05500:
05501:                        if (backtracking == 0) {
05502:
05503:                            if (and.getDescrs().size() == 1) {
05504:                                base.addOrMerge((BaseDescr) and.getDescrs()
05505:                                        .get(0));
05506:                            } else if (and.getDescrs().size() > 1) {
05507:                                base.addDescr(and);
05508:                            }
05509:
05510:                        }
05511:
05512:                    }
05513:
05514:                } catch (RecognitionException re) {
05515:                    reportError(re);
05516:                    recover(input, re);
05517:                } finally {
05518:                }
05519:                return;
05520:            }
05521:
05522:            // $ANTLR end and_constr
05523:
05524:            // $ANTLR start unary_constr
05525:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1283:1: unary_constr[ConditionalElementDescr base] : ( field_constraint[$base] | LEFT_PAREN or_constr[$base] RIGHT_PAREN | EVAL predicate[$base] ) ;
05526:            public final void unary_constr(ConditionalElementDescr base)
05527:                    throws RecognitionException {
05528:                try {
05529:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1284:2: ( ( field_constraint[$base] | LEFT_PAREN or_constr[$base] RIGHT_PAREN | EVAL predicate[$base] ) )
05530:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1285:3: ( field_constraint[$base] | LEFT_PAREN or_constr[$base] RIGHT_PAREN | EVAL predicate[$base] )
05531:                    {
05532:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1285:3: ( field_constraint[$base] | LEFT_PAREN or_constr[$base] RIGHT_PAREN | EVAL predicate[$base] )
05533:                        int alt61 = 3;
05534:                        switch (input.LA(1)) {
05535:                        case PACKAGE:
05536:                        case IMPORT:
05537:                        case FUNCTION:
05538:                        case ID:
05539:                        case GLOBAL:
05540:                        case QUERY:
05541:                        case END:
05542:                        case TEMPLATE:
05543:                        case RULE:
05544:                        case WHEN:
05545:                        case ATTRIBUTES:
05546:                        case ENABLED:
05547:                        case SALIENCE:
05548:                        case DURATION:
05549:                        case DIALECT:
05550:                        case FROM:
05551:                        case INIT:
05552:                        case ACTION:
05553:                        case REVERSE:
05554:                        case RESULT:
05555:                        case CONTAINS:
05556:                        case EXCLUDES:
05557:                        case MATCHES:
05558:                        case MEMBEROF:
05559:                        case IN:
05560:                        case THEN: {
05561:                            alt61 = 1;
05562:                        }
05563:                            break;
05564:                        case LEFT_PAREN: {
05565:                            alt61 = 2;
05566:                        }
05567:                            break;
05568:                        case EVAL: {
05569:                            alt61 = 3;
05570:                        }
05571:                            break;
05572:                        default:
05573:                            if (backtracking > 0) {
05574:                                failed = true;
05575:                                return;
05576:                            }
05577:                            NoViableAltException nvae = new NoViableAltException(
05578:                                    "1285:3: ( field_constraint[$base] | LEFT_PAREN or_constr[$base] RIGHT_PAREN | EVAL predicate[$base] )",
05579:                                    61, 0, input);
05580:
05581:                            throw nvae;
05582:                        }
05583:
05584:                        switch (alt61) {
05585:                        case 1:
05586:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1285:5: field_constraint[$base]
05587:                        {
05588:                            pushFollow(FOLLOW_field_constraint_in_unary_constr3468);
05589:                            field_constraint(base);
05590:                            _fsp--;
05591:                            if (failed)
05592:                                return;
05593:
05594:                        }
05595:                            break;
05596:                        case 2:
05597:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1286:5: LEFT_PAREN or_constr[$base] RIGHT_PAREN
05598:                        {
05599:                            match(input, LEFT_PAREN,
05600:                                    FOLLOW_LEFT_PAREN_in_unary_constr3476);
05601:                            if (failed)
05602:                                return;
05603:                            pushFollow(FOLLOW_or_constr_in_unary_constr3478);
05604:                            or_constr(base);
05605:                            _fsp--;
05606:                            if (failed)
05607:                                return;
05608:                            match(input, RIGHT_PAREN,
05609:                                    FOLLOW_RIGHT_PAREN_in_unary_constr3481);
05610:                            if (failed)
05611:                                return;
05612:
05613:                        }
05614:                            break;
05615:                        case 3:
05616:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1287:5: EVAL predicate[$base]
05617:                        {
05618:                            match(input, EVAL, FOLLOW_EVAL_in_unary_constr3487);
05619:                            if (failed)
05620:                                return;
05621:                            pushFollow(FOLLOW_predicate_in_unary_constr3489);
05622:                            predicate(base);
05623:                            _fsp--;
05624:                            if (failed)
05625:                                return;
05626:
05627:                        }
05628:                            break;
05629:
05630:                        }
05631:
05632:                    }
05633:
05634:                } catch (RecognitionException re) {
05635:                    reportError(re);
05636:                    recover(input, re);
05637:                } finally {
05638:                }
05639:                return;
05640:            }
05641:
05642:            // $ANTLR end unary_constr
05643:
05644:            // $ANTLR start field_constraint
05645:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1291:1: field_constraint[ConditionalElementDescr base] : ( ( ID ':' f= accessor_path ( ( options {backtrack=true; } : or_restr_connective[top] ) | '->' predicate[$base] )? ) | (f= accessor_path ( options {backtrack=true; } : or_restr_connective[top] ) ) );
05646:            public final void field_constraint(ConditionalElementDescr base)
05647:                    throws RecognitionException {
05648:                Token ID51 = null;
05649:                accessor_path_return f = null;
05650:
05651:                FieldBindingDescr fbd = null;
05652:                FieldConstraintDescr fc = null;
05653:                RestrictionConnectiveDescr top = null;
05654:
05655:                try {
05656:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1297:2: ( ( ID ':' f= accessor_path ( ( options {backtrack=true; } : or_restr_connective[top] ) | '->' predicate[$base] )? ) | (f= accessor_path ( options {backtrack=true; } : or_restr_connective[top] ) ) )
05657:                    int alt63 = 2;
05658:                    int LA63_0 = input.LA(1);
05659:
05660:                    if ((LA63_0 == ID)) {
05661:                        int LA63_1 = input.LA(2);
05662:
05663:                        if ((LA63_1 == 73)) {
05664:                            alt63 = 1;
05665:                        } else if ((LA63_1 == DOT || LA63_1 == LEFT_PAREN
05666:                                || LA63_1 == NOT
05667:                                || (LA63_1 >= CONTAINS && LA63_1 <= IN)
05668:                                || LA63_1 == LEFT_SQUARE || (LA63_1 >= 75 && LA63_1 <= 80))) {
05669:                            alt63 = 2;
05670:                        } else {
05671:                            if (backtracking > 0) {
05672:                                failed = true;
05673:                                return;
05674:                            }
05675:                            NoViableAltException nvae = new NoViableAltException(
05676:                                    "1291:1: field_constraint[ConditionalElementDescr base] : ( ( ID ':' f= accessor_path ( ( options {backtrack=true; } : or_restr_connective[top] ) | '->' predicate[$base] )? ) | (f= accessor_path ( options {backtrack=true; } : or_restr_connective[top] ) ) );",
05677:                                    63, 1, input);
05678:
05679:                            throw nvae;
05680:                        }
05681:                    } else if (((LA63_0 >= PACKAGE && LA63_0 <= FUNCTION)
05682:                            || LA63_0 == GLOBAL
05683:                            || (LA63_0 >= QUERY && LA63_0 <= ATTRIBUTES)
05684:                            || LA63_0 == ENABLED || LA63_0 == SALIENCE
05685:                            || (LA63_0 >= DURATION && LA63_0 <= DIALECT)
05686:                            || LA63_0 == FROM
05687:                            || (LA63_0 >= INIT && LA63_0 <= RESULT)
05688:                            || (LA63_0 >= CONTAINS && LA63_0 <= IN) || LA63_0 == THEN)) {
05689:                        alt63 = 2;
05690:                    } else {
05691:                        if (backtracking > 0) {
05692:                            failed = true;
05693:                            return;
05694:                        }
05695:                        NoViableAltException nvae = new NoViableAltException(
05696:                                "1291:1: field_constraint[ConditionalElementDescr base] : ( ( ID ':' f= accessor_path ( ( options {backtrack=true; } : or_restr_connective[top] ) | '->' predicate[$base] )? ) | (f= accessor_path ( options {backtrack=true; } : or_restr_connective[top] ) ) );",
05697:                                63, 0, input);
05698:
05699:                        throw nvae;
05700:                    }
05701:                    switch (alt63) {
05702:                    case 1:
05703:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1298:10: ( ID ':' f= accessor_path ( ( options {backtrack=true; } : or_restr_connective[top] ) | '->' predicate[$base] )? )
05704:                    {
05705:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1298:10: ( ID ':' f= accessor_path ( ( options {backtrack=true; } : or_restr_connective[top] ) | '->' predicate[$base] )? )
05706:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1299:3: ID ':' f= accessor_path ( ( options {backtrack=true; } : or_restr_connective[top] ) | '->' predicate[$base] )?
05707:                        {
05708:                            ID51 = (Token) input.LT(1);
05709:                            match(input, ID, FOLLOW_ID_in_field_constraint3528);
05710:                            if (failed)
05711:                                return;
05712:                            match(input, 73, FOLLOW_73_in_field_constraint3530);
05713:                            if (failed)
05714:                                return;
05715:                            if (backtracking == 0) {
05716:
05717:                                fbd = new FieldBindingDescr();
05718:                                fbd.setIdentifier(ID51.getText());
05719:                                fbd.setLocation(offset(ID51.getLine()), ID51
05720:                                        .getCharPositionInLine());
05721:                                fbd.setStartCharacter(((CommonToken) ID51)
05722:                                        .getStartIndex());
05723:                                base.addDescr(fbd);
05724:
05725:                            }
05726:                            pushFollow(FOLLOW_accessor_path_in_field_constraint3549);
05727:                            f = accessor_path();
05728:                            _fsp--;
05729:                            if (failed)
05730:                                return;
05731:                            if (backtracking == 0) {
05732:
05733:                                // use ((Token)f.start) to get token matched in identifier
05734:                                // or use f.text to get text.
05735:                                if (f.text != null) {
05736:                                    location
05737:                                            .setType(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR);
05738:                                    location
05739:                                            .setProperty(
05740:                                                    Location.LOCATION_PROPERTY_PROPERTY_NAME,
05741:                                                    f.text);
05742:
05743:                                    if (fbd != null) {
05744:                                        fbd.setFieldName(f.text);
05745:                                        // may have been overwritten
05746:                                        fbd
05747:                                                .setStartCharacter(((CommonToken) ID51)
05748:                                                        .getStartIndex());
05749:                                    }
05750:                                    fc = new FieldConstraintDescr(f.text);
05751:                                    fc.setLocation(offset(((Token) f.start)
05752:                                            .getLine()), ((Token) f.start)
05753:                                            .getCharPositionInLine());
05754:                                    fc
05755:                                            .setStartCharacter(((CommonToken) ((Token) f.start))
05756:                                                    .getStartIndex());
05757:                                    top = fc.getRestriction();
05758:
05759:                                    // it must be a field constraint, as it is not a binding
05760:                                    if (ID51 == null) {
05761:                                        base.addDescr(fc);
05762:                                    }
05763:                                }
05764:
05765:                            }
05766:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1333:3: ( ( options {backtrack=true; } : or_restr_connective[top] ) | '->' predicate[$base] )?
05767:                            int alt62 = 3;
05768:                            int LA62_0 = input.LA(1);
05769:
05770:                            if ((LA62_0 == LEFT_PAREN || LA62_0 == NOT
05771:                                    || (LA62_0 >= CONTAINS && LA62_0 <= IN) || (LA62_0 >= 75 && LA62_0 <= 80))) {
05772:                                alt62 = 1;
05773:                            } else if ((LA62_0 == 74)) {
05774:                                alt62 = 2;
05775:                            }
05776:                            switch (alt62) {
05777:                            case 1:
05778:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1334:4: ( options {backtrack=true; } : or_restr_connective[top] )
05779:                            {
05780:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1334:4: ( options {backtrack=true; } : or_restr_connective[top] )
05781:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1335:6: or_restr_connective[top]
05782:                                {
05783:                                    pushFollow(FOLLOW_or_restr_connective_in_field_constraint3577);
05784:                                    or_restr_connective(top);
05785:                                    _fsp--;
05786:                                    if (failed)
05787:                                        return;
05788:                                    if (backtracking == 0) {
05789:
05790:                                        // we must add now as we didn't before
05791:                                        if (ID51 != null) {
05792:                                            base.addDescr(fc);
05793:                                        }
05794:
05795:                                    }
05796:
05797:                                }
05798:
05799:                            }
05800:                                break;
05801:                            case 2:
05802:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1344:4: '->' predicate[$base]
05803:                            {
05804:                                match(input, 74,
05805:                                        FOLLOW_74_in_field_constraint3597);
05806:                                if (failed)
05807:                                    return;
05808:                                pushFollow(FOLLOW_predicate_in_field_constraint3599);
05809:                                predicate(base);
05810:                                _fsp--;
05811:                                if (failed)
05812:                                    return;
05813:
05814:                            }
05815:                                break;
05816:
05817:                            }
05818:
05819:                        }
05820:
05821:                    }
05822:                        break;
05823:                    case 2:
05824:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1348:3: (f= accessor_path ( options {backtrack=true; } : or_restr_connective[top] ) )
05825:                    {
05826:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1348:3: (f= accessor_path ( options {backtrack=true; } : or_restr_connective[top] ) )
05827:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1349:3: f= accessor_path ( options {backtrack=true; } : or_restr_connective[top] )
05828:                        {
05829:                            pushFollow(FOLLOW_accessor_path_in_field_constraint3625);
05830:                            f = accessor_path();
05831:                            _fsp--;
05832:                            if (failed)
05833:                                return;
05834:                            if (backtracking == 0) {
05835:
05836:                                // use ((Token)f.start) to get token matched in identifier
05837:                                // or use f.text to get text.
05838:                                if (f.text != null) {
05839:                                    location
05840:                                            .setType(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR);
05841:                                    location
05842:                                            .setProperty(
05843:                                                    Location.LOCATION_PROPERTY_PROPERTY_NAME,
05844:                                                    f.text);
05845:
05846:                                    fc = new FieldConstraintDescr(f.text);
05847:                                    fc.setLocation(offset(((Token) f.start)
05848:                                            .getLine()), ((Token) f.start)
05849:                                            .getCharPositionInLine());
05850:                                    fc
05851:                                            .setStartCharacter(((CommonToken) ((Token) f.start))
05852:                                                    .getStartIndex());
05853:                                    top = fc.getRestriction();
05854:
05855:                                    base.addDescr(fc);
05856:                                }
05857:
05858:                            }
05859:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1365:3: ( options {backtrack=true; } : or_restr_connective[top] )
05860:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1366:5: or_restr_connective[top]
05861:                            {
05862:                                pushFollow(FOLLOW_or_restr_connective_in_field_constraint3647);
05863:                                or_restr_connective(top);
05864:                                _fsp--;
05865:                                if (failed)
05866:                                    return;
05867:
05868:                            }
05869:
05870:                        }
05871:
05872:                    }
05873:                        break;
05874:
05875:                    }
05876:                } catch (NoViableAltException nvae) {
05877:
05878:                    if (input.LT(1) != null) {
05879:                        // in case of incomplete parsing, build as much as possible of the AST
05880:                        // so that IDE requirements can be met
05881:                        fc = new FieldConstraintDescr(input.LT(1).getText());
05882:                        fc.setLocation(offset(input.LT(1).getLine()), input.LT(
05883:                                1).getCharPositionInLine());
05884:                        fc.setStartCharacter(((CommonToken) input.LT(1))
05885:                                .getStartIndex());
05886:                        base.addDescr(fc);
05887:                    }
05888:                    throw nvae;
05889:
05890:                } finally {
05891:                }
05892:                return;
05893:            }
05894:
05895:            // $ANTLR end field_constraint
05896:
05897:            // $ANTLR start or_restr_connective
05898:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1383:1: or_restr_connective[ RestrictionConnectiveDescr base ] options {backtrack=true; } : and_restr_connective[or] ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )* ;
05899:            public final void or_restr_connective(
05900:                    RestrictionConnectiveDescr base)
05901:                    throws RecognitionException {
05902:
05903:                RestrictionConnectiveDescr or = new RestrictionConnectiveDescr(
05904:                        RestrictionConnectiveDescr.OR);
05905:
05906:                try {
05907:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1390:2: ( and_restr_connective[or] ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )* )
05908:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1391:3: and_restr_connective[or] ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )*
05909:                    {
05910:                        pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective3698);
05911:                        and_restr_connective(or);
05912:                        _fsp--;
05913:                        if (failed)
05914:                            return;
05915:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1392:3: ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )*
05916:                        loop64: do {
05917:                            int alt64 = 2;
05918:                            alt64 = dfa64.predict(input);
05919:                            switch (alt64) {
05920:                            case 1:
05921:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1394:6: DOUBLE_PIPE and_restr_connective[or]
05922:                            {
05923:                                match(input, DOUBLE_PIPE,
05924:                                        FOLLOW_DOUBLE_PIPE_in_or_restr_connective3722);
05925:                                if (failed)
05926:                                    return;
05927:                                if (backtracking == 0) {
05928:
05929:                                    location
05930:                                            .setType(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR);
05931:
05932:                                }
05933:                                pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective3733);
05934:                                and_restr_connective(or);
05935:                                _fsp--;
05936:                                if (failed)
05937:                                    return;
05938:
05939:                            }
05940:                                break;
05941:
05942:                            default:
05943:                                break loop64;
05944:                            }
05945:                        } while (true);
05946:
05947:                    }
05948:
05949:                } catch (RecognitionException re) {
05950:                    reportError(re);
05951:                    recover(input, re);
05952:                } finally {
05953:
05954:                    if (or.getRestrictions().size() == 1) {
05955:                        base.addOrMerge((RestrictionDescr) or.getRestrictions()
05956:                                .get(0));
05957:                    } else if (or.getRestrictions().size() > 1) {
05958:                        base.addRestriction(or);
05959:                    }
05960:
05961:                }
05962:                return;
05963:            }
05964:
05965:            // $ANTLR end or_restr_connective
05966:
05967:            // $ANTLR start and_restr_connective
05968:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1409:1: and_restr_connective[ RestrictionConnectiveDescr base ] : constraint_expression[and] ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )* ;
05969:            public final void and_restr_connective(
05970:                    RestrictionConnectiveDescr base)
05971:                    throws RecognitionException {
05972:                Token t = null;
05973:
05974:                RestrictionConnectiveDescr and = new RestrictionConnectiveDescr(
05975:                        RestrictionConnectiveDescr.AND);
05976:
05977:                try {
05978:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1413:2: ( constraint_expression[and] ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )* )
05979:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1414:3: constraint_expression[and] ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )*
05980:                    {
05981:                        pushFollow(FOLLOW_constraint_expression_in_and_restr_connective3765);
05982:                        constraint_expression(and);
05983:                        _fsp--;
05984:                        if (failed)
05985:                            return;
05986:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1415:3: ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )*
05987:                        loop65: do {
05988:                            int alt65 = 2;
05989:                            alt65 = dfa65.predict(input);
05990:                            switch (alt65) {
05991:                            case 1:
05992:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1416:5: t= DOUBLE_AMPER constraint_expression[and]
05993:                            {
05994:                                t = (Token) input.LT(1);
05995:                                match(input, DOUBLE_AMPER,
05996:                                        FOLLOW_DOUBLE_AMPER_in_and_restr_connective3786);
05997:                                if (failed)
05998:                                    return;
05999:                                if (backtracking == 0) {
06000:
06001:                                    location
06002:                                            .setType(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR);
06003:
06004:                                }
06005:                                pushFollow(FOLLOW_constraint_expression_in_and_restr_connective3797);
06006:                                constraint_expression(and);
06007:                                _fsp--;
06008:                                if (failed)
06009:                                    return;
06010:
06011:                            }
06012:                                break;
06013:
06014:                            default:
06015:                                break loop65;
06016:                            }
06017:                        } while (true);
06018:
06019:                    }
06020:
06021:                } catch (RecognitionException re) {
06022:                    reportError(re);
06023:                    recover(input, re);
06024:                } finally {
06025:
06026:                    if (and.getRestrictions().size() == 1) {
06027:                        base.addOrMerge((RestrictionDescr) and
06028:                                .getRestrictions().get(0));
06029:                    } else if (and.getRestrictions().size() > 1) {
06030:                        base.addRestriction(and);
06031:                    }
06032:
06033:                }
06034:                return;
06035:            }
06036:
06037:            // $ANTLR end and_restr_connective
06038:
06039:            // $ANTLR start constraint_expression
06040:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1431:1: constraint_expression[RestrictionConnectiveDescr base] : ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN ) ;
06041:            public final void constraint_expression(
06042:                    RestrictionConnectiveDescr base)
06043:                    throws RecognitionException {
06044:                try {
06045:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1432:9: ( ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN ) )
06046:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1433:3: ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN )
06047:                    {
06048:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1433:3: ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN )
06049:                        int alt66 = 3;
06050:                        switch (input.LA(1)) {
06051:                        case IN: {
06052:                            alt66 = 1;
06053:                        }
06054:                            break;
06055:                        case NOT: {
06056:                            int LA66_2 = input.LA(2);
06057:
06058:                            if ((LA66_2 == CONTAINS || (LA66_2 >= MATCHES && LA66_2 <= MEMBEROF))) {
06059:                                alt66 = 2;
06060:                            } else if ((LA66_2 == IN)) {
06061:                                alt66 = 1;
06062:                            } else {
06063:                                if (backtracking > 0) {
06064:                                    failed = true;
06065:                                    return;
06066:                                }
06067:                                NoViableAltException nvae = new NoViableAltException(
06068:                                        "1433:3: ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN )",
06069:                                        66, 2, input);
06070:
06071:                                throw nvae;
06072:                            }
06073:                        }
06074:                            break;
06075:                        case CONTAINS:
06076:                        case EXCLUDES:
06077:                        case MATCHES:
06078:                        case MEMBEROF:
06079:                        case 75:
06080:                        case 76:
06081:                        case 77:
06082:                        case 78:
06083:                        case 79:
06084:                        case 80: {
06085:                            alt66 = 2;
06086:                        }
06087:                            break;
06088:                        case LEFT_PAREN: {
06089:                            alt66 = 3;
06090:                        }
06091:                            break;
06092:                        default:
06093:                            if (backtracking > 0) {
06094:                                failed = true;
06095:                                return;
06096:                            }
06097:                            NoViableAltException nvae = new NoViableAltException(
06098:                                    "1433:3: ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN )",
06099:                                    66, 0, input);
06100:
06101:                            throw nvae;
06102:                        }
06103:
06104:                        switch (alt66) {
06105:                        case 1:
06106:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1433:5: compound_operator[$base]
06107:                        {
06108:                            pushFollow(FOLLOW_compound_operator_in_constraint_expression3834);
06109:                            compound_operator(base);
06110:                            _fsp--;
06111:                            if (failed)
06112:                                return;
06113:
06114:                        }
06115:                            break;
06116:                        case 2:
06117:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1434:5: simple_operator[$base]
06118:                        {
06119:                            pushFollow(FOLLOW_simple_operator_in_constraint_expression3841);
06120:                            simple_operator(base);
06121:                            _fsp--;
06122:                            if (failed)
06123:                                return;
06124:
06125:                        }
06126:                            break;
06127:                        case 3:
06128:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1435:5: LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN
06129:                        {
06130:                            match(input, LEFT_PAREN,
06131:                                    FOLLOW_LEFT_PAREN_in_constraint_expression3848);
06132:                            if (failed)
06133:                                return;
06134:                            if (backtracking == 0) {
06135:
06136:                                location
06137:                                        .setType(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR);
06138:
06139:                            }
06140:                            pushFollow(FOLLOW_or_restr_connective_in_constraint_expression3857);
06141:                            or_restr_connective(base);
06142:                            _fsp--;
06143:                            if (failed)
06144:                                return;
06145:                            match(input, RIGHT_PAREN,
06146:                                    FOLLOW_RIGHT_PAREN_in_constraint_expression3863);
06147:                            if (failed)
06148:                                return;
06149:
06150:                        }
06151:                            break;
06152:
06153:                        }
06154:
06155:                    }
06156:
06157:                } catch (RecognitionException re) {
06158:                    reportError(re);
06159:                    recover(input, re);
06160:                } finally {
06161:                }
06162:                return;
06163:            }
06164:
06165:            // $ANTLR end constraint_expression
06166:
06167:            // $ANTLR start simple_operator
06168:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1444:1: simple_operator[RestrictionConnectiveDescr base] : (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF ) rd= expression_value[$base, op] ;
06169:            public final void simple_operator(RestrictionConnectiveDescr base)
06170:                    throws RecognitionException {
06171:                Token t = null;
06172:                Token n = null;
06173:                RestrictionDescr rd = null;
06174:
06175:                String op = null;
06176:
06177:                try {
06178:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1448:2: ( (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF ) rd= expression_value[$base, op] )
06179:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1449:3: (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF ) rd= expression_value[$base, op]
06180:                    {
06181:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1449:3: (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF )
06182:                        int alt67 = 13;
06183:                        switch (input.LA(1)) {
06184:                        case 75: {
06185:                            alt67 = 1;
06186:                        }
06187:                            break;
06188:                        case 76: {
06189:                            alt67 = 2;
06190:                        }
06191:                            break;
06192:                        case 77: {
06193:                            alt67 = 3;
06194:                        }
06195:                            break;
06196:                        case 78: {
06197:                            alt67 = 4;
06198:                        }
06199:                            break;
06200:                        case 79: {
06201:                            alt67 = 5;
06202:                        }
06203:                            break;
06204:                        case 80: {
06205:                            alt67 = 6;
06206:                        }
06207:                            break;
06208:                        case CONTAINS: {
06209:                            alt67 = 7;
06210:                        }
06211:                            break;
06212:                        case NOT: {
06213:                            switch (input.LA(2)) {
06214:                            case MEMBEROF: {
06215:                                alt67 = 13;
06216:                            }
06217:                                break;
06218:                            case MATCHES: {
06219:                                alt67 = 11;
06220:                            }
06221:                                break;
06222:                            case CONTAINS: {
06223:                                alt67 = 8;
06224:                            }
06225:                                break;
06226:                            default:
06227:                                if (backtracking > 0) {
06228:                                    failed = true;
06229:                                    return;
06230:                                }
06231:                                NoViableAltException nvae = new NoViableAltException(
06232:                                        "1449:3: (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF )",
06233:                                        67, 8, input);
06234:
06235:                                throw nvae;
06236:                            }
06237:
06238:                        }
06239:                            break;
06240:                        case EXCLUDES: {
06241:                            alt67 = 9;
06242:                        }
06243:                            break;
06244:                        case MATCHES: {
06245:                            alt67 = 10;
06246:                        }
06247:                            break;
06248:                        case MEMBEROF: {
06249:                            alt67 = 12;
06250:                        }
06251:                            break;
06252:                        default:
06253:                            if (backtracking > 0) {
06254:                                failed = true;
06255:                                return;
06256:                            }
06257:                            NoViableAltException nvae = new NoViableAltException(
06258:                                    "1449:3: (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF )",
06259:                                    67, 0, input);
06260:
06261:                            throw nvae;
06262:                        }
06263:
06264:                        switch (alt67) {
06265:                        case 1:
06266:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1449:5: t= '=='
06267:                        {
06268:                            t = (Token) input.LT(1);
06269:                            match(input, 75, FOLLOW_75_in_simple_operator3894);
06270:                            if (failed)
06271:                                return;
06272:
06273:                        }
06274:                            break;
06275:                        case 2:
06276:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1450:5: t= '>'
06277:                        {
06278:                            t = (Token) input.LT(1);
06279:                            match(input, 76, FOLLOW_76_in_simple_operator3902);
06280:                            if (failed)
06281:                                return;
06282:
06283:                        }
06284:                            break;
06285:                        case 3:
06286:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1451:5: t= '>='
06287:                        {
06288:                            t = (Token) input.LT(1);
06289:                            match(input, 77, FOLLOW_77_in_simple_operator3910);
06290:                            if (failed)
06291:                                return;
06292:
06293:                        }
06294:                            break;
06295:                        case 4:
06296:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1452:5: t= '<'
06297:                        {
06298:                            t = (Token) input.LT(1);
06299:                            match(input, 78, FOLLOW_78_in_simple_operator3918);
06300:                            if (failed)
06301:                                return;
06302:
06303:                        }
06304:                            break;
06305:                        case 5:
06306:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1453:5: t= '<='
06307:                        {
06308:                            t = (Token) input.LT(1);
06309:                            match(input, 79, FOLLOW_79_in_simple_operator3926);
06310:                            if (failed)
06311:                                return;
06312:
06313:                        }
06314:                            break;
06315:                        case 6:
06316:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1454:5: t= '!='
06317:                        {
06318:                            t = (Token) input.LT(1);
06319:                            match(input, 80, FOLLOW_80_in_simple_operator3934);
06320:                            if (failed)
06321:                                return;
06322:
06323:                        }
06324:                            break;
06325:                        case 7:
06326:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1455:5: t= CONTAINS
06327:                        {
06328:                            t = (Token) input.LT(1);
06329:                            match(input, CONTAINS,
06330:                                    FOLLOW_CONTAINS_in_simple_operator3942);
06331:                            if (failed)
06332:                                return;
06333:
06334:                        }
06335:                            break;
06336:                        case 8:
06337:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1456:5: n= NOT t= CONTAINS
06338:                        {
06339:                            n = (Token) input.LT(1);
06340:                            match(input, NOT, FOLLOW_NOT_in_simple_operator3950);
06341:                            if (failed)
06342:                                return;
06343:                            t = (Token) input.LT(1);
06344:                            match(input, CONTAINS,
06345:                                    FOLLOW_CONTAINS_in_simple_operator3954);
06346:                            if (failed)
06347:                                return;
06348:
06349:                        }
06350:                            break;
06351:                        case 9:
06352:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1457:5: t= EXCLUDES
06353:                        {
06354:                            t = (Token) input.LT(1);
06355:                            match(input, EXCLUDES,
06356:                                    FOLLOW_EXCLUDES_in_simple_operator3962);
06357:                            if (failed)
06358:                                return;
06359:
06360:                        }
06361:                            break;
06362:                        case 10:
06363:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1458:5: t= MATCHES
06364:                        {
06365:                            t = (Token) input.LT(1);
06366:                            match(input, MATCHES,
06367:                                    FOLLOW_MATCHES_in_simple_operator3970);
06368:                            if (failed)
06369:                                return;
06370:
06371:                        }
06372:                            break;
06373:                        case 11:
06374:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1459:5: n= NOT t= MATCHES
06375:                        {
06376:                            n = (Token) input.LT(1);
06377:                            match(input, NOT, FOLLOW_NOT_in_simple_operator3978);
06378:                            if (failed)
06379:                                return;
06380:                            t = (Token) input.LT(1);
06381:                            match(input, MATCHES,
06382:                                    FOLLOW_MATCHES_in_simple_operator3982);
06383:                            if (failed)
06384:                                return;
06385:
06386:                        }
06387:                            break;
06388:                        case 12:
06389:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1460:5: t= MEMBEROF
06390:                        {
06391:                            t = (Token) input.LT(1);
06392:                            match(input, MEMBEROF,
06393:                                    FOLLOW_MEMBEROF_in_simple_operator3990);
06394:                            if (failed)
06395:                                return;
06396:
06397:                        }
06398:                            break;
06399:                        case 13:
06400:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1461:5: n= NOT t= MEMBEROF
06401:                        {
06402:                            n = (Token) input.LT(1);
06403:                            match(input, NOT, FOLLOW_NOT_in_simple_operator3998);
06404:                            if (failed)
06405:                                return;
06406:                            t = (Token) input.LT(1);
06407:                            match(input, MEMBEROF,
06408:                                    FOLLOW_MEMBEROF_in_simple_operator4002);
06409:                            if (failed)
06410:                                return;
06411:
06412:                        }
06413:                            break;
06414:
06415:                        }
06416:
06417:                        if (backtracking == 0) {
06418:
06419:                            location
06420:                                    .setType(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT);
06421:                            location.setProperty(
06422:                                    Location.LOCATION_PROPERTY_OPERATOR, t
06423:                                            .getText());
06424:                            if (n != null) {
06425:                                op = "not " + t.getText();
06426:                            } else {
06427:                                op = t.getText();
06428:                            }
06429:
06430:                        }
06431:                        pushFollow(FOLLOW_expression_value_in_simple_operator4016);
06432:                        rd = expression_value(base, op);
06433:                        _fsp--;
06434:                        if (failed)
06435:                            return;
06436:
06437:                    }
06438:
06439:                } catch (RecognitionException re) {
06440:                    reportError(re);
06441:                    recover(input, re);
06442:                } finally {
06443:
06444:                    if (rd == null && op != null) {
06445:                        base.addRestriction(new LiteralRestrictionDescr(op,
06446:                                null));
06447:                    }
06448:
06449:                }
06450:                return;
06451:            }
06452:
06453:            // $ANTLR end simple_operator
06454:
06455:            // $ANTLR start compound_operator
06456:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1480:1: compound_operator[RestrictionConnectiveDescr base] : ( IN | NOT IN ) LEFT_PAREN rd= expression_value[group, op] ( COMMA rd= expression_value[group, op] )* RIGHT_PAREN ;
06457:            public final void compound_operator(RestrictionConnectiveDescr base)
06458:                    throws RecognitionException {
06459:                RestrictionDescr rd = null;
06460:
06461:                String op = null;
06462:                RestrictionConnectiveDescr group = null;
06463:
06464:                try {
06465:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1485:2: ( ( IN | NOT IN ) LEFT_PAREN rd= expression_value[group, op] ( COMMA rd= expression_value[group, op] )* RIGHT_PAREN )
06466:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1486:3: ( IN | NOT IN ) LEFT_PAREN rd= expression_value[group, op] ( COMMA rd= expression_value[group, op] )* RIGHT_PAREN
06467:                    {
06468:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1486:3: ( IN | NOT IN )
06469:                        int alt68 = 2;
06470:                        int LA68_0 = input.LA(1);
06471:
06472:                        if ((LA68_0 == IN)) {
06473:                            alt68 = 1;
06474:                        } else if ((LA68_0 == NOT)) {
06475:                            alt68 = 2;
06476:                        } else {
06477:                            if (backtracking > 0) {
06478:                                failed = true;
06479:                                return;
06480:                            }
06481:                            NoViableAltException nvae = new NoViableAltException(
06482:                                    "1486:3: ( IN | NOT IN )", 68, 0, input);
06483:
06484:                            throw nvae;
06485:                        }
06486:                        switch (alt68) {
06487:                        case 1:
06488:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1486:5: IN
06489:                        {
06490:                            match(input, IN, FOLLOW_IN_in_compound_operator4046);
06491:                            if (failed)
06492:                                return;
06493:                            if (backtracking == 0) {
06494:
06495:                                op = "==";
06496:                                group = new RestrictionConnectiveDescr(
06497:                                        RestrictionConnectiveDescr.OR);
06498:                                base.addRestriction(group);
06499:                                location
06500:                                        .setType(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT);
06501:                                location.setProperty(
06502:                                        Location.LOCATION_PROPERTY_OPERATOR,
06503:                                        "in");
06504:
06505:                            }
06506:
06507:                        }
06508:                            break;
06509:                        case 2:
06510:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1494:5: NOT IN
06511:                        {
06512:                            match(input, NOT,
06513:                                    FOLLOW_NOT_in_compound_operator4058);
06514:                            if (failed)
06515:                                return;
06516:                            match(input, IN, FOLLOW_IN_in_compound_operator4060);
06517:                            if (failed)
06518:                                return;
06519:                            if (backtracking == 0) {
06520:
06521:                                op = "!=";
06522:                                group = new RestrictionConnectiveDescr(
06523:                                        RestrictionConnectiveDescr.AND);
06524:                                base.addRestriction(group);
06525:                                location
06526:                                        .setType(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT);
06527:                                location.setProperty(
06528:                                        Location.LOCATION_PROPERTY_OPERATOR,
06529:                                        "in");
06530:
06531:                            }
06532:
06533:                        }
06534:                            break;
06535:
06536:                        }
06537:
06538:                        match(input, LEFT_PAREN,
06539:                                FOLLOW_LEFT_PAREN_in_compound_operator4075);
06540:                        if (failed)
06541:                            return;
06542:                        pushFollow(FOLLOW_expression_value_in_compound_operator4079);
06543:                        rd = expression_value(group, op);
06544:                        _fsp--;
06545:                        if (failed)
06546:                            return;
06547:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1504:3: ( COMMA rd= expression_value[group, op] )*
06548:                        loop69: do {
06549:                            int alt69 = 2;
06550:                            int LA69_0 = input.LA(1);
06551:
06552:                            if ((LA69_0 == COMMA)) {
06553:                                alt69 = 1;
06554:                            }
06555:
06556:                            switch (alt69) {
06557:                            case 1:
06558:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1504:5: COMMA rd= expression_value[group, op]
06559:                            {
06560:                                match(input, COMMA,
06561:                                        FOLLOW_COMMA_in_compound_operator4086);
06562:                                if (failed)
06563:                                    return;
06564:                                pushFollow(FOLLOW_expression_value_in_compound_operator4090);
06565:                                rd = expression_value(group, op);
06566:                                _fsp--;
06567:                                if (failed)
06568:                                    return;
06569:
06570:                            }
06571:                                break;
06572:
06573:                            default:
06574:                                break loop69;
06575:                            }
06576:                        } while (true);
06577:
06578:                        match(input, RIGHT_PAREN,
06579:                                FOLLOW_RIGHT_PAREN_in_compound_operator4099);
06580:                        if (failed)
06581:                            return;
06582:                        if (backtracking == 0) {
06583:
06584:                            location
06585:                                    .setType(Location.LOCATION_LHS_INSIDE_CONDITION_END);
06586:
06587:                        }
06588:
06589:                    }
06590:
06591:                } catch (RecognitionException re) {
06592:                    reportError(re);
06593:                    recover(input, re);
06594:                } finally {
06595:                }
06596:                return;
06597:            }
06598:
06599:            // $ANTLR end compound_operator
06600:
06601:            // $ANTLR start expression_value
06602:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1511:1: expression_value[RestrictionConnectiveDescr base, String op] returns [RestrictionDescr rd] : (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk ) ;
06603:            public final RestrictionDescr expression_value(
06604:                    RestrictionConnectiveDescr base, String op)
06605:                    throws RecognitionException {
06606:                RestrictionDescr rd = null;
06607:
06608:                accessor_path_return ap = null;
06609:
06610:                literal_constraint_return lc = null;
06611:
06612:                paren_chunk_return rvc = null;
06613:
06614:                rd = null;
06615:
06616:                try {
06617:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1515:2: ( (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk ) )
06618:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1516:3: (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk )
06619:                    {
06620:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1516:3: (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk )
06621:                        int alt70 = 3;
06622:                        switch (input.LA(1)) {
06623:                        case PACKAGE:
06624:                        case IMPORT:
06625:                        case FUNCTION:
06626:                        case ID:
06627:                        case GLOBAL:
06628:                        case QUERY:
06629:                        case END:
06630:                        case TEMPLATE:
06631:                        case RULE:
06632:                        case WHEN:
06633:                        case ATTRIBUTES:
06634:                        case ENABLED:
06635:                        case SALIENCE:
06636:                        case DURATION:
06637:                        case DIALECT:
06638:                        case FROM:
06639:                        case INIT:
06640:                        case ACTION:
06641:                        case REVERSE:
06642:                        case RESULT:
06643:                        case CONTAINS:
06644:                        case EXCLUDES:
06645:                        case MATCHES:
06646:                        case MEMBEROF:
06647:                        case IN:
06648:                        case THEN: {
06649:                            alt70 = 1;
06650:                        }
06651:                            break;
06652:                        case STRING:
06653:                        case BOOL:
06654:                        case INT:
06655:                        case FLOAT:
06656:                        case NULL: {
06657:                            alt70 = 2;
06658:                        }
06659:                            break;
06660:                        case LEFT_PAREN: {
06661:                            alt70 = 3;
06662:                        }
06663:                            break;
06664:                        default:
06665:                            if (backtracking > 0) {
06666:                                failed = true;
06667:                                return rd;
06668:                            }
06669:                            NoViableAltException nvae = new NoViableAltException(
06670:                                    "1516:3: (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk )",
06671:                                    70, 0, input);
06672:
06673:                            throw nvae;
06674:                        }
06675:
06676:                        switch (alt70) {
06677:                        case 1:
06678:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1516:5: ap= accessor_path
06679:                        {
06680:                            pushFollow(FOLLOW_accessor_path_in_expression_value4133);
06681:                            ap = accessor_path();
06682:                            _fsp--;
06683:                            if (failed)
06684:                                return rd;
06685:                            if (backtracking == 0) {
06686:
06687:                                if (ap.text.indexOf('.') > -1
06688:                                        || ap.text.indexOf('[') > -1) {
06689:                                    rd = new QualifiedIdentifierRestrictionDescr(
06690:                                            op, ap.text);
06691:                                } else {
06692:                                    rd = new VariableRestrictionDescr(op,
06693:                                            ap.text);
06694:                                }
06695:
06696:                            }
06697:
06698:                        }
06699:                            break;
06700:                        case 2:
06701:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1524:5: lc= literal_constraint
06702:                        {
06703:                            pushFollow(FOLLOW_literal_constraint_in_expression_value4153);
06704:                            lc = literal_constraint();
06705:                            _fsp--;
06706:                            if (failed)
06707:                                return rd;
06708:                            if (backtracking == 0) {
06709:
06710:                                rd = new LiteralRestrictionDescr(op, lc.text,
06711:                                        lc.type);
06712:
06713:                            }
06714:
06715:                        }
06716:                            break;
06717:                        case 3:
06718:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1528:5: rvc= paren_chunk
06719:                        {
06720:                            pushFollow(FOLLOW_paren_chunk_in_expression_value4167);
06721:                            rvc = paren_chunk();
06722:                            _fsp--;
06723:                            if (failed)
06724:                                return rd;
06725:                            if (backtracking == 0) {
06726:
06727:                                rd = new ReturnValueRestrictionDescr(op, input
06728:                                        .toString(rvc.start, rvc.stop)
06729:                                        .substring(
06730:                                                1,
06731:                                                input.toString(rvc.start,
06732:                                                        rvc.stop).length() - 1));
06733:
06734:                            }
06735:
06736:                        }
06737:                            break;
06738:
06739:                        }
06740:
06741:                        if (backtracking == 0) {
06742:
06743:                            if (rd != null) {
06744:                                base.addRestriction(rd);
06745:                            }
06746:                            location
06747:                                    .setType(Location.LOCATION_LHS_INSIDE_CONDITION_END);
06748:
06749:                        }
06750:
06751:                    }
06752:
06753:                } catch (RecognitionException re) {
06754:                    reportError(re);
06755:                    recover(input, re);
06756:                } finally {
06757:                }
06758:                return rd;
06759:            }
06760:
06761:            // $ANTLR end expression_value
06762:
06763:            public static class literal_constraint_return extends
06764:                    ParserRuleReturnScope {
06765:                public String text;
06766:                public int type;
06767:            };
06768:
06769:            // $ANTLR start literal_constraint
06770:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1541:1: literal_constraint returns [String text, int type] : (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL ) ;
06771:            public final literal_constraint_return literal_constraint()
06772:                    throws RecognitionException {
06773:                literal_constraint_return retval = new literal_constraint_return();
06774:                retval.start = input.LT(1);
06775:
06776:                Token t = null;
06777:
06778:                retval.text = null;
06779:
06780:                try {
06781:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1545:2: ( (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL ) )
06782:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1545:4: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL )
06783:                    {
06784:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1545:4: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL )
06785:                        int alt71 = 5;
06786:                        switch (input.LA(1)) {
06787:                        case STRING: {
06788:                            alt71 = 1;
06789:                        }
06790:                            break;
06791:                        case INT: {
06792:                            alt71 = 2;
06793:                        }
06794:                            break;
06795:                        case FLOAT: {
06796:                            alt71 = 3;
06797:                        }
06798:                            break;
06799:                        case BOOL: {
06800:                            alt71 = 4;
06801:                        }
06802:                            break;
06803:                        case NULL: {
06804:                            alt71 = 5;
06805:                        }
06806:                            break;
06807:                        default:
06808:                            if (backtracking > 0) {
06809:                                failed = true;
06810:                                return retval;
06811:                            }
06812:                            NoViableAltException nvae = new NoViableAltException(
06813:                                    "1545:4: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL )",
06814:                                    71, 0, input);
06815:
06816:                            throw nvae;
06817:                        }
06818:
06819:                        switch (alt71) {
06820:                        case 1:
06821:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1545:6: t= STRING
06822:                        {
06823:                            t = (Token) input.LT(1);
06824:                            match(input, STRING,
06825:                                    FOLLOW_STRING_in_literal_constraint4210);
06826:                            if (failed)
06827:                                return retval;
06828:                            if (backtracking == 0) {
06829:                                retval.text = getString(t.getText());
06830:                                retval.type = LiteralRestrictionDescr.TYPE_STRING;
06831:                            }
06832:
06833:                        }
06834:                            break;
06835:                        case 2:
06836:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1546:5: t= INT
06837:                        {
06838:                            t = (Token) input.LT(1);
06839:                            match(input, INT,
06840:                                    FOLLOW_INT_in_literal_constraint4221);
06841:                            if (failed)
06842:                                return retval;
06843:                            if (backtracking == 0) {
06844:                                retval.text = t.getText();
06845:                                retval.type = LiteralRestrictionDescr.TYPE_NUMBER;
06846:                            }
06847:
06848:                        }
06849:                            break;
06850:                        case 3:
06851:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1547:5: t= FLOAT
06852:                        {
06853:                            t = (Token) input.LT(1);
06854:                            match(input, FLOAT,
06855:                                    FOLLOW_FLOAT_in_literal_constraint4234);
06856:                            if (failed)
06857:                                return retval;
06858:                            if (backtracking == 0) {
06859:                                retval.text = t.getText();
06860:                                retval.type = LiteralRestrictionDescr.TYPE_NUMBER;
06861:                            }
06862:
06863:                        }
06864:                            break;
06865:                        case 4:
06866:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1548:5: t= BOOL
06867:                        {
06868:                            t = (Token) input.LT(1);
06869:                            match(input, BOOL,
06870:                                    FOLLOW_BOOL_in_literal_constraint4245);
06871:                            if (failed)
06872:                                return retval;
06873:                            if (backtracking == 0) {
06874:                                retval.text = t.getText();
06875:                                retval.type = LiteralRestrictionDescr.TYPE_BOOLEAN;
06876:                            }
06877:
06878:                        }
06879:                            break;
06880:                        case 5:
06881:                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1549:5: t= NULL
06882:                        {
06883:                            t = (Token) input.LT(1);
06884:                            match(input, NULL,
06885:                                    FOLLOW_NULL_in_literal_constraint4257);
06886:                            if (failed)
06887:                                return retval;
06888:                            if (backtracking == 0) {
06889:                                retval.text = null;
06890:                                retval.type = LiteralRestrictionDescr.TYPE_NULL;
06891:                            }
06892:
06893:                        }
06894:                            break;
06895:
06896:                        }
06897:
06898:                    }
06899:
06900:                    retval.stop = input.LT(-1);
06901:
06902:                } catch (RecognitionException re) {
06903:                    reportError(re);
06904:                    recover(input, re);
06905:                } finally {
06906:                }
06907:                return retval;
06908:            }
06909:
06910:            // $ANTLR end literal_constraint
06911:
06912:            // $ANTLR start predicate
06913:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1553:1: predicate[ConditionalElementDescr base] : text= paren_chunk ;
06914:            public final void predicate(ConditionalElementDescr base)
06915:                    throws RecognitionException {
06916:                paren_chunk_return text = null;
06917:
06918:                PredicateDescr d = null;
06919:
06920:                try {
06921:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1557:2: (text= paren_chunk )
06922:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1558:3: text= paren_chunk
06923:                    {
06924:                        pushFollow(FOLLOW_paren_chunk_in_predicate4295);
06925:                        text = paren_chunk();
06926:                        _fsp--;
06927:                        if (failed)
06928:                            return;
06929:                        if (backtracking == 0) {
06930:
06931:                            if (input.toString(text.start, text.stop) != null) {
06932:                                d = new PredicateDescr();
06933:                                d.setContent(input.toString(text.start,
06934:                                        text.stop).substring(
06935:                                        1,
06936:                                        input.toString(text.start, text.stop)
06937:                                                .length() - 1));
06938:                                d
06939:                                        .setEndCharacter(((CommonToken) ((Token) text.stop))
06940:                                                .getStopIndex());
06941:                                base.addDescr(d);
06942:                            }
06943:
06944:                        }
06945:
06946:                    }
06947:
06948:                } catch (RecognitionException re) {
06949:                    reportError(re);
06950:                    recover(input, re);
06951:                } finally {
06952:                }
06953:                return;
06954:            }
06955:
06956:            // $ANTLR end predicate
06957:
06958:            public static class curly_chunk_return extends
06959:                    ParserRuleReturnScope {
06960:            };
06961:
06962:            // $ANTLR start curly_chunk
06963:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1570:1: curly_chunk : LEFT_CURLY (~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk )* RIGHT_CURLY ;
06964:            public final curly_chunk_return curly_chunk()
06965:                    throws RecognitionException {
06966:                curly_chunk_return retval = new curly_chunk_return();
06967:                retval.start = input.LT(1);
06968:
06969:                try {
06970:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1571:2: ( LEFT_CURLY (~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk )* RIGHT_CURLY )
06971:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1572:3: LEFT_CURLY (~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk )* RIGHT_CURLY
06972:                    {
06973:                        match(input, LEFT_CURLY,
06974:                                FOLLOW_LEFT_CURLY_in_curly_chunk4313);
06975:                        if (failed)
06976:                            return retval;
06977:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1572:14: (~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk )*
06978:                        loop72: do {
06979:                            int alt72 = 3;
06980:                            int LA72_0 = input.LA(1);
06981:
06982:                            if (((LA72_0 >= PACKAGE && LA72_0 <= NULL) || (LA72_0 >= LEFT_SQUARE && LA72_0 <= 80))) {
06983:                                alt72 = 1;
06984:                            } else if ((LA72_0 == LEFT_CURLY)) {
06985:                                alt72 = 2;
06986:                            }
06987:
06988:                            switch (alt72) {
06989:                            case 1:
06990:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1572:16: ~ ( LEFT_CURLY | RIGHT_CURLY )
06991:                            {
06992:                                if ((input.LA(1) >= PACKAGE && input.LA(1) <= NULL)
06993:                                        || (input.LA(1) >= LEFT_SQUARE && input
06994:                                                .LA(1) <= 80)) {
06995:                                    input.consume();
06996:                                    errorRecovery = false;
06997:                                    failed = false;
06998:                                } else {
06999:                                    if (backtracking > 0) {
07000:                                        failed = true;
07001:                                        return retval;
07002:                                    }
07003:                                    MismatchedSetException mse = new MismatchedSetException(
07004:                                            null, input);
07005:                                    recoverFromMismatchedSet(input, mse,
07006:                                            FOLLOW_set_in_curly_chunk4317);
07007:                                    throw mse;
07008:                                }
07009:
07010:                            }
07011:                                break;
07012:                            case 2:
07013:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1572:44: curly_chunk
07014:                            {
07015:                                pushFollow(FOLLOW_curly_chunk_in_curly_chunk4326);
07016:                                curly_chunk();
07017:                                _fsp--;
07018:                                if (failed)
07019:                                    return retval;
07020:
07021:                            }
07022:                                break;
07023:
07024:                            default:
07025:                                break loop72;
07026:                            }
07027:                        } while (true);
07028:
07029:                        match(input, RIGHT_CURLY,
07030:                                FOLLOW_RIGHT_CURLY_in_curly_chunk4331);
07031:                        if (failed)
07032:                            return retval;
07033:
07034:                    }
07035:
07036:                    retval.stop = input.LT(-1);
07037:
07038:                } catch (RecognitionException re) {
07039:                    reportError(re);
07040:                    recover(input, re);
07041:                } finally {
07042:                }
07043:                return retval;
07044:            }
07045:
07046:            // $ANTLR end curly_chunk
07047:
07048:            public static class paren_chunk_return extends
07049:                    ParserRuleReturnScope {
07050:            };
07051:
07052:            // $ANTLR start paren_chunk
07053:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1575:1: paren_chunk : LEFT_PAREN (~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk )* RIGHT_PAREN ;
07054:            public final paren_chunk_return paren_chunk()
07055:                    throws RecognitionException {
07056:                paren_chunk_return retval = new paren_chunk_return();
07057:                retval.start = input.LT(1);
07058:
07059:                try {
07060:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1576:2: ( LEFT_PAREN (~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk )* RIGHT_PAREN )
07061:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1577:3: LEFT_PAREN (~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk )* RIGHT_PAREN
07062:                    {
07063:                        match(input, LEFT_PAREN,
07064:                                FOLLOW_LEFT_PAREN_in_paren_chunk4345);
07065:                        if (failed)
07066:                            return retval;
07067:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1577:14: (~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk )*
07068:                        loop73: do {
07069:                            int alt73 = 3;
07070:                            int LA73_0 = input.LA(1);
07071:
07072:                            if (((LA73_0 >= PACKAGE && LA73_0 <= GLOBAL)
07073:                                    || LA73_0 == COMMA || (LA73_0 >= QUERY && LA73_0 <= 80))) {
07074:                                alt73 = 1;
07075:                            } else if ((LA73_0 == LEFT_PAREN)) {
07076:                                alt73 = 2;
07077:                            }
07078:
07079:                            switch (alt73) {
07080:                            case 1:
07081:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1577:16: ~ ( LEFT_PAREN | RIGHT_PAREN )
07082:                            {
07083:                                if ((input.LA(1) >= PACKAGE && input.LA(1) <= GLOBAL)
07084:                                        || input.LA(1) == COMMA
07085:                                        || (input.LA(1) >= QUERY && input.LA(1) <= 80)) {
07086:                                    input.consume();
07087:                                    errorRecovery = false;
07088:                                    failed = false;
07089:                                } else {
07090:                                    if (backtracking > 0) {
07091:                                        failed = true;
07092:                                        return retval;
07093:                                    }
07094:                                    MismatchedSetException mse = new MismatchedSetException(
07095:                                            null, input);
07096:                                    recoverFromMismatchedSet(input, mse,
07097:                                            FOLLOW_set_in_paren_chunk4349);
07098:                                    throw mse;
07099:                                }
07100:
07101:                            }
07102:                                break;
07103:                            case 2:
07104:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1577:44: paren_chunk
07105:                            {
07106:                                pushFollow(FOLLOW_paren_chunk_in_paren_chunk4358);
07107:                                paren_chunk();
07108:                                _fsp--;
07109:                                if (failed)
07110:                                    return retval;
07111:
07112:                            }
07113:                                break;
07114:
07115:                            default:
07116:                                break loop73;
07117:                            }
07118:                        } while (true);
07119:
07120:                        match(input, RIGHT_PAREN,
07121:                                FOLLOW_RIGHT_PAREN_in_paren_chunk4363);
07122:                        if (failed)
07123:                            return retval;
07124:
07125:                    }
07126:
07127:                    retval.stop = input.LT(-1);
07128:
07129:                } catch (RecognitionException re) {
07130:                    reportError(re);
07131:                    recover(input, re);
07132:                } finally {
07133:                }
07134:                return retval;
07135:            }
07136:
07137:            // $ANTLR end paren_chunk
07138:
07139:            public static class square_chunk_return extends
07140:                    ParserRuleReturnScope {
07141:            };
07142:
07143:            // $ANTLR start square_chunk
07144:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1580:1: square_chunk : LEFT_SQUARE (~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk )* RIGHT_SQUARE ;
07145:            public final square_chunk_return square_chunk()
07146:                    throws RecognitionException {
07147:                square_chunk_return retval = new square_chunk_return();
07148:                retval.start = input.LT(1);
07149:
07150:                try {
07151:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1581:2: ( LEFT_SQUARE (~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk )* RIGHT_SQUARE )
07152:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1582:3: LEFT_SQUARE (~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk )* RIGHT_SQUARE
07153:                    {
07154:                        match(input, LEFT_SQUARE,
07155:                                FOLLOW_LEFT_SQUARE_in_square_chunk4376);
07156:                        if (failed)
07157:                            return retval;
07158:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1582:15: (~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk )*
07159:                        loop74: do {
07160:                            int alt74 = 3;
07161:                            int LA74_0 = input.LA(1);
07162:
07163:                            if (((LA74_0 >= PACKAGE && LA74_0 <= RIGHT_CURLY) || (LA74_0 >= THEN && LA74_0 <= 80))) {
07164:                                alt74 = 1;
07165:                            } else if ((LA74_0 == LEFT_SQUARE)) {
07166:                                alt74 = 2;
07167:                            }
07168:
07169:                            switch (alt74) {
07170:                            case 1:
07171:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1582:17: ~ ( LEFT_SQUARE | RIGHT_SQUARE )
07172:                            {
07173:                                if ((input.LA(1) >= PACKAGE && input.LA(1) <= RIGHT_CURLY)
07174:                                        || (input.LA(1) >= THEN && input.LA(1) <= 80)) {
07175:                                    input.consume();
07176:                                    errorRecovery = false;
07177:                                    failed = false;
07178:                                } else {
07179:                                    if (backtracking > 0) {
07180:                                        failed = true;
07181:                                        return retval;
07182:                                    }
07183:                                    MismatchedSetException mse = new MismatchedSetException(
07184:                                            null, input);
07185:                                    recoverFromMismatchedSet(input, mse,
07186:                                            FOLLOW_set_in_square_chunk4380);
07187:                                    throw mse;
07188:                                }
07189:
07190:                            }
07191:                                break;
07192:                            case 2:
07193:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1582:47: square_chunk
07194:                            {
07195:                                pushFollow(FOLLOW_square_chunk_in_square_chunk4389);
07196:                                square_chunk();
07197:                                _fsp--;
07198:                                if (failed)
07199:                                    return retval;
07200:
07201:                            }
07202:                                break;
07203:
07204:                            default:
07205:                                break loop74;
07206:                            }
07207:                        } while (true);
07208:
07209:                        match(input, RIGHT_SQUARE,
07210:                                FOLLOW_RIGHT_SQUARE_in_square_chunk4394);
07211:                        if (failed)
07212:                            return retval;
07213:
07214:                    }
07215:
07216:                    retval.stop = input.LT(-1);
07217:
07218:                } catch (RecognitionException re) {
07219:                    reportError(re);
07220:                    recover(input, re);
07221:                } finally {
07222:                }
07223:                return retval;
07224:            }
07225:
07226:            // $ANTLR end square_chunk
07227:
07228:            public static class qualified_id_return extends
07229:                    ParserRuleReturnScope {
07230:                public String text;
07231:            };
07232:
07233:            // $ANTLR start qualified_id
07234:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1585:1: qualified_id returns [ String text ] : ID ( DOT identifier )* ( LEFT_SQUARE RIGHT_SQUARE )* ;
07235:            public final qualified_id_return qualified_id()
07236:                    throws RecognitionException {
07237:                qualified_id_return retval = new qualified_id_return();
07238:                retval.start = input.LT(1);
07239:
07240:                Token ID52 = null;
07241:                identifier_return identifier53 = null;
07242:
07243:                StringBuffer buf = new StringBuffer();
07244:
07245:                try {
07246:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1592:2: ( ID ( DOT identifier )* ( LEFT_SQUARE RIGHT_SQUARE )* )
07247:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1592:5: ID ( DOT identifier )* ( LEFT_SQUARE RIGHT_SQUARE )*
07248:                    {
07249:                        ID52 = (Token) input.LT(1);
07250:                        match(input, ID, FOLLOW_ID_in_qualified_id4423);
07251:                        if (failed)
07252:                            return retval;
07253:                        if (backtracking == 0) {
07254:                            buf.append(ID52.getText());
07255:                        }
07256:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1592:32: ( DOT identifier )*
07257:                        loop75: do {
07258:                            int alt75 = 2;
07259:                            int LA75_0 = input.LA(1);
07260:
07261:                            if ((LA75_0 == DOT)) {
07262:                                alt75 = 1;
07263:                            }
07264:
07265:                            switch (alt75) {
07266:                            case 1:
07267:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1592:34: DOT identifier
07268:                            {
07269:                                match(input, DOT,
07270:                                        FOLLOW_DOT_in_qualified_id4429);
07271:                                if (failed)
07272:                                    return retval;
07273:                                pushFollow(FOLLOW_identifier_in_qualified_id4431);
07274:                                identifier53 = identifier();
07275:                                _fsp--;
07276:                                if (failed)
07277:                                    return retval;
07278:                                if (backtracking == 0) {
07279:                                    buf.append("."
07280:                                            + input.toString(
07281:                                                    identifier53.start,
07282:                                                    identifier53.stop));
07283:                                }
07284:
07285:                            }
07286:                                break;
07287:
07288:                            default:
07289:                                break loop75;
07290:                            }
07291:                        } while (true);
07292:
07293:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1592:88: ( LEFT_SQUARE RIGHT_SQUARE )*
07294:                        loop76: do {
07295:                            int alt76 = 2;
07296:                            int LA76_0 = input.LA(1);
07297:
07298:                            if ((LA76_0 == LEFT_SQUARE)) {
07299:                                alt76 = 1;
07300:                            }
07301:
07302:                            switch (alt76) {
07303:                            case 1:
07304:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1592:90: LEFT_SQUARE RIGHT_SQUARE
07305:                            {
07306:                                match(input, LEFT_SQUARE,
07307:                                        FOLLOW_LEFT_SQUARE_in_qualified_id4440);
07308:                                if (failed)
07309:                                    return retval;
07310:                                match(input, RIGHT_SQUARE,
07311:                                        FOLLOW_RIGHT_SQUARE_in_qualified_id4442);
07312:                                if (failed)
07313:                                    return retval;
07314:                                if (backtracking == 0) {
07315:                                    buf.append("[]");
07316:                                }
07317:
07318:                            }
07319:                                break;
07320:
07321:                            default:
07322:                                break loop76;
07323:                            }
07324:                        } while (true);
07325:
07326:                    }
07327:
07328:                    retval.stop = input.LT(-1);
07329:
07330:                    if (backtracking == 0) {
07331:
07332:                        retval.text = buf != null ? buf.toString() : "";
07333:
07334:                    }
07335:                } catch (RecognitionException re) {
07336:                    reportError(re);
07337:                    recover(input, re);
07338:                } finally {
07339:                }
07340:                return retval;
07341:            }
07342:
07343:            // $ANTLR end qualified_id
07344:
07345:            // $ANTLR start dotted_name
07346:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1595:1: dotted_name returns [ String text ] : i= identifier ( DOT i= identifier )* ( LEFT_SQUARE RIGHT_SQUARE )* ;
07347:            public final String dotted_name() throws RecognitionException {
07348:                String text = null;
07349:
07350:                identifier_return i = null;
07351:
07352:                StringBuffer buf = new StringBuffer();
07353:
07354:                try {
07355:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1602:2: (i= identifier ( DOT i= identifier )* ( LEFT_SQUARE RIGHT_SQUARE )* )
07356:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1602:4: i= identifier ( DOT i= identifier )* ( LEFT_SQUARE RIGHT_SQUARE )*
07357:                    {
07358:                        pushFollow(FOLLOW_identifier_in_dotted_name4476);
07359:                        i = identifier();
07360:                        _fsp--;
07361:                        if (failed)
07362:                            return text;
07363:                        if (backtracking == 0) {
07364:                            buf.append(input.toString(i.start, i.stop));
07365:                        }
07366:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1602:40: ( DOT i= identifier )*
07367:                        loop77: do {
07368:                            int alt77 = 2;
07369:                            int LA77_0 = input.LA(1);
07370:
07371:                            if ((LA77_0 == DOT)) {
07372:                                alt77 = 1;
07373:                            }
07374:
07375:                            switch (alt77) {
07376:                            case 1:
07377:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1602:42: DOT i= identifier
07378:                            {
07379:                                match(input, DOT, FOLLOW_DOT_in_dotted_name4482);
07380:                                if (failed)
07381:                                    return text;
07382:                                pushFollow(FOLLOW_identifier_in_dotted_name4486);
07383:                                i = identifier();
07384:                                _fsp--;
07385:                                if (failed)
07386:                                    return text;
07387:                                if (backtracking == 0) {
07388:                                    buf.append("."
07389:                                            + input.toString(i.start, i.stop));
07390:                                }
07391:
07392:                            }
07393:                                break;
07394:
07395:                            default:
07396:                                break loop77;
07397:                            }
07398:                        } while (true);
07399:
07400:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1602:89: ( LEFT_SQUARE RIGHT_SQUARE )*
07401:                        loop78: do {
07402:                            int alt78 = 2;
07403:                            int LA78_0 = input.LA(1);
07404:
07405:                            if ((LA78_0 == LEFT_SQUARE)) {
07406:                                alt78 = 1;
07407:                            }
07408:
07409:                            switch (alt78) {
07410:                            case 1:
07411:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1602:91: LEFT_SQUARE RIGHT_SQUARE
07412:                            {
07413:                                match(input, LEFT_SQUARE,
07414:                                        FOLLOW_LEFT_SQUARE_in_dotted_name4495);
07415:                                if (failed)
07416:                                    return text;
07417:                                match(input, RIGHT_SQUARE,
07418:                                        FOLLOW_RIGHT_SQUARE_in_dotted_name4497);
07419:                                if (failed)
07420:                                    return text;
07421:                                if (backtracking == 0) {
07422:                                    buf.append("[]");
07423:                                }
07424:
07425:                            }
07426:                                break;
07427:
07428:                            default:
07429:                                break loop78;
07430:                            }
07431:                        } while (true);
07432:
07433:                    }
07434:
07435:                    if (backtracking == 0) {
07436:
07437:                        text = buf != null ? buf.toString() : "";
07438:
07439:                    }
07440:                } catch (RecognitionException re) {
07441:                    reportError(re);
07442:                    recover(input, re);
07443:                } finally {
07444:                }
07445:                return text;
07446:            }
07447:
07448:            // $ANTLR end dotted_name
07449:
07450:            public static class accessor_path_return extends
07451:                    ParserRuleReturnScope {
07452:                public String text;
07453:            };
07454:
07455:            // $ANTLR start accessor_path
07456:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1605:1: accessor_path returns [ String text ] : a= accessor_element ( DOT a= accessor_element )* ;
07457:            public final accessor_path_return accessor_path()
07458:                    throws RecognitionException {
07459:                accessor_path_return retval = new accessor_path_return();
07460:                retval.start = input.LT(1);
07461:
07462:                String a = null;
07463:
07464:                StringBuffer buf = new StringBuffer();
07465:
07466:                try {
07467:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1612:2: (a= accessor_element ( DOT a= accessor_element )* )
07468:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1612:4: a= accessor_element ( DOT a= accessor_element )*
07469:                    {
07470:                        pushFollow(FOLLOW_accessor_element_in_accessor_path4531);
07471:                        a = accessor_element();
07472:                        _fsp--;
07473:                        if (failed)
07474:                            return retval;
07475:                        if (backtracking == 0) {
07476:                            buf.append(a);
07477:                        }
07478:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1612:46: ( DOT a= accessor_element )*
07479:                        loop79: do {
07480:                            int alt79 = 2;
07481:                            int LA79_0 = input.LA(1);
07482:
07483:                            if ((LA79_0 == DOT)) {
07484:                                alt79 = 1;
07485:                            }
07486:
07487:                            switch (alt79) {
07488:                            case 1:
07489:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1612:48: DOT a= accessor_element
07490:                            {
07491:                                match(input, DOT,
07492:                                        FOLLOW_DOT_in_accessor_path4537);
07493:                                if (failed)
07494:                                    return retval;
07495:                                pushFollow(FOLLOW_accessor_element_in_accessor_path4541);
07496:                                a = accessor_element();
07497:                                _fsp--;
07498:                                if (failed)
07499:                                    return retval;
07500:                                if (backtracking == 0) {
07501:                                    buf.append("." + a);
07502:                                }
07503:
07504:                            }
07505:                                break;
07506:
07507:                            default:
07508:                                break loop79;
07509:                            }
07510:                        } while (true);
07511:
07512:                    }
07513:
07514:                    retval.stop = input.LT(-1);
07515:
07516:                    if (backtracking == 0) {
07517:
07518:                        retval.text = buf != null ? buf.toString() : "";
07519:
07520:                    }
07521:                } catch (RecognitionException re) {
07522:                    reportError(re);
07523:                    recover(input, re);
07524:                } finally {
07525:                }
07526:                return retval;
07527:            }
07528:
07529:            // $ANTLR end accessor_path
07530:
07531:            // $ANTLR start accessor_element
07532:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1615:1: accessor_element returns [ String text ] : i= identifier (s= square_chunk )* ;
07533:            public final String accessor_element() throws RecognitionException {
07534:                String text = null;
07535:
07536:                identifier_return i = null;
07537:
07538:                square_chunk_return s = null;
07539:
07540:                StringBuffer buf = new StringBuffer();
07541:
07542:                try {
07543:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1622:2: (i= identifier (s= square_chunk )* )
07544:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1623:3: i= identifier (s= square_chunk )*
07545:                    {
07546:                        pushFollow(FOLLOW_identifier_in_accessor_element4579);
07547:                        i = identifier();
07548:                        _fsp--;
07549:                        if (failed)
07550:                            return text;
07551:                        if (backtracking == 0) {
07552:                            buf.append(input.toString(i.start, i.stop));
07553:                        }
07554:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1623:39: (s= square_chunk )*
07555:                        loop80: do {
07556:                            int alt80 = 2;
07557:                            int LA80_0 = input.LA(1);
07558:
07559:                            if ((LA80_0 == LEFT_SQUARE)) {
07560:                                alt80 = 1;
07561:                            }
07562:
07563:                            switch (alt80) {
07564:                            case 1:
07565:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1623:40: s= square_chunk
07566:                            {
07567:                                pushFollow(FOLLOW_square_chunk_in_accessor_element4586);
07568:                                s = square_chunk();
07569:                                _fsp--;
07570:                                if (failed)
07571:                                    return text;
07572:                                if (backtracking == 0) {
07573:                                    buf.append(input.toString(s.start, s.stop));
07574:                                }
07575:
07576:                            }
07577:                                break;
07578:
07579:                            default:
07580:                                break loop80;
07581:                            }
07582:                        } while (true);
07583:
07584:                    }
07585:
07586:                    if (backtracking == 0) {
07587:
07588:                        text = buf != null ? buf.toString() : "";
07589:
07590:                    }
07591:                } catch (RecognitionException re) {
07592:                    reportError(re);
07593:                    recover(input, re);
07594:                } finally {
07595:                }
07596:                return text;
07597:            }
07598:
07599:            // $ANTLR end accessor_element
07600:
07601:            // $ANTLR start rhs_chunk
07602:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1626:1: rhs_chunk[RuleDescr rule] : THEN (~ END )* loc= END opt_semicolon ;
07603:            public final void rhs_chunk(RuleDescr rule)
07604:                    throws RecognitionException {
07605:                Token loc = null;
07606:                Token THEN54 = null;
07607:
07608:                try {
07609:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1627:2: ( THEN (~ END )* loc= END opt_semicolon )
07610:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1628:3: THEN (~ END )* loc= END opt_semicolon
07611:                    {
07612:                        THEN54 = (Token) input.LT(1);
07613:                        match(input, THEN, FOLLOW_THEN_in_rhs_chunk4607);
07614:                        if (failed)
07615:                            return;
07616:                        if (backtracking == 0) {
07617:                            location.setType(Location.LOCATION_RHS);
07618:                        }
07619:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1629:3: (~ END )*
07620:                        loop81: do {
07621:                            int alt81 = 2;
07622:                            int LA81_0 = input.LA(1);
07623:
07624:                            if (((LA81_0 >= PACKAGE && LA81_0 <= QUERY) || (LA81_0 >= TEMPLATE && LA81_0 <= 80))) {
07625:                                alt81 = 1;
07626:                            }
07627:
07628:                            switch (alt81) {
07629:                            case 1:
07630:                                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1629:5: ~ END
07631:                            {
07632:                                if ((input.LA(1) >= PACKAGE && input.LA(1) <= QUERY)
07633:                                        || (input.LA(1) >= TEMPLATE && input
07634:                                                .LA(1) <= 80)) {
07635:                                    input.consume();
07636:                                    errorRecovery = false;
07637:                                    failed = false;
07638:                                } else {
07639:                                    if (backtracking > 0) {
07640:                                        failed = true;
07641:                                        return;
07642:                                    }
07643:                                    MismatchedSetException mse = new MismatchedSetException(
07644:                                            null, input);
07645:                                    recoverFromMismatchedSet(input, mse,
07646:                                            FOLLOW_set_in_rhs_chunk4615);
07647:                                    throw mse;
07648:                                }
07649:
07650:                            }
07651:                                break;
07652:
07653:                            default:
07654:                                break loop81;
07655:                            }
07656:                        } while (true);
07657:
07658:                        loc = (Token) input.LT(1);
07659:                        match(input, END, FOLLOW_END_in_rhs_chunk4639);
07660:                        if (failed)
07661:                            return;
07662:                        pushFollow(FOLLOW_opt_semicolon_in_rhs_chunk4641);
07663:                        opt_semicolon();
07664:                        _fsp--;
07665:                        if (failed)
07666:                            return;
07667:                        if (backtracking == 0) {
07668:
07669:                            // ignoring first line in the consequence
07670:                            String buf = input.toString(THEN54, loc);
07671:                            // removing final END keyword
07672:                            buf = buf.substring(0, buf.length() - 3);
07673:                            if (buf.indexOf('\n') > -1) {
07674:                                buf = buf.substring(buf.indexOf('\n') + 1);
07675:                            } else if (buf.indexOf('\r') > -1) {
07676:                                buf = buf.substring(buf.indexOf('\r') + 1);
07677:                            }
07678:                            rule.setConsequence(buf);
07679:                            rule.setConsequenceLocation(
07680:                                    offset(THEN54.getLine()), THEN54
07681:                                            .getCharPositionInLine());
07682:                            rule.setEndCharacter(((CommonToken) loc)
07683:                                    .getStopIndex());
07684:                            location.setProperty(Location.LOCATION_RHS_CONTENT,
07685:                                    rule.getConsequence());
07686:
07687:                        }
07688:
07689:                    }
07690:
07691:                } catch (RecognitionException re) {
07692:                    reportError(re);
07693:                    recover(input, re);
07694:                } finally {
07695:                }
07696:                return;
07697:            }
07698:
07699:            // $ANTLR end rhs_chunk
07700:
07701:            // $ANTLR start name
07702:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1648:1: name returns [String name] : ( ID | STRING );
07703:            public final String name() throws RecognitionException {
07704:                String name = null;
07705:
07706:                Token ID55 = null;
07707:                Token STRING56 = null;
07708:
07709:                try {
07710:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1649:2: ( ID | STRING )
07711:                    int alt82 = 2;
07712:                    int LA82_0 = input.LA(1);
07713:
07714:                    if ((LA82_0 == ID)) {
07715:                        alt82 = 1;
07716:                    } else if ((LA82_0 == STRING)) {
07717:                        alt82 = 2;
07718:                    } else {
07719:                        if (backtracking > 0) {
07720:                            failed = true;
07721:                            return name;
07722:                        }
07723:                        NoViableAltException nvae = new NoViableAltException(
07724:                                "1648:1: name returns [String name] : ( ID | STRING );",
07725:                                82, 0, input);
07726:
07727:                        throw nvae;
07728:                    }
07729:                    switch (alt82) {
07730:                    case 1:
07731:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1649:5: ID
07732:                    {
07733:                        ID55 = (Token) input.LT(1);
07734:                        match(input, ID, FOLLOW_ID_in_name4675);
07735:                        if (failed)
07736:                            return name;
07737:                        if (backtracking == 0) {
07738:                            name = ID55.getText();
07739:                        }
07740:
07741:                    }
07742:                        break;
07743:                    case 2:
07744:                        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1650:5: STRING
07745:                    {
07746:                        STRING56 = (Token) input.LT(1);
07747:                        match(input, STRING, FOLLOW_STRING_in_name4683);
07748:                        if (failed)
07749:                            return name;
07750:                        if (backtracking == 0) {
07751:                            name = getString(STRING56.getText());
07752:                        }
07753:
07754:                    }
07755:                        break;
07756:
07757:                    }
07758:                } catch (RecognitionException re) {
07759:                    reportError(re);
07760:                    recover(input, re);
07761:                } finally {
07762:                }
07763:                return name;
07764:            }
07765:
07766:            // $ANTLR end name
07767:
07768:            public static class identifier_return extends ParserRuleReturnScope {
07769:            };
07770:
07771:            // $ANTLR start identifier
07772:            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1653:1: identifier : ( ID | PACKAGE | FUNCTION | GLOBAL | IMPORT | RULE | QUERY | TEMPLATE | ATTRIBUTES | ENABLED | SALIENCE | DURATION | DIALECT | FROM | INIT | ACTION | REVERSE | RESULT | CONTAINS | EXCLUDES | MEMBEROF | MATCHES | WHEN | THEN | END | IN );
07773:            public final identifier_return identifier()
07774:                    throws RecognitionException {
07775:                identifier_return retval = new identifier_return();
07776:                retval.start = input.LT(1);
07777:
07778:                try {
07779:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1654:2: ( ID | PACKAGE | FUNCTION | GLOBAL | IMPORT | RULE | QUERY | TEMPLATE | ATTRIBUTES | ENABLED | SALIENCE | DURATION | DIALECT | FROM | INIT | ACTION | REVERSE | RESULT | CONTAINS | EXCLUDES | MEMBEROF | MATCHES | WHEN | THEN | END | IN )
07780:                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:
07781:                    {
07782:                        if ((input.LA(1) >= PACKAGE && input.LA(1) <= ID)
07783:                                || input.LA(1) == GLOBAL
07784:                                || (input.LA(1) >= QUERY && input.LA(1) <= ATTRIBUTES)
07785:                                || input.LA(1) == ENABLED
07786:                                || input.LA(1) == SALIENCE
07787:                                || (input.LA(1) >= DURATION && input.LA(1) <= DIALECT)
07788:                                || input.LA(1) == FROM
07789:                                || (input.LA(1) >= INIT && input.LA(1) <= RESULT)
07790:                                || (input.LA(1) >= CONTAINS && input.LA(1) <= IN)
07791:                                || input.LA(1) == THEN) {
07792:                            input.consume();
07793:                            errorRecovery = false;
07794:                            failed = false;
07795:                        } else {
07796:                            if (backtracking > 0) {
07797:                                failed = true;
07798:                                return retval;
07799:                            }
07800:                            MismatchedSetException mse = new MismatchedSetException(
07801:                                    null, input);
07802:                            recoverFromMismatchedSet(input, mse,
07803:                                    FOLLOW_set_in_identifier0);
07804:                            throw mse;
07805:                        }
07806:
07807:                    }
07808:
07809:                    retval.stop = input.LT(-1);
07810:
07811:                } catch (RecognitionException re) {
07812:                    reportError(re);
07813:                    recover(input, re);
07814:                } finally {
07815:                }
07816:                return retval;
07817:            }
07818:
07819:            // $ANTLR end identifier
07820:
07821:            // $ANTLR start synpred1
07822:            public final void synpred1_fragment() throws RecognitionException {
07823:                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:797:6: ( EXISTS )
07824:                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:797:8: EXISTS
07825:                {
07826:                    match(input, EXISTS, FOLLOW_EXISTS_in_synpred11913);
07827:                    if (failed)
07828:                        return;
07829:
07830:                }
07831:            }
07832:
07833:            // $ANTLR end synpred1
07834:
07835:            // $ANTLR start synpred2
07836:            public final void synpred2_fragment() throws RecognitionException {
07837:                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:798:5: ( NOT )
07838:                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:798:7: NOT
07839:                {
07840:                    match(input, NOT, FOLLOW_NOT_in_synpred21931);
07841:                    if (failed)
07842:                        return;
07843:
07844:                }
07845:            }
07846:
07847:            // $ANTLR end synpred2
07848:
07849:            // $ANTLR start synpred3
07850:            public final void synpred3_fragment() throws RecognitionException {
07851:                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:799:5: ( EVAL )
07852:                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:799:7: EVAL
07853:                {
07854:                    match(input, EVAL, FOLLOW_EVAL_in_synpred31950);
07855:                    if (failed)
07856:                        return;
07857:
07858:                }
07859:            }
07860:
07861:            // $ANTLR end synpred3
07862:
07863:            // $ANTLR start synpred4
07864:            public final void synpred4_fragment() throws RecognitionException {
07865:                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:800:5: ( FORALL )
07866:                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:800:7: FORALL
07867:                {
07868:                    match(input, FORALL, FOLLOW_FORALL_in_synpred41969);
07869:                    if (failed)
07870:                        return;
07871:
07872:                }
07873:            }
07874:
07875:            // $ANTLR end synpred4
07876:
07877:            // $ANTLR start synpred5
07878:            public final void synpred5_fragment() throws RecognitionException {
07879:                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:801:5: ( LEFT_PAREN )
07880:                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:801:7: LEFT_PAREN
07881:                {
07882:                    match(input, LEFT_PAREN, FOLLOW_LEFT_PAREN_in_synpred51988);
07883:                    if (failed)
07884:                        return;
07885:
07886:                }
07887:            }
07888:
07889:            // $ANTLR end synpred5
07890:
07891:            // $ANTLR start synpred6
07892:            public final void synpred6_fragment() throws RecognitionException {
07893:                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1087:6: ( LEFT_SQUARE )
07894:                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1087:8: LEFT_SQUARE
07895:                {
07896:                    match(input, LEFT_SQUARE,
07897:                            FOLLOW_LEFT_SQUARE_in_synpred62957);
07898:                    if (failed)
07899:                        return;
07900:
07901:                }
07902:            }
07903:
07904:            // $ANTLR end synpred6
07905:
07906:            // $ANTLR start synpred7
07907:            public final void synpred7_fragment() throws RecognitionException {
07908:                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1093:6: ( LEFT_PAREN )
07909:                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1093:8: LEFT_PAREN
07910:                {
07911:                    match(input, LEFT_PAREN, FOLLOW_LEFT_PAREN_in_synpred72990);
07912:                    if (failed)
07913:                        return;
07914:
07915:                }
07916:            }
07917:
07918:            // $ANTLR end synpred7
07919:
07920:            // $ANTLR start synpred8
07921:            public final void synpred8_fragment() throws RecognitionException {
07922:                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1394:6: ( DOUBLE_PIPE and_restr_connective[or] )
07923:                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1394:6: DOUBLE_PIPE and_restr_connective[or]
07924:                {
07925:                    match(input, DOUBLE_PIPE,
07926:                            FOLLOW_DOUBLE_PIPE_in_synpred83722);
07927:                    if (failed)
07928:                        return;
07929:                    pushFollow(FOLLOW_and_restr_connective_in_synpred83733);
07930:                    and_restr_connective(or);
07931:                    _fsp--;
07932:                    if (failed)
07933:                        return;
07934:
07935:                }
07936:            }
07937:
07938:            // $ANTLR end synpred8
07939:
07940:            // $ANTLR start synpred9
07941:            public final void synpred9_fragment() throws RecognitionException {
07942:                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1416:5: ( DOUBLE_AMPER constraint_expression[and] )
07943:                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1416:5: DOUBLE_AMPER constraint_expression[and]
07944:                {
07945:                    match(input, DOUBLE_AMPER,
07946:                            FOLLOW_DOUBLE_AMPER_in_synpred93786);
07947:                    if (failed)
07948:                        return;
07949:                    pushFollow(FOLLOW_constraint_expression_in_synpred93797);
07950:                    constraint_expression(and);
07951:                    _fsp--;
07952:                    if (failed)
07953:                        return;
07954:
07955:                }
07956:            }
07957:
07958:            // $ANTLR end synpred9
07959:
07960:            public final boolean synpred4() {
07961:                backtracking++;
07962:                int start = input.mark();
07963:                try {
07964:                    synpred4_fragment(); // can never throw exception
07965:                } catch (RecognitionException re) {
07966:                    System.err.println("impossible: " + re);
07967:                }
07968:                boolean success = !failed;
07969:                input.rewind(start);
07970:                backtracking--;
07971:                failed = false;
07972:                return success;
07973:            }
07974:
07975:            public final boolean synpred9() {
07976:                backtracking++;
07977:                int start = input.mark();
07978:                try {
07979:                    synpred9_fragment(); // can never throw exception
07980:                } catch (RecognitionException re) {
07981:                    System.err.println("impossible: " + re);
07982:                }
07983:                boolean success = !failed;
07984:                input.rewind(start);
07985:                backtracking--;
07986:                failed = false;
07987:                return success;
07988:            }
07989:
07990:            public final boolean synpred7() {
07991:                backtracking++;
07992:                int start = input.mark();
07993:                try {
07994:                    synpred7_fragment(); // can never throw exception
07995:                } catch (RecognitionException re) {
07996:                    System.err.println("impossible: " + re);
07997:                }
07998:                boolean success = !failed;
07999:                input.rewind(start);
08000:                backtracking--;
08001:                failed = false;
08002:                return success;
08003:            }
08004:
08005:            public final boolean synpred2() {
08006:                backtracking++;
08007:                int start = input.mark();
08008:                try {
08009:                    synpred2_fragment(); // can never throw exception
08010:                } catch (RecognitionException re) {
08011:                    System.err.println("impossible: " + re);
08012:                }
08013:                boolean success = !failed;
08014:                input.rewind(start);
08015:                backtracking--;
08016:                failed = false;
08017:                return success;
08018:            }
08019:
08020:            public final boolean synpred3() {
08021:                backtracking++;
08022:                int start = input.mark();
08023:                try {
08024:                    synpred3_fragment(); // can never throw exception
08025:                } catch (RecognitionException re) {
08026:                    System.err.println("impossible: " + re);
08027:                }
08028:                boolean success = !failed;
08029:                input.rewind(start);
08030:                backtracking--;
08031:                failed = false;
08032:                return success;
08033:            }
08034:
08035:            public final boolean synpred1() {
08036:                backtracking++;
08037:                int start = input.mark();
08038:                try {
08039:                    synpred1_fragment(); // can never throw exception
08040:                } catch (RecognitionException re) {
08041:                    System.err.println("impossible: " + re);
08042:                }
08043:                boolean success = !failed;
08044:                input.rewind(start);
08045:                backtracking--;
08046:                failed = false;
08047:                return success;
08048:            }
08049:
08050:            public final boolean synpred5() {
08051:                backtracking++;
08052:                int start = input.mark();
08053:                try {
08054:                    synpred5_fragment(); // can never throw exception
08055:                } catch (RecognitionException re) {
08056:                    System.err.println("impossible: " + re);
08057:                }
08058:                boolean success = !failed;
08059:                input.rewind(start);
08060:                backtracking--;
08061:                failed = false;
08062:                return success;
08063:            }
08064:
08065:            public final boolean synpred6() {
08066:                backtracking++;
08067:                int start = input.mark();
08068:                try {
08069:                    synpred6_fragment(); // can never throw exception
08070:                } catch (RecognitionException re) {
08071:                    System.err.println("impossible: " + re);
08072:                }
08073:                boolean success = !failed;
08074:                input.rewind(start);
08075:                backtracking--;
08076:                failed = false;
08077:                return success;
08078:            }
08079:
08080:            public final boolean synpred8() {
08081:                backtracking++;
08082:                int start = input.mark();
08083:                try {
08084:                    synpred8_fragment(); // can never throw exception
08085:                } catch (RecognitionException re) {
08086:                    System.err.println("impossible: " + re);
08087:                }
08088:                boolean success = !failed;
08089:                input.rewind(start);
08090:                backtracking--;
08091:                failed = false;
08092:                return success;
08093:            }
08094:
08095:            protected DFA8 dfa8 = new DFA8(this );
08096:            protected DFA9 dfa9 = new DFA9(this );
08097:            protected DFA17 dfa17 = new DFA17(this );
08098:            protected DFA52 dfa52 = new DFA52(this );
08099:            protected DFA64 dfa64 = new DFA64(this );
08100:            protected DFA65 dfa65 = new DFA65(this );
08101:            static final String DFA8_eotS = "\6\uffff";
08102:            static final String DFA8_eofS = "\6\uffff";
08103:            static final String DFA8_minS = "\2\4\1\73\2\uffff\1\4";
08104:            static final String DFA8_maxS = "\2\74\1\73\2\uffff\1\74";
08105:            static final String DFA8_acceptS = "\3\uffff\1\2\1\1\1\uffff";
08106:            static final String DFA8_specialS = "\6\uffff}>";
08107:            static final String[] DFA8_transitionS = {
08108:                    "\4\1\1\uffff\1\1\3\uffff\6\1\3\uffff\1\1\1\uffff\1\1\6\uffff"
08109:                            + "\2\1\5\uffff\1\1\5\uffff\4\1\1\uffff\5\1\6\uffff\1\1",
08110:                    "\6\4\1\uffff\2\3\6\4\3\uffff\1\4\1\uffff\1\4\6\uffff\2\4\5\uffff"
08111:                            + "\1\4\5\uffff\4\4\1\uffff\5\4\4\uffff\1\2\1\uffff\1\4",
08112:                    "\1\5",
08113:                    "",
08114:                    "",
08115:                    "\4\4\1\uffff\1\4\1\uffff\2\3\6\4\3\uffff\1\4\1\uffff\1\4\6\uffff"
08116:                            + "\2\4\5\uffff\1\4\5\uffff\4\4\1\uffff\5\4\4\uffff\1\2\1\uffff"
08117:                            + "\1\4" };
08118:
08119:            static final short[] DFA8_eot = DFA.unpackEncodedString(DFA8_eotS);
08120:            static final short[] DFA8_eof = DFA.unpackEncodedString(DFA8_eofS);
08121:            static final char[] DFA8_min = DFA
08122:                    .unpackEncodedStringToUnsignedChars(DFA8_minS);
08123:            static final char[] DFA8_max = DFA
08124:                    .unpackEncodedStringToUnsignedChars(DFA8_maxS);
08125:            static final short[] DFA8_accept = DFA
08126:                    .unpackEncodedString(DFA8_acceptS);
08127:            static final short[] DFA8_special = DFA
08128:                    .unpackEncodedString(DFA8_specialS);
08129:            static final short[][] DFA8_transition;
08130:
08131:            static {
08132:                int numStates = DFA8_transitionS.length;
08133:                DFA8_transition = new short[numStates][];
08134:                for (int i = 0; i < numStates; i++) {
08135:                    DFA8_transition[i] = DFA
08136:                            .unpackEncodedString(DFA8_transitionS[i]);
08137:                }
08138:            }
08139:
08140:            class DFA8 extends DFA {
08141:
08142:                public DFA8(BaseRecognizer recognizer) {
08143:                    this .recognizer = recognizer;
08144:                    this .decisionNumber = 8;
08145:                    this .eot = DFA8_eot;
08146:                    this .eof = DFA8_eof;
08147:                    this .min = DFA8_min;
08148:                    this .max = DFA8_max;
08149:                    this .accept = DFA8_accept;
08150:                    this .special = DFA8_special;
08151:                    this .transition = DFA8_transition;
08152:                }
08153:
08154:                public String getDescription() {
08155:                    return "340:15: (paramType= dotted_name )?";
08156:                }
08157:            }
08158:
08159:            static final String DFA9_eotS = "\6\uffff";
08160:            static final String DFA9_eofS = "\6\uffff";
08161:            static final String DFA9_minS = "\2\4\1\uffff\1\73\1\uffff\1\4";
08162:            static final String DFA9_maxS = "\2\74\1\uffff\1\73\1\uffff\1\74";
08163:            static final String DFA9_acceptS = "\2\uffff\1\1\1\uffff\1\2\1\uffff";
08164:            static final String DFA9_specialS = "\6\uffff}>";
08165:            static final String[] DFA9_transitionS = {
08166:                    "\4\1\1\uffff\1\1\3\uffff\6\1\3\uffff\1\1\1\uffff\1\1\6\uffff"
08167:                            + "\2\1\5\uffff\1\1\5\uffff\4\1\1\uffff\5\1\6\uffff\1\1",
08168:                    "\6\2\1\uffff\2\4\6\2\3\uffff\1\2\1\uffff\1\2\6\uffff\2\2\5\uffff"
08169:                            + "\1\2\5\uffff\4\2\1\uffff\5\2\4\uffff\1\3\1\uffff\1\2",
08170:                    "",
08171:                    "\1\5",
08172:                    "",
08173:                    "\4\2\1\uffff\1\2\1\uffff\2\4\6\2\3\uffff\1\2\1\uffff\1\2\6\uffff"
08174:                            + "\2\2\5\uffff\1\2\5\uffff\4\2\1\uffff\5\2\4\uffff\1\3\1\uffff"
08175:                            + "\1\2" };
08176:
08177:            static final short[] DFA9_eot = DFA.unpackEncodedString(DFA9_eotS);
08178:            static final short[] DFA9_eof = DFA.unpackEncodedString(DFA9_eofS);
08179:            static final char[] DFA9_min = DFA
08180:                    .unpackEncodedStringToUnsignedChars(DFA9_minS);
08181:            static final char[] DFA9_max = DFA
08182:                    .unpackEncodedStringToUnsignedChars(DFA9_maxS);
08183:            static final short[] DFA9_accept = DFA
08184:                    .unpackEncodedString(DFA9_acceptS);
08185:            static final short[] DFA9_special = DFA
08186:                    .unpackEncodedString(DFA9_specialS);
08187:            static final short[][] DFA9_transition;
08188:
08189:            static {
08190:                int numStates = DFA9_transitionS.length;
08191:                DFA9_transition = new short[numStates][];
08192:                for (int i = 0; i < numStates; i++) {
08193:                    DFA9_transition[i] = DFA
08194:                            .unpackEncodedString(DFA9_transitionS[i]);
08195:                }
08196:            }
08197:
08198:            class DFA9 extends DFA {
08199:
08200:                public DFA9(BaseRecognizer recognizer) {
08201:                    this .recognizer = recognizer;
08202:                    this .decisionNumber = 9;
08203:                    this .eot = DFA9_eot;
08204:                    this .eof = DFA9_eof;
08205:                    this .min = DFA9_min;
08206:                    this .max = DFA9_max;
08207:                    this .accept = DFA9_accept;
08208:                    this .special = DFA9_special;
08209:                    this .transition = DFA9_transition;
08210:                }
08211:
08212:                public String getDescription() {
08213:                    return "345:22: (paramType= dotted_name )?";
08214:                }
08215:            }
08216:
08217:            static final String DFA17_eotS = "\11\uffff";
08218:            static final String DFA17_eofS = "\11\uffff";
08219:            static final String DFA17_minS = "\2\7\1\uffff\1\7\1\uffff\1\4\1\73\2\7";
08220:            static final String DFA17_maxS = "\2\52\1\uffff\1\111\1\uffff\1\74\1\73\2\72";
08221:            static final String DFA17_acceptS = "\2\uffff\1\2\1\uffff\1\1\4\uffff";
08222:            static final String DFA17_specialS = "\11\uffff}>";
08223:            static final String[] DFA17_transitionS = {
08224:                    "\1\2\2\uffff\1\1\3\uffff\1\2\30\uffff\4\2",
08225:                    "\1\3\2\uffff\1\2\1\uffff\1\4\25\uffff\1\2\1\uffff\1\2\2\uffff"
08226:                            + "\4\2",
08227:                    "",
08228:                    "\1\4\1\5\1\uffff\1\2\2\4\55\uffff\1\6\16\uffff\1\2",
08229:                    "",
08230:                    "\4\7\1\uffff\1\7\3\uffff\6\7\3\uffff\1\7\1\uffff\1\7\6\uffff"
08231:                            + "\2\7\5\uffff\1\7\5\uffff\4\7\1\uffff\5\7\6\uffff\1\7",
08232:                    "\1\10", "\1\4\1\5\1\uffff\1\2\57\uffff\1\6",
08233:                    "\1\4\2\uffff\1\2\57\uffff\1\6" };
08234:
08235:            static final short[] DFA17_eot = DFA
08236:                    .unpackEncodedString(DFA17_eotS);
08237:            static final short[] DFA17_eof = DFA
08238:                    .unpackEncodedString(DFA17_eofS);
08239:            static final char[] DFA17_min = DFA
08240:                    .unpackEncodedStringToUnsignedChars(DFA17_minS);
08241:            static final char[] DFA17_max = DFA
08242:                    .unpackEncodedStringToUnsignedChars(DFA17_maxS);
08243:            static final short[] DFA17_accept = DFA
08244:                    .unpackEncodedString(DFA17_acceptS);
08245:            static final short[] DFA17_special = DFA
08246:                    .unpackEncodedString(DFA17_specialS);
08247:            static final short[][] DFA17_transition;
08248:
08249:            static {
08250:                int numStates = DFA17_transitionS.length;
08251:                DFA17_transition = new short[numStates][];
08252:                for (int i = 0; i < numStates; i++) {
08253:                    DFA17_transition[i] = DFA
08254:                            .unpackEncodedString(DFA17_transitionS[i]);
08255:                }
08256:            }
08257:
08258:            class DFA17 extends DFA {
08259:
08260:                public DFA17(BaseRecognizer recognizer) {
08261:                    this .recognizer = recognizer;
08262:                    this .decisionNumber = 17;
08263:                    this .eot = DFA17_eot;
08264:                    this .eof = DFA17_eof;
08265:                    this .min = DFA17_min;
08266:                    this .max = DFA17_max;
08267:                    this .accept = DFA17_accept;
08268:                    this .special = DFA17_special;
08269:                    this .transition = DFA17_transition;
08270:                }
08271:
08272:                public String getDescription() {
08273:                    return "389:3: ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )?";
08274:                }
08275:            }
08276:
08277:            static final String DFA52_eotS = "\150\uffff";
08278:            static final String DFA52_eofS = "\150\uffff";
08279:            static final String DFA52_minS = "\1\7\1\uffff\1\4\1\uffff\2\4\1\0\5\4\2\uffff\4\4\1\0\1\4\1\0\5\4"
08280:                    + "\1\0\1\4\1\0\1\4\2\0\3\4\2\0\2\4\3\0\3\4\2\0\2\4\3\0\2\4\1\0\4\4"
08281:                    + "\1\0\3\4\1\0\1\4\1\0\1\4\1\uffff\44\0";
08282:            static final String DFA52_maxS = "\1\107\1\uffff\1\120\1\uffff\2\120\1\0\5\120\2\uffff\4\120\1\0\1"
08283:                    + "\120\1\0\5\120\1\0\1\120\1\0\1\120\2\0\3\120\2\0\2\120\3\0\3\120"
08284:                    + "\2\0\2\120\3\0\2\120\1\0\4\120\1\0\3\120\1\0\1\120\1\0\1\120\1\uffff"
08285:                    + "\44\0";
08286:            static final String DFA52_acceptS = "\1\uffff\1\1\1\uffff\1\3\10\uffff\2\2\65\uffff\1\2\44\uffff";
08287:            static final String DFA52_specialS = "\1\56\1\uffff\1\70\1\uffff\1\17\1\13\1\24\1\7\1\11\1\20\1\66\1\32"
08288:                    + "\2\uffff\1\0\1\23\1\35\1\4\1\44\1\41\1\12\1\22\1\73\1\71\1\15\1"
08289:                    + "\54\1\46\1\31\1\34\1\30\1\55\1\61\1\74\1\1\1\63\1\53\1\45\1\40\1"
08290:                    + "\37\1\36\1\47\1\16\1\60\1\67\1\25\1\14\1\62\1\52\1\51\1\57\1\72"
08291:                    + "\1\5\1\26\1\6\1\10\1\50\1\75\1\2\1\64\1\42\1\76\1\3\1\65\1\43\1"
08292:                    + "\27\1\21\1\33\45\uffff}>";
08293:            static final String[] DFA52_transitionS = {
08294:                    "\2\3\1\uffff\1\2\2\3\1\uffff\1\3\23\uffff\4\3\1\uffff\4\3\1"
08295:                            + "\uffff\1\3\15\uffff\1\1\1\uffff\1\3\12\uffff\1\3",
08296:                    "",
08297:                    "\3\14\1\13\2\14\1\6\1\14\1\15\25\14\1\5\1\14\1\4\2\14\1\7\1"
08298:                            + "\10\1\11\1\12\46\14",
08299:                    "",
08300:                    "\3\14\1\23\2\14\1\22\1\14\1\15\32\14\1\16\1\17\1\20\1\21\46"
08301:                            + "\14",
08302:                    "\3\14\1\31\2\14\1\24\1\14\1\15\32\14\1\25\1\26\1\27\1\30\46"
08303:                            + "\14",
08304:                    "\1\uffff",
08305:                    "\3\14\1\33\2\14\1\32\1\14\1\15\104\14",
08306:                    "\3\14\1\35\2\14\1\34\1\14\1\15\104\14",
08307:                    "\6\14\1\36\1\14\1\15\104\14",
08308:                    "\6\14\1\37\1\14\1\15\104\14",
08309:                    "\4\14\1\41\1\14\1\43\1\14\1\15\55\14\1\42\16\14\1\40\7\14",
08310:                    "",
08311:                    "",
08312:                    "\3\14\1\45\2\14\1\44\1\14\1\15\104\14",
08313:                    "\3\14\1\46\2\14\1\47\1\14\1\15\104\14",
08314:                    "\6\14\1\50\1\14\1\15\104\14",
08315:                    "\6\14\1\51\1\14\1\15\104\14",
08316:                    "\1\uffff",
08317:                    "\4\14\1\53\1\14\1\55\1\14\1\15\55\14\1\54\16\14\1\52\7\14",
08318:                    "\1\uffff",
08319:                    "\3\14\1\57\2\14\1\56\1\14\1\15\104\14",
08320:                    "\3\14\1\60\2\14\1\61\1\14\1\15\104\14",
08321:                    "\6\14\1\62\1\14\1\15\104\14",
08322:                    "\6\14\1\63\1\14\1\15\104\14",
08323:                    "\4\14\1\65\1\14\1\66\1\14\1\15\55\14\1\67\16\14\1\64\7\14",
08324:                    "\1\uffff",
08325:                    "\4\14\1\71\1\14\1\73\1\14\1\15\55\14\1\72\16\14\1\70\7\14",
08326:                    "\1\uffff",
08327:                    "\4\14\1\75\1\14\1\77\1\14\1\15\55\14\1\76\16\14\1\74\7\14",
08328:                    "\1\uffff",
08329:                    "\1\uffff",
08330:                    "\3\14\1\100\2\14\1\101\1\14\1\15\104\14",
08331:                    "\4\102\1\14\1\102\1\103\1\14\1\15\6\102\3\14\1\102\1\14\1\102"
08332:                            + "\6\14\2\102\5\14\1\102\5\14\4\102\1\14\5\102\6\14\1\102\24\14",
08333:                    "\6\14\1\103\1\14\1\15\56\14\1\104\25\14",
08334:                    "\1\uffff",
08335:                    "\1\uffff",
08336:                    "\4\14\1\106\1\14\1\110\1\14\1\15\55\14\1\107\16\14\1\105\7\14",
08337:                    "\4\14\1\112\1\14\1\114\1\14\1\15\55\14\1\113\16\14\1\111\7\14",
08338:                    "\1\uffff",
08339:                    "\1\uffff",
08340:                    "\1\uffff",
08341:                    "\3\14\1\115\2\14\1\116\1\14\1\15\104\14",
08342:                    "\4\117\1\14\1\117\1\103\1\14\1\15\6\117\3\14\1\117\1\14\1\117"
08343:                            + "\6\14\2\117\5\14\1\117\5\14\4\117\1\14\5\117\6\14\1\117\24\14",
08344:                    "\6\14\1\103\1\14\1\15\56\14\1\120\25\14",
08345:                    "\1\uffff",
08346:                    "\1\uffff",
08347:                    "\4\14\1\122\1\14\1\124\1\14\1\15\55\14\1\123\16\14\1\121\7\14",
08348:                    "\4\14\1\126\1\14\1\127\1\14\1\15\55\14\1\130\16\14\1\125\7\14",
08349:                    "\1\uffff",
08350:                    "\1\uffff",
08351:                    "\1\uffff",
08352:                    "\3\14\1\131\2\14\1\132\1\14\1\15\104\14",
08353:                    "\4\133\1\14\1\133\1\103\1\14\1\15\6\133\3\14\1\133\1\14\1\133"
08354:                            + "\6\14\2\133\5\14\1\133\5\14\4\133\1\14\5\133\6\14\1\133\24\14",
08355:                    "\1\uffff",
08356:                    "\6\14\1\103\1\14\1\15\56\14\1\134\25\14",
08357:                    "\3\14\1\135\2\14\1\136\1\14\1\15\104\14",
08358:                    "\4\137\1\14\1\137\1\103\1\14\1\15\6\137\3\14\1\137\1\14\1\137"
08359:                            + "\6\14\2\137\5\14\1\137\5\14\4\137\1\14\5\137\6\14\1\137\24\14",
08360:                    "\6\14\1\103\1\14\1\15\56\14\1\140\25\14",
08361:                    "\1\uffff",
08362:                    "\3\14\1\141\2\14\1\142\1\14\1\15\104\14",
08363:                    "\4\143\1\14\1\143\1\103\1\14\1\15\6\143\3\14\1\143\1\14\1\143"
08364:                            + "\6\14\2\143\5\14\1\143\5\14\4\143\1\14\5\143\6\14\1\143\24\14",
08365:                    "\6\14\1\103\1\14\1\15\56\14\1\144\25\14", "\1\uffff",
08366:                    "\4\14\1\145\1\14\1\147\1\14\1\15\55\14\1\146\26\14",
08367:                    "\1\uffff",
08368:                    "\4\14\1\41\1\14\1\43\1\14\1\15\55\14\1\42\26\14", "",
08369:                    "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff",
08370:                    "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff",
08371:                    "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff",
08372:                    "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff",
08373:                    "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff",
08374:                    "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff",
08375:                    "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff",
08376:                    "\1\uffff" };
08377:
08378:            static final short[] DFA52_eot = DFA
08379:                    .unpackEncodedString(DFA52_eotS);
08380:            static final short[] DFA52_eof = DFA
08381:                    .unpackEncodedString(DFA52_eofS);
08382:            static final char[] DFA52_min = DFA
08383:                    .unpackEncodedStringToUnsignedChars(DFA52_minS);
08384:            static final char[] DFA52_max = DFA
08385:                    .unpackEncodedStringToUnsignedChars(DFA52_maxS);
08386:            static final short[] DFA52_accept = DFA
08387:                    .unpackEncodedString(DFA52_acceptS);
08388:            static final short[] DFA52_special = DFA
08389:                    .unpackEncodedString(DFA52_specialS);
08390:            static final short[][] DFA52_transition;
08391:
08392:            static {
08393:                int numStates = DFA52_transitionS.length;
08394:                DFA52_transition = new short[numStates][];
08395:                for (int i = 0; i < numStates; i++) {
08396:                    DFA52_transition[i] = DFA
08397:                            .unpackEncodedString(DFA52_transitionS[i]);
08398:                }
08399:            }
08400:
08401:            class DFA52 extends DFA {
08402:
08403:                public DFA52(BaseRecognizer recognizer) {
08404:                    this .recognizer = recognizer;
08405:                    this .decisionNumber = 52;
08406:                    this .eot = DFA52_eot;
08407:                    this .eof = DFA52_eof;
08408:                    this .min = DFA52_min;
08409:                    this .max = DFA52_max;
08410:                    this .accept = DFA52_accept;
08411:                    this .special = DFA52_special;
08412:                    this .transition = DFA52_transition;
08413:                }
08414:
08415:                public String getDescription() {
08416:                    return "1086:4: ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )?";
08417:                }
08418:
08419:                public int specialStateTransition(int s, IntStream input)
08420:                        throws NoViableAltException {
08421:                    int _s = s;
08422:                    switch (s) {
08423:                    case 0:
08424:                        int LA52_14 = input.LA(1);
08425:
08426:                        int index52_14 = input.index();
08427:                        input.rewind();
08428:                        s = -1;
08429:                        if ((LA52_14 == LEFT_PAREN)) {
08430:                            s = 36;
08431:                        }
08432:
08433:                        else if ((LA52_14 == ID)) {
08434:                            s = 37;
08435:                        }
08436:
08437:                        else if ((LA52_14 == RIGHT_PAREN) && (synpred7())) {
08438:                            s = 13;
08439:                        }
08440:
08441:                        else if (((LA52_14 >= PACKAGE && LA52_14 <= FUNCTION)
08442:                                || (LA52_14 >= DOT && LA52_14 <= GLOBAL)
08443:                                || LA52_14 == COMMA || (LA52_14 >= QUERY && LA52_14 <= 80))
08444:                                && (synpred7())) {
08445:                            s = 12;
08446:                        }
08447:
08448:                        input.seek(index52_14);
08449:                        if (s >= 0)
08450:                            return s;
08451:                        break;
08452:                    case 1:
08453:                        int LA52_33 = input.LA(1);
08454:
08455:                        int index52_33 = input.index();
08456:                        input.rewind();
08457:                        s = -1;
08458:                        if (((LA52_33 >= PACKAGE && LA52_33 <= ID)
08459:                                || LA52_33 == GLOBAL
08460:                                || (LA52_33 >= QUERY && LA52_33 <= ATTRIBUTES)
08461:                                || LA52_33 == ENABLED || LA52_33 == SALIENCE
08462:                                || (LA52_33 >= DURATION && LA52_33 <= DIALECT)
08463:                                || LA52_33 == FROM
08464:                                || (LA52_33 >= INIT && LA52_33 <= RESULT)
08465:                                || (LA52_33 >= CONTAINS && LA52_33 <= IN) || LA52_33 == THEN)) {
08466:                            s = 66;
08467:                        }
08468:
08469:                        else if ((LA52_33 == RIGHT_PAREN) && (synpred7())) {
08470:                            s = 13;
08471:                        }
08472:
08473:                        else if ((LA52_33 == DOT
08474:                                || LA52_33 == COMMA
08475:                                || (LA52_33 >= DATE_EFFECTIVE && LA52_33 <= DATE_EXPIRES)
08476:                                || LA52_33 == BOOL
08477:                                || (LA52_33 >= INT && LA52_33 <= AGENDA_GROUP)
08478:                                || (LA52_33 >= LOCK_ON_ACTIVE && LA52_33 <= DOUBLE_AMPER)
08479:                                || (LA52_33 >= EXISTS && LA52_33 <= ACCUMULATE)
08480:                                || LA52_33 == COLLECT
08481:                                || (LA52_33 >= FLOAT && LA52_33 <= RIGHT_SQUARE) || (LA52_33 >= EOL && LA52_33 <= 80))
08482:                                && (synpred7())) {
08483:                            s = 12;
08484:                        }
08485:
08486:                        else if ((LA52_33 == LEFT_PAREN) && (synpred7())) {
08487:                            s = 67;
08488:                        }
08489:
08490:                        input.seek(index52_33);
08491:                        if (s >= 0)
08492:                            return s;
08493:                        break;
08494:                    case 2:
08495:                        int LA52_57 = input.LA(1);
08496:
08497:                        int index52_57 = input.index();
08498:                        input.rewind();
08499:                        s = -1;
08500:                        if (((LA52_57 >= PACKAGE && LA52_57 <= ID)
08501:                                || LA52_57 == GLOBAL
08502:                                || (LA52_57 >= QUERY && LA52_57 <= ATTRIBUTES)
08503:                                || LA52_57 == ENABLED || LA52_57 == SALIENCE
08504:                                || (LA52_57 >= DURATION && LA52_57 <= DIALECT)
08505:                                || LA52_57 == FROM
08506:                                || (LA52_57 >= INIT && LA52_57 <= RESULT)
08507:                                || (LA52_57 >= CONTAINS && LA52_57 <= IN) || LA52_57 == THEN)) {
08508:                            s = 95;
08509:                        }
08510:
08511:                        else if ((LA52_57 == RIGHT_PAREN) && (synpred7())) {
08512:                            s = 13;
08513:                        }
08514:
08515:                        else if ((LA52_57 == DOT
08516:                                || LA52_57 == COMMA
08517:                                || (LA52_57 >= DATE_EFFECTIVE && LA52_57 <= DATE_EXPIRES)
08518:                                || LA52_57 == BOOL
08519:                                || (LA52_57 >= INT && LA52_57 <= AGENDA_GROUP)
08520:                                || (LA52_57 >= LOCK_ON_ACTIVE && LA52_57 <= DOUBLE_AMPER)
08521:                                || (LA52_57 >= EXISTS && LA52_57 <= ACCUMULATE)
08522:                                || LA52_57 == COLLECT
08523:                                || (LA52_57 >= FLOAT && LA52_57 <= RIGHT_SQUARE) || (LA52_57 >= EOL && LA52_57 <= 80))
08524:                                && (synpred7())) {
08525:                            s = 12;
08526:                        }
08527:
08528:                        else if ((LA52_57 == LEFT_PAREN) && (synpred7())) {
08529:                            s = 67;
08530:                        }
08531:
08532:                        input.seek(index52_57);
08533:                        if (s >= 0)
08534:                            return s;
08535:                        break;
08536:                    case 3:
08537:                        int LA52_61 = input.LA(1);
08538:
08539:                        int index52_61 = input.index();
08540:                        input.rewind();
08541:                        s = -1;
08542:                        if (((LA52_61 >= PACKAGE && LA52_61 <= ID)
08543:                                || LA52_61 == GLOBAL
08544:                                || (LA52_61 >= QUERY && LA52_61 <= ATTRIBUTES)
08545:                                || LA52_61 == ENABLED || LA52_61 == SALIENCE
08546:                                || (LA52_61 >= DURATION && LA52_61 <= DIALECT)
08547:                                || LA52_61 == FROM
08548:                                || (LA52_61 >= INIT && LA52_61 <= RESULT)
08549:                                || (LA52_61 >= CONTAINS && LA52_61 <= IN) || LA52_61 == THEN)) {
08550:                            s = 99;
08551:                        }
08552:
08553:                        else if ((LA52_61 == RIGHT_PAREN) && (synpred7())) {
08554:                            s = 13;
08555:                        }
08556:
08557:                        else if ((LA52_61 == DOT
08558:                                || LA52_61 == COMMA
08559:                                || (LA52_61 >= DATE_EFFECTIVE && LA52_61 <= DATE_EXPIRES)
08560:                                || LA52_61 == BOOL
08561:                                || (LA52_61 >= INT && LA52_61 <= AGENDA_GROUP)
08562:                                || (LA52_61 >= LOCK_ON_ACTIVE && LA52_61 <= DOUBLE_AMPER)
08563:                                || (LA52_61 >= EXISTS && LA52_61 <= ACCUMULATE)
08564:                                || LA52_61 == COLLECT
08565:                                || (LA52_61 >= FLOAT && LA52_61 <= RIGHT_SQUARE) || (LA52_61 >= EOL && LA52_61 <= 80))
08566:                                && (synpred7())) {
08567:                            s = 12;
08568:                        }
08569:
08570:                        else if ((LA52_61 == LEFT_PAREN) && (synpred7())) {
08571:                            s = 67;
08572:                        }
08573:
08574:                        input.seek(index52_61);
08575:                        if (s >= 0)
08576:                            return s;
08577:                        break;
08578:                    case 4:
08579:                        int LA52_17 = input.LA(1);
08580:
08581:                        int index52_17 = input.index();
08582:                        input.rewind();
08583:                        s = -1;
08584:                        if ((LA52_17 == LEFT_PAREN)) {
08585:                            s = 41;
08586:                        }
08587:
08588:                        else if ((LA52_17 == RIGHT_PAREN) && (synpred7())) {
08589:                            s = 13;
08590:                        }
08591:
08592:                        else if (((LA52_17 >= PACKAGE && LA52_17 <= GLOBAL)
08593:                                || LA52_17 == COMMA || (LA52_17 >= QUERY && LA52_17 <= 80))
08594:                                && (synpred7())) {
08595:                            s = 12;
08596:                        }
08597:
08598:                        input.seek(index52_17);
08599:                        if (s >= 0)
08600:                            return s;
08601:                        break;
08602:                    case 5:
08603:                        int LA52_51 = input.LA(1);
08604:
08605:                        int index52_51 = input.index();
08606:                        input.rewind();
08607:                        s = -1;
08608:                        if ((synpred7())) {
08609:                            s = 67;
08610:                        }
08611:
08612:                        else if ((true)) {
08613:                            s = 3;
08614:                        }
08615:
08616:                        input.seek(index52_51);
08617:                        if (s >= 0)
08618:                            return s;
08619:                        break;
08620:                    case 6:
08621:                        int LA52_53 = input.LA(1);
08622:
08623:                        int index52_53 = input.index();
08624:                        input.rewind();
08625:                        s = -1;
08626:                        if (((LA52_53 >= PACKAGE && LA52_53 <= ID)
08627:                                || LA52_53 == GLOBAL
08628:                                || (LA52_53 >= QUERY && LA52_53 <= ATTRIBUTES)
08629:                                || LA52_53 == ENABLED || LA52_53 == SALIENCE
08630:                                || (LA52_53 >= DURATION && LA52_53 <= DIALECT)
08631:                                || LA52_53 == FROM
08632:                                || (LA52_53 >= INIT && LA52_53 <= RESULT)
08633:                                || (LA52_53 >= CONTAINS && LA52_53 <= IN) || LA52_53 == THEN)) {
08634:                            s = 91;
08635:                        }
08636:
08637:                        else if ((LA52_53 == RIGHT_PAREN) && (synpred7())) {
08638:                            s = 13;
08639:                        }
08640:
08641:                        else if ((LA52_53 == DOT
08642:                                || LA52_53 == COMMA
08643:                                || (LA52_53 >= DATE_EFFECTIVE && LA52_53 <= DATE_EXPIRES)
08644:                                || LA52_53 == BOOL
08645:                                || (LA52_53 >= INT && LA52_53 <= AGENDA_GROUP)
08646:                                || (LA52_53 >= LOCK_ON_ACTIVE && LA52_53 <= DOUBLE_AMPER)
08647:                                || (LA52_53 >= EXISTS && LA52_53 <= ACCUMULATE)
08648:                                || LA52_53 == COLLECT
08649:                                || (LA52_53 >= FLOAT && LA52_53 <= RIGHT_SQUARE) || (LA52_53 >= EOL && LA52_53 <= 80))
08650:                                && (synpred7())) {
08651:                            s = 12;
08652:                        }
08653:
08654:                        else if ((LA52_53 == LEFT_PAREN) && (synpred7())) {
08655:                            s = 67;
08656:                        }
08657:
08658:                        input.seek(index52_53);
08659:                        if (s >= 0)
08660:                            return s;
08661:                        break;
08662:                    case 7:
08663:                        int LA52_7 = input.LA(1);
08664:
08665:                        int index52_7 = input.index();
08666:                        input.rewind();
08667:                        s = -1;
08668:                        if ((LA52_7 == LEFT_PAREN)) {
08669:                            s = 26;
08670:                        }
08671:
08672:                        else if ((LA52_7 == ID)) {
08673:                            s = 27;
08674:                        }
08675:
08676:                        else if ((LA52_7 == RIGHT_PAREN) && (synpred7())) {
08677:                            s = 13;
08678:                        }
08679:
08680:                        else if (((LA52_7 >= PACKAGE && LA52_7 <= FUNCTION)
08681:                                || (LA52_7 >= DOT && LA52_7 <= GLOBAL)
08682:                                || LA52_7 == COMMA || (LA52_7 >= QUERY && LA52_7 <= 80))
08683:                                && (synpred7())) {
08684:                            s = 12;
08685:                        }
08686:
08687:                        input.seek(index52_7);
08688:                        if (s >= 0)
08689:                            return s;
08690:                        break;
08691:                    case 8:
08692:                        int LA52_54 = input.LA(1);
08693:
08694:                        int index52_54 = input.index();
08695:                        input.rewind();
08696:                        s = -1;
08697:                        if ((synpred7())) {
08698:                            s = 67;
08699:                        }
08700:
08701:                        else if ((true)) {
08702:                            s = 3;
08703:                        }
08704:
08705:                        input.seek(index52_54);
08706:                        if (s >= 0)
08707:                            return s;
08708:                        break;
08709:                    case 9:
08710:                        int LA52_8 = input.LA(1);
08711:
08712:                        int index52_8 = input.index();
08713:                        input.rewind();
08714:                        s = -1;
08715:                        if ((LA52_8 == LEFT_PAREN)) {
08716:                            s = 28;
08717:                        }
08718:
08719:                        else if ((LA52_8 == ID)) {
08720:                            s = 29;
08721:                        }
08722:
08723:                        else if ((LA52_8 == RIGHT_PAREN) && (synpred7())) {
08724:                            s = 13;
08725:                        }
08726:
08727:                        else if (((LA52_8 >= PACKAGE && LA52_8 <= FUNCTION)
08728:                                || (LA52_8 >= DOT && LA52_8 <= GLOBAL)
08729:                                || LA52_8 == COMMA || (LA52_8 >= QUERY && LA52_8 <= 80))
08730:                                && (synpred7())) {
08731:                            s = 12;
08732:                        }
08733:
08734:                        input.seek(index52_8);
08735:                        if (s >= 0)
08736:                            return s;
08737:                        break;
08738:                    case 10:
08739:                        int LA52_20 = input.LA(1);
08740:
08741:                        int index52_20 = input.index();
08742:                        input.rewind();
08743:                        s = -1;
08744:                        if ((synpred7())) {
08745:                            s = 13;
08746:                        }
08747:
08748:                        else if ((true)) {
08749:                            s = 3;
08750:                        }
08751:
08752:                        input.seek(index52_20);
08753:                        if (s >= 0)
08754:                            return s;
08755:                        break;
08756:                    case 11:
08757:                        int LA52_5 = input.LA(1);
08758:
08759:                        int index52_5 = input.index();
08760:                        input.rewind();
08761:                        s = -1;
08762:                        if ((LA52_5 == LEFT_PAREN)) {
08763:                            s = 20;
08764:                        }
08765:
08766:                        else if ((LA52_5 == EXISTS)) {
08767:                            s = 21;
08768:                        }
08769:
08770:                        else if ((LA52_5 == NOT)) {
08771:                            s = 22;
08772:                        }
08773:
08774:                        else if ((LA52_5 == EVAL)) {
08775:                            s = 23;
08776:                        }
08777:
08778:                        else if ((LA52_5 == FORALL)) {
08779:                            s = 24;
08780:                        }
08781:
08782:                        else if ((LA52_5 == ID)) {
08783:                            s = 25;
08784:                        }
08785:
08786:                        else if ((LA52_5 == RIGHT_PAREN) && (synpred7())) {
08787:                            s = 13;
08788:                        }
08789:
08790:                        else if (((LA52_5 >= PACKAGE && LA52_5 <= FUNCTION)
08791:                                || (LA52_5 >= DOT && LA52_5 <= GLOBAL)
08792:                                || LA52_5 == COMMA
08793:                                || (LA52_5 >= QUERY && LA52_5 <= FROM) || (LA52_5 >= ACCUMULATE && LA52_5 <= 80))
08794:                                && (synpred7())) {
08795:                            s = 12;
08796:                        }
08797:
08798:                        input.seek(index52_5);
08799:                        if (s >= 0)
08800:                            return s;
08801:                        break;
08802:                    case 12:
08803:                        int LA52_45 = input.LA(1);
08804:
08805:                        int index52_45 = input.index();
08806:                        input.rewind();
08807:                        s = -1;
08808:                        if ((synpred7())) {
08809:                            s = 67;
08810:                        }
08811:
08812:                        else if ((true)) {
08813:                            s = 3;
08814:                        }
08815:
08816:                        input.seek(index52_45);
08817:                        if (s >= 0)
08818:                            return s;
08819:                        break;
08820:                    case 13:
08821:                        int LA52_24 = input.LA(1);
08822:
08823:                        int index52_24 = input.index();
08824:                        input.rewind();
08825:                        s = -1;
08826:                        if ((LA52_24 == LEFT_PAREN)) {
08827:                            s = 51;
08828:                        }
08829:
08830:                        else if ((LA52_24 == RIGHT_PAREN) && (synpred7())) {
08831:                            s = 13;
08832:                        }
08833:
08834:                        else if (((LA52_24 >= PACKAGE && LA52_24 <= GLOBAL)
08835:                                || LA52_24 == COMMA || (LA52_24 >= QUERY && LA52_24 <= 80))
08836:                                && (synpred7())) {
08837:                            s = 12;
08838:                        }
08839:
08840:                        input.seek(index52_24);
08841:                        if (s >= 0)
08842:                            return s;
08843:                        break;
08844:                    case 14:
08845:                        int LA52_41 = input.LA(1);
08846:
08847:                        int index52_41 = input.index();
08848:                        input.rewind();
08849:                        s = -1;
08850:                        if ((synpred7())) {
08851:                            s = 67;
08852:                        }
08853:
08854:                        else if ((true)) {
08855:                            s = 3;
08856:                        }
08857:
08858:                        input.seek(index52_41);
08859:                        if (s >= 0)
08860:                            return s;
08861:                        break;
08862:                    case 15:
08863:                        int LA52_4 = input.LA(1);
08864:
08865:                        int index52_4 = input.index();
08866:                        input.rewind();
08867:                        s = -1;
08868:                        if ((LA52_4 == EXISTS)) {
08869:                            s = 14;
08870:                        }
08871:
08872:                        else if ((LA52_4 == NOT)) {
08873:                            s = 15;
08874:                        }
08875:
08876:                        else if ((LA52_4 == EVAL)) {
08877:                            s = 16;
08878:                        }
08879:
08880:                        else if ((LA52_4 == FORALL)) {
08881:                            s = 17;
08882:                        }
08883:
08884:                        else if ((LA52_4 == LEFT_PAREN)) {
08885:                            s = 18;
08886:                        }
08887:
08888:                        else if ((LA52_4 == ID)) {
08889:                            s = 19;
08890:                        }
08891:
08892:                        else if ((LA52_4 == RIGHT_PAREN) && (synpred7())) {
08893:                            s = 13;
08894:                        }
08895:
08896:                        else if (((LA52_4 >= PACKAGE && LA52_4 <= FUNCTION)
08897:                                || (LA52_4 >= DOT && LA52_4 <= GLOBAL)
08898:                                || LA52_4 == COMMA
08899:                                || (LA52_4 >= QUERY && LA52_4 <= FROM) || (LA52_4 >= ACCUMULATE && LA52_4 <= 80))
08900:                                && (synpred7())) {
08901:                            s = 12;
08902:                        }
08903:
08904:                        input.seek(index52_4);
08905:                        if (s >= 0)
08906:                            return s;
08907:                        break;
08908:                    case 16:
08909:                        int LA52_9 = input.LA(1);
08910:
08911:                        int index52_9 = input.index();
08912:                        input.rewind();
08913:                        s = -1;
08914:                        if ((LA52_9 == LEFT_PAREN)) {
08915:                            s = 30;
08916:                        }
08917:
08918:                        else if ((LA52_9 == RIGHT_PAREN) && (synpred7())) {
08919:                            s = 13;
08920:                        }
08921:
08922:                        else if (((LA52_9 >= PACKAGE && LA52_9 <= GLOBAL)
08923:                                || LA52_9 == COMMA || (LA52_9 >= QUERY && LA52_9 <= 80))
08924:                                && (synpred7())) {
08925:                            s = 12;
08926:                        }
08927:
08928:                        input.seek(index52_9);
08929:                        if (s >= 0)
08930:                            return s;
08931:                        break;
08932:                    case 17:
08933:                        int LA52_65 = input.LA(1);
08934:
08935:                        int index52_65 = input.index();
08936:                        input.rewind();
08937:                        s = -1;
08938:                        if ((synpred7())) {
08939:                            s = 67;
08940:                        }
08941:
08942:                        else if ((true)) {
08943:                            s = 3;
08944:                        }
08945:
08946:                        input.seek(index52_65);
08947:                        if (s >= 0)
08948:                            return s;
08949:                        break;
08950:                    case 18:
08951:                        int LA52_21 = input.LA(1);
08952:
08953:                        int index52_21 = input.index();
08954:                        input.rewind();
08955:                        s = -1;
08956:                        if ((LA52_21 == LEFT_PAREN)) {
08957:                            s = 46;
08958:                        }
08959:
08960:                        else if ((LA52_21 == ID)) {
08961:                            s = 47;
08962:                        }
08963:
08964:                        else if ((LA52_21 == RIGHT_PAREN) && (synpred7())) {
08965:                            s = 13;
08966:                        }
08967:
08968:                        else if (((LA52_21 >= PACKAGE && LA52_21 <= FUNCTION)
08969:                                || (LA52_21 >= DOT && LA52_21 <= GLOBAL)
08970:                                || LA52_21 == COMMA || (LA52_21 >= QUERY && LA52_21 <= 80))
08971:                                && (synpred7())) {
08972:                            s = 12;
08973:                        }
08974:
08975:                        input.seek(index52_21);
08976:                        if (s >= 0)
08977:                            return s;
08978:                        break;
08979:                    case 19:
08980:                        int LA52_15 = input.LA(1);
08981:
08982:                        int index52_15 = input.index();
08983:                        input.rewind();
08984:                        s = -1;
08985:                        if ((LA52_15 == RIGHT_PAREN) && (synpred7())) {
08986:                            s = 13;
08987:                        }
08988:
08989:                        else if ((LA52_15 == ID)) {
08990:                            s = 38;
08991:                        }
08992:
08993:                        else if ((LA52_15 == LEFT_PAREN)) {
08994:                            s = 39;
08995:                        }
08996:
08997:                        else if (((LA52_15 >= PACKAGE && LA52_15 <= FUNCTION)
08998:                                || (LA52_15 >= DOT && LA52_15 <= GLOBAL)
08999:                                || LA52_15 == COMMA || (LA52_15 >= QUERY && LA52_15 <= 80))
09000:                                && (synpred7())) {
09001:                            s = 12;
09002:                        }
09003:
09004:                        input.seek(index52_15);
09005:                        if (s >= 0)
09006:                            return s;
09007:                        break;
09008:                    case 20:
09009:                        int LA52_6 = input.LA(1);
09010:
09011:                        int index52_6 = input.index();
09012:                        input.rewind();
09013:                        s = -1;
09014:                        if ((synpred7())) {
09015:                            s = 13;
09016:                        }
09017:
09018:                        else if ((true)) {
09019:                            s = 3;
09020:                        }
09021:
09022:                        input.seek(index52_6);
09023:                        if (s >= 0)
09024:                            return s;
09025:                        break;
09026:                    case 21:
09027:                        int LA52_44 = input.LA(1);
09028:
09029:                        int index52_44 = input.index();
09030:                        input.rewind();
09031:                        s = -1;
09032:                        if ((LA52_44 == RIGHT_SQUARE)) {
09033:                            s = 80;
09034:                        }
09035:
09036:                        else if ((LA52_44 == RIGHT_PAREN) && (synpred7())) {
09037:                            s = 13;
09038:                        }
09039:
09040:                        else if (((LA52_44 >= PACKAGE && LA52_44 <= GLOBAL)
09041:                                || LA52_44 == COMMA
09042:                                || (LA52_44 >= QUERY && LA52_44 <= LEFT_SQUARE) || (LA52_44 >= THEN && LA52_44 <= 80))
09043:                                && (synpred7())) {
09044:                            s = 12;
09045:                        }
09046:
09047:                        else if ((LA52_44 == LEFT_PAREN) && (synpred7())) {
09048:                            s = 67;
09049:                        }
09050:
09051:                        input.seek(index52_44);
09052:                        if (s >= 0)
09053:                            return s;
09054:                        break;
09055:                    case 22:
09056:                        int LA52_52 = input.LA(1);
09057:
09058:                        int index52_52 = input.index();
09059:                        input.rewind();
09060:                        s = -1;
09061:                        if ((LA52_52 == RIGHT_PAREN) && (synpred7())) {
09062:                            s = 13;
09063:                        }
09064:
09065:                        else if ((LA52_52 == ID)) {
09066:                            s = 89;
09067:                        }
09068:
09069:                        else if ((LA52_52 == LEFT_PAREN)) {
09070:                            s = 90;
09071:                        }
09072:
09073:                        else if (((LA52_52 >= PACKAGE && LA52_52 <= FUNCTION)
09074:                                || (LA52_52 >= DOT && LA52_52 <= GLOBAL)
09075:                                || LA52_52 == COMMA || (LA52_52 >= QUERY && LA52_52 <= 80))
09076:                                && (synpred7())) {
09077:                            s = 12;
09078:                        }
09079:
09080:                        input.seek(index52_52);
09081:                        if (s >= 0)
09082:                            return s;
09083:                        break;
09084:                    case 23:
09085:                        int LA52_64 = input.LA(1);
09086:
09087:                        int index52_64 = input.index();
09088:                        input.rewind();
09089:                        s = -1;
09090:                        if ((LA52_64 == DOT)) {
09091:                            s = 101;
09092:                        }
09093:
09094:                        else if ((LA52_64 == LEFT_SQUARE)) {
09095:                            s = 102;
09096:                        }
09097:
09098:                        else if ((LA52_64 == LEFT_PAREN)) {
09099:                            s = 103;
09100:                        }
09101:
09102:                        else if ((LA52_64 == RIGHT_PAREN) && (synpred7())) {
09103:                            s = 13;
09104:                        }
09105:
09106:                        else if (((LA52_64 >= PACKAGE && LA52_64 <= ID)
09107:                                || LA52_64 == GLOBAL || LA52_64 == COMMA
09108:                                || (LA52_64 >= QUERY && LA52_64 <= RIGHT_CURLY) || (LA52_64 >= RIGHT_SQUARE && LA52_64 <= 80))
09109:                                && (synpred7())) {
09110:                            s = 12;
09111:                        }
09112:
09113:                        input.seek(index52_64);
09114:                        if (s >= 0)
09115:                            return s;
09116:                        break;
09117:                    case 24:
09118:                        int LA52_29 = input.LA(1);
09119:
09120:                        int index52_29 = input.index();
09121:                        input.rewind();
09122:                        s = -1;
09123:                        if ((LA52_29 == 73)) {
09124:                            s = 60;
09125:                        }
09126:
09127:                        else if ((LA52_29 == DOT)) {
09128:                            s = 61;
09129:                        }
09130:
09131:                        else if ((LA52_29 == LEFT_SQUARE)) {
09132:                            s = 62;
09133:                        }
09134:
09135:                        else if ((LA52_29 == LEFT_PAREN)) {
09136:                            s = 63;
09137:                        }
09138:
09139:                        else if ((LA52_29 == RIGHT_PAREN) && (synpred7())) {
09140:                            s = 13;
09141:                        }
09142:
09143:                        else if (((LA52_29 >= PACKAGE && LA52_29 <= ID)
09144:                                || LA52_29 == GLOBAL || LA52_29 == COMMA
09145:                                || (LA52_29 >= QUERY && LA52_29 <= RIGHT_CURLY)
09146:                                || (LA52_29 >= RIGHT_SQUARE && LA52_29 <= 72) || (LA52_29 >= 74 && LA52_29 <= 80))
09147:                                && (synpred7())) {
09148:                            s = 12;
09149:                        }
09150:
09151:                        input.seek(index52_29);
09152:                        if (s >= 0)
09153:                            return s;
09154:                        break;
09155:                    case 25:
09156:                        int LA52_27 = input.LA(1);
09157:
09158:                        int index52_27 = input.index();
09159:                        input.rewind();
09160:                        s = -1;
09161:                        if ((LA52_27 == 73)) {
09162:                            s = 56;
09163:                        }
09164:
09165:                        else if ((LA52_27 == DOT)) {
09166:                            s = 57;
09167:                        }
09168:
09169:                        else if ((LA52_27 == LEFT_SQUARE)) {
09170:                            s = 58;
09171:                        }
09172:
09173:                        else if ((LA52_27 == LEFT_PAREN)) {
09174:                            s = 59;
09175:                        }
09176:
09177:                        else if ((LA52_27 == RIGHT_PAREN) && (synpred7())) {
09178:                            s = 13;
09179:                        }
09180:
09181:                        else if (((LA52_27 >= PACKAGE && LA52_27 <= ID)
09182:                                || LA52_27 == GLOBAL || LA52_27 == COMMA
09183:                                || (LA52_27 >= QUERY && LA52_27 <= RIGHT_CURLY)
09184:                                || (LA52_27 >= RIGHT_SQUARE && LA52_27 <= 72) || (LA52_27 >= 74 && LA52_27 <= 80))
09185:                                && (synpred7())) {
09186:                            s = 12;
09187:                        }
09188:
09189:                        input.seek(index52_27);
09190:                        if (s >= 0)
09191:                            return s;
09192:                        break;
09193:                    case 26:
09194:                        int LA52_11 = input.LA(1);
09195:
09196:                        int index52_11 = input.index();
09197:                        input.rewind();
09198:                        s = -1;
09199:                        if ((LA52_11 == 73)) {
09200:                            s = 32;
09201:                        }
09202:
09203:                        else if ((LA52_11 == DOT)) {
09204:                            s = 33;
09205:                        }
09206:
09207:                        else if ((LA52_11 == LEFT_SQUARE)) {
09208:                            s = 34;
09209:                        }
09210:
09211:                        else if ((LA52_11 == LEFT_PAREN)) {
09212:                            s = 35;
09213:                        }
09214:
09215:                        else if ((LA52_11 == RIGHT_PAREN) && (synpred7())) {
09216:                            s = 13;
09217:                        }
09218:
09219:                        else if (((LA52_11 >= PACKAGE && LA52_11 <= ID)
09220:                                || LA52_11 == GLOBAL || LA52_11 == COMMA
09221:                                || (LA52_11 >= QUERY && LA52_11 <= RIGHT_CURLY)
09222:                                || (LA52_11 >= RIGHT_SQUARE && LA52_11 <= 72) || (LA52_11 >= 74 && LA52_11 <= 80))
09223:                                && (synpred7())) {
09224:                            s = 12;
09225:                        }
09226:
09227:                        input.seek(index52_11);
09228:                        if (s >= 0)
09229:                            return s;
09230:                        break;
09231:                    case 27:
09232:                        int LA52_66 = input.LA(1);
09233:
09234:                        int index52_66 = input.index();
09235:                        input.rewind();
09236:                        s = -1;
09237:                        if ((LA52_66 == LEFT_SQUARE)) {
09238:                            s = 34;
09239:                        }
09240:
09241:                        else if ((LA52_66 == LEFT_PAREN)) {
09242:                            s = 35;
09243:                        }
09244:
09245:                        else if ((LA52_66 == DOT)) {
09246:                            s = 33;
09247:                        }
09248:
09249:                        else if ((LA52_66 == RIGHT_PAREN) && (synpred7())) {
09250:                            s = 13;
09251:                        }
09252:
09253:                        else if (((LA52_66 >= PACKAGE && LA52_66 <= ID)
09254:                                || LA52_66 == GLOBAL || LA52_66 == COMMA
09255:                                || (LA52_66 >= QUERY && LA52_66 <= RIGHT_CURLY) || (LA52_66 >= RIGHT_SQUARE && LA52_66 <= 80))
09256:                                && (synpred7())) {
09257:                            s = 12;
09258:                        }
09259:
09260:                        input.seek(index52_66);
09261:                        if (s >= 0)
09262:                            return s;
09263:                        break;
09264:                    case 28:
09265:                        int LA52_28 = input.LA(1);
09266:
09267:                        int index52_28 = input.index();
09268:                        input.rewind();
09269:                        s = -1;
09270:                        if ((synpred7())) {
09271:                            s = 13;
09272:                        }
09273:
09274:                        else if ((true)) {
09275:                            s = 3;
09276:                        }
09277:
09278:                        input.seek(index52_28);
09279:                        if (s >= 0)
09280:                            return s;
09281:                        break;
09282:                    case 29:
09283:                        int LA52_16 = input.LA(1);
09284:
09285:                        int index52_16 = input.index();
09286:                        input.rewind();
09287:                        s = -1;
09288:                        if ((LA52_16 == LEFT_PAREN)) {
09289:                            s = 40;
09290:                        }
09291:
09292:                        else if ((LA52_16 == RIGHT_PAREN) && (synpred7())) {
09293:                            s = 13;
09294:                        }
09295:
09296:                        else if (((LA52_16 >= PACKAGE && LA52_16 <= GLOBAL)
09297:                                || LA52_16 == COMMA || (LA52_16 >= QUERY && LA52_16 <= 80))
09298:                                && (synpred7())) {
09299:                            s = 12;
09300:                        }
09301:
09302:                        input.seek(index52_16);
09303:                        if (s >= 0)
09304:                            return s;
09305:                        break;
09306:                    case 30:
09307:                        int LA52_39 = input.LA(1);
09308:
09309:                        int index52_39 = input.index();
09310:                        input.rewind();
09311:                        s = -1;
09312:                        if ((synpred7())) {
09313:                            s = 67;
09314:                        }
09315:
09316:                        else if ((true)) {
09317:                            s = 3;
09318:                        }
09319:
09320:                        input.seek(index52_39);
09321:                        if (s >= 0)
09322:                            return s;
09323:                        break;
09324:                    case 31:
09325:                        int LA52_38 = input.LA(1);
09326:
09327:                        int index52_38 = input.index();
09328:                        input.rewind();
09329:                        s = -1;
09330:                        if ((LA52_38 == 73)) {
09331:                            s = 73;
09332:                        }
09333:
09334:                        else if ((LA52_38 == DOT)) {
09335:                            s = 74;
09336:                        }
09337:
09338:                        else if ((LA52_38 == LEFT_SQUARE)) {
09339:                            s = 75;
09340:                        }
09341:
09342:                        else if ((LA52_38 == LEFT_PAREN)) {
09343:                            s = 76;
09344:                        }
09345:
09346:                        else if ((LA52_38 == RIGHT_PAREN) && (synpred7())) {
09347:                            s = 13;
09348:                        }
09349:
09350:                        else if (((LA52_38 >= PACKAGE && LA52_38 <= ID)
09351:                                || LA52_38 == GLOBAL || LA52_38 == COMMA
09352:                                || (LA52_38 >= QUERY && LA52_38 <= RIGHT_CURLY)
09353:                                || (LA52_38 >= RIGHT_SQUARE && LA52_38 <= 72) || (LA52_38 >= 74 && LA52_38 <= 80))
09354:                                && (synpred7())) {
09355:                            s = 12;
09356:                        }
09357:
09358:                        input.seek(index52_38);
09359:                        if (s >= 0)
09360:                            return s;
09361:                        break;
09362:                    case 32:
09363:                        int LA52_37 = input.LA(1);
09364:
09365:                        int index52_37 = input.index();
09366:                        input.rewind();
09367:                        s = -1;
09368:                        if ((LA52_37 == 73)) {
09369:                            s = 69;
09370:                        }
09371:
09372:                        else if ((LA52_37 == DOT)) {
09373:                            s = 70;
09374:                        }
09375:
09376:                        else if ((LA52_37 == LEFT_SQUARE)) {
09377:                            s = 71;
09378:                        }
09379:
09380:                        else if ((LA52_37 == LEFT_PAREN)) {
09381:                            s = 72;
09382:                        }
09383:
09384:                        else if ((LA52_37 == RIGHT_PAREN) && (synpred7())) {
09385:                            s = 13;
09386:                        }
09387:
09388:                        else if (((LA52_37 >= PACKAGE && LA52_37 <= ID)
09389:                                || LA52_37 == GLOBAL || LA52_37 == COMMA
09390:                                || (LA52_37 >= QUERY && LA52_37 <= RIGHT_CURLY)
09391:                                || (LA52_37 >= RIGHT_SQUARE && LA52_37 <= 72) || (LA52_37 >= 74 && LA52_37 <= 80))
09392:                                && (synpred7())) {
09393:                            s = 12;
09394:                        }
09395:
09396:                        input.seek(index52_37);
09397:                        if (s >= 0)
09398:                            return s;
09399:                        break;
09400:                    case 33:
09401:                        int LA52_19 = input.LA(1);
09402:
09403:                        int index52_19 = input.index();
09404:                        input.rewind();
09405:                        s = -1;
09406:                        if ((LA52_19 == 73)) {
09407:                            s = 42;
09408:                        }
09409:
09410:                        else if ((LA52_19 == DOT)) {
09411:                            s = 43;
09412:                        }
09413:
09414:                        else if ((LA52_19 == LEFT_SQUARE)) {
09415:                            s = 44;
09416:                        }
09417:
09418:                        else if ((LA52_19 == LEFT_PAREN)) {
09419:                            s = 45;
09420:                        }
09421:
09422:                        else if ((LA52_19 == RIGHT_PAREN) && (synpred7())) {
09423:                            s = 13;
09424:                        }
09425:
09426:                        else if (((LA52_19 >= PACKAGE && LA52_19 <= ID)
09427:                                || LA52_19 == GLOBAL || LA52_19 == COMMA
09428:                                || (LA52_19 >= QUERY && LA52_19 <= RIGHT_CURLY)
09429:                                || (LA52_19 >= RIGHT_SQUARE && LA52_19 <= 72) || (LA52_19 >= 74 && LA52_19 <= 80))
09430:                                && (synpred7())) {
09431:                            s = 12;
09432:                        }
09433:
09434:                        input.seek(index52_19);
09435:                        if (s >= 0)
09436:                            return s;
09437:                        break;
09438:                    case 34:
09439:                        int LA52_59 = input.LA(1);
09440:
09441:                        int index52_59 = input.index();
09442:                        input.rewind();
09443:                        s = -1;
09444:                        if ((synpred7())) {
09445:                            s = 67;
09446:                        }
09447:
09448:                        else if ((true)) {
09449:                            s = 3;
09450:                        }
09451:
09452:                        input.seek(index52_59);
09453:                        if (s >= 0)
09454:                            return s;
09455:                        break;
09456:                    case 35:
09457:                        int LA52_63 = input.LA(1);
09458:
09459:                        int index52_63 = input.index();
09460:                        input.rewind();
09461:                        s = -1;
09462:                        if ((synpred7())) {
09463:                            s = 67;
09464:                        }
09465:
09466:                        else if ((true)) {
09467:                            s = 3;
09468:                        }
09469:
09470:                        input.seek(index52_63);
09471:                        if (s >= 0)
09472:                            return s;
09473:                        break;
09474:                    case 36:
09475:                        int LA52_18 = input.LA(1);
09476:
09477:                        int index52_18 = input.index();
09478:                        input.rewind();
09479:                        s = -1;
09480:                        if ((synpred7())) {
09481:                            s = 13;
09482:                        }
09483:
09484:                        else if ((true)) {
09485:                            s = 3;
09486:                        }
09487:
09488:                        input.seek(index52_18);
09489:                        if (s >= 0)
09490:                            return s;
09491:                        break;
09492:                    case 37:
09493:                        int LA52_36 = input.LA(1);
09494:
09495:                        int index52_36 = input.index();
09496:                        input.rewind();
09497:                        s = -1;
09498:                        if ((synpred7())) {
09499:                            s = 67;
09500:                        }
09501:
09502:                        else if ((true)) {
09503:                            s = 3;
09504:                        }
09505:
09506:                        input.seek(index52_36);
09507:                        if (s >= 0)
09508:                            return s;
09509:                        break;
09510:                    case 38:
09511:                        int LA52_26 = input.LA(1);
09512:
09513:                        int index52_26 = input.index();
09514:                        input.rewind();
09515:                        s = -1;
09516:                        if ((synpred7())) {
09517:                            s = 13;
09518:                        }
09519:
09520:                        else if ((true)) {
09521:                            s = 3;
09522:                        }
09523:
09524:                        input.seek(index52_26);
09525:                        if (s >= 0)
09526:                            return s;
09527:                        break;
09528:                    case 39:
09529:                        int LA52_40 = input.LA(1);
09530:
09531:                        int index52_40 = input.index();
09532:                        input.rewind();
09533:                        s = -1;
09534:                        if ((synpred7())) {
09535:                            s = 67;
09536:                        }
09537:
09538:                        else if ((true)) {
09539:                            s = 3;
09540:                        }
09541:
09542:                        input.seek(index52_40);
09543:                        if (s >= 0)
09544:                            return s;
09545:                        break;
09546:                    case 40:
09547:                        int LA52_55 = input.LA(1);
09548:
09549:                        int index52_55 = input.index();
09550:                        input.rewind();
09551:                        s = -1;
09552:                        if ((LA52_55 == RIGHT_SQUARE)) {
09553:                            s = 92;
09554:                        }
09555:
09556:                        else if ((LA52_55 == RIGHT_PAREN) && (synpred7())) {
09557:                            s = 13;
09558:                        }
09559:
09560:                        else if (((LA52_55 >= PACKAGE && LA52_55 <= GLOBAL)
09561:                                || LA52_55 == COMMA
09562:                                || (LA52_55 >= QUERY && LA52_55 <= LEFT_SQUARE) || (LA52_55 >= THEN && LA52_55 <= 80))
09563:                                && (synpred7())) {
09564:                            s = 12;
09565:                        }
09566:
09567:                        else if ((LA52_55 == LEFT_PAREN) && (synpred7())) {
09568:                            s = 67;
09569:                        }
09570:
09571:                        input.seek(index52_55);
09572:                        if (s >= 0)
09573:                            return s;
09574:                        break;
09575:                    case 41:
09576:                        int LA52_48 = input.LA(1);
09577:
09578:                        int index52_48 = input.index();
09579:                        input.rewind();
09580:                        s = -1;
09581:                        if ((LA52_48 == 73)) {
09582:                            s = 85;
09583:                        }
09584:
09585:                        else if ((LA52_48 == RIGHT_PAREN) && (synpred7())) {
09586:                            s = 13;
09587:                        }
09588:
09589:                        else if ((LA52_48 == DOT)) {
09590:                            s = 86;
09591:                        }
09592:
09593:                        else if ((LA52_48 == LEFT_PAREN)) {
09594:                            s = 87;
09595:                        }
09596:
09597:                        else if ((LA52_48 == LEFT_SQUARE)) {
09598:                            s = 88;
09599:                        }
09600:
09601:                        else if (((LA52_48 >= PACKAGE && LA52_48 <= ID)
09602:                                || LA52_48 == GLOBAL || LA52_48 == COMMA
09603:                                || (LA52_48 >= QUERY && LA52_48 <= RIGHT_CURLY)
09604:                                || (LA52_48 >= RIGHT_SQUARE && LA52_48 <= 72) || (LA52_48 >= 74 && LA52_48 <= 80))
09605:                                && (synpred7())) {
09606:                            s = 12;
09607:                        }
09608:
09609:                        input.seek(index52_48);
09610:                        if (s >= 0)
09611:                            return s;
09612:                        break;
09613:                    case 42:
09614:                        int LA52_47 = input.LA(1);
09615:
09616:                        int index52_47 = input.index();
09617:                        input.rewind();
09618:                        s = -1;
09619:                        if ((LA52_47 == 73)) {
09620:                            s = 81;
09621:                        }
09622:
09623:                        else if ((LA52_47 == DOT)) {
09624:                            s = 82;
09625:                        }
09626:
09627:                        else if ((LA52_47 == LEFT_SQUARE)) {
09628:                            s = 83;
09629:                        }
09630:
09631:                        else if ((LA52_47 == LEFT_PAREN)) {
09632:                            s = 84;
09633:                        }
09634:
09635:                        else if ((LA52_47 == RIGHT_PAREN) && (synpred7())) {
09636:                            s = 13;
09637:                        }
09638:
09639:                        else if (((LA52_47 >= PACKAGE && LA52_47 <= ID)
09640:                                || LA52_47 == GLOBAL || LA52_47 == COMMA
09641:                                || (LA52_47 >= QUERY && LA52_47 <= RIGHT_CURLY)
09642:                                || (LA52_47 >= RIGHT_SQUARE && LA52_47 <= 72) || (LA52_47 >= 74 && LA52_47 <= 80))
09643:                                && (synpred7())) {
09644:                            s = 12;
09645:                        }
09646:
09647:                        input.seek(index52_47);
09648:                        if (s >= 0)
09649:                            return s;
09650:                        break;
09651:                    case 43:
09652:                        int LA52_35 = input.LA(1);
09653:
09654:                        int index52_35 = input.index();
09655:                        input.rewind();
09656:                        s = -1;
09657:                        if ((synpred7())) {
09658:                            s = 67;
09659:                        }
09660:
09661:                        else if ((true)) {
09662:                            s = 3;
09663:                        }
09664:
09665:                        input.seek(index52_35);
09666:                        if (s >= 0)
09667:                            return s;
09668:                        break;
09669:                    case 44:
09670:                        int LA52_25 = input.LA(1);
09671:
09672:                        int index52_25 = input.index();
09673:                        input.rewind();
09674:                        s = -1;
09675:                        if ((LA52_25 == 73)) {
09676:                            s = 52;
09677:                        }
09678:
09679:                        else if ((LA52_25 == RIGHT_PAREN) && (synpred7())) {
09680:                            s = 13;
09681:                        }
09682:
09683:                        else if ((LA52_25 == DOT)) {
09684:                            s = 53;
09685:                        }
09686:
09687:                        else if ((LA52_25 == LEFT_PAREN)) {
09688:                            s = 54;
09689:                        }
09690:
09691:                        else if ((LA52_25 == LEFT_SQUARE)) {
09692:                            s = 55;
09693:                        }
09694:
09695:                        else if (((LA52_25 >= PACKAGE && LA52_25 <= ID)
09696:                                || LA52_25 == GLOBAL || LA52_25 == COMMA
09697:                                || (LA52_25 >= QUERY && LA52_25 <= RIGHT_CURLY)
09698:                                || (LA52_25 >= RIGHT_SQUARE && LA52_25 <= 72) || (LA52_25 >= 74 && LA52_25 <= 80))
09699:                                && (synpred7())) {
09700:                            s = 12;
09701:                        }
09702:
09703:                        input.seek(index52_25);
09704:                        if (s >= 0)
09705:                            return s;
09706:                        break;
09707:                    case 45:
09708:                        int LA52_30 = input.LA(1);
09709:
09710:                        int index52_30 = input.index();
09711:                        input.rewind();
09712:                        s = -1;
09713:                        if ((synpred7())) {
09714:                            s = 13;
09715:                        }
09716:
09717:                        else if ((true)) {
09718:                            s = 3;
09719:                        }
09720:
09721:                        input.seek(index52_30);
09722:                        if (s >= 0)
09723:                            return s;
09724:                        break;
09725:                    case 46:
09726:                        int LA52_0 = input.LA(1);
09727:
09728:                        int index52_0 = input.index();
09729:                        input.rewind();
09730:                        s = -1;
09731:                        if ((LA52_0 == LEFT_SQUARE) && (synpred6())) {
09732:                            s = 1;
09733:                        }
09734:
09735:                        else if ((LA52_0 == LEFT_PAREN)) {
09736:                            s = 2;
09737:                        }
09738:
09739:                        else if (((LA52_0 >= ID && LA52_0 <= DOT)
09740:                                || (LA52_0 >= COMMA && LA52_0 <= RIGHT_PAREN)
09741:                                || LA52_0 == END
09742:                                || (LA52_0 >= OR && LA52_0 <= DOUBLE_AMPER)
09743:                                || (LA52_0 >= EXISTS && LA52_0 <= FORALL)
09744:                                || LA52_0 == INIT || LA52_0 == THEN || LA52_0 == 71)) {
09745:                            s = 3;
09746:                        }
09747:
09748:                        input.seek(index52_0);
09749:                        if (s >= 0)
09750:                            return s;
09751:                        break;
09752:                    case 47:
09753:                        int LA52_49 = input.LA(1);
09754:
09755:                        int index52_49 = input.index();
09756:                        input.rewind();
09757:                        s = -1;
09758:                        if ((synpred7())) {
09759:                            s = 67;
09760:                        }
09761:
09762:                        else if ((true)) {
09763:                            s = 3;
09764:                        }
09765:
09766:                        input.seek(index52_49);
09767:                        if (s >= 0)
09768:                            return s;
09769:                        break;
09770:                    case 48:
09771:                        int LA52_42 = input.LA(1);
09772:
09773:                        int index52_42 = input.index();
09774:                        input.rewind();
09775:                        s = -1;
09776:                        if ((LA52_42 == ID)) {
09777:                            s = 77;
09778:                        }
09779:
09780:                        else if ((LA52_42 == LEFT_PAREN)) {
09781:                            s = 78;
09782:                        }
09783:
09784:                        else if ((LA52_42 == RIGHT_PAREN) && (synpred7())) {
09785:                            s = 13;
09786:                        }
09787:
09788:                        else if (((LA52_42 >= PACKAGE && LA52_42 <= FUNCTION)
09789:                                || (LA52_42 >= DOT && LA52_42 <= GLOBAL)
09790:                                || LA52_42 == COMMA || (LA52_42 >= QUERY && LA52_42 <= 80))
09791:                                && (synpred7())) {
09792:                            s = 12;
09793:                        }
09794:
09795:                        input.seek(index52_42);
09796:                        if (s >= 0)
09797:                            return s;
09798:                        break;
09799:                    case 49:
09800:                        int LA52_31 = input.LA(1);
09801:
09802:                        int index52_31 = input.index();
09803:                        input.rewind();
09804:                        s = -1;
09805:                        if ((synpred7())) {
09806:                            s = 13;
09807:                        }
09808:
09809:                        else if ((true)) {
09810:                            s = 3;
09811:                        }
09812:
09813:                        input.seek(index52_31);
09814:                        if (s >= 0)
09815:                            return s;
09816:                        break;
09817:                    case 50:
09818:                        int LA52_46 = input.LA(1);
09819:
09820:                        int index52_46 = input.index();
09821:                        input.rewind();
09822:                        s = -1;
09823:                        if ((synpred7())) {
09824:                            s = 67;
09825:                        }
09826:
09827:                        else if ((true)) {
09828:                            s = 3;
09829:                        }
09830:
09831:                        input.seek(index52_46);
09832:                        if (s >= 0)
09833:                            return s;
09834:                        break;
09835:                    case 51:
09836:                        int LA52_34 = input.LA(1);
09837:
09838:                        int index52_34 = input.index();
09839:                        input.rewind();
09840:                        s = -1;
09841:                        if ((LA52_34 == RIGHT_SQUARE)) {
09842:                            s = 68;
09843:                        }
09844:
09845:                        else if ((LA52_34 == RIGHT_PAREN) && (synpred7())) {
09846:                            s = 13;
09847:                        }
09848:
09849:                        else if (((LA52_34 >= PACKAGE && LA52_34 <= GLOBAL)
09850:                                || LA52_34 == COMMA
09851:                                || (LA52_34 >= QUERY && LA52_34 <= LEFT_SQUARE) || (LA52_34 >= THEN && LA52_34 <= 80))
09852:                                && (synpred7())) {
09853:                            s = 12;
09854:                        }
09855:
09856:                        else if ((LA52_34 == LEFT_PAREN) && (synpred7())) {
09857:                            s = 67;
09858:                        }
09859:
09860:                        input.seek(index52_34);
09861:                        if (s >= 0)
09862:                            return s;
09863:                        break;
09864:                    case 52:
09865:                        int LA52_58 = input.LA(1);
09866:
09867:                        int index52_58 = input.index();
09868:                        input.rewind();
09869:                        s = -1;
09870:                        if ((LA52_58 == RIGHT_SQUARE)) {
09871:                            s = 96;
09872:                        }
09873:
09874:                        else if ((LA52_58 == RIGHT_PAREN) && (synpred7())) {
09875:                            s = 13;
09876:                        }
09877:
09878:                        else if (((LA52_58 >= PACKAGE && LA52_58 <= GLOBAL)
09879:                                || LA52_58 == COMMA
09880:                                || (LA52_58 >= QUERY && LA52_58 <= LEFT_SQUARE) || (LA52_58 >= THEN && LA52_58 <= 80))
09881:                                && (synpred7())) {
09882:                            s = 12;
09883:                        }
09884:
09885:                        else if ((LA52_58 == LEFT_PAREN) && (synpred7())) {
09886:                            s = 67;
09887:                        }
09888:
09889:                        input.seek(index52_58);
09890:                        if (s >= 0)
09891:                            return s;
09892:                        break;
09893:                    case 53:
09894:                        int LA52_62 = input.LA(1);
09895:
09896:                        int index52_62 = input.index();
09897:                        input.rewind();
09898:                        s = -1;
09899:                        if ((LA52_62 == RIGHT_SQUARE)) {
09900:                            s = 100;
09901:                        }
09902:
09903:                        else if ((LA52_62 == RIGHT_PAREN) && (synpred7())) {
09904:                            s = 13;
09905:                        }
09906:
09907:                        else if (((LA52_62 >= PACKAGE && LA52_62 <= GLOBAL)
09908:                                || LA52_62 == COMMA
09909:                                || (LA52_62 >= QUERY && LA52_62 <= LEFT_SQUARE) || (LA52_62 >= THEN && LA52_62 <= 80))
09910:                                && (synpred7())) {
09911:                            s = 12;
09912:                        }
09913:
09914:                        else if ((LA52_62 == LEFT_PAREN) && (synpred7())) {
09915:                            s = 67;
09916:                        }
09917:
09918:                        input.seek(index52_62);
09919:                        if (s >= 0)
09920:                            return s;
09921:                        break;
09922:                    case 54:
09923:                        int LA52_10 = input.LA(1);
09924:
09925:                        int index52_10 = input.index();
09926:                        input.rewind();
09927:                        s = -1;
09928:                        if ((LA52_10 == LEFT_PAREN)) {
09929:                            s = 31;
09930:                        }
09931:
09932:                        else if ((LA52_10 == RIGHT_PAREN) && (synpred7())) {
09933:                            s = 13;
09934:                        }
09935:
09936:                        else if (((LA52_10 >= PACKAGE && LA52_10 <= GLOBAL)
09937:                                || LA52_10 == COMMA || (LA52_10 >= QUERY && LA52_10 <= 80))
09938:                                && (synpred7())) {
09939:                            s = 12;
09940:                        }
09941:
09942:                        input.seek(index52_10);
09943:                        if (s >= 0)
09944:                            return s;
09945:                        break;
09946:                    case 55:
09947:                        int LA52_43 = input.LA(1);
09948:
09949:                        int index52_43 = input.index();
09950:                        input.rewind();
09951:                        s = -1;
09952:                        if (((LA52_43 >= PACKAGE && LA52_43 <= ID)
09953:                                || LA52_43 == GLOBAL
09954:                                || (LA52_43 >= QUERY && LA52_43 <= ATTRIBUTES)
09955:                                || LA52_43 == ENABLED || LA52_43 == SALIENCE
09956:                                || (LA52_43 >= DURATION && LA52_43 <= DIALECT)
09957:                                || LA52_43 == FROM
09958:                                || (LA52_43 >= INIT && LA52_43 <= RESULT)
09959:                                || (LA52_43 >= CONTAINS && LA52_43 <= IN) || LA52_43 == THEN)) {
09960:                            s = 79;
09961:                        }
09962:
09963:                        else if ((LA52_43 == RIGHT_PAREN) && (synpred7())) {
09964:                            s = 13;
09965:                        }
09966:
09967:                        else if ((LA52_43 == DOT
09968:                                || LA52_43 == COMMA
09969:                                || (LA52_43 >= DATE_EFFECTIVE && LA52_43 <= DATE_EXPIRES)
09970:                                || LA52_43 == BOOL
09971:                                || (LA52_43 >= INT && LA52_43 <= AGENDA_GROUP)
09972:                                || (LA52_43 >= LOCK_ON_ACTIVE && LA52_43 <= DOUBLE_AMPER)
09973:                                || (LA52_43 >= EXISTS && LA52_43 <= ACCUMULATE)
09974:                                || LA52_43 == COLLECT
09975:                                || (LA52_43 >= FLOAT && LA52_43 <= RIGHT_SQUARE) || (LA52_43 >= EOL && LA52_43 <= 80))
09976:                                && (synpred7())) {
09977:                            s = 12;
09978:                        }
09979:
09980:                        else if ((LA52_43 == LEFT_PAREN) && (synpred7())) {
09981:                            s = 67;
09982:                        }
09983:
09984:                        input.seek(index52_43);
09985:                        if (s >= 0)
09986:                            return s;
09987:                        break;
09988:                    case 56:
09989:                        int LA52_2 = input.LA(1);
09990:
09991:                        int index52_2 = input.index();
09992:                        input.rewind();
09993:                        s = -1;
09994:                        if ((LA52_2 == AND)) {
09995:                            s = 4;
09996:                        }
09997:
09998:                        else if ((LA52_2 == OR)) {
09999:                            s = 5;
10000:                        }
10001:
10002:                        else if ((LA52_2 == LEFT_PAREN)) {
10003:                            s = 6;
10004:                        }
10005:
10006:                        else if ((LA52_2 == EXISTS)) {
10007:                            s = 7;
10008:                        }
10009:
10010:                        else if ((LA52_2 == NOT)) {
10011:                            s = 8;
10012:                        }
10013:
10014:                        else if ((LA52_2 == EVAL)) {
10015:                            s = 9;
10016:                        }
10017:
10018:                        else if ((LA52_2 == FORALL)) {
10019:                            s = 10;
10020:                        }
10021:
10022:                        else if ((LA52_2 == ID)) {
10023:                            s = 11;
10024:                        }
10025:
10026:                        else if (((LA52_2 >= PACKAGE && LA52_2 <= FUNCTION)
10027:                                || (LA52_2 >= DOT && LA52_2 <= GLOBAL)
10028:                                || LA52_2 == COMMA
10029:                                || (LA52_2 >= QUERY && LA52_2 <= LOCK_ON_ACTIVE)
10030:                                || LA52_2 == DOUBLE_PIPE
10031:                                || (LA52_2 >= DOUBLE_AMPER && LA52_2 <= FROM) || (LA52_2 >= ACCUMULATE && LA52_2 <= 80))
10032:                                && (synpred7())) {
10033:                            s = 12;
10034:                        }
10035:
10036:                        else if ((LA52_2 == RIGHT_PAREN) && (synpred7())) {
10037:                            s = 13;
10038:                        }
10039:
10040:                        input.seek(index52_2);
10041:                        if (s >= 0)
10042:                            return s;
10043:                        break;
10044:                    case 57:
10045:                        int LA52_23 = input.LA(1);
10046:
10047:                        int index52_23 = input.index();
10048:                        input.rewind();
10049:                        s = -1;
10050:                        if ((LA52_23 == LEFT_PAREN)) {
10051:                            s = 50;
10052:                        }
10053:
10054:                        else if ((LA52_23 == RIGHT_PAREN) && (synpred7())) {
10055:                            s = 13;
10056:                        }
10057:
10058:                        else if (((LA52_23 >= PACKAGE && LA52_23 <= GLOBAL)
10059:                                || LA52_23 == COMMA || (LA52_23 >= QUERY && LA52_23 <= 80))
10060:                                && (synpred7())) {
10061:                            s = 12;
10062:                        }
10063:
10064:                        input.seek(index52_23);
10065:                        if (s >= 0)
10066:                            return s;
10067:                        break;
10068:                    case 58:
10069:                        int LA52_50 = input.LA(1);
10070:
10071:                        int index52_50 = input.index();
10072:                        input.rewind();
10073:                        s = -1;
10074:                        if ((synpred7())) {
10075:                            s = 67;
10076:                        }
10077:
10078:                        else if ((true)) {
10079:                            s = 3;
10080:                        }
10081:
10082:                        input.seek(index52_50);
10083:                        if (s >= 0)
10084:                            return s;
10085:                        break;
10086:                    case 59:
10087:                        int LA52_22 = input.LA(1);
10088:
10089:                        int index52_22 = input.index();
10090:                        input.rewind();
10091:                        s = -1;
10092:                        if ((LA52_22 == RIGHT_PAREN) && (synpred7())) {
10093:                            s = 13;
10094:                        }
10095:
10096:                        else if ((LA52_22 == ID)) {
10097:                            s = 48;
10098:                        }
10099:
10100:                        else if ((LA52_22 == LEFT_PAREN)) {
10101:                            s = 49;
10102:                        }
10103:
10104:                        else if (((LA52_22 >= PACKAGE && LA52_22 <= FUNCTION)
10105:                                || (LA52_22 >= DOT && LA52_22 <= GLOBAL)
10106:                                || LA52_22 == COMMA || (LA52_22 >= QUERY && LA52_22 <= 80))
10107:                                && (synpred7())) {
10108:                            s = 12;
10109:                        }
10110:
10111:                        input.seek(index52_22);
10112:                        if (s >= 0)
10113:                            return s;
10114:                        break;
10115:                    case 60:
10116:                        int LA52_32 = input.LA(1);
10117:
10118:                        int index52_32 = input.index();
10119:                        input.rewind();
10120:                        s = -1;
10121:                        if ((LA52_32 == ID)) {
10122:                            s = 64;
10123:                        }
10124:
10125:                        else if ((LA52_32 == LEFT_PAREN)) {
10126:                            s = 65;
10127:                        }
10128:
10129:                        else if ((LA52_32 == RIGHT_PAREN) && (synpred7())) {
10130:                            s = 13;
10131:                        }
10132:
10133:                        else if (((LA52_32 >= PACKAGE && LA52_32 <= FUNCTION)
10134:                                || (LA52_32 >= DOT && LA52_32 <= GLOBAL)
10135:                                || LA52_32 == COMMA || (LA52_32 >= QUERY && LA52_32 <= 80))
10136:                                && (synpred7())) {
10137:                            s = 12;
10138:                        }
10139:
10140:                        input.seek(index52_32);
10141:                        if (s >= 0)
10142:                            return s;
10143:                        break;
10144:                    case 61:
10145:                        int LA52_56 = input.LA(1);
10146:
10147:                        int index52_56 = input.index();
10148:                        input.rewind();
10149:                        s = -1;
10150:                        if ((LA52_56 == ID)) {
10151:                            s = 93;
10152:                        }
10153:
10154:                        else if ((LA52_56 == LEFT_PAREN)) {
10155:                            s = 94;
10156:                        }
10157:
10158:                        else if ((LA52_56 == RIGHT_PAREN) && (synpred7())) {
10159:                            s = 13;
10160:                        }
10161:
10162:                        else if (((LA52_56 >= PACKAGE && LA52_56 <= FUNCTION)
10163:                                || (LA52_56 >= DOT && LA52_56 <= GLOBAL)
10164:                                || LA52_56 == COMMA || (LA52_56 >= QUERY && LA52_56 <= 80))
10165:                                && (synpred7())) {
10166:                            s = 12;
10167:                        }
10168:
10169:                        input.seek(index52_56);
10170:                        if (s >= 0)
10171:                            return s;
10172:                        break;
10173:                    case 62:
10174:                        int LA52_60 = input.LA(1);
10175:
10176:                        int index52_60 = input.index();
10177:                        input.rewind();
10178:                        s = -1;
10179:                        if ((LA52_60 == ID)) {
10180:                            s = 97;
10181:                        }
10182:
10183:                        else if ((LA52_60 == LEFT_PAREN)) {
10184:                            s = 98;
10185:                        }
10186:
10187:                        else if ((LA52_60 == RIGHT_PAREN) && (synpred7())) {
10188:                            s = 13;
10189:                        }
10190:
10191:                        else if (((LA52_60 >= PACKAGE && LA52_60 <= FUNCTION)
10192:                                || (LA52_60 >= DOT && LA52_60 <= GLOBAL)
10193:                                || LA52_60 == COMMA || (LA52_60 >= QUERY && LA52_60 <= 80))
10194:                                && (synpred7())) {
10195:                            s = 12;
10196:                        }
10197:
10198:                        input.seek(index52_60);
10199:                        if (s >= 0)
10200:                            return s;
10201:                        break;
10202:                    }
10203:                    if (backtracking > 0) {
10204:                        failed = true;
10205:                        return -1;
10206:                    }
10207:                    NoViableAltException nvae = new NoViableAltException(
10208:                            getDescription(), 52, _s, input);
10209:                    error(nvae);
10210:                    throw nvae;
10211:                }
10212:            }
10213:
10214:            static final String DFA64_eotS = "\21\uffff";
10215:            static final String DFA64_eofS = "\21\uffff";
10216:            static final String DFA64_minS = "\1\13\1\uffff\1\4\1\10\1\0\1\4\1\uffff\1\4\11\0";
10217:            static final String DFA64_maxS = "\1\45\1\uffff\2\120\1\0\1\120\1\uffff\1\120\11\0";
10218:            static final String DFA64_acceptS = "\1\uffff\1\2\4\uffff\1\1\12\uffff";
10219:            static final String DFA64_specialS = "\4\uffff\1\0\14\uffff}>";
10220:            static final String[] DFA64_transitionS = {
10221:                    "\2\1\26\uffff\1\2\1\uffff\1\1",
10222:                    "",
10223:                    "\4\1\1\uffff\1\1\1\4\2\uffff\6\1\3\uffff\1\1\1\uffff\1\1\6\uffff"
10224:                            + "\2\1\5\uffff\1\1\1\uffff\1\6\1\1\2\uffff\4\1\1\uffff\1\5\1\7"
10225:                            + "\1\10\1\11\1\3\6\uffff\1\1\16\uffff\6\6",
10226:                    "\1\1\1\uffff\1\12\35\uffff\1\1\10\uffff\5\1\4\uffff\1\1\20\uffff"
10227:                            + "\6\1",
10228:                    "\1\uffff",
10229:                    "\4\6\1\1\1\6\1\20\2\uffff\6\6\1\uffff\1\6\1\uffff\4\6\5\uffff"
10230:                            + "\2\6\5\uffff\1\6\1\uffff\1\1\3\uffff\4\6\1\uffff\1\14\1\15\1"
10231:                            + "\16\1\17\1\13\2\6\2\uffff\1\1\1\uffff\1\6\16\uffff\6\1",
10232:                    "",
10233:                    "\4\6\1\1\1\6\1\20\2\uffff\6\6\1\uffff\1\6\1\uffff\4\6\5\uffff"
10234:                            + "\2\6\5\uffff\1\6\1\uffff\1\1\3\uffff\4\6\1\uffff\1\14\1\15\1"
10235:                            + "\16\1\17\1\13\2\6\2\uffff\1\1\1\uffff\1\6\16\uffff\6\1",
10236:                    "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff",
10237:                    "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff" };
10238:
10239:            static final short[] DFA64_eot = DFA
10240:                    .unpackEncodedString(DFA64_eotS);
10241:            static final short[] DFA64_eof = DFA
10242:                    .unpackEncodedString(DFA64_eofS);
10243:            static final char[] DFA64_min = DFA
10244:                    .unpackEncodedStringToUnsignedChars(DFA64_minS);
10245:            static final char[] DFA64_max = DFA
10246:                    .unpackEncodedStringToUnsignedChars(DFA64_maxS);
10247:            static final short[] DFA64_accept = DFA
10248:                    .unpackEncodedString(DFA64_acceptS);
10249:            static final short[] DFA64_special = DFA
10250:                    .unpackEncodedString(DFA64_specialS);
10251:            static final short[][] DFA64_transition;
10252:
10253:            static {
10254:                int numStates = DFA64_transitionS.length;
10255:                DFA64_transition = new short[numStates][];
10256:                for (int i = 0; i < numStates; i++) {
10257:                    DFA64_transition[i] = DFA
10258:                            .unpackEncodedString(DFA64_transitionS[i]);
10259:                }
10260:            }
10261:
10262:            class DFA64 extends DFA {
10263:
10264:                public DFA64(BaseRecognizer recognizer) {
10265:                    this .recognizer = recognizer;
10266:                    this .decisionNumber = 64;
10267:                    this .eot = DFA64_eot;
10268:                    this .eof = DFA64_eof;
10269:                    this .min = DFA64_min;
10270:                    this .max = DFA64_max;
10271:                    this .accept = DFA64_accept;
10272:                    this .special = DFA64_special;
10273:                    this .transition = DFA64_transition;
10274:                }
10275:
10276:                public String getDescription() {
10277:                    return "()* loopback of 1392:3: ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )*";
10278:                }
10279:
10280:                public int specialStateTransition(int s, IntStream input)
10281:                        throws NoViableAltException {
10282:                    int _s = s;
10283:                    switch (s) {
10284:                    case 0:
10285:                        int LA64_4 = input.LA(1);
10286:
10287:                        int index64_4 = input.index();
10288:                        input.rewind();
10289:                        s = -1;
10290:                        if ((synpred8())) {
10291:                            s = 6;
10292:                        }
10293:
10294:                        else if ((true)) {
10295:                            s = 1;
10296:                        }
10297:
10298:                        input.seek(index64_4);
10299:                        if (s >= 0)
10300:                            return s;
10301:                        break;
10302:                    }
10303:                    if (backtracking > 0) {
10304:                        failed = true;
10305:                        return -1;
10306:                    }
10307:                    NoViableAltException nvae = new NoViableAltException(
10308:                            getDescription(), 64, _s, input);
10309:                    error(nvae);
10310:                    throw nvae;
10311:                }
10312:            }
10313:
10314:            static final String DFA65_eotS = "\61\uffff";
10315:            static final String DFA65_eofS = "\1\1\12\uffff\5\4\41\uffff";
10316:            static final String DFA65_minS = "\1\13\1\uffff\1\4\1\10\1\uffff\6\4\1\10\5\4\1\10\2\4\35\0";
10317:            static final String DFA65_maxS = "\1\45\1\uffff\2\120\1\uffff\6\120\1\72\4\74\4\120\35\0";
10318:            static final String DFA65_acceptS = "\1\uffff\1\2\2\uffff\1\1\54\uffff";
10319:            static final String DFA65_specialS = "\61\uffff}>";
10320:            static final String[] DFA65_transitionS = {
10321:                    "\2\1\26\uffff\1\1\1\uffff\1\2",
10322:                    "",
10323:                    "\4\1\1\uffff\1\1\1\11\2\uffff\6\1\3\uffff\1\1\1\uffff\1\1\6"
10324:                            + "\uffff\2\1\5\uffff\1\1\1\uffff\1\4\1\1\2\uffff\4\1\1\uffff\1"
10325:                            + "\5\1\6\1\7\1\10\1\3\6\uffff\1\1\16\uffff\6\4",
10326:                    "\1\1\1\uffff\1\12\35\uffff\1\1\10\uffff\5\1\4\uffff\1\1\20\uffff"
10327:                            + "\6\1",
10328:                    "",
10329:                    "\4\4\1\1\1\4\1\20\2\uffff\6\4\1\uffff\1\4\1\uffff\4\4\5\uffff"
10330:                            + "\2\4\5\uffff\1\4\1\uffff\1\1\3\uffff\4\4\1\uffff\1\14\1\15\1"
10331:                            + "\16\1\17\1\13\2\4\2\uffff\1\1\1\uffff\1\4\16\uffff\6\1",
10332:                    "\4\4\1\1\1\4\1\20\2\uffff\6\4\1\uffff\1\4\1\uffff\4\4\5\uffff"
10333:                            + "\2\4\5\uffff\1\4\1\uffff\1\1\3\uffff\4\4\1\uffff\1\14\1\15\1"
10334:                            + "\16\1\17\1\13\2\4\2\uffff\1\1\1\uffff\1\4\16\uffff\6\1",
10335:                    "\4\4\1\1\1\4\1\20\2\uffff\6\4\1\uffff\1\4\1\uffff\4\4\5\uffff"
10336:                            + "\2\4\5\uffff\1\4\1\uffff\1\1\3\uffff\4\4\1\uffff\1\14\1\15\1"
10337:                            + "\16\1\17\1\13\2\4\2\uffff\1\1\1\uffff\1\4\16\uffff\6\1",
10338:                    "\4\4\1\1\1\4\1\20\2\uffff\6\4\1\uffff\1\4\1\uffff\4\4\5\uffff"
10339:                            + "\2\4\5\uffff\1\4\1\uffff\1\1\3\uffff\4\4\1\uffff\1\14\1\15\1"
10340:                            + "\16\1\17\1\13\2\4\2\uffff\1\1\1\uffff\1\4\16\uffff\6\1",
10341:                    "\4\1\1\uffff\1\1\1\26\2\uffff\6\1\3\uffff\1\1\1\uffff\1\1\6"
10342:                            + "\uffff\2\1\5\uffff\1\1\1\uffff\1\4\1\1\2\uffff\4\1\1\uffff\1"
10343:                            + "\22\1\23\1\24\1\25\1\21\6\uffff\1\1\16\uffff\6\4",
10344:                    "\4\4\1\uffff\1\4\1\30\2\uffff\6\4\1\uffff\1\4\1\uffff\4\4\5"
10345:                            + "\uffff\2\4\5\uffff\1\4\1\uffff\1\1\3\uffff\4\4\1\uffff\1\31"
10346:                            + "\1\32\1\33\1\34\1\27\2\4\4\uffff\1\4\16\uffff\6\1",
10347:                    "\1\4\1\uffff\1\1\2\4\26\uffff\1\4\1\uffff\1\4\24\uffff\1\4",
10348:                    "\4\1\1\4\2\1\2\4\6\1\1\uffff\1\1\1\uffff\4\1\5\uffff\2\1\2\uffff"
10349:                            + "\1\4\1\uffff\1\4\1\1\5\uffff\4\1\1\uffff\7\1\2\uffff\1\4\1\uffff"
10350:                            + "\1\1",
10351:                    "\4\1\1\4\2\1\2\4\6\1\1\uffff\1\1\1\uffff\4\1\5\uffff\2\1\2\uffff"
10352:                            + "\1\4\1\uffff\1\4\1\1\5\uffff\4\1\1\uffff\7\1\2\uffff\1\4\1\uffff"
10353:                            + "\1\1",
10354:                    "\4\1\1\4\2\1\2\4\6\1\1\uffff\1\1\1\uffff\4\1\5\uffff\2\1\2\uffff"
10355:                            + "\1\4\1\uffff\1\4\1\1\5\uffff\4\1\1\uffff\7\1\2\uffff\1\4\1\uffff"
10356:                            + "\1\1",
10357:                    "\4\1\1\4\2\1\2\4\6\1\1\uffff\1\1\1\uffff\4\1\5\uffff\2\1\2\uffff"
10358:                            + "\1\4\1\uffff\1\4\1\1\5\uffff\4\1\1\uffff\7\1\2\uffff\1\4\1\uffff"
10359:                            + "\1\1",
10360:                    "\6\4\1\51\35\4\1\36\10\4\1\45\1\46\1\47\1\50\1\35\25\4\1\37"
10361:                            + "\1\40\1\41\1\42\1\43\1\44",
10362:                    "\1\1\1\uffff\1\52\35\uffff\1\1\10\uffff\5\1\4\uffff\1\1\20\uffff"
10363:                            + "\6\1",
10364:                    "\4\4\1\1\1\4\1\54\2\uffff\6\4\1\uffff\1\4\1\uffff\4\4\5\uffff"
10365:                            + "\2\4\5\uffff\1\4\1\uffff\1\1\3\uffff\4\4\1\uffff\1\55\1\56\1"
10366:                            + "\57\1\60\1\53\2\4\2\uffff\1\1\1\uffff\1\4\16\uffff\6\1",
10367:                    "\4\4\1\1\1\4\1\54\2\uffff\6\4\1\uffff\1\4\1\uffff\4\4\5\uffff"
10368:                            + "\2\4\5\uffff\1\4\1\uffff\1\1\3\uffff\4\4\1\uffff\1\55\1\56\1"
10369:                            + "\57\1\60\1\53\2\4\2\uffff\1\1\1\uffff\1\4\16\uffff\6\1",
10370:                    "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff",
10371:                    "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff",
10372:                    "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff",
10373:                    "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff",
10374:                    "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff",
10375:                    "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff" };
10376:
10377:            static final short[] DFA65_eot = DFA
10378:                    .unpackEncodedString(DFA65_eotS);
10379:            static final short[] DFA65_eof = DFA
10380:                    .unpackEncodedString(DFA65_eofS);
10381:            static final char[] DFA65_min = DFA
10382:                    .unpackEncodedStringToUnsignedChars(DFA65_minS);
10383:            static final char[] DFA65_max = DFA
10384:                    .unpackEncodedStringToUnsignedChars(DFA65_maxS);
10385:            static final short[] DFA65_accept = DFA
10386:                    .unpackEncodedString(DFA65_acceptS);
10387:            static final short[] DFA65_special = DFA
10388:                    .unpackEncodedString(DFA65_specialS);
10389:            static final short[][] DFA65_transition;
10390:
10391:            static {
10392:                int numStates = DFA65_transitionS.length;
10393:                DFA65_transition = new short[numStates][];
10394:                for (int i = 0; i < numStates; i++) {
10395:                    DFA65_transition[i] = DFA
10396:                            .unpackEncodedString(DFA65_transitionS[i]);
10397:                }
10398:            }
10399:
10400:            class DFA65 extends DFA {
10401:
10402:                public DFA65(BaseRecognizer recognizer) {
10403:                    this .recognizer = recognizer;
10404:                    this .decisionNumber = 65;
10405:                    this .eot = DFA65_eot;
10406:                    this .eof = DFA65_eof;
10407:                    this .min = DFA65_min;
10408:                    this .max = DFA65_max;
10409:                    this .accept = DFA65_accept;
10410:                    this .special = DFA65_special;
10411:                    this .transition = DFA65_transition;
10412:                }
10413:
10414:                public String getDescription() {
10415:                    return "()* loopback of 1415:3: ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )*";
10416:                }
10417:            }
10418:
10419:            public static final BitSet FOLLOW_71_in_opt_semicolon39 = new BitSet(
10420:                    new long[] { 0x0000000000000002L });
10421:            public static final BitSet FOLLOW_prolog_in_compilation_unit57 = new BitSet(
10422:                    new long[] { 0x00000003FD69A260L });
10423:            public static final BitSet FOLLOW_statement_in_compilation_unit62 = new BitSet(
10424:                    new long[] { 0x00000003FD69A260L });
10425:            public static final BitSet FOLLOW_EOF_in_compilation_unit67 = new BitSet(
10426:                    new long[] { 0x0000000000000002L });
10427:            public static final BitSet FOLLOW_package_statement_in_prolog96 = new BitSet(
10428:                    new long[] { 0x0000000000000002L });
10429:            public static final BitSet FOLLOW_rule_attribute_in_statement121 = new BitSet(
10430:                    new long[] { 0x0000000000000002L });
10431:            public static final BitSet FOLLOW_function_import_statement_in_statement128 = new BitSet(
10432:                    new long[] { 0x0000000000000002L });
10433:            public static final BitSet FOLLOW_import_statement_in_statement134 = new BitSet(
10434:                    new long[] { 0x0000000000000002L });
10435:            public static final BitSet FOLLOW_global_in_statement140 = new BitSet(
10436:                    new long[] { 0x0000000000000002L });
10437:            public static final BitSet FOLLOW_function_in_statement146 = new BitSet(
10438:                    new long[] { 0x0000000000000002L });
10439:            public static final BitSet FOLLOW_template_in_statement160 = new BitSet(
10440:                    new long[] { 0x0000000000000002L });
10441:            public static final BitSet FOLLOW_rule_in_statement169 = new BitSet(
10442:                    new long[] { 0x0000000000000002L });
10443:            public static final BitSet FOLLOW_query_in_statement181 = new BitSet(
10444:                    new long[] { 0x0000000000000002L });
10445:            public static final BitSet FOLLOW_PACKAGE_in_package_statement205 = new BitSet(
10446:                    new long[] { 0x103EF0418147E2F0L });
10447:            public static final BitSet FOLLOW_dotted_name_in_package_statement209 = new BitSet(
10448:                    new long[] { 0x0000000000000002L, 0x0000000000000080L });
10449:            public static final BitSet FOLLOW_opt_semicolon_in_package_statement211 = new BitSet(
10450:                    new long[] { 0x0000000000000002L });
10451:            public static final BitSet FOLLOW_IMPORT_in_import_statement242 = new BitSet(
10452:                    new long[] { 0x0000000000000080L });
10453:            public static final BitSet FOLLOW_import_name_in_import_statement265 = new BitSet(
10454:                    new long[] { 0x0000000000000002L, 0x0000000000000080L });
10455:            public static final BitSet FOLLOW_opt_semicolon_in_import_statement268 = new BitSet(
10456:                    new long[] { 0x0000000000000002L });
10457:            public static final BitSet FOLLOW_IMPORT_in_function_import_statement292 = new BitSet(
10458:                    new long[] { 0x0000000000000040L });
10459:            public static final BitSet FOLLOW_FUNCTION_in_function_import_statement294 = new BitSet(
10460:                    new long[] { 0x0000000000000080L });
10461:            public static final BitSet FOLLOW_import_name_in_function_import_statement317 = new BitSet(
10462:                    new long[] { 0x0000000000000002L, 0x0000000000000080L });
10463:            public static final BitSet FOLLOW_opt_semicolon_in_function_import_statement320 = new BitSet(
10464:                    new long[] { 0x0000000000000002L });
10465:            public static final BitSet FOLLOW_ID_in_import_name346 = new BitSet(
10466:                    new long[] { 0x0000000000000102L, 0x0000000000000100L });
10467:            public static final BitSet FOLLOW_DOT_in_import_name358 = new BitSet(
10468:                    new long[] { 0x103EF0418147E2F0L });
10469:            public static final BitSet FOLLOW_identifier_in_import_name362 = new BitSet(
10470:                    new long[] { 0x0000000000000102L, 0x0000000000000100L });
10471:            public static final BitSet FOLLOW_72_in_import_name386 = new BitSet(
10472:                    new long[] { 0x0000000000000002L });
10473:            public static final BitSet FOLLOW_GLOBAL_in_global420 = new BitSet(
10474:                    new long[] { 0x103EF0418147E2F0L });
10475:            public static final BitSet FOLLOW_dotted_name_in_global431 = new BitSet(
10476:                    new long[] { 0x103EF0418147E2F0L });
10477:            public static final BitSet FOLLOW_identifier_in_global442 = new BitSet(
10478:                    new long[] { 0x0000000000000002L, 0x0000000000000080L });
10479:            public static final BitSet FOLLOW_opt_semicolon_in_global444 = new BitSet(
10480:                    new long[] { 0x0000000000000002L });
10481:            public static final BitSet FOLLOW_FUNCTION_in_function469 = new BitSet(
10482:                    new long[] { 0x103EF0418147E2F0L });
10483:            public static final BitSet FOLLOW_dotted_name_in_function473 = new BitSet(
10484:                    new long[] { 0x103EF0418147E2F0L });
10485:            public static final BitSet FOLLOW_identifier_in_function478 = new BitSet(
10486:                    new long[] { 0x0000000000000400L });
10487:            public static final BitSet FOLLOW_LEFT_PAREN_in_function487 = new BitSet(
10488:                    new long[] { 0x103EF0418147F2F0L });
10489:            public static final BitSet FOLLOW_dotted_name_in_function496 = new BitSet(
10490:                    new long[] { 0x103EF0418147E2F0L });
10491:            public static final BitSet FOLLOW_argument_in_function501 = new BitSet(
10492:                    new long[] { 0x0000000000001800L });
10493:            public static final BitSet FOLLOW_COMMA_in_function515 = new BitSet(
10494:                    new long[] { 0x103EF0418147E2F0L });
10495:            public static final BitSet FOLLOW_dotted_name_in_function519 = new BitSet(
10496:                    new long[] { 0x103EF0418147E2F0L });
10497:            public static final BitSet FOLLOW_argument_in_function524 = new BitSet(
10498:                    new long[] { 0x0000000000001800L });
10499:            public static final BitSet FOLLOW_RIGHT_PAREN_in_function548 = new BitSet(
10500:                    new long[] { 0x0100000000000000L });
10501:            public static final BitSet FOLLOW_curly_chunk_in_function554 = new BitSet(
10502:                    new long[] { 0x0000000000000002L });
10503:            public static final BitSet FOLLOW_identifier_in_argument581 = new BitSet(
10504:                    new long[] { 0x0400000000000002L });
10505:            public static final BitSet FOLLOW_LEFT_SQUARE_in_argument587 = new BitSet(
10506:                    new long[] { 0x0800000000000000L });
10507:            public static final BitSet FOLLOW_RIGHT_SQUARE_in_argument589 = new BitSet(
10508:                    new long[] { 0x0400000000000002L });
10509:            public static final BitSet FOLLOW_QUERY_in_query619 = new BitSet(
10510:                    new long[] { 0x0000000000100080L });
10511:            public static final BitSet FOLLOW_name_in_query623 = new BitSet(
10512:                    new long[] { 0x0000078000004480L });
10513:            public static final BitSet FOLLOW_LEFT_PAREN_in_query633 = new BitSet(
10514:                    new long[] { 0x0000000000001080L });
10515:            public static final BitSet FOLLOW_qualified_id_in_query668 = new BitSet(
10516:                    new long[] { 0x0000000000000080L });
10517:            public static final BitSet FOLLOW_ID_in_query673 = new BitSet(
10518:                    new long[] { 0x0000000000001800L });
10519:            public static final BitSet FOLLOW_COMMA_in_query694 = new BitSet(
10520:                    new long[] { 0x0000000000000080L });
10521:            public static final BitSet FOLLOW_qualified_id_in_query698 = new BitSet(
10522:                    new long[] { 0x0000000000000080L });
10523:            public static final BitSet FOLLOW_ID_in_query703 = new BitSet(
10524:                    new long[] { 0x0000000000001800L });
10525:            public static final BitSet FOLLOW_RIGHT_PAREN_in_query753 = new BitSet(
10526:                    new long[] { 0x0000078000004480L });
10527:            public static final BitSet FOLLOW_normal_lhs_block_in_query782 = new BitSet(
10528:                    new long[] { 0x0000000000004000L });
10529:            public static final BitSet FOLLOW_END_in_query787 = new BitSet(
10530:                    new long[] { 0x0000000000000002L, 0x0000000000000080L });
10531:            public static final BitSet FOLLOW_opt_semicolon_in_query789 = new BitSet(
10532:                    new long[] { 0x0000000000000002L });
10533:            public static final BitSet FOLLOW_TEMPLATE_in_template817 = new BitSet(
10534:                    new long[] { 0x0000000000100080L });
10535:            public static final BitSet FOLLOW_name_in_template821 = new BitSet(
10536:                    new long[] { 0x0000000000000080L, 0x0000000000000080L });
10537:            public static final BitSet FOLLOW_opt_semicolon_in_template823 = new BitSet(
10538:                    new long[] { 0x0000000000000080L });
10539:            public static final BitSet FOLLOW_template_slot_in_template838 = new BitSet(
10540:                    new long[] { 0x0000000000004080L });
10541:            public static final BitSet FOLLOW_END_in_template853 = new BitSet(
10542:                    new long[] { 0x0000000000000002L, 0x0000000000000080L });
10543:            public static final BitSet FOLLOW_opt_semicolon_in_template855 = new BitSet(
10544:                    new long[] { 0x0000000000000002L });
10545:            public static final BitSet FOLLOW_qualified_id_in_template_slot901 = new BitSet(
10546:                    new long[] { 0x103EF0418147E2F0L });
10547:            public static final BitSet FOLLOW_identifier_in_template_slot917 = new BitSet(
10548:                    new long[] { 0x0000000000000002L, 0x0000000000000080L });
10549:            public static final BitSet FOLLOW_opt_semicolon_in_template_slot919 = new BitSet(
10550:                    new long[] { 0x0000000000000002L });
10551:            public static final BitSet FOLLOW_RULE_in_rule950 = new BitSet(
10552:                    new long[] { 0x0000000000100080L });
10553:            public static final BitSet FOLLOW_name_in_rule954 = new BitSet(
10554:                    new long[] { 0x10000003FD6E0000L });
10555:            public static final BitSet FOLLOW_rule_attributes_in_rule963 = new BitSet(
10556:                    new long[] { 0x1000000000020000L });
10557:            public static final BitSet FOLLOW_WHEN_in_rule975 = new BitSet(
10558:                    new long[] { 0x1000078000000480L, 0x0000000000000200L });
10559:            public static final BitSet FOLLOW_73_in_rule977 = new BitSet(
10560:                    new long[] { 0x1000078000000480L });
10561:            public static final BitSet FOLLOW_normal_lhs_block_in_rule988 = new BitSet(
10562:                    new long[] { 0x1000000000000000L });
10563:            public static final BitSet FOLLOW_rhs_chunk_in_rule998 = new BitSet(
10564:                    new long[] { 0x0000000000000002L });
10565:            public static final BitSet FOLLOW_ATTRIBUTES_in_rule_attributes1018 = new BitSet(
10566:                    new long[] { 0x0000000000000000L, 0x0000000000000200L });
10567:            public static final BitSet FOLLOW_73_in_rule_attributes1020 = new BitSet(
10568:                    new long[] { 0x00000003FD680000L });
10569:            public static final BitSet FOLLOW_rule_attribute_in_rule_attributes1028 = new BitSet(
10570:                    new long[] { 0x00000003FD680802L });
10571:            public static final BitSet FOLLOW_COMMA_in_rule_attributes1035 = new BitSet(
10572:                    new long[] { 0x00000003FD680000L });
10573:            public static final BitSet FOLLOW_rule_attribute_in_rule_attributes1040 = new BitSet(
10574:                    new long[] { 0x00000003FD680802L });
10575:            public static final BitSet FOLLOW_salience_in_rule_attribute1077 = new BitSet(
10576:                    new long[] { 0x0000000000000002L });
10577:            public static final BitSet FOLLOW_no_loop_in_rule_attribute1085 = new BitSet(
10578:                    new long[] { 0x0000000000000002L });
10579:            public static final BitSet FOLLOW_agenda_group_in_rule_attribute1094 = new BitSet(
10580:                    new long[] { 0x0000000000000002L });
10581:            public static final BitSet FOLLOW_duration_in_rule_attribute1103 = new BitSet(
10582:                    new long[] { 0x0000000000000002L });
10583:            public static final BitSet FOLLOW_activation_group_in_rule_attribute1112 = new BitSet(
10584:                    new long[] { 0x0000000000000002L });
10585:            public static final BitSet FOLLOW_auto_focus_in_rule_attribute1120 = new BitSet(
10586:                    new long[] { 0x0000000000000002L });
10587:            public static final BitSet FOLLOW_date_effective_in_rule_attribute1128 = new BitSet(
10588:                    new long[] { 0x0000000000000002L });
10589:            public static final BitSet FOLLOW_date_expires_in_rule_attribute1136 = new BitSet(
10590:                    new long[] { 0x0000000000000002L });
10591:            public static final BitSet FOLLOW_enabled_in_rule_attribute1144 = new BitSet(
10592:                    new long[] { 0x0000000000000002L });
10593:            public static final BitSet FOLLOW_ruleflow_group_in_rule_attribute1152 = new BitSet(
10594:                    new long[] { 0x0000000000000002L });
10595:            public static final BitSet FOLLOW_lock_on_active_in_rule_attribute1160 = new BitSet(
10596:                    new long[] { 0x0000000000000002L });
10597:            public static final BitSet FOLLOW_dialect_in_rule_attribute1167 = new BitSet(
10598:                    new long[] { 0x0000000000000002L });
10599:            public static final BitSet FOLLOW_DATE_EFFECTIVE_in_date_effective1193 = new BitSet(
10600:                    new long[] { 0x0000000000100000L });
10601:            public static final BitSet FOLLOW_STRING_in_date_effective1195 = new BitSet(
10602:                    new long[] { 0x0000000000000002L });
10603:            public static final BitSet FOLLOW_DATE_EXPIRES_in_date_expires1224 = new BitSet(
10604:                    new long[] { 0x0000000000100000L });
10605:            public static final BitSet FOLLOW_STRING_in_date_expires1226 = new BitSet(
10606:                    new long[] { 0x0000000000000002L });
10607:            public static final BitSet FOLLOW_ENABLED_in_enabled1255 = new BitSet(
10608:                    new long[] { 0x0000000000800000L });
10609:            public static final BitSet FOLLOW_BOOL_in_enabled1257 = new BitSet(
10610:                    new long[] { 0x0000000000000002L });
10611:            public static final BitSet FOLLOW_SALIENCE_in_salience1290 = new BitSet(
10612:                    new long[] { 0x0000000002000400L });
10613:            public static final BitSet FOLLOW_INT_in_salience1301 = new BitSet(
10614:                    new long[] { 0x0000000000000002L });
10615:            public static final BitSet FOLLOW_paren_chunk_in_salience1316 = new BitSet(
10616:                    new long[] { 0x0000000000000002L });
10617:            public static final BitSet FOLLOW_NO_LOOP_in_no_loop1346 = new BitSet(
10618:                    new long[] { 0x0000000000800002L });
10619:            public static final BitSet FOLLOW_BOOL_in_no_loop1359 = new BitSet(
10620:                    new long[] { 0x0000000000000002L });
10621:            public static final BitSet FOLLOW_AUTO_FOCUS_in_auto_focus1394 = new BitSet(
10622:                    new long[] { 0x0000000000800002L });
10623:            public static final BitSet FOLLOW_BOOL_in_auto_focus1407 = new BitSet(
10624:                    new long[] { 0x0000000000000002L });
10625:            public static final BitSet FOLLOW_ACTIVATION_GROUP_in_activation_group1443 = new BitSet(
10626:                    new long[] { 0x0000000000100000L });
10627:            public static final BitSet FOLLOW_STRING_in_activation_group1445 = new BitSet(
10628:                    new long[] { 0x0000000000000002L });
10629:            public static final BitSet FOLLOW_RULEFLOW_GROUP_in_ruleflow_group1473 = new BitSet(
10630:                    new long[] { 0x0000000000100000L });
10631:            public static final BitSet FOLLOW_STRING_in_ruleflow_group1475 = new BitSet(
10632:                    new long[] { 0x0000000000000002L });
10633:            public static final BitSet FOLLOW_AGENDA_GROUP_in_agenda_group1503 = new BitSet(
10634:                    new long[] { 0x0000000000100000L });
10635:            public static final BitSet FOLLOW_STRING_in_agenda_group1505 = new BitSet(
10636:                    new long[] { 0x0000000000000002L });
10637:            public static final BitSet FOLLOW_DURATION_in_duration1533 = new BitSet(
10638:                    new long[] { 0x0000000002000000L });
10639:            public static final BitSet FOLLOW_INT_in_duration1535 = new BitSet(
10640:                    new long[] { 0x0000000000000002L });
10641:            public static final BitSet FOLLOW_DIALECT_in_dialect1563 = new BitSet(
10642:                    new long[] { 0x0000000000100000L });
10643:            public static final BitSet FOLLOW_STRING_in_dialect1565 = new BitSet(
10644:                    new long[] { 0x0000000000000002L });
10645:            public static final BitSet FOLLOW_LOCK_ON_ACTIVE_in_lock_on_active1597 = new BitSet(
10646:                    new long[] { 0x0000000000800002L });
10647:            public static final BitSet FOLLOW_BOOL_in_lock_on_active1610 = new BitSet(
10648:                    new long[] { 0x0000000000000002L });
10649:            public static final BitSet FOLLOW_lhs_in_normal_lhs_block1649 = new BitSet(
10650:                    new long[] { 0x0000078000000482L });
10651:            public static final BitSet FOLLOW_lhs_or_in_lhs1686 = new BitSet(
10652:                    new long[] { 0x0000000000000002L });
10653:            public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_or1711 = new BitSet(
10654:                    new long[] { 0x0000000400000000L });
10655:            public static final BitSet FOLLOW_OR_in_lhs_or1713 = new BitSet(
10656:                    new long[] { 0x0000078000000480L });
10657:            public static final BitSet FOLLOW_lhs_and_in_lhs_or1726 = new BitSet(
10658:                    new long[] { 0x0000078000001480L });
10659:            public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_or1737 = new BitSet(
10660:                    new long[] { 0x0000000000000002L });
10661:            public static final BitSet FOLLOW_lhs_and_in_lhs_or1755 = new BitSet(
10662:                    new long[] { 0x0000000C00000002L });
10663:            public static final BitSet FOLLOW_set_in_lhs_or1763 = new BitSet(
10664:                    new long[] { 0x0000078000000480L });
10665:            public static final BitSet FOLLOW_lhs_and_in_lhs_or1779 = new BitSet(
10666:                    new long[] { 0x0000000C00000002L });
10667:            public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_and1810 = new BitSet(
10668:                    new long[] { 0x0000001000000000L });
10669:            public static final BitSet FOLLOW_AND_in_lhs_and1812 = new BitSet(
10670:                    new long[] { 0x0000078000000480L });
10671:            public static final BitSet FOLLOW_lhs_unary_in_lhs_and1824 = new BitSet(
10672:                    new long[] { 0x0000078000001480L });
10673:            public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_and1834 = new BitSet(
10674:                    new long[] { 0x0000000000000002L });
10675:            public static final BitSet FOLLOW_lhs_unary_in_lhs_and1852 = new BitSet(
10676:                    new long[] { 0x0000003000000002L });
10677:            public static final BitSet FOLLOW_set_in_lhs_and1860 = new BitSet(
10678:                    new long[] { 0x0000078000000480L });
10679:            public static final BitSet FOLLOW_lhs_unary_in_lhs_and1876 = new BitSet(
10680:                    new long[] { 0x0000003000000002L });
10681:            public static final BitSet FOLLOW_lhs_exist_in_lhs_unary1921 = new BitSet(
10682:                    new long[] { 0x0000000000000002L, 0x0000000000000080L });
10683:            public static final BitSet FOLLOW_lhs_not_in_lhs_unary1939 = new BitSet(
10684:                    new long[] { 0x0000000000000002L, 0x0000000000000080L });
10685:            public static final BitSet FOLLOW_lhs_eval_in_lhs_unary1958 = new BitSet(
10686:                    new long[] { 0x0000000000000002L, 0x0000000000000080L });
10687:            public static final BitSet FOLLOW_lhs_forall_in_lhs_unary1977 = new BitSet(
10688:                    new long[] { 0x0000000000000002L, 0x0000000000000080L });
10689:            public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_unary1994 = new BitSet(
10690:                    new long[] { 0x0000078000000480L });
10691:            public static final BitSet FOLLOW_lhs_or_in_lhs_unary1998 = new BitSet(
10692:                    new long[] { 0x0000000000001000L });
10693:            public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_unary2000 = new BitSet(
10694:                    new long[] { 0x0000000000000002L, 0x0000000000000080L });
10695:            public static final BitSet FOLLOW_pattern_source_in_lhs_unary2011 = new BitSet(
10696:                    new long[] { 0x0000000000000002L, 0x0000000000000080L });
10697:            public static final BitSet FOLLOW_opt_semicolon_in_lhs_unary2023 = new BitSet(
10698:                    new long[] { 0x0000000000000002L });
10699:            public static final BitSet FOLLOW_lhs_pattern_in_pattern_source2050 = new BitSet(
10700:                    new long[] { 0x0000004000000002L });
10701:            public static final BitSet FOLLOW_FROM_in_pattern_source2062 = new BitSet(
10702:                    new long[] { 0x103FF8418147E2F0L });
10703:            public static final BitSet FOLLOW_accumulate_statement_in_pattern_source2118 = new BitSet(
10704:                    new long[] { 0x0000000000000002L });
10705:            public static final BitSet FOLLOW_collect_statement_in_pattern_source2141 = new BitSet(
10706:                    new long[] { 0x0000000000000002L });
10707:            public static final BitSet FOLLOW_from_statement_in_pattern_source2165 = new BitSet(
10708:                    new long[] { 0x0000000000000002L });
10709:            public static final BitSet FOLLOW_EXISTS_in_lhs_exist2208 = new BitSet(
10710:                    new long[] { 0x0000000000000480L });
10711:            public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_exist2228 = new BitSet(
10712:                    new long[] { 0x0000078000000480L });
10713:            public static final BitSet FOLLOW_lhs_or_in_lhs_exist2232 = new BitSet(
10714:                    new long[] { 0x0000000000001000L });
10715:            public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_exist2262 = new BitSet(
10716:                    new long[] { 0x0000000000000002L });
10717:            public static final BitSet FOLLOW_lhs_pattern_in_lhs_exist2312 = new BitSet(
10718:                    new long[] { 0x0000000000000002L });
10719:            public static final BitSet FOLLOW_NOT_in_lhs_not2364 = new BitSet(
10720:                    new long[] { 0x0000000000000480L });
10721:            public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_not2377 = new BitSet(
10722:                    new long[] { 0x0000078000000480L });
10723:            public static final BitSet FOLLOW_lhs_or_in_lhs_not2381 = new BitSet(
10724:                    new long[] { 0x0000000000001000L });
10725:            public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_not2412 = new BitSet(
10726:                    new long[] { 0x0000000000000002L });
10727:            public static final BitSet FOLLOW_lhs_pattern_in_lhs_not2449 = new BitSet(
10728:                    new long[] { 0x0000000000000002L });
10729:            public static final BitSet FOLLOW_EVAL_in_lhs_eval2495 = new BitSet(
10730:                    new long[] { 0x0000000000000400L });
10731:            public static final BitSet FOLLOW_paren_chunk_in_lhs_eval2506 = new BitSet(
10732:                    new long[] { 0x0000000000000002L });
10733:            public static final BitSet FOLLOW_FORALL_in_lhs_forall2532 = new BitSet(
10734:                    new long[] { 0x0000000000000400L });
10735:            public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_forall2534 = new BitSet(
10736:                    new long[] { 0x0000000000000080L });
10737:            public static final BitSet FOLLOW_lhs_pattern_in_lhs_forall2538 = new BitSet(
10738:                    new long[] { 0x0000000000001080L });
10739:            public static final BitSet FOLLOW_lhs_pattern_in_lhs_forall2553 = new BitSet(
10740:                    new long[] { 0x0000000000001080L });
10741:            public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_forall2569 = new BitSet(
10742:                    new long[] { 0x0000000000000002L });
10743:            public static final BitSet FOLLOW_fact_binding_in_lhs_pattern2602 = new BitSet(
10744:                    new long[] { 0x0000000000000002L });
10745:            public static final BitSet FOLLOW_fact_in_lhs_pattern2610 = new BitSet(
10746:                    new long[] { 0x0000000000000002L });
10747:            public static final BitSet FOLLOW_from_source_in_from_statement2637 = new BitSet(
10748:                    new long[] { 0x0000000000000002L });
10749:            public static final BitSet FOLLOW_identifier_in_from_source2666 = new BitSet(
10750:                    new long[] { 0x0000000000000502L });
10751:            public static final BitSet FOLLOW_paren_chunk_in_from_source2694 = new BitSet(
10752:                    new long[] { 0x0000000000000102L });
10753:            public static final BitSet FOLLOW_expression_chain_in_from_source2707 = new BitSet(
10754:                    new long[] { 0x0000000000000002L });
10755:            public static final BitSet FOLLOW_ACCUMULATE_in_accumulate_statement2748 = new BitSet(
10756:                    new long[] { 0x0000000000000400L });
10757:            public static final BitSet FOLLOW_LEFT_PAREN_in_accumulate_statement2758 = new BitSet(
10758:                    new long[] { 0x0000000000000080L });
10759:            public static final BitSet FOLLOW_pattern_source_in_accumulate_statement2762 = new BitSet(
10760:                    new long[] { 0x0000100000000880L });
10761:            public static final BitSet FOLLOW_COMMA_in_accumulate_statement2764 = new BitSet(
10762:                    new long[] { 0x0000100000000080L });
10763:            public static final BitSet FOLLOW_INIT_in_accumulate_statement2782 = new BitSet(
10764:                    new long[] { 0x0000000000000400L });
10765:            public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement2795 = new BitSet(
10766:                    new long[] { 0x0000200000000800L });
10767:            public static final BitSet FOLLOW_COMMA_in_accumulate_statement2797 = new BitSet(
10768:                    new long[] { 0x0000200000000000L });
10769:            public static final BitSet FOLLOW_ACTION_in_accumulate_statement2808 = new BitSet(
10770:                    new long[] { 0x0000000000000400L });
10771:            public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement2812 = new BitSet(
10772:                    new long[] { 0x0000C00000000800L });
10773:            public static final BitSet FOLLOW_COMMA_in_accumulate_statement2814 = new BitSet(
10774:                    new long[] { 0x0000C00000000000L });
10775:            public static final BitSet FOLLOW_REVERSE_in_accumulate_statement2827 = new BitSet(
10776:                    new long[] { 0x0000000000000400L });
10777:            public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement2831 = new BitSet(
10778:                    new long[] { 0x0000800000000800L });
10779:            public static final BitSet FOLLOW_COMMA_in_accumulate_statement2833 = new BitSet(
10780:                    new long[] { 0x0000800000000000L });
10781:            public static final BitSet FOLLOW_RESULT_in_accumulate_statement2850 = new BitSet(
10782:                    new long[] { 0x0000000000000400L });
10783:            public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement2854 = new BitSet(
10784:                    new long[] { 0x0000000000001000L });
10785:            public static final BitSet FOLLOW_ID_in_accumulate_statement2880 = new BitSet(
10786:                    new long[] { 0x0000000000000400L });
10787:            public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement2884 = new BitSet(
10788:                    new long[] { 0x0000000000001000L });
10789:            public static final BitSet FOLLOW_RIGHT_PAREN_in_accumulate_statement2901 = new BitSet(
10790:                    new long[] { 0x0000000000000002L });
10791:            public static final BitSet FOLLOW_DOT_in_expression_chain2930 = new BitSet(
10792:                    new long[] { 0x103EF0418147E2F0L });
10793:            public static final BitSet FOLLOW_identifier_in_expression_chain2934 = new BitSet(
10794:                    new long[] { 0x0400000000000502L });
10795:            public static final BitSet FOLLOW_square_chunk_in_expression_chain2965 = new BitSet(
10796:                    new long[] { 0x0000000000000102L });
10797:            public static final BitSet FOLLOW_paren_chunk_in_expression_chain2998 = new BitSet(
10798:                    new long[] { 0x0000000000000102L });
10799:            public static final BitSet FOLLOW_expression_chain_in_expression_chain3013 = new BitSet(
10800:                    new long[] { 0x0000000000000002L });
10801:            public static final BitSet FOLLOW_COLLECT_in_collect_statement3064 = new BitSet(
10802:                    new long[] { 0x0000000000000400L });
10803:            public static final BitSet FOLLOW_LEFT_PAREN_in_collect_statement3074 = new BitSet(
10804:                    new long[] { 0x0000000000000080L });
10805:            public static final BitSet FOLLOW_pattern_source_in_collect_statement3078 = new BitSet(
10806:                    new long[] { 0x0000000000001000L });
10807:            public static final BitSet FOLLOW_RIGHT_PAREN_in_collect_statement3080 = new BitSet(
10808:                    new long[] { 0x0000000000000002L });
10809:            public static final BitSet FOLLOW_ID_in_fact_binding3112 = new BitSet(
10810:                    new long[] { 0x0000000000000000L, 0x0000000000000200L });
10811:            public static final BitSet FOLLOW_73_in_fact_binding3114 = new BitSet(
10812:                    new long[] { 0x0000000000000480L });
10813:            public static final BitSet FOLLOW_fact_in_fact_binding3128 = new BitSet(
10814:                    new long[] { 0x0000000000000002L });
10815:            public static final BitSet FOLLOW_LEFT_PAREN_in_fact_binding3144 = new BitSet(
10816:                    new long[] { 0x0000000000000080L });
10817:            public static final BitSet FOLLOW_fact_in_fact_binding3148 = new BitSet(
10818:                    new long[] { 0x0000000C00001000L });
10819:            public static final BitSet FOLLOW_set_in_fact_binding3161 = new BitSet(
10820:                    new long[] { 0x0000000000000080L });
10821:            public static final BitSet FOLLOW_fact_in_fact_binding3173 = new BitSet(
10822:                    new long[] { 0x0000000C00001000L });
10823:            public static final BitSet FOLLOW_RIGHT_PAREN_in_fact_binding3191 = new BitSet(
10824:                    new long[] { 0x0000000000000002L });
10825:            public static final BitSet FOLLOW_qualified_id_in_fact3246 = new BitSet(
10826:                    new long[] { 0x0000000000000400L });
10827:            public static final BitSet FOLLOW_LEFT_PAREN_in_fact3256 = new BitSet(
10828:                    new long[] { 0x103EF2418147F6F0L });
10829:            public static final BitSet FOLLOW_constraints_in_fact3268 = new BitSet(
10830:                    new long[] { 0x0000000000001000L });
10831:            public static final BitSet FOLLOW_RIGHT_PAREN_in_fact3275 = new BitSet(
10832:                    new long[] { 0x0000000000000002L });
10833:            public static final BitSet FOLLOW_EOF_in_fact3284 = new BitSet(
10834:                    new long[] { 0x0000000000000002L });
10835:            public static final BitSet FOLLOW_constraint_in_constraints3302 = new BitSet(
10836:                    new long[] { 0x0000000000000802L });
10837:            public static final BitSet FOLLOW_COMMA_in_constraints3309 = new BitSet(
10838:                    new long[] { 0x103EF2418147E6F0L });
10839:            public static final BitSet FOLLOW_constraint_in_constraints3318 = new BitSet(
10840:                    new long[] { 0x0000000000000802L });
10841:            public static final BitSet FOLLOW_or_constr_in_constraint3351 = new BitSet(
10842:                    new long[] { 0x0000000000000002L });
10843:            public static final BitSet FOLLOW_and_constr_in_or_constr3374 = new BitSet(
10844:                    new long[] { 0x0000000800000002L });
10845:            public static final BitSet FOLLOW_DOUBLE_PIPE_in_or_constr3382 = new BitSet(
10846:                    new long[] { 0x103EF2418147E6F0L });
10847:            public static final BitSet FOLLOW_and_constr_in_or_constr3391 = new BitSet(
10848:                    new long[] { 0x0000000800000002L });
10849:            public static final BitSet FOLLOW_unary_constr_in_and_constr3423 = new BitSet(
10850:                    new long[] { 0x0000002000000002L });
10851:            public static final BitSet FOLLOW_DOUBLE_AMPER_in_and_constr3431 = new BitSet(
10852:                    new long[] { 0x103EF2418147E6F0L });
10853:            public static final BitSet FOLLOW_unary_constr_in_and_constr3440 = new BitSet(
10854:                    new long[] { 0x0000002000000002L });
10855:            public static final BitSet FOLLOW_field_constraint_in_unary_constr3468 = new BitSet(
10856:                    new long[] { 0x0000000000000002L });
10857:            public static final BitSet FOLLOW_LEFT_PAREN_in_unary_constr3476 = new BitSet(
10858:                    new long[] { 0x103EF2418147E6F0L });
10859:            public static final BitSet FOLLOW_or_constr_in_unary_constr3478 = new BitSet(
10860:                    new long[] { 0x0000000000001000L });
10861:            public static final BitSet FOLLOW_RIGHT_PAREN_in_unary_constr3481 = new BitSet(
10862:                    new long[] { 0x0000000000000002L });
10863:            public static final BitSet FOLLOW_EVAL_in_unary_constr3487 = new BitSet(
10864:                    new long[] { 0x0000000000000400L });
10865:            public static final BitSet FOLLOW_predicate_in_unary_constr3489 = new BitSet(
10866:                    new long[] { 0x0000000000000002L });
10867:            public static final BitSet FOLLOW_ID_in_field_constraint3528 = new BitSet(
10868:                    new long[] { 0x0000000000000000L, 0x0000000000000200L });
10869:            public static final BitSet FOLLOW_73_in_field_constraint3530 = new BitSet(
10870:                    new long[] { 0x103EF0418147E2F0L });
10871:            public static final BitSet FOLLOW_accessor_path_in_field_constraint3549 = new BitSet(
10872:                    new long[] { 0x003E010000000402L, 0x000000000001FC00L });
10873:            public static final BitSet FOLLOW_or_restr_connective_in_field_constraint3577 = new BitSet(
10874:                    new long[] { 0x0000000000000002L });
10875:            public static final BitSet FOLLOW_74_in_field_constraint3597 = new BitSet(
10876:                    new long[] { 0x0000000000000400L });
10877:            public static final BitSet FOLLOW_predicate_in_field_constraint3599 = new BitSet(
10878:                    new long[] { 0x0000000000000002L });
10879:            public static final BitSet FOLLOW_accessor_path_in_field_constraint3625 = new BitSet(
10880:                    new long[] { 0x003E010000000400L, 0x000000000001F800L });
10881:            public static final BitSet FOLLOW_or_restr_connective_in_field_constraint3647 = new BitSet(
10882:                    new long[] { 0x0000000000000002L });
10883:            public static final BitSet FOLLOW_and_restr_connective_in_or_restr_connective3698 = new BitSet(
10884:                    new long[] { 0x0000000800000002L });
10885:            public static final BitSet FOLLOW_DOUBLE_PIPE_in_or_restr_connective3722 = new BitSet(
10886:                    new long[] { 0x003E010000000400L, 0x000000000001F800L });
10887:            public static final BitSet FOLLOW_and_restr_connective_in_or_restr_connective3733 = new BitSet(
10888:                    new long[] { 0x0000000800000002L });
10889:            public static final BitSet FOLLOW_constraint_expression_in_and_restr_connective3765 = new BitSet(
10890:                    new long[] { 0x0000002000000002L });
10891:            public static final BitSet FOLLOW_DOUBLE_AMPER_in_and_restr_connective3786 = new BitSet(
10892:                    new long[] { 0x003E010000000400L, 0x000000000001F800L });
10893:            public static final BitSet FOLLOW_constraint_expression_in_and_restr_connective3797 = new BitSet(
10894:                    new long[] { 0x0000002000000002L });
10895:            public static final BitSet FOLLOW_compound_operator_in_constraint_expression3834 = new BitSet(
10896:                    new long[] { 0x0000000000000002L });
10897:            public static final BitSet FOLLOW_simple_operator_in_constraint_expression3841 = new BitSet(
10898:                    new long[] { 0x0000000000000002L });
10899:            public static final BitSet FOLLOW_LEFT_PAREN_in_constraint_expression3848 = new BitSet(
10900:                    new long[] { 0x003E010000000400L, 0x000000000001F800L });
10901:            public static final BitSet FOLLOW_or_restr_connective_in_constraint_expression3857 = new BitSet(
10902:                    new long[] { 0x0000000000001000L });
10903:            public static final BitSet FOLLOW_RIGHT_PAREN_in_constraint_expression3863 = new BitSet(
10904:                    new long[] { 0x0000000000000002L });
10905:            public static final BitSet FOLLOW_75_in_simple_operator3894 = new BitSet(
10906:                    new long[] { 0x10FEF04183D7E6F0L });
10907:            public static final BitSet FOLLOW_76_in_simple_operator3902 = new BitSet(
10908:                    new long[] { 0x10FEF04183D7E6F0L });
10909:            public static final BitSet FOLLOW_77_in_simple_operator3910 = new BitSet(
10910:                    new long[] { 0x10FEF04183D7E6F0L });
10911:            public static final BitSet FOLLOW_78_in_simple_operator3918 = new BitSet(
10912:                    new long[] { 0x10FEF04183D7E6F0L });
10913:            public static final BitSet FOLLOW_79_in_simple_operator3926 = new BitSet(
10914:                    new long[] { 0x10FEF04183D7E6F0L });
10915:            public static final BitSet FOLLOW_80_in_simple_operator3934 = new BitSet(
10916:                    new long[] { 0x10FEF04183D7E6F0L });
10917:            public static final BitSet FOLLOW_CONTAINS_in_simple_operator3942 = new BitSet(
10918:                    new long[] { 0x10FEF04183D7E6F0L });
10919:            public static final BitSet FOLLOW_NOT_in_simple_operator3950 = new BitSet(
10920:                    new long[] { 0x0002000000000000L });
10921:            public static final BitSet FOLLOW_CONTAINS_in_simple_operator3954 = new BitSet(
10922:                    new long[] { 0x10FEF04183D7E6F0L });
10923:            public static final BitSet FOLLOW_EXCLUDES_in_simple_operator3962 = new BitSet(
10924:                    new long[] { 0x10FEF04183D7E6F0L });
10925:            public static final BitSet FOLLOW_MATCHES_in_simple_operator3970 = new BitSet(
10926:                    new long[] { 0x10FEF04183D7E6F0L });
10927:            public static final BitSet FOLLOW_NOT_in_simple_operator3978 = new BitSet(
10928:                    new long[] { 0x0008000000000000L });
10929:            public static final BitSet FOLLOW_MATCHES_in_simple_operator3982 = new BitSet(
10930:                    new long[] { 0x10FEF04183D7E6F0L });
10931:            public static final BitSet FOLLOW_MEMBEROF_in_simple_operator3990 = new BitSet(
10932:                    new long[] { 0x10FEF04183D7E6F0L });
10933:            public static final BitSet FOLLOW_NOT_in_simple_operator3998 = new BitSet(
10934:                    new long[] { 0x0010000000000000L });
10935:            public static final BitSet FOLLOW_MEMBEROF_in_simple_operator4002 = new BitSet(
10936:                    new long[] { 0x10FEF04183D7E6F0L });
10937:            public static final BitSet FOLLOW_expression_value_in_simple_operator4016 = new BitSet(
10938:                    new long[] { 0x0000000000000002L });
10939:            public static final BitSet FOLLOW_IN_in_compound_operator4046 = new BitSet(
10940:                    new long[] { 0x0000000000000400L });
10941:            public static final BitSet FOLLOW_NOT_in_compound_operator4058 = new BitSet(
10942:                    new long[] { 0x0020000000000000L });
10943:            public static final BitSet FOLLOW_IN_in_compound_operator4060 = new BitSet(
10944:                    new long[] { 0x0000000000000400L });
10945:            public static final BitSet FOLLOW_LEFT_PAREN_in_compound_operator4075 = new BitSet(
10946:                    new long[] { 0x10FEF04183D7E6F0L });
10947:            public static final BitSet FOLLOW_expression_value_in_compound_operator4079 = new BitSet(
10948:                    new long[] { 0x0000000000001800L });
10949:            public static final BitSet FOLLOW_COMMA_in_compound_operator4086 = new BitSet(
10950:                    new long[] { 0x10FEF04183D7E6F0L });
10951:            public static final BitSet FOLLOW_expression_value_in_compound_operator4090 = new BitSet(
10952:                    new long[] { 0x0000000000001800L });
10953:            public static final BitSet FOLLOW_RIGHT_PAREN_in_compound_operator4099 = new BitSet(
10954:                    new long[] { 0x0000000000000002L });
10955:            public static final BitSet FOLLOW_accessor_path_in_expression_value4133 = new BitSet(
10956:                    new long[] { 0x0000000000000002L });
10957:            public static final BitSet FOLLOW_literal_constraint_in_expression_value4153 = new BitSet(
10958:                    new long[] { 0x0000000000000002L });
10959:            public static final BitSet FOLLOW_paren_chunk_in_expression_value4167 = new BitSet(
10960:                    new long[] { 0x0000000000000002L });
10961:            public static final BitSet FOLLOW_STRING_in_literal_constraint4210 = new BitSet(
10962:                    new long[] { 0x0000000000000002L });
10963:            public static final BitSet FOLLOW_INT_in_literal_constraint4221 = new BitSet(
10964:                    new long[] { 0x0000000000000002L });
10965:            public static final BitSet FOLLOW_FLOAT_in_literal_constraint4234 = new BitSet(
10966:                    new long[] { 0x0000000000000002L });
10967:            public static final BitSet FOLLOW_BOOL_in_literal_constraint4245 = new BitSet(
10968:                    new long[] { 0x0000000000000002L });
10969:            public static final BitSet FOLLOW_NULL_in_literal_constraint4257 = new BitSet(
10970:                    new long[] { 0x0000000000000002L });
10971:            public static final BitSet FOLLOW_paren_chunk_in_predicate4295 = new BitSet(
10972:                    new long[] { 0x0000000000000002L });
10973:            public static final BitSet FOLLOW_LEFT_CURLY_in_curly_chunk4313 = new BitSet(
10974:                    new long[] { 0xFFFFFFFFFFFFFFF0L, 0x000000000001FFFFL });
10975:            public static final BitSet FOLLOW_set_in_curly_chunk4317 = new BitSet(
10976:                    new long[] { 0xFFFFFFFFFFFFFFF0L, 0x000000000001FFFFL });
10977:            public static final BitSet FOLLOW_curly_chunk_in_curly_chunk4326 = new BitSet(
10978:                    new long[] { 0xFFFFFFFFFFFFFFF0L, 0x000000000001FFFFL });
10979:            public static final BitSet FOLLOW_RIGHT_CURLY_in_curly_chunk4331 = new BitSet(
10980:                    new long[] { 0x0000000000000002L });
10981:            public static final BitSet FOLLOW_LEFT_PAREN_in_paren_chunk4345 = new BitSet(
10982:                    new long[] { 0xFFFFFFFFFFFFFFF0L, 0x000000000001FFFFL });
10983:            public static final BitSet FOLLOW_set_in_paren_chunk4349 = new BitSet(
10984:                    new long[] { 0xFFFFFFFFFFFFFFF0L, 0x000000000001FFFFL });
10985:            public static final BitSet FOLLOW_paren_chunk_in_paren_chunk4358 = new BitSet(
10986:                    new long[] { 0xFFFFFFFFFFFFFFF0L, 0x000000000001FFFFL });
10987:            public static final BitSet FOLLOW_RIGHT_PAREN_in_paren_chunk4363 = new BitSet(
10988:                    new long[] { 0x0000000000000002L });
10989:            public static final BitSet FOLLOW_LEFT_SQUARE_in_square_chunk4376 = new BitSet(
10990:                    new long[] { 0xFFFFFFFFFFFFFFF0L, 0x000000000001FFFFL });
10991:            public static final BitSet FOLLOW_set_in_square_chunk4380 = new BitSet(
10992:                    new long[] { 0xFFFFFFFFFFFFFFF0L, 0x000000000001FFFFL });
10993:            public static final BitSet FOLLOW_square_chunk_in_square_chunk4389 = new BitSet(
10994:                    new long[] { 0xFFFFFFFFFFFFFFF0L, 0x000000000001FFFFL });
10995:            public static final BitSet FOLLOW_RIGHT_SQUARE_in_square_chunk4394 = new BitSet(
10996:                    new long[] { 0x0000000000000002L });
10997:            public static final BitSet FOLLOW_ID_in_qualified_id4423 = new BitSet(
10998:                    new long[] { 0x0400000000000102L });
10999:            public static final BitSet FOLLOW_DOT_in_qualified_id4429 = new BitSet(
11000:                    new long[] { 0x103EF0418147E2F0L });
11001:            public static final BitSet FOLLOW_identifier_in_qualified_id4431 = new BitSet(
11002:                    new long[] { 0x0400000000000102L });
11003:            public static final BitSet FOLLOW_LEFT_SQUARE_in_qualified_id4440 = new BitSet(
11004:                    new long[] { 0x0800000000000000L });
11005:            public static final BitSet FOLLOW_RIGHT_SQUARE_in_qualified_id4442 = new BitSet(
11006:                    new long[] { 0x0400000000000002L });
11007:            public static final BitSet FOLLOW_identifier_in_dotted_name4476 = new BitSet(
11008:                    new long[] { 0x0400000000000102L });
11009:            public static final BitSet FOLLOW_DOT_in_dotted_name4482 = new BitSet(
11010:                    new long[] { 0x103EF0418147E2F0L });
11011:            public static final BitSet FOLLOW_identifier_in_dotted_name4486 = new BitSet(
11012:                    new long[] { 0x0400000000000102L });
11013:            public static final BitSet FOLLOW_LEFT_SQUARE_in_dotted_name4495 = new BitSet(
11014:                    new long[] { 0x0800000000000000L });
11015:            public static final BitSet FOLLOW_RIGHT_SQUARE_in_dotted_name4497 = new BitSet(
11016:                    new long[] { 0x0400000000000002L });
11017:            public static final BitSet FOLLOW_accessor_element_in_accessor_path4531 = new BitSet(
11018:                    new long[] { 0x0000000000000102L });
11019:            public static final BitSet FOLLOW_DOT_in_accessor_path4537 = new BitSet(
11020:                    new long[] { 0x103EF0418147E2F0L });
11021:            public static final BitSet FOLLOW_accessor_element_in_accessor_path4541 = new BitSet(
11022:                    new long[] { 0x0000000000000102L });
11023:            public static final BitSet FOLLOW_identifier_in_accessor_element4579 = new BitSet(
11024:                    new long[] { 0x0400000000000002L });
11025:            public static final BitSet FOLLOW_square_chunk_in_accessor_element4586 = new BitSet(
11026:                    new long[] { 0x0400000000000002L });
11027:            public static final BitSet FOLLOW_THEN_in_rhs_chunk4607 = new BitSet(
11028:                    new long[] { 0xFFFFFFFFFFFFFFF0L, 0x000000000001FFFFL });
11029:            public static final BitSet FOLLOW_set_in_rhs_chunk4615 = new BitSet(
11030:                    new long[] { 0xFFFFFFFFFFFFFFF0L, 0x000000000001FFFFL });
11031:            public static final BitSet FOLLOW_END_in_rhs_chunk4639 = new BitSet(
11032:                    new long[] { 0x0000000000000002L, 0x0000000000000080L });
11033:            public static final BitSet FOLLOW_opt_semicolon_in_rhs_chunk4641 = new BitSet(
11034:                    new long[] { 0x0000000000000002L });
11035:            public static final BitSet FOLLOW_ID_in_name4675 = new BitSet(
11036:                    new long[] { 0x0000000000000002L });
11037:            public static final BitSet FOLLOW_STRING_in_name4683 = new BitSet(
11038:                    new long[] { 0x0000000000000002L });
11039:            public static final BitSet FOLLOW_set_in_identifier0 = new BitSet(
11040:                    new long[] { 0x0000000000000002L });
11041:            public static final BitSet FOLLOW_EXISTS_in_synpred11913 = new BitSet(
11042:                    new long[] { 0x0000000000000002L });
11043:            public static final BitSet FOLLOW_NOT_in_synpred21931 = new BitSet(
11044:                    new long[] { 0x0000000000000002L });
11045:            public static final BitSet FOLLOW_EVAL_in_synpred31950 = new BitSet(
11046:                    new long[] { 0x0000000000000002L });
11047:            public static final BitSet FOLLOW_FORALL_in_synpred41969 = new BitSet(
11048:                    new long[] { 0x0000000000000002L });
11049:            public static final BitSet FOLLOW_LEFT_PAREN_in_synpred51988 = new BitSet(
11050:                    new long[] { 0x0000000000000002L });
11051:            public static final BitSet FOLLOW_LEFT_SQUARE_in_synpred62957 = new BitSet(
11052:                    new long[] { 0x0000000000000002L });
11053:            public static final BitSet FOLLOW_LEFT_PAREN_in_synpred72990 = new BitSet(
11054:                    new long[] { 0x0000000000000002L });
11055:            public static final BitSet FOLLOW_DOUBLE_PIPE_in_synpred83722 = new BitSet(
11056:                    new long[] { 0x003E010000000400L, 0x000000000001F800L });
11057:            public static final BitSet FOLLOW_and_restr_connective_in_synpred83733 = new BitSet(
11058:                    new long[] { 0x0000000000000002L });
11059:            public static final BitSet FOLLOW_DOUBLE_AMPER_in_synpred93786 = new BitSet(
11060:                    new long[] { 0x003E010000000400L, 0x000000000001F800L });
11061:            public static final BitSet FOLLOW_constraint_expression_in_synpred93797 = new BitSet(
11062:                    new long[] { 0x0000000000000002L });
11063:
11064:        }
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.