001    // $ANTLR 3.0.1 /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g 2008-09-26 16:57:47
002    
003    /*
004     * JBoss, Home of Professional Open Source.
005     * Copyright 2008, Red Hat Middleware LLC, and individual contributors
006     * as indicated by the @author tags. See the copyright.txt file in the
007     * distribution for a full listing of individual contributors. 
008     *
009     * This is free software; you can redistribute it and/or modify it
010     * under the terms of the GNU Lesser General Public License as
011     * published by the Free Software Foundation; either version 2.1 of
012     * the License, or (at your option) any later version.
013     *
014     * This software is distributed in the hope that it will be useful,
015     * but WITHOUT ANY WARRANTY; without even the implied warranty of
016     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
017     * Lesser General Public License for more details.
018     *
019     * You should have received a copy of the GNU Lesser General Public
020     * License along with this software; if not, write to the Free
021     * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
022     * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
023     */
024    package org.jboss.dna.sequencer.cnd;
025    
026    
027    import org.antlr.runtime.*;
028    import java.util.Stack;
029    import java.util.List;
030    import java.util.ArrayList;
031    
032    
033    import org.antlr.runtime.tree.*;
034    
035    public class CndParser extends Parser {
036        public static final String[] tokenNames = new String[] {
037            "<invalid>", "<EOR>", "<DOWN>", "<UP>", "COMMA", "DASH", "DOT", "EQUALS", "EXCLAMATION", "GREATER_THAN", "LEFT_BRACKET", "LEFT_PAREN", "LESS_THAN", "PLUS", "RIGHT_BRACKET", "RIGHT_PAREN", "SINGLE_QUOTE", "SLASH", "STAR", "ATTRIBUTES", "COMMENTS", "DEFAULT_TYPE", "DEFAULT_VALUES", "JCR_NAME", "NAME", "NAMESPACES", "CHILD_NODE_DEFINITION", "CHILD_NODE_DEFINITIONS", "NODE_TYPE_DEFINITION", "NODE_TYPE_DEFINITIONS", "NODE_TYPE_OPTIONS", "PROPERTIES", "PROPERTY_DEFINITION", "PROPERTY_TYPE", "REQUIRED_TYPES", "SUPERTYPES", "VALUE_CONSTRAINTS", "SINGLE_LINE_COMMENT", "MULTI_LINE_COMMENT", "NAMESPACE_MAPPING", "QUOTED_STRING", "UNQUOTED_STRING", "QUOTED_URI_STRING", "UNQUOTED_URI_STRING", "URI_SPECIAL_CHARS", "WS", "'abstract'", "'abs'", "'a'", "'orderable'", "'ord'", "'o'", "'mixin'", "'mix'", "'m'", "'BINARY'", "'Binary'", "'binary'", "'BOOLEAN'", "'Boolean'", "'boolean'", "'DATE'", "'Date'", "'date'", "'DECIMAL'", "'Decimal'", "'decimal'", "'DOUBLE'", "'Double'", "'double'", "'LONG'", "'Long'", "'long'", "'NAME'", "'Name'", "'name'", "'PATH'", "'Path'", "'path'", "'REFERENCE'", "'Reference'", "'reference'", "'STRING'", "'String'", "'string'", "'UNDEFINED'", "'Undefined'", "'undefined'", "'URI'", "'Uri'", "'uri'", "'WEAKREFERENCE'", "'WeakReference'", "'weakreference'", "'ABORT'", "'Abort'", "'abort'", "'autocreated'", "'aut'", "'COMPUTE'", "'Compute'", "'compute'", "'COPY'", "'Copy'", "'copy'", "'IGNORE'", "'Ignore'", "'ignore'", "'INITIALIZE'", "'Initialize'", "'initialize'", "'mandatory'", "'man'", "'multiple'", "'mul'", "'primary'", "'pri'", "'protected'", "'pro'", "'p'", "'VERSION'", "'Version'", "'version'"
038        };
039        public static final int COMMA=4;
040        public static final int GREATER_THAN=9;
041        public static final int NAMESPACES=25;
042        public static final int UNQUOTED_STRING=41;
043        public static final int NODE_TYPE_DEFINITION=28;
044        public static final int NODE_TYPE_DEFINITIONS=29;
045        public static final int LESS_THAN=12;
046        public static final int QUOTED_URI_STRING=42;
047        public static final int COMMENTS=20;
048        public static final int RIGHT_BRACKET=14;
049        public static final int DOT=6;
050        public static final int URI_SPECIAL_CHARS=44;
051        public static final int LEFT_BRACKET=10;
052        public static final int PROPERTIES=31;
053        public static final int ATTRIBUTES=19;
054        public static final int SINGLE_QUOTE=16;
055        public static final int PLUS=13;
056        public static final int NODE_TYPE_OPTIONS=30;
057        public static final int LEFT_PAREN=11;
058        public static final int DEFAULT_VALUES=22;
059        public static final int SINGLE_LINE_COMMENT=37;
060        public static final int SLASH=17;
061        public static final int WS=45;
062        public static final int DEFAULT_TYPE=21;
063        public static final int EXCLAMATION=8;
064        public static final int REQUIRED_TYPES=34;
065        public static final int EQUALS=7;
066        public static final int JCR_NAME=23;
067        public static final int SUPERTYPES=35;
068        public static final int NAMESPACE_MAPPING=39;
069        public static final int VALUE_CONSTRAINTS=36;
070        public static final int QUOTED_STRING=40;
071        public static final int EOF=-1;
072        public static final int CHILD_NODE_DEFINITIONS=27;
073        public static final int CHILD_NODE_DEFINITION=26;
074        public static final int MULTI_LINE_COMMENT=38;
075        public static final int DASH=5;
076        public static final int STAR=18;
077        public static final int NAME=24;
078        public static final int PROPERTY_DEFINITION=32;
079        public static final int RIGHT_PAREN=15;
080        public static final int PROPERTY_TYPE=33;
081        public static final int UNQUOTED_URI_STRING=43;
082    
083            public CndParser(TokenStream input) {
084                super(input);
085            }
086            
087        protected TreeAdaptor adaptor = new CommonTreeAdaptor();
088    
089        public void setTreeAdaptor(TreeAdaptor adaptor) {
090            this.adaptor = adaptor;
091        }
092        public TreeAdaptor getTreeAdaptor() {
093            return adaptor;
094        }
095    
096        public String[] getTokenNames() { return tokenNames; }
097        public String getGrammarFileName() { return "/Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g"; }
098    
099    
100            /**
101             * Make the parser exit immediately upon a recognition error by throwing an exception after a mismatch.
102             */
103            @Override
104            protected void mismatch( IntStream input, int ttype, BitSet follow ) throws RecognitionException {
105                throw new MismatchedTokenException(ttype,input);
106            }
107            
108            /**
109             * Make the parser exit immediately upon a recognition error by not recovering from a mismatched set.
110             */
111            @Override
112            public void recoverFromMismatchedSet( IntStream input, RecognitionException e, BitSet follow ) throws RecognitionException {
113                throw e;
114            }
115    
116    
117        public static class cnd_return extends ParserRuleReturnScope {
118            Object tree;
119            public Object getTree() { return tree; }
120        };
121    
122        // $ANTLR start cnd
123        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:140:1: cnd : ( comment | ns_mapping | node_type_def )* -> ( ^( COMMENTS ( comment )* ) )? ( ^( NAMESPACES ( ns_mapping )* ) )? ( ^( NODE_TYPE_DEFINITIONS ( node_type_def )* ) )? ;
124        public final cnd_return cnd() throws RecognitionException {
125            cnd_return retval = new cnd_return();
126            retval.start = input.LT(1);
127    
128            Object root_0 = null;
129    
130            comment_return comment1 = null;
131    
132            ns_mapping_return ns_mapping2 = null;
133    
134            node_type_def_return node_type_def3 = null;
135    
136    
137            RewriteRuleSubtreeStream stream_node_type_def=new RewriteRuleSubtreeStream(adaptor,"rule node_type_def");
138            RewriteRuleSubtreeStream stream_ns_mapping=new RewriteRuleSubtreeStream(adaptor,"rule ns_mapping");
139            RewriteRuleSubtreeStream stream_comment=new RewriteRuleSubtreeStream(adaptor,"rule comment");
140            try {
141                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:141:2: ( ( comment | ns_mapping | node_type_def )* -> ( ^( COMMENTS ( comment )* ) )? ( ^( NAMESPACES ( ns_mapping )* ) )? ( ^( NODE_TYPE_DEFINITIONS ( node_type_def )* ) )? )
142                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:141:4: ( comment | ns_mapping | node_type_def )*
143                {
144                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:141:4: ( comment | ns_mapping | node_type_def )*
145                loop1:
146                do {
147                    int alt1=4;
148                    switch ( input.LA(1) ) {
149                    case SINGLE_LINE_COMMENT:
150                    case MULTI_LINE_COMMENT:
151                        {
152                        alt1=1;
153                        }
154                        break;
155                    case NAMESPACE_MAPPING:
156                        {
157                        alt1=2;
158                        }
159                        break;
160                    case LEFT_BRACKET:
161                        {
162                        alt1=3;
163                        }
164                        break;
165    
166                    }
167    
168                    switch (alt1) {
169                    case 1 :
170                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:141:6: comment
171                        {
172                        pushFollow(FOLLOW_comment_in_cnd256);
173                        comment1=comment();
174                        _fsp--;
175    
176                        stream_comment.add(comment1.getTree());
177    
178                        }
179                        break;
180                    case 2 :
181                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:142:6: ns_mapping
182                        {
183                        pushFollow(FOLLOW_ns_mapping_in_cnd263);
184                        ns_mapping2=ns_mapping();
185                        _fsp--;
186    
187                        stream_ns_mapping.add(ns_mapping2.getTree());
188    
189                        }
190                        break;
191                    case 3 :
192                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:143:6: node_type_def
193                        {
194                        pushFollow(FOLLOW_node_type_def_in_cnd270);
195                        node_type_def3=node_type_def();
196                        _fsp--;
197    
198                        stream_node_type_def.add(node_type_def3.getTree());
199    
200                        }
201                        break;
202    
203                    default :
204                        break loop1;
205                    }
206                } while (true);
207    
208    
209                // AST REWRITE
210                // elements: ns_mapping, comment, node_type_def
211                // token labels: 
212                // rule labels: retval
213                // token list labels: 
214                // rule list labels: 
215                retval.tree = root_0;
216                RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
217    
218                root_0 = (Object)adaptor.nil();
219                // 146:2: -> ( ^( COMMENTS ( comment )* ) )? ( ^( NAMESPACES ( ns_mapping )* ) )? ( ^( NODE_TYPE_DEFINITIONS ( node_type_def )* ) )?
220                {
221                    // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:146:5: ( ^( COMMENTS ( comment )* ) )?
222                    if ( stream_comment.hasNext() ) {
223                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:146:5: ^( COMMENTS ( comment )* )
224                        {
225                        Object root_1 = (Object)adaptor.nil();
226                        root_1 = (Object)adaptor.becomeRoot(adaptor.create(COMMENTS, "COMMENTS"), root_1);
227    
228                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:146:16: ( comment )*
229                        while ( stream_comment.hasNext() ) {
230                            adaptor.addChild(root_1, stream_comment.next());
231    
232                        }
233                        stream_comment.reset();
234    
235                        adaptor.addChild(root_0, root_1);
236                        }
237    
238                    }
239                    stream_comment.reset();
240                    // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:147:3: ( ^( NAMESPACES ( ns_mapping )* ) )?
241                    if ( stream_ns_mapping.hasNext() ) {
242                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:147:3: ^( NAMESPACES ( ns_mapping )* )
243                        {
244                        Object root_1 = (Object)adaptor.nil();
245                        root_1 = (Object)adaptor.becomeRoot(adaptor.create(NAMESPACES, "NAMESPACES"), root_1);
246    
247                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:147:16: ( ns_mapping )*
248                        while ( stream_ns_mapping.hasNext() ) {
249                            adaptor.addChild(root_1, stream_ns_mapping.next());
250    
251                        }
252                        stream_ns_mapping.reset();
253    
254                        adaptor.addChild(root_0, root_1);
255                        }
256    
257                    }
258                    stream_ns_mapping.reset();
259                    // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:148:3: ( ^( NODE_TYPE_DEFINITIONS ( node_type_def )* ) )?
260                    if ( stream_node_type_def.hasNext() ) {
261                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:148:3: ^( NODE_TYPE_DEFINITIONS ( node_type_def )* )
262                        {
263                        Object root_1 = (Object)adaptor.nil();
264                        root_1 = (Object)adaptor.becomeRoot(adaptor.create(NODE_TYPE_DEFINITIONS, "NODE_TYPE_DEFINITIONS"), root_1);
265    
266                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:148:27: ( node_type_def )*
267                        while ( stream_node_type_def.hasNext() ) {
268                            adaptor.addChild(root_1, stream_node_type_def.next());
269    
270                        }
271                        stream_node_type_def.reset();
272    
273                        adaptor.addChild(root_0, root_1);
274                        }
275    
276                    }
277                    stream_node_type_def.reset();
278    
279                }
280    
281    
282    
283                }
284    
285                retval.stop = input.LT(-1);
286    
287                    retval.tree = (Object)adaptor.rulePostProcessing(root_0);
288                    adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
289    
290            }
291            catch (RecognitionException re) {
292                reportError(re);
293                recover(input,re);
294            }
295            finally {
296            }
297            return retval;
298        }
299        // $ANTLR end cnd
300    
301        public static class comment_return extends ParserRuleReturnScope {
302            Object tree;
303            public Object getTree() { return tree; }
304        };
305    
306        // $ANTLR start comment
307        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:151:1: comment : ( SINGLE_LINE_COMMENT | MULTI_LINE_COMMENT );
308        public final comment_return comment() throws RecognitionException {
309            comment_return retval = new comment_return();
310            retval.start = input.LT(1);
311    
312            Object root_0 = null;
313    
314            Token set4=null;
315    
316            Object set4_tree=null;
317    
318            try {
319                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:152:2: ( SINGLE_LINE_COMMENT | MULTI_LINE_COMMENT )
320                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:
321                {
322                root_0 = (Object)adaptor.nil();
323    
324                set4=(Token)input.LT(1);
325                if ( (input.LA(1)>=SINGLE_LINE_COMMENT && input.LA(1)<=MULTI_LINE_COMMENT) ) {
326                    input.consume();
327                    adaptor.addChild(root_0, adaptor.create(set4));
328                    errorRecovery=false;
329                }
330                else {
331                    MismatchedSetException mse =
332                        new MismatchedSetException(null,input);
333                    recoverFromMismatchedSet(input,mse,FOLLOW_set_in_comment0);    throw mse;
334                }
335    
336    
337                }
338    
339                retval.stop = input.LT(-1);
340    
341                    retval.tree = (Object)adaptor.rulePostProcessing(root_0);
342                    adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
343    
344            }
345            catch (RecognitionException re) {
346                reportError(re);
347                recover(input,re);
348            }
349            finally {
350            }
351            return retval;
352        }
353        // $ANTLR end comment
354    
355        public static class ns_mapping_return extends ParserRuleReturnScope {
356            Object tree;
357            public Object getTree() { return tree; }
358        };
359    
360        // $ANTLR start ns_mapping
361        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:156:1: ns_mapping : NAMESPACE_MAPPING ;
362        public final ns_mapping_return ns_mapping() throws RecognitionException {
363            ns_mapping_return retval = new ns_mapping_return();
364            retval.start = input.LT(1);
365    
366            Object root_0 = null;
367    
368            Token NAMESPACE_MAPPING5=null;
369    
370            Object NAMESPACE_MAPPING5_tree=null;
371    
372            try {
373                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:157:2: ( NAMESPACE_MAPPING )
374                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:157:4: NAMESPACE_MAPPING
375                {
376                root_0 = (Object)adaptor.nil();
377    
378                NAMESPACE_MAPPING5=(Token)input.LT(1);
379                match(input,NAMESPACE_MAPPING,FOLLOW_NAMESPACE_MAPPING_in_ns_mapping338); 
380                NAMESPACE_MAPPING5_tree = (Object)adaptor.create(NAMESPACE_MAPPING5);
381                adaptor.addChild(root_0, NAMESPACE_MAPPING5_tree);
382    
383    
384                }
385    
386                retval.stop = input.LT(-1);
387    
388                    retval.tree = (Object)adaptor.rulePostProcessing(root_0);
389                    adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
390    
391            }
392            catch (RecognitionException re) {
393                reportError(re);
394                recover(input,re);
395            }
396            finally {
397            }
398            return retval;
399        }
400        // $ANTLR end ns_mapping
401    
402        public static class node_type_def_return extends ParserRuleReturnScope {
403            Object tree;
404            public Object getTree() { return tree; }
405        };
406    
407        // $ANTLR start node_type_def
408        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:160:1: node_type_def : ( node_type_name ( supertypes )? ( node_type_options )? ( property_def | child_node_def )* ) -> ^( NODE_TYPE_DEFINITION ^( JCR_NAME node_type_name ) ( ^( SUPERTYPES supertypes ) )? ( ^( NODE_TYPE_OPTIONS node_type_options ) )? ( ^( PROPERTIES ( property_def )* ) )? ( ^( CHILD_NODE_DEFINITIONS ( child_node_def )* ) )? ) ;
409        public final node_type_def_return node_type_def() throws RecognitionException {
410            node_type_def_return retval = new node_type_def_return();
411            retval.start = input.LT(1);
412    
413            Object root_0 = null;
414    
415            node_type_name_return node_type_name6 = null;
416    
417            supertypes_return supertypes7 = null;
418    
419            node_type_options_return node_type_options8 = null;
420    
421            property_def_return property_def9 = null;
422    
423            child_node_def_return child_node_def10 = null;
424    
425    
426            RewriteRuleSubtreeStream stream_supertypes=new RewriteRuleSubtreeStream(adaptor,"rule supertypes");
427            RewriteRuleSubtreeStream stream_child_node_def=new RewriteRuleSubtreeStream(adaptor,"rule child_node_def");
428            RewriteRuleSubtreeStream stream_property_def=new RewriteRuleSubtreeStream(adaptor,"rule property_def");
429            RewriteRuleSubtreeStream stream_node_type_name=new RewriteRuleSubtreeStream(adaptor,"rule node_type_name");
430            RewriteRuleSubtreeStream stream_node_type_options=new RewriteRuleSubtreeStream(adaptor,"rule node_type_options");
431            try {
432                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:161:2: ( ( node_type_name ( supertypes )? ( node_type_options )? ( property_def | child_node_def )* ) -> ^( NODE_TYPE_DEFINITION ^( JCR_NAME node_type_name ) ( ^( SUPERTYPES supertypes ) )? ( ^( NODE_TYPE_OPTIONS node_type_options ) )? ( ^( PROPERTIES ( property_def )* ) )? ( ^( CHILD_NODE_DEFINITIONS ( child_node_def )* ) )? ) )
433                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:161:5: ( node_type_name ( supertypes )? ( node_type_options )? ( property_def | child_node_def )* )
434                {
435                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:161:5: ( node_type_name ( supertypes )? ( node_type_options )? ( property_def | child_node_def )* )
436                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:161:7: node_type_name ( supertypes )? ( node_type_options )? ( property_def | child_node_def )*
437                {
438                pushFollow(FOLLOW_node_type_name_in_node_type_def352);
439                node_type_name6=node_type_name();
440                _fsp--;
441    
442                stream_node_type_name.add(node_type_name6.getTree());
443                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:162:4: ( supertypes )?
444                int alt2=2;
445                int LA2_0 = input.LA(1);
446    
447                if ( (LA2_0==GREATER_THAN) ) {
448                    alt2=1;
449                }
450                switch (alt2) {
451                    case 1 :
452                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:162:4: supertypes
453                        {
454                        pushFollow(FOLLOW_supertypes_in_node_type_def357);
455                        supertypes7=supertypes();
456                        _fsp--;
457    
458                        stream_supertypes.add(supertypes7.getTree());
459    
460                        }
461                        break;
462    
463                }
464    
465                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:163:4: ( node_type_options )?
466                int alt3=2;
467                int LA3_0 = input.LA(1);
468    
469                if ( ((LA3_0>=46 && LA3_0<=54)) ) {
470                    alt3=1;
471                }
472                switch (alt3) {
473                    case 1 :
474                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:163:4: node_type_options
475                        {
476                        pushFollow(FOLLOW_node_type_options_in_node_type_def363);
477                        node_type_options8=node_type_options();
478                        _fsp--;
479    
480                        stream_node_type_options.add(node_type_options8.getTree());
481    
482                        }
483                        break;
484    
485                }
486    
487                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:164:4: ( property_def | child_node_def )*
488                loop4:
489                do {
490                    int alt4=3;
491                    int LA4_0 = input.LA(1);
492    
493                    if ( (LA4_0==DASH) ) {
494                        alt4=1;
495                    }
496                    else if ( (LA4_0==PLUS) ) {
497                        alt4=2;
498                    }
499    
500    
501                    switch (alt4) {
502                    case 1 :
503                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:164:6: property_def
504                        {
505                        pushFollow(FOLLOW_property_def_in_node_type_def371);
506                        property_def9=property_def();
507                        _fsp--;
508    
509                        stream_property_def.add(property_def9.getTree());
510    
511                        }
512                        break;
513                    case 2 :
514                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:165:7: child_node_def
515                        {
516                        pushFollow(FOLLOW_child_node_def_in_node_type_def379);
517                        child_node_def10=child_node_def();
518                        _fsp--;
519    
520                        stream_child_node_def.add(child_node_def10.getTree());
521    
522                        }
523                        break;
524    
525                    default :
526                        break loop4;
527                    }
528                } while (true);
529    
530    
531                }
532    
533    
534                // AST REWRITE
535                // elements: child_node_def, node_type_options, node_type_name, property_def, supertypes
536                // token labels: 
537                // rule labels: retval
538                // token list labels: 
539                // rule list labels: 
540                retval.tree = root_0;
541                RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
542    
543                root_0 = (Object)adaptor.nil();
544                // 169:2: -> ^( NODE_TYPE_DEFINITION ^( JCR_NAME node_type_name ) ( ^( SUPERTYPES supertypes ) )? ( ^( NODE_TYPE_OPTIONS node_type_options ) )? ( ^( PROPERTIES ( property_def )* ) )? ( ^( CHILD_NODE_DEFINITIONS ( child_node_def )* ) )? )
545                {
546                    // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:169:5: ^( NODE_TYPE_DEFINITION ^( JCR_NAME node_type_name ) ( ^( SUPERTYPES supertypes ) )? ( ^( NODE_TYPE_OPTIONS node_type_options ) )? ( ^( PROPERTIES ( property_def )* ) )? ( ^( CHILD_NODE_DEFINITIONS ( child_node_def )* ) )? )
547                    {
548                    Object root_1 = (Object)adaptor.nil();
549                    root_1 = (Object)adaptor.becomeRoot(adaptor.create(NODE_TYPE_DEFINITION, "NODE_TYPE_DEFINITION"), root_1);
550    
551                    // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:170:4: ^( JCR_NAME node_type_name )
552                    {
553                    Object root_2 = (Object)adaptor.nil();
554                    root_2 = (Object)adaptor.becomeRoot(adaptor.create(JCR_NAME, "JCR_NAME"), root_2);
555    
556                    adaptor.addChild(root_2, stream_node_type_name.next());
557    
558                    adaptor.addChild(root_1, root_2);
559                    }
560                    // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:171:4: ( ^( SUPERTYPES supertypes ) )?
561                    if ( stream_supertypes.hasNext() ) {
562                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:171:4: ^( SUPERTYPES supertypes )
563                        {
564                        Object root_2 = (Object)adaptor.nil();
565                        root_2 = (Object)adaptor.becomeRoot(adaptor.create(SUPERTYPES, "SUPERTYPES"), root_2);
566    
567                        adaptor.addChild(root_2, stream_supertypes.next());
568    
569                        adaptor.addChild(root_1, root_2);
570                        }
571    
572                    }
573                    stream_supertypes.reset();
574                    // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:172:4: ( ^( NODE_TYPE_OPTIONS node_type_options ) )?
575                    if ( stream_node_type_options.hasNext() ) {
576                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:172:4: ^( NODE_TYPE_OPTIONS node_type_options )
577                        {
578                        Object root_2 = (Object)adaptor.nil();
579                        root_2 = (Object)adaptor.becomeRoot(adaptor.create(NODE_TYPE_OPTIONS, "NODE_TYPE_OPTIONS"), root_2);
580    
581                        adaptor.addChild(root_2, stream_node_type_options.next());
582    
583                        adaptor.addChild(root_1, root_2);
584                        }
585    
586                    }
587                    stream_node_type_options.reset();
588                    // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:173:4: ( ^( PROPERTIES ( property_def )* ) )?
589                    if ( stream_property_def.hasNext() ) {
590                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:173:4: ^( PROPERTIES ( property_def )* )
591                        {
592                        Object root_2 = (Object)adaptor.nil();
593                        root_2 = (Object)adaptor.becomeRoot(adaptor.create(PROPERTIES, "PROPERTIES"), root_2);
594    
595                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:173:17: ( property_def )*
596                        while ( stream_property_def.hasNext() ) {
597                            adaptor.addChild(root_2, stream_property_def.next());
598    
599                        }
600                        stream_property_def.reset();
601    
602                        adaptor.addChild(root_1, root_2);
603                        }
604    
605                    }
606                    stream_property_def.reset();
607                    // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:174:4: ( ^( CHILD_NODE_DEFINITIONS ( child_node_def )* ) )?
608                    if ( stream_child_node_def.hasNext() ) {
609                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:174:4: ^( CHILD_NODE_DEFINITIONS ( child_node_def )* )
610                        {
611                        Object root_2 = (Object)adaptor.nil();
612                        root_2 = (Object)adaptor.becomeRoot(adaptor.create(CHILD_NODE_DEFINITIONS, "CHILD_NODE_DEFINITIONS"), root_2);
613    
614                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:174:29: ( child_node_def )*
615                        while ( stream_child_node_def.hasNext() ) {
616                            adaptor.addChild(root_2, stream_child_node_def.next());
617    
618                        }
619                        stream_child_node_def.reset();
620    
621                        adaptor.addChild(root_1, root_2);
622                        }
623    
624                    }
625                    stream_child_node_def.reset();
626    
627                    adaptor.addChild(root_0, root_1);
628                    }
629    
630                }
631    
632    
633    
634                }
635    
636                retval.stop = input.LT(-1);
637    
638                    retval.tree = (Object)adaptor.rulePostProcessing(root_0);
639                    adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
640    
641            }
642            catch (RecognitionException re) {
643                reportError(re);
644                recover(input,re);
645            }
646            finally {
647            }
648            return retval;
649        }
650        // $ANTLR end node_type_def
651    
652        public static class node_type_name_return extends ParserRuleReturnScope {
653            Object tree;
654            public Object getTree() { return tree; }
655        };
656    
657        // $ANTLR start node_type_name
658        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:178:1: node_type_name : ( LEFT_BRACKET string RIGHT_BRACKET ) -> string ;
659        public final node_type_name_return node_type_name() throws RecognitionException {
660            node_type_name_return retval = new node_type_name_return();
661            retval.start = input.LT(1);
662    
663            Object root_0 = null;
664    
665            Token LEFT_BRACKET11=null;
666            Token RIGHT_BRACKET13=null;
667            string_return string12 = null;
668    
669    
670            Object LEFT_BRACKET11_tree=null;
671            Object RIGHT_BRACKET13_tree=null;
672            RewriteRuleTokenStream stream_LEFT_BRACKET=new RewriteRuleTokenStream(adaptor,"token LEFT_BRACKET");
673            RewriteRuleTokenStream stream_RIGHT_BRACKET=new RewriteRuleTokenStream(adaptor,"token RIGHT_BRACKET");
674            RewriteRuleSubtreeStream stream_string=new RewriteRuleSubtreeStream(adaptor,"rule string");
675            try {
676                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:179:2: ( ( LEFT_BRACKET string RIGHT_BRACKET ) -> string )
677                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:179:5: ( LEFT_BRACKET string RIGHT_BRACKET )
678                {
679                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:179:5: ( LEFT_BRACKET string RIGHT_BRACKET )
680                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:179:7: LEFT_BRACKET string RIGHT_BRACKET
681                {
682                LEFT_BRACKET11=(Token)input.LT(1);
683                match(input,LEFT_BRACKET,FOLLOW_LEFT_BRACKET_in_node_type_name469); 
684                stream_LEFT_BRACKET.add(LEFT_BRACKET11);
685    
686                pushFollow(FOLLOW_string_in_node_type_name474);
687                string12=string();
688                _fsp--;
689    
690                stream_string.add(string12.getTree());
691                RIGHT_BRACKET13=(Token)input.LT(1);
692                match(input,RIGHT_BRACKET,FOLLOW_RIGHT_BRACKET_in_node_type_name479); 
693                stream_RIGHT_BRACKET.add(RIGHT_BRACKET13);
694    
695    
696                }
697    
698    
699                // AST REWRITE
700                // elements: string
701                // token labels: 
702                // rule labels: retval
703                // token list labels: 
704                // rule list labels: 
705                retval.tree = root_0;
706                RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
707    
708                root_0 = (Object)adaptor.nil();
709                // 184:2: -> string
710                {
711                    adaptor.addChild(root_0, stream_string.next());
712    
713                }
714    
715    
716    
717                }
718    
719                retval.stop = input.LT(-1);
720    
721                    retval.tree = (Object)adaptor.rulePostProcessing(root_0);
722                    adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
723    
724            }
725            catch (RecognitionException re) {
726                reportError(re);
727                recover(input,re);
728            }
729            finally {
730            }
731            return retval;
732        }
733        // $ANTLR end node_type_name
734    
735        public static class supertypes_return extends ParserRuleReturnScope {
736            Object tree;
737            public Object getTree() { return tree; }
738        };
739    
740        // $ANTLR start supertypes
741        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:187:1: supertypes : ( GREATER_THAN string_list ) -> string_list ;
742        public final supertypes_return supertypes() throws RecognitionException {
743            supertypes_return retval = new supertypes_return();
744            retval.start = input.LT(1);
745    
746            Object root_0 = null;
747    
748            Token GREATER_THAN14=null;
749            string_list_return string_list15 = null;
750    
751    
752            Object GREATER_THAN14_tree=null;
753            RewriteRuleTokenStream stream_GREATER_THAN=new RewriteRuleTokenStream(adaptor,"token GREATER_THAN");
754            RewriteRuleSubtreeStream stream_string_list=new RewriteRuleSubtreeStream(adaptor,"rule string_list");
755            try {
756                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:188:2: ( ( GREATER_THAN string_list ) -> string_list )
757                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:188:4: ( GREATER_THAN string_list )
758                {
759                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:188:4: ( GREATER_THAN string_list )
760                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:188:6: GREATER_THAN string_list
761                {
762                GREATER_THAN14=(Token)input.LT(1);
763                match(input,GREATER_THAN,FOLLOW_GREATER_THAN_in_supertypes504); 
764                stream_GREATER_THAN.add(GREATER_THAN14);
765    
766                pushFollow(FOLLOW_string_list_in_supertypes509);
767                string_list15=string_list();
768                _fsp--;
769    
770                stream_string_list.add(string_list15.getTree());
771    
772                }
773    
774    
775                // AST REWRITE
776                // elements: string_list
777                // token labels: 
778                // rule labels: retval
779                // token list labels: 
780                // rule list labels: 
781                retval.tree = root_0;
782                RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
783    
784                root_0 = (Object)adaptor.nil();
785                // 192:2: -> string_list
786                {
787                    adaptor.addChild(root_0, stream_string_list.next());
788    
789                }
790    
791    
792    
793                }
794    
795                retval.stop = input.LT(-1);
796    
797                    retval.tree = (Object)adaptor.rulePostProcessing(root_0);
798                    adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
799    
800            }
801            catch (RecognitionException re) {
802                reportError(re);
803                recover(input,re);
804            }
805            finally {
806            }
807            return retval;
808        }
809        // $ANTLR end supertypes
810    
811        public static class node_type_options_return extends ParserRuleReturnScope {
812            Object tree;
813            public Object getTree() { return tree; }
814        };
815    
816        // $ANTLR start node_type_options
817        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:195:1: fragment node_type_options : ( ( abs_opt ( ord_mix_opt )? ) | ( ord_mix_opt ( abs_opt )? ) );
818        public final node_type_options_return node_type_options() throws RecognitionException {
819            node_type_options_return retval = new node_type_options_return();
820            retval.start = input.LT(1);
821    
822            Object root_0 = null;
823    
824            abs_opt_return abs_opt16 = null;
825    
826            ord_mix_opt_return ord_mix_opt17 = null;
827    
828            ord_mix_opt_return ord_mix_opt18 = null;
829    
830            abs_opt_return abs_opt19 = null;
831    
832    
833    
834            try {
835                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:197:2: ( ( abs_opt ( ord_mix_opt )? ) | ( ord_mix_opt ( abs_opt )? ) )
836                int alt7=2;
837                int LA7_0 = input.LA(1);
838    
839                if ( ((LA7_0>=46 && LA7_0<=48)) ) {
840                    alt7=1;
841                }
842                else if ( ((LA7_0>=49 && LA7_0<=54)) ) {
843                    alt7=2;
844                }
845                else {
846                    NoViableAltException nvae =
847                        new NoViableAltException("195:1: fragment node_type_options : ( ( abs_opt ( ord_mix_opt )? ) | ( ord_mix_opt ( abs_opt )? ) );", 7, 0, input);
848    
849                    throw nvae;
850                }
851                switch (alt7) {
852                    case 1 :
853                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:197:4: ( abs_opt ( ord_mix_opt )? )
854                        {
855                        root_0 = (Object)adaptor.nil();
856    
857                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:197:4: ( abs_opt ( ord_mix_opt )? )
858                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:197:5: abs_opt ( ord_mix_opt )?
859                        {
860                        pushFollow(FOLLOW_abs_opt_in_node_type_options535);
861                        abs_opt16=abs_opt();
862                        _fsp--;
863    
864                        adaptor.addChild(root_0, abs_opt16.getTree());
865                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:197:13: ( ord_mix_opt )?
866                        int alt5=2;
867                        int LA5_0 = input.LA(1);
868    
869                        if ( ((LA5_0>=49 && LA5_0<=54)) ) {
870                            alt5=1;
871                        }
872                        switch (alt5) {
873                            case 1 :
874                                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:197:13: ord_mix_opt
875                                {
876                                pushFollow(FOLLOW_ord_mix_opt_in_node_type_options537);
877                                ord_mix_opt17=ord_mix_opt();
878                                _fsp--;
879    
880                                adaptor.addChild(root_0, ord_mix_opt17.getTree());
881    
882                                }
883                                break;
884    
885                        }
886    
887    
888                        }
889    
890    
891                        }
892                        break;
893                    case 2 :
894                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:198:5: ( ord_mix_opt ( abs_opt )? )
895                        {
896                        root_0 = (Object)adaptor.nil();
897    
898                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:198:5: ( ord_mix_opt ( abs_opt )? )
899                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:198:6: ord_mix_opt ( abs_opt )?
900                        {
901                        pushFollow(FOLLOW_ord_mix_opt_in_node_type_options546);
902                        ord_mix_opt18=ord_mix_opt();
903                        _fsp--;
904    
905                        adaptor.addChild(root_0, ord_mix_opt18.getTree());
906                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:198:18: ( abs_opt )?
907                        int alt6=2;
908                        int LA6_0 = input.LA(1);
909    
910                        if ( ((LA6_0>=46 && LA6_0<=48)) ) {
911                            alt6=1;
912                        }
913                        switch (alt6) {
914                            case 1 :
915                                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:198:18: abs_opt
916                                {
917                                pushFollow(FOLLOW_abs_opt_in_node_type_options548);
918                                abs_opt19=abs_opt();
919                                _fsp--;
920    
921                                adaptor.addChild(root_0, abs_opt19.getTree());
922    
923                                }
924                                break;
925    
926                        }
927    
928    
929                        }
930    
931    
932                        }
933                        break;
934    
935                }
936                retval.stop = input.LT(-1);
937    
938                    retval.tree = (Object)adaptor.rulePostProcessing(root_0);
939                    adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
940    
941            }
942            catch (RecognitionException re) {
943                reportError(re);
944                recover(input,re);
945            }
946            finally {
947            }
948            return retval;
949        }
950        // $ANTLR end node_type_options
951    
952        public static class abs_opt_return extends ParserRuleReturnScope {
953            Object tree;
954            public Object getTree() { return tree; }
955        };
956    
957        // $ANTLR start abs_opt
958        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:201:1: fragment abs_opt : ( 'abstract' | 'abs' | 'a' );
959        public final abs_opt_return abs_opt() throws RecognitionException {
960            abs_opt_return retval = new abs_opt_return();
961            retval.start = input.LT(1);
962    
963            Object root_0 = null;
964    
965            Token set20=null;
966    
967            Object set20_tree=null;
968    
969            try {
970                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:203:2: ( 'abstract' | 'abs' | 'a' )
971                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:
972                {
973                root_0 = (Object)adaptor.nil();
974    
975                set20=(Token)input.LT(1);
976                if ( (input.LA(1)>=46 && input.LA(1)<=48) ) {
977                    input.consume();
978                    adaptor.addChild(root_0, adaptor.create(set20));
979                    errorRecovery=false;
980                }
981                else {
982                    MismatchedSetException mse =
983                        new MismatchedSetException(null,input);
984                    recoverFromMismatchedSet(input,mse,FOLLOW_set_in_abs_opt0);    throw mse;
985                }
986    
987    
988                }
989    
990                retval.stop = input.LT(-1);
991    
992                    retval.tree = (Object)adaptor.rulePostProcessing(root_0);
993                    adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
994    
995            }
996            catch (RecognitionException re) {
997                reportError(re);
998                recover(input,re);
999            }
1000            finally {
1001            }
1002            return retval;
1003        }
1004        // $ANTLR end abs_opt
1005    
1006        public static class ord_mix_opt_return extends ParserRuleReturnScope {
1007            Object tree;
1008            public Object getTree() { return tree; }
1009        };
1010    
1011        // $ANTLR start ord_mix_opt
1012        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:208:1: fragment ord_mix_opt : ( ( orderable_opt ( mixin_opt )? ) | ( mixin_opt ( orderable_opt )? ) );
1013        public final ord_mix_opt_return ord_mix_opt() throws RecognitionException {
1014            ord_mix_opt_return retval = new ord_mix_opt_return();
1015            retval.start = input.LT(1);
1016    
1017            Object root_0 = null;
1018    
1019            orderable_opt_return orderable_opt21 = null;
1020    
1021            mixin_opt_return mixin_opt22 = null;
1022    
1023            mixin_opt_return mixin_opt23 = null;
1024    
1025            orderable_opt_return orderable_opt24 = null;
1026    
1027    
1028    
1029            try {
1030                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:210:2: ( ( orderable_opt ( mixin_opt )? ) | ( mixin_opt ( orderable_opt )? ) )
1031                int alt10=2;
1032                int LA10_0 = input.LA(1);
1033    
1034                if ( ((LA10_0>=49 && LA10_0<=51)) ) {
1035                    alt10=1;
1036                }
1037                else if ( ((LA10_0>=52 && LA10_0<=54)) ) {
1038                    alt10=2;
1039                }
1040                else {
1041                    NoViableAltException nvae =
1042                        new NoViableAltException("208:1: fragment ord_mix_opt : ( ( orderable_opt ( mixin_opt )? ) | ( mixin_opt ( orderable_opt )? ) );", 10, 0, input);
1043    
1044                    throw nvae;
1045                }
1046                switch (alt10) {
1047                    case 1 :
1048                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:210:4: ( orderable_opt ( mixin_opt )? )
1049                        {
1050                        root_0 = (Object)adaptor.nil();
1051    
1052                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:210:4: ( orderable_opt ( mixin_opt )? )
1053                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:210:5: orderable_opt ( mixin_opt )?
1054                        {
1055                        pushFollow(FOLLOW_orderable_opt_in_ord_mix_opt590);
1056                        orderable_opt21=orderable_opt();
1057                        _fsp--;
1058    
1059                        adaptor.addChild(root_0, orderable_opt21.getTree());
1060                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:210:19: ( mixin_opt )?
1061                        int alt8=2;
1062                        int LA8_0 = input.LA(1);
1063    
1064                        if ( ((LA8_0>=52 && LA8_0<=54)) ) {
1065                            alt8=1;
1066                        }
1067                        switch (alt8) {
1068                            case 1 :
1069                                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:210:19: mixin_opt
1070                                {
1071                                pushFollow(FOLLOW_mixin_opt_in_ord_mix_opt592);
1072                                mixin_opt22=mixin_opt();
1073                                _fsp--;
1074    
1075                                adaptor.addChild(root_0, mixin_opt22.getTree());
1076    
1077                                }
1078                                break;
1079    
1080                        }
1081    
1082    
1083                        }
1084    
1085    
1086                        }
1087                        break;
1088                    case 2 :
1089                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:211:5: ( mixin_opt ( orderable_opt )? )
1090                        {
1091                        root_0 = (Object)adaptor.nil();
1092    
1093                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:211:5: ( mixin_opt ( orderable_opt )? )
1094                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:211:6: mixin_opt ( orderable_opt )?
1095                        {
1096                        pushFollow(FOLLOW_mixin_opt_in_ord_mix_opt601);
1097                        mixin_opt23=mixin_opt();
1098                        _fsp--;
1099    
1100                        adaptor.addChild(root_0, mixin_opt23.getTree());
1101                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:211:16: ( orderable_opt )?
1102                        int alt9=2;
1103                        int LA9_0 = input.LA(1);
1104    
1105                        if ( ((LA9_0>=49 && LA9_0<=51)) ) {
1106                            alt9=1;
1107                        }
1108                        switch (alt9) {
1109                            case 1 :
1110                                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:211:16: orderable_opt
1111                                {
1112                                pushFollow(FOLLOW_orderable_opt_in_ord_mix_opt603);
1113                                orderable_opt24=orderable_opt();
1114                                _fsp--;
1115    
1116                                adaptor.addChild(root_0, orderable_opt24.getTree());
1117    
1118                                }
1119                                break;
1120    
1121                        }
1122    
1123    
1124                        }
1125    
1126    
1127                        }
1128                        break;
1129    
1130                }
1131                retval.stop = input.LT(-1);
1132    
1133                    retval.tree = (Object)adaptor.rulePostProcessing(root_0);
1134                    adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
1135    
1136            }
1137            catch (RecognitionException re) {
1138                reportError(re);
1139                recover(input,re);
1140            }
1141            finally {
1142            }
1143            return retval;
1144        }
1145        // $ANTLR end ord_mix_opt
1146    
1147        public static class orderable_opt_return extends ParserRuleReturnScope {
1148            Object tree;
1149            public Object getTree() { return tree; }
1150        };
1151    
1152        // $ANTLR start orderable_opt
1153        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:214:1: fragment orderable_opt : ( 'orderable' | 'ord' | 'o' );
1154        public final orderable_opt_return orderable_opt() throws RecognitionException {
1155            orderable_opt_return retval = new orderable_opt_return();
1156            retval.start = input.LT(1);
1157    
1158            Object root_0 = null;
1159    
1160            Token set25=null;
1161    
1162            Object set25_tree=null;
1163    
1164            try {
1165                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:216:2: ( 'orderable' | 'ord' | 'o' )
1166                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:
1167                {
1168                root_0 = (Object)adaptor.nil();
1169    
1170                set25=(Token)input.LT(1);
1171                if ( (input.LA(1)>=49 && input.LA(1)<=51) ) {
1172                    input.consume();
1173                    adaptor.addChild(root_0, adaptor.create(set25));
1174                    errorRecovery=false;
1175                }
1176                else {
1177                    MismatchedSetException mse =
1178                        new MismatchedSetException(null,input);
1179                    recoverFromMismatchedSet(input,mse,FOLLOW_set_in_orderable_opt0);    throw mse;
1180                }
1181    
1182    
1183                }
1184    
1185                retval.stop = input.LT(-1);
1186    
1187                    retval.tree = (Object)adaptor.rulePostProcessing(root_0);
1188                    adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
1189    
1190            }
1191            catch (RecognitionException re) {
1192                reportError(re);
1193                recover(input,re);
1194            }
1195            finally {
1196            }
1197            return retval;
1198        }
1199        // $ANTLR end orderable_opt
1200    
1201        public static class mixin_opt_return extends ParserRuleReturnScope {
1202            Object tree;
1203            public Object getTree() { return tree; }
1204        };
1205    
1206        // $ANTLR start mixin_opt
1207        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:221:1: fragment mixin_opt : ( 'mixin' | 'mix' | 'm' );
1208        public final mixin_opt_return mixin_opt() throws RecognitionException {
1209            mixin_opt_return retval = new mixin_opt_return();
1210            retval.start = input.LT(1);
1211    
1212            Object root_0 = null;
1213    
1214            Token set26=null;
1215    
1216            Object set26_tree=null;
1217    
1218            try {
1219                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:223:2: ( 'mixin' | 'mix' | 'm' )
1220                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:
1221                {
1222                root_0 = (Object)adaptor.nil();
1223    
1224                set26=(Token)input.LT(1);
1225                if ( (input.LA(1)>=52 && input.LA(1)<=54) ) {
1226                    input.consume();
1227                    adaptor.addChild(root_0, adaptor.create(set26));
1228                    errorRecovery=false;
1229                }
1230                else {
1231                    MismatchedSetException mse =
1232                        new MismatchedSetException(null,input);
1233                    recoverFromMismatchedSet(input,mse,FOLLOW_set_in_mixin_opt0);    throw mse;
1234                }
1235    
1236    
1237                }
1238    
1239                retval.stop = input.LT(-1);
1240    
1241                    retval.tree = (Object)adaptor.rulePostProcessing(root_0);
1242                    adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
1243    
1244            }
1245            catch (RecognitionException re) {
1246                reportError(re);
1247                recover(input,re);
1248            }
1249            finally {
1250            }
1251            return retval;
1252        }
1253        // $ANTLR end mixin_opt
1254    
1255        public static class property_def_return extends ParserRuleReturnScope {
1256            Object tree;
1257            public Object getTree() { return tree; }
1258        };
1259    
1260        // $ANTLR start property_def
1261        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:229:1: property_def : ( DASH jcr_name ( property_type_decl )? ( default_values )? ( attributes )* ( value_constraints )? ) -> ^( PROPERTY_DEFINITION ^( JCR_NAME jcr_name ) ( ^( PROPERTY_TYPE property_type_decl ) )? ( ^( DEFAULT_VALUES default_values ) )? ( ^( ATTRIBUTES ( attributes )* ) )? ( ^( VALUE_CONSTRAINTS value_constraints ) )? ) ;
1262        public final property_def_return property_def() throws RecognitionException {
1263            property_def_return retval = new property_def_return();
1264            retval.start = input.LT(1);
1265    
1266            Object root_0 = null;
1267    
1268            Token DASH27=null;
1269            jcr_name_return jcr_name28 = null;
1270    
1271            property_type_decl_return property_type_decl29 = null;
1272    
1273            default_values_return default_values30 = null;
1274    
1275            attributes_return attributes31 = null;
1276    
1277            value_constraints_return value_constraints32 = null;
1278    
1279    
1280            Object DASH27_tree=null;
1281            RewriteRuleTokenStream stream_DASH=new RewriteRuleTokenStream(adaptor,"token DASH");
1282            RewriteRuleSubtreeStream stream_attributes=new RewriteRuleSubtreeStream(adaptor,"rule attributes");
1283            RewriteRuleSubtreeStream stream_value_constraints=new RewriteRuleSubtreeStream(adaptor,"rule value_constraints");
1284            RewriteRuleSubtreeStream stream_default_values=new RewriteRuleSubtreeStream(adaptor,"rule default_values");
1285            RewriteRuleSubtreeStream stream_jcr_name=new RewriteRuleSubtreeStream(adaptor,"rule jcr_name");
1286            RewriteRuleSubtreeStream stream_property_type_decl=new RewriteRuleSubtreeStream(adaptor,"rule property_type_decl");
1287            try {
1288                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:230:2: ( ( DASH jcr_name ( property_type_decl )? ( default_values )? ( attributes )* ( value_constraints )? ) -> ^( PROPERTY_DEFINITION ^( JCR_NAME jcr_name ) ( ^( PROPERTY_TYPE property_type_decl ) )? ( ^( DEFAULT_VALUES default_values ) )? ( ^( ATTRIBUTES ( attributes )* ) )? ( ^( VALUE_CONSTRAINTS value_constraints ) )? ) )
1289                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:230:5: ( DASH jcr_name ( property_type_decl )? ( default_values )? ( attributes )* ( value_constraints )? )
1290                {
1291                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:230:5: ( DASH jcr_name ( property_type_decl )? ( default_values )? ( attributes )* ( value_constraints )? )
1292                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:230:7: DASH jcr_name ( property_type_decl )? ( default_values )? ( attributes )* ( value_constraints )?
1293                {
1294                DASH27=(Token)input.LT(1);
1295                match(input,DASH,FOLLOW_DASH_in_property_def670); 
1296                stream_DASH.add(DASH27);
1297    
1298                pushFollow(FOLLOW_jcr_name_in_property_def675);
1299                jcr_name28=jcr_name();
1300                _fsp--;
1301    
1302                stream_jcr_name.add(jcr_name28.getTree());
1303                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:232:4: ( property_type_decl )?
1304                int alt11=2;
1305                int LA11_0 = input.LA(1);
1306    
1307                if ( (LA11_0==LEFT_PAREN) ) {
1308                    alt11=1;
1309                }
1310                switch (alt11) {
1311                    case 1 :
1312                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:232:4: property_type_decl
1313                        {
1314                        pushFollow(FOLLOW_property_type_decl_in_property_def680);
1315                        property_type_decl29=property_type_decl();
1316                        _fsp--;
1317    
1318                        stream_property_type_decl.add(property_type_decl29.getTree());
1319    
1320                        }
1321                        break;
1322    
1323                }
1324    
1325                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:233:4: ( default_values )?
1326                int alt12=2;
1327                int LA12_0 = input.LA(1);
1328    
1329                if ( (LA12_0==EQUALS) ) {
1330                    alt12=1;
1331                }
1332                switch (alt12) {
1333                    case 1 :
1334                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:233:4: default_values
1335                        {
1336                        pushFollow(FOLLOW_default_values_in_property_def686);
1337                        default_values30=default_values();
1338                        _fsp--;
1339    
1340                        stream_default_values.add(default_values30.getTree());
1341    
1342                        }
1343                        break;
1344    
1345                }
1346    
1347                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:234:4: ( attributes )*
1348                loop13:
1349                do {
1350                    int alt13=2;
1351                    int LA13_0 = input.LA(1);
1352    
1353                    if ( (LA13_0==EXCLAMATION||LA13_0==STAR||LA13_0==48||LA13_0==54||(LA13_0>=94 && LA13_0<=122)) ) {
1354                        alt13=1;
1355                    }
1356    
1357    
1358                    switch (alt13) {
1359                    case 1 :
1360                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:234:4: attributes
1361                        {
1362                        pushFollow(FOLLOW_attributes_in_property_def692);
1363                        attributes31=attributes();
1364                        _fsp--;
1365    
1366                        stream_attributes.add(attributes31.getTree());
1367    
1368                        }
1369                        break;
1370    
1371                    default :
1372                        break loop13;
1373                    }
1374                } while (true);
1375    
1376                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:235:4: ( value_constraints )?
1377                int alt14=2;
1378                int LA14_0 = input.LA(1);
1379    
1380                if ( (LA14_0==LESS_THAN) ) {
1381                    alt14=1;
1382                }
1383                switch (alt14) {
1384                    case 1 :
1385                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:235:4: value_constraints
1386                        {
1387                        pushFollow(FOLLOW_value_constraints_in_property_def698);
1388                        value_constraints32=value_constraints();
1389                        _fsp--;
1390    
1391                        stream_value_constraints.add(value_constraints32.getTree());
1392    
1393                        }
1394                        break;
1395    
1396                }
1397    
1398    
1399                }
1400    
1401    
1402                // AST REWRITE
1403                // elements: value_constraints, property_type_decl, default_values, jcr_name, attributes
1404                // token labels: 
1405                // rule labels: retval
1406                // token list labels: 
1407                // rule list labels: 
1408                retval.tree = root_0;
1409                RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
1410    
1411                root_0 = (Object)adaptor.nil();
1412                // 238:2: -> ^( PROPERTY_DEFINITION ^( JCR_NAME jcr_name ) ( ^( PROPERTY_TYPE property_type_decl ) )? ( ^( DEFAULT_VALUES default_values ) )? ( ^( ATTRIBUTES ( attributes )* ) )? ( ^( VALUE_CONSTRAINTS value_constraints ) )? )
1413                {
1414                    // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:238:5: ^( PROPERTY_DEFINITION ^( JCR_NAME jcr_name ) ( ^( PROPERTY_TYPE property_type_decl ) )? ( ^( DEFAULT_VALUES default_values ) )? ( ^( ATTRIBUTES ( attributes )* ) )? ( ^( VALUE_CONSTRAINTS value_constraints ) )? )
1415                    {
1416                    Object root_1 = (Object)adaptor.nil();
1417                    root_1 = (Object)adaptor.becomeRoot(adaptor.create(PROPERTY_DEFINITION, "PROPERTY_DEFINITION"), root_1);
1418    
1419                    // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:239:4: ^( JCR_NAME jcr_name )
1420                    {
1421                    Object root_2 = (Object)adaptor.nil();
1422                    root_2 = (Object)adaptor.becomeRoot(adaptor.create(JCR_NAME, "JCR_NAME"), root_2);
1423    
1424                    adaptor.addChild(root_2, stream_jcr_name.next());
1425    
1426                    adaptor.addChild(root_1, root_2);
1427                    }
1428                    // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:240:4: ( ^( PROPERTY_TYPE property_type_decl ) )?
1429                    if ( stream_property_type_decl.hasNext() ) {
1430                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:240:4: ^( PROPERTY_TYPE property_type_decl )
1431                        {
1432                        Object root_2 = (Object)adaptor.nil();
1433                        root_2 = (Object)adaptor.becomeRoot(adaptor.create(PROPERTY_TYPE, "PROPERTY_TYPE"), root_2);
1434    
1435                        adaptor.addChild(root_2, stream_property_type_decl.next());
1436    
1437                        adaptor.addChild(root_1, root_2);
1438                        }
1439    
1440                    }
1441                    stream_property_type_decl.reset();
1442                    // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:241:4: ( ^( DEFAULT_VALUES default_values ) )?
1443                    if ( stream_default_values.hasNext() ) {
1444                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:241:4: ^( DEFAULT_VALUES default_values )
1445                        {
1446                        Object root_2 = (Object)adaptor.nil();
1447                        root_2 = (Object)adaptor.becomeRoot(adaptor.create(DEFAULT_VALUES, "DEFAULT_VALUES"), root_2);
1448    
1449                        adaptor.addChild(root_2, stream_default_values.next());
1450    
1451                        adaptor.addChild(root_1, root_2);
1452                        }
1453    
1454                    }
1455                    stream_default_values.reset();
1456                    // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:242:4: ( ^( ATTRIBUTES ( attributes )* ) )?
1457                    if ( stream_attributes.hasNext() ) {
1458                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:242:4: ^( ATTRIBUTES ( attributes )* )
1459                        {
1460                        Object root_2 = (Object)adaptor.nil();
1461                        root_2 = (Object)adaptor.becomeRoot(adaptor.create(ATTRIBUTES, "ATTRIBUTES"), root_2);
1462    
1463                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:242:17: ( attributes )*
1464                        while ( stream_attributes.hasNext() ) {
1465                            adaptor.addChild(root_2, stream_attributes.next());
1466    
1467                        }
1468                        stream_attributes.reset();
1469    
1470                        adaptor.addChild(root_1, root_2);
1471                        }
1472    
1473                    }
1474                    stream_attributes.reset();
1475                    // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:243:4: ( ^( VALUE_CONSTRAINTS value_constraints ) )?
1476                    if ( stream_value_constraints.hasNext() ) {
1477                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:243:4: ^( VALUE_CONSTRAINTS value_constraints )
1478                        {
1479                        Object root_2 = (Object)adaptor.nil();
1480                        root_2 = (Object)adaptor.becomeRoot(adaptor.create(VALUE_CONSTRAINTS, "VALUE_CONSTRAINTS"), root_2);
1481    
1482                        adaptor.addChild(root_2, stream_value_constraints.next());
1483    
1484                        adaptor.addChild(root_1, root_2);
1485                        }
1486    
1487                    }
1488                    stream_value_constraints.reset();
1489    
1490                    adaptor.addChild(root_0, root_1);
1491                    }
1492    
1493                }
1494    
1495    
1496    
1497                }
1498    
1499                retval.stop = input.LT(-1);
1500    
1501                    retval.tree = (Object)adaptor.rulePostProcessing(root_0);
1502                    adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
1503    
1504            }
1505            catch (RecognitionException re) {
1506                reportError(re);
1507                recover(input,re);
1508            }
1509            finally {
1510            }
1511            return retval;
1512        }
1513        // $ANTLR end property_def
1514    
1515        public static class child_node_def_return extends ParserRuleReturnScope {
1516            Object tree;
1517            public Object getTree() { return tree; }
1518        };
1519    
1520        // $ANTLR start child_node_def
1521        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:247:1: child_node_def : PLUS jcr_name ( required_types )? ( default_type )? ( attributes )? -> ^( CHILD_NODE_DEFINITION ^( JCR_NAME jcr_name ) ( ^( REQUIRED_TYPES required_types ) )? ( ^( DEFAULT_TYPE default_type ) )? ( ^( ATTRIBUTES ( attributes )* ) )? ) ;
1522        public final child_node_def_return child_node_def() throws RecognitionException {
1523            child_node_def_return retval = new child_node_def_return();
1524            retval.start = input.LT(1);
1525    
1526            Object root_0 = null;
1527    
1528            Token PLUS33=null;
1529            jcr_name_return jcr_name34 = null;
1530    
1531            required_types_return required_types35 = null;
1532    
1533            default_type_return default_type36 = null;
1534    
1535            attributes_return attributes37 = null;
1536    
1537    
1538            Object PLUS33_tree=null;
1539            RewriteRuleTokenStream stream_PLUS=new RewriteRuleTokenStream(adaptor,"token PLUS");
1540            RewriteRuleSubtreeStream stream_attributes=new RewriteRuleSubtreeStream(adaptor,"rule attributes");
1541            RewriteRuleSubtreeStream stream_required_types=new RewriteRuleSubtreeStream(adaptor,"rule required_types");
1542            RewriteRuleSubtreeStream stream_default_type=new RewriteRuleSubtreeStream(adaptor,"rule default_type");
1543            RewriteRuleSubtreeStream stream_jcr_name=new RewriteRuleSubtreeStream(adaptor,"rule jcr_name");
1544            try {
1545                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:248:2: ( PLUS jcr_name ( required_types )? ( default_type )? ( attributes )? -> ^( CHILD_NODE_DEFINITION ^( JCR_NAME jcr_name ) ( ^( REQUIRED_TYPES required_types ) )? ( ^( DEFAULT_TYPE default_type ) )? ( ^( ATTRIBUTES ( attributes )* ) )? ) )
1546                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:248:4: PLUS jcr_name ( required_types )? ( default_type )? ( attributes )?
1547                {
1548                PLUS33=(Token)input.LT(1);
1549                match(input,PLUS,FOLLOW_PLUS_in_child_node_def778); 
1550                stream_PLUS.add(PLUS33);
1551    
1552                pushFollow(FOLLOW_jcr_name_in_child_node_def782);
1553                jcr_name34=jcr_name();
1554                _fsp--;
1555    
1556                stream_jcr_name.add(jcr_name34.getTree());
1557                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:250:3: ( required_types )?
1558                int alt15=2;
1559                int LA15_0 = input.LA(1);
1560    
1561                if ( (LA15_0==LEFT_PAREN) ) {
1562                    alt15=1;
1563                }
1564                switch (alt15) {
1565                    case 1 :
1566                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:250:3: required_types
1567                        {
1568                        pushFollow(FOLLOW_required_types_in_child_node_def786);
1569                        required_types35=required_types();
1570                        _fsp--;
1571    
1572                        stream_required_types.add(required_types35.getTree());
1573    
1574                        }
1575                        break;
1576    
1577                }
1578    
1579                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:251:3: ( default_type )?
1580                int alt16=2;
1581                int LA16_0 = input.LA(1);
1582    
1583                if ( (LA16_0==EQUALS) ) {
1584                    alt16=1;
1585                }
1586                switch (alt16) {
1587                    case 1 :
1588                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:251:3: default_type
1589                        {
1590                        pushFollow(FOLLOW_default_type_in_child_node_def791);
1591                        default_type36=default_type();
1592                        _fsp--;
1593    
1594                        stream_default_type.add(default_type36.getTree());
1595    
1596                        }
1597                        break;
1598    
1599                }
1600    
1601                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:252:3: ( attributes )?
1602                int alt17=2;
1603                int LA17_0 = input.LA(1);
1604    
1605                if ( (LA17_0==EXCLAMATION||LA17_0==STAR||LA17_0==48||LA17_0==54||(LA17_0>=94 && LA17_0<=122)) ) {
1606                    alt17=1;
1607                }
1608                switch (alt17) {
1609                    case 1 :
1610                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:252:3: attributes
1611                        {
1612                        pushFollow(FOLLOW_attributes_in_child_node_def796);
1613                        attributes37=attributes();
1614                        _fsp--;
1615    
1616                        stream_attributes.add(attributes37.getTree());
1617    
1618                        }
1619                        break;
1620    
1621                }
1622    
1623    
1624                // AST REWRITE
1625                // elements: attributes, required_types, jcr_name, default_type
1626                // token labels: 
1627                // rule labels: retval
1628                // token list labels: 
1629                // rule list labels: 
1630                retval.tree = root_0;
1631                RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
1632    
1633                root_0 = (Object)adaptor.nil();
1634                // 254:2: -> ^( CHILD_NODE_DEFINITION ^( JCR_NAME jcr_name ) ( ^( REQUIRED_TYPES required_types ) )? ( ^( DEFAULT_TYPE default_type ) )? ( ^( ATTRIBUTES ( attributes )* ) )? )
1635                {
1636                    // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:254:5: ^( CHILD_NODE_DEFINITION ^( JCR_NAME jcr_name ) ( ^( REQUIRED_TYPES required_types ) )? ( ^( DEFAULT_TYPE default_type ) )? ( ^( ATTRIBUTES ( attributes )* ) )? )
1637                    {
1638                    Object root_1 = (Object)adaptor.nil();
1639                    root_1 = (Object)adaptor.becomeRoot(adaptor.create(CHILD_NODE_DEFINITION, "CHILD_NODE_DEFINITION"), root_1);
1640    
1641                    // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:255:4: ^( JCR_NAME jcr_name )
1642                    {
1643                    Object root_2 = (Object)adaptor.nil();
1644                    root_2 = (Object)adaptor.becomeRoot(adaptor.create(JCR_NAME, "JCR_NAME"), root_2);
1645    
1646                    adaptor.addChild(root_2, stream_jcr_name.next());
1647    
1648                    adaptor.addChild(root_1, root_2);
1649                    }
1650                    // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:256:4: ( ^( REQUIRED_TYPES required_types ) )?
1651                    if ( stream_required_types.hasNext() ) {
1652                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:256:4: ^( REQUIRED_TYPES required_types )
1653                        {
1654                        Object root_2 = (Object)adaptor.nil();
1655                        root_2 = (Object)adaptor.becomeRoot(adaptor.create(REQUIRED_TYPES, "REQUIRED_TYPES"), root_2);
1656    
1657                        adaptor.addChild(root_2, stream_required_types.next());
1658    
1659                        adaptor.addChild(root_1, root_2);
1660                        }
1661    
1662                    }
1663                    stream_required_types.reset();
1664                    // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:257:4: ( ^( DEFAULT_TYPE default_type ) )?
1665                    if ( stream_default_type.hasNext() ) {
1666                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:257:4: ^( DEFAULT_TYPE default_type )
1667                        {
1668                        Object root_2 = (Object)adaptor.nil();
1669                        root_2 = (Object)adaptor.becomeRoot(adaptor.create(DEFAULT_TYPE, "DEFAULT_TYPE"), root_2);
1670    
1671                        adaptor.addChild(root_2, stream_default_type.next());
1672    
1673                        adaptor.addChild(root_1, root_2);
1674                        }
1675    
1676                    }
1677                    stream_default_type.reset();
1678                    // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:258:4: ( ^( ATTRIBUTES ( attributes )* ) )?
1679                    if ( stream_attributes.hasNext() ) {
1680                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:258:4: ^( ATTRIBUTES ( attributes )* )
1681                        {
1682                        Object root_2 = (Object)adaptor.nil();
1683                        root_2 = (Object)adaptor.becomeRoot(adaptor.create(ATTRIBUTES, "ATTRIBUTES"), root_2);
1684    
1685                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:258:17: ( attributes )*
1686                        while ( stream_attributes.hasNext() ) {
1687                            adaptor.addChild(root_2, stream_attributes.next());
1688    
1689                        }
1690                        stream_attributes.reset();
1691    
1692                        adaptor.addChild(root_1, root_2);
1693                        }
1694    
1695                    }
1696                    stream_attributes.reset();
1697    
1698                    adaptor.addChild(root_0, root_1);
1699                    }
1700    
1701                }
1702    
1703    
1704    
1705                }
1706    
1707                retval.stop = input.LT(-1);
1708    
1709                    retval.tree = (Object)adaptor.rulePostProcessing(root_0);
1710                    adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
1711    
1712            }
1713            catch (RecognitionException re) {
1714                reportError(re);
1715                recover(input,re);
1716            }
1717            finally {
1718            }
1719            return retval;
1720        }
1721        // $ANTLR end child_node_def
1722    
1723        public static class jcr_name_return extends ParserRuleReturnScope {
1724            Object tree;
1725            public Object getTree() { return tree; }
1726        };
1727    
1728        // $ANTLR start jcr_name
1729        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:262:1: fragment jcr_name : ( string | STAR );
1730        public final jcr_name_return jcr_name() throws RecognitionException {
1731            jcr_name_return retval = new jcr_name_return();
1732            retval.start = input.LT(1);
1733    
1734            Object root_0 = null;
1735    
1736            Token STAR39=null;
1737            string_return string38 = null;
1738    
1739    
1740            Object STAR39_tree=null;
1741    
1742            try {
1743                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:264:2: ( string | STAR )
1744                int alt18=2;
1745                int LA18_0 = input.LA(1);
1746    
1747                if ( ((LA18_0>=QUOTED_STRING && LA18_0<=UNQUOTED_STRING)) ) {
1748                    alt18=1;
1749                }
1750                else if ( (LA18_0==STAR) ) {
1751                    alt18=2;
1752                }
1753                else {
1754                    NoViableAltException nvae =
1755                        new NoViableAltException("262:1: fragment jcr_name : ( string | STAR );", 18, 0, input);
1756    
1757                    throw nvae;
1758                }
1759                switch (alt18) {
1760                    case 1 :
1761                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:264:5: string
1762                        {
1763                        root_0 = (Object)adaptor.nil();
1764    
1765                        pushFollow(FOLLOW_string_in_jcr_name863);
1766                        string38=string();
1767                        _fsp--;
1768    
1769                        adaptor.addChild(root_0, string38.getTree());
1770    
1771                        }
1772                        break;
1773                    case 2 :
1774                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:265:5: STAR
1775                        {
1776                        root_0 = (Object)adaptor.nil();
1777    
1778                        STAR39=(Token)input.LT(1);
1779                        match(input,STAR,FOLLOW_STAR_in_jcr_name869); 
1780                        STAR39_tree = (Object)adaptor.create(STAR39);
1781                        adaptor.addChild(root_0, STAR39_tree);
1782    
1783    
1784                        }
1785                        break;
1786    
1787                }
1788                retval.stop = input.LT(-1);
1789    
1790                    retval.tree = (Object)adaptor.rulePostProcessing(root_0);
1791                    adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
1792    
1793            }
1794            catch (RecognitionException re) {
1795                reportError(re);
1796                recover(input,re);
1797            }
1798            finally {
1799            }
1800            return retval;
1801        }
1802        // $ANTLR end jcr_name
1803    
1804        public static class property_type_decl_return extends ParserRuleReturnScope {
1805            Object tree;
1806            public Object getTree() { return tree; }
1807        };
1808    
1809        // $ANTLR start property_type_decl
1810        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:268:1: fragment property_type_decl : LEFT_PAREN property_type RIGHT_PAREN -> property_type ;
1811        public final property_type_decl_return property_type_decl() throws RecognitionException {
1812            property_type_decl_return retval = new property_type_decl_return();
1813            retval.start = input.LT(1);
1814    
1815            Object root_0 = null;
1816    
1817            Token LEFT_PAREN40=null;
1818            Token RIGHT_PAREN42=null;
1819            property_type_return property_type41 = null;
1820    
1821    
1822            Object LEFT_PAREN40_tree=null;
1823            Object RIGHT_PAREN42_tree=null;
1824            RewriteRuleTokenStream stream_LEFT_PAREN=new RewriteRuleTokenStream(adaptor,"token LEFT_PAREN");
1825            RewriteRuleTokenStream stream_RIGHT_PAREN=new RewriteRuleTokenStream(adaptor,"token RIGHT_PAREN");
1826            RewriteRuleSubtreeStream stream_property_type=new RewriteRuleSubtreeStream(adaptor,"rule property_type");
1827            try {
1828                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:270:2: ( LEFT_PAREN property_type RIGHT_PAREN -> property_type )
1829                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:270:5: LEFT_PAREN property_type RIGHT_PAREN
1830                {
1831                LEFT_PAREN40=(Token)input.LT(1);
1832                match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_property_type_decl883); 
1833                stream_LEFT_PAREN.add(LEFT_PAREN40);
1834    
1835                pushFollow(FOLLOW_property_type_in_property_type_decl887);
1836                property_type41=property_type();
1837                _fsp--;
1838    
1839                stream_property_type.add(property_type41.getTree());
1840                RIGHT_PAREN42=(Token)input.LT(1);
1841                match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_property_type_decl891); 
1842                stream_RIGHT_PAREN.add(RIGHT_PAREN42);
1843    
1844    
1845                // AST REWRITE
1846                // elements: property_type
1847                // token labels: 
1848                // rule labels: retval
1849                // token list labels: 
1850                // rule list labels: 
1851                retval.tree = root_0;
1852                RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
1853    
1854                root_0 = (Object)adaptor.nil();
1855                // 274:2: -> property_type
1856                {
1857                    adaptor.addChild(root_0, stream_property_type.next());
1858    
1859                }
1860    
1861    
1862    
1863                }
1864    
1865                retval.stop = input.LT(-1);
1866    
1867                    retval.tree = (Object)adaptor.rulePostProcessing(root_0);
1868                    adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
1869    
1870            }
1871            catch (RecognitionException re) {
1872                reportError(re);
1873                recover(input,re);
1874            }
1875            finally {
1876            }
1877            return retval;
1878        }
1879        // $ANTLR end property_type_decl
1880    
1881        public static class property_type_return extends ParserRuleReturnScope {
1882            Object tree;
1883            public Object getTree() { return tree; }
1884        };
1885    
1886        // $ANTLR start property_type
1887        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:277:1: fragment property_type : ( 'BINARY' | 'Binary' | 'binary' | 'BOOLEAN' | 'Boolean' | 'boolean' | 'DATE' | 'Date' | 'date' | 'DECIMAL' | 'Decimal' | 'decimal' | 'DOUBLE' | 'Double' | 'double' | 'LONG' | 'Long' | 'long' | 'NAME' | 'Name' | 'name' | 'PATH' | 'Path' | 'path' | 'REFERENCE' | 'Reference' | 'reference' | 'STRING' | 'String' | 'string' | 'UNDEFINED' | 'Undefined' | 'undefined' | 'URI' | 'Uri' | 'uri' | 'WEAKREFERENCE' | 'WeakReference' | 'weakreference' | STAR );
1888        public final property_type_return property_type() throws RecognitionException {
1889            property_type_return retval = new property_type_return();
1890            retval.start = input.LT(1);
1891    
1892            Object root_0 = null;
1893    
1894            Token set43=null;
1895    
1896            Object set43_tree=null;
1897    
1898            try {
1899                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:279:2: ( 'BINARY' | 'Binary' | 'binary' | 'BOOLEAN' | 'Boolean' | 'boolean' | 'DATE' | 'Date' | 'date' | 'DECIMAL' | 'Decimal' | 'decimal' | 'DOUBLE' | 'Double' | 'double' | 'LONG' | 'Long' | 'long' | 'NAME' | 'Name' | 'name' | 'PATH' | 'Path' | 'path' | 'REFERENCE' | 'Reference' | 'reference' | 'STRING' | 'String' | 'string' | 'UNDEFINED' | 'Undefined' | 'undefined' | 'URI' | 'Uri' | 'uri' | 'WEAKREFERENCE' | 'WeakReference' | 'weakreference' | STAR )
1900                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:
1901                {
1902                root_0 = (Object)adaptor.nil();
1903    
1904                set43=(Token)input.LT(1);
1905                if ( input.LA(1)==STAR||(input.LA(1)>=55 && input.LA(1)<=93) ) {
1906                    input.consume();
1907                    adaptor.addChild(root_0, adaptor.create(set43));
1908                    errorRecovery=false;
1909                }
1910                else {
1911                    MismatchedSetException mse =
1912                        new MismatchedSetException(null,input);
1913                    recoverFromMismatchedSet(input,mse,FOLLOW_set_in_property_type0);    throw mse;
1914                }
1915    
1916    
1917                }
1918    
1919                retval.stop = input.LT(-1);
1920    
1921                    retval.tree = (Object)adaptor.rulePostProcessing(root_0);
1922                    adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
1923    
1924            }
1925            catch (RecognitionException re) {
1926                reportError(re);
1927                recover(input,re);
1928            }
1929            finally {
1930            }
1931            return retval;
1932        }
1933        // $ANTLR end property_type
1934    
1935        public static class default_values_return extends ParserRuleReturnScope {
1936            Object tree;
1937            public Object getTree() { return tree; }
1938        };
1939    
1940        // $ANTLR start default_values
1941        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:295:1: fragment default_values : EQUALS string_list -> string_list ;
1942        public final default_values_return default_values() throws RecognitionException {
1943            default_values_return retval = new default_values_return();
1944            retval.start = input.LT(1);
1945    
1946            Object root_0 = null;
1947    
1948            Token EQUALS44=null;
1949            string_list_return string_list45 = null;
1950    
1951    
1952            Object EQUALS44_tree=null;
1953            RewriteRuleTokenStream stream_EQUALS=new RewriteRuleTokenStream(adaptor,"token EQUALS");
1954            RewriteRuleSubtreeStream stream_string_list=new RewriteRuleSubtreeStream(adaptor,"rule string_list");
1955            try {
1956                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:297:2: ( EQUALS string_list -> string_list )
1957                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:297:4: EQUALS string_list
1958                {
1959                EQUALS44=(Token)input.LT(1);
1960                match(input,EQUALS,FOLLOW_EQUALS_in_default_values1107); 
1961                stream_EQUALS.add(EQUALS44);
1962    
1963                pushFollow(FOLLOW_string_list_in_default_values1111);
1964                string_list45=string_list();
1965                _fsp--;
1966    
1967                stream_string_list.add(string_list45.getTree());
1968    
1969                // AST REWRITE
1970                // elements: string_list
1971                // token labels: 
1972                // rule labels: retval
1973                // token list labels: 
1974                // rule list labels: 
1975                retval.tree = root_0;
1976                RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
1977    
1978                root_0 = (Object)adaptor.nil();
1979                // 300:2: -> string_list
1980                {
1981                    adaptor.addChild(root_0, stream_string_list.next());
1982    
1983                }
1984    
1985    
1986    
1987                }
1988    
1989                retval.stop = input.LT(-1);
1990    
1991                    retval.tree = (Object)adaptor.rulePostProcessing(root_0);
1992                    adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
1993    
1994            }
1995            catch (RecognitionException re) {
1996                reportError(re);
1997                recover(input,re);
1998            }
1999            finally {
2000            }
2001            return retval;
2002        }
2003        // $ANTLR end default_values
2004    
2005        public static class value_constraints_return extends ParserRuleReturnScope {
2006            Object tree;
2007            public Object getTree() { return tree; }
2008        };
2009    
2010        // $ANTLR start value_constraints
2011        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:303:1: fragment value_constraints : LESS_THAN string_list -> string_list ;
2012        public final value_constraints_return value_constraints() throws RecognitionException {
2013            value_constraints_return retval = new value_constraints_return();
2014            retval.start = input.LT(1);
2015    
2016            Object root_0 = null;
2017    
2018            Token LESS_THAN46=null;
2019            string_list_return string_list47 = null;
2020    
2021    
2022            Object LESS_THAN46_tree=null;
2023            RewriteRuleTokenStream stream_LESS_THAN=new RewriteRuleTokenStream(adaptor,"token LESS_THAN");
2024            RewriteRuleSubtreeStream stream_string_list=new RewriteRuleSubtreeStream(adaptor,"rule string_list");
2025            try {
2026                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:305:2: ( LESS_THAN string_list -> string_list )
2027                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:305:4: LESS_THAN string_list
2028                {
2029                LESS_THAN46=(Token)input.LT(1);
2030                match(input,LESS_THAN,FOLLOW_LESS_THAN_in_value_constraints1132); 
2031                stream_LESS_THAN.add(LESS_THAN46);
2032    
2033                pushFollow(FOLLOW_string_list_in_value_constraints1136);
2034                string_list47=string_list();
2035                _fsp--;
2036    
2037                stream_string_list.add(string_list47.getTree());
2038    
2039                // AST REWRITE
2040                // elements: string_list
2041                // token labels: 
2042                // rule labels: retval
2043                // token list labels: 
2044                // rule list labels: 
2045                retval.tree = root_0;
2046                RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
2047    
2048                root_0 = (Object)adaptor.nil();
2049                // 308:2: -> string_list
2050                {
2051                    adaptor.addChild(root_0, stream_string_list.next());
2052    
2053                }
2054    
2055    
2056    
2057                }
2058    
2059                retval.stop = input.LT(-1);
2060    
2061                    retval.tree = (Object)adaptor.rulePostProcessing(root_0);
2062                    adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
2063    
2064            }
2065            catch (RecognitionException re) {
2066                reportError(re);
2067                recover(input,re);
2068            }
2069            finally {
2070            }
2071            return retval;
2072        }
2073        // $ANTLR end value_constraints
2074    
2075        public static class required_types_return extends ParserRuleReturnScope {
2076            Object tree;
2077            public Object getTree() { return tree; }
2078        };
2079    
2080        // $ANTLR start required_types
2081        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:311:1: fragment required_types : LEFT_PAREN string_list RIGHT_PAREN -> string_list ;
2082        public final required_types_return required_types() throws RecognitionException {
2083            required_types_return retval = new required_types_return();
2084            retval.start = input.LT(1);
2085    
2086            Object root_0 = null;
2087    
2088            Token LEFT_PAREN48=null;
2089            Token RIGHT_PAREN50=null;
2090            string_list_return string_list49 = null;
2091    
2092    
2093            Object LEFT_PAREN48_tree=null;
2094            Object RIGHT_PAREN50_tree=null;
2095            RewriteRuleTokenStream stream_LEFT_PAREN=new RewriteRuleTokenStream(adaptor,"token LEFT_PAREN");
2096            RewriteRuleTokenStream stream_RIGHT_PAREN=new RewriteRuleTokenStream(adaptor,"token RIGHT_PAREN");
2097            RewriteRuleSubtreeStream stream_string_list=new RewriteRuleSubtreeStream(adaptor,"rule string_list");
2098            try {
2099                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:313:2: ( LEFT_PAREN string_list RIGHT_PAREN -> string_list )
2100                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:313:4: LEFT_PAREN string_list RIGHT_PAREN
2101                {
2102                LEFT_PAREN48=(Token)input.LT(1);
2103                match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_required_types1155); 
2104                stream_LEFT_PAREN.add(LEFT_PAREN48);
2105    
2106                pushFollow(FOLLOW_string_list_in_required_types1159);
2107                string_list49=string_list();
2108                _fsp--;
2109    
2110                stream_string_list.add(string_list49.getTree());
2111                RIGHT_PAREN50=(Token)input.LT(1);
2112                match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_required_types1163); 
2113                stream_RIGHT_PAREN.add(RIGHT_PAREN50);
2114    
2115    
2116                // AST REWRITE
2117                // elements: string_list
2118                // token labels: 
2119                // rule labels: retval
2120                // token list labels: 
2121                // rule list labels: 
2122                retval.tree = root_0;
2123                RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
2124    
2125                root_0 = (Object)adaptor.nil();
2126                // 317:2: -> string_list
2127                {
2128                    adaptor.addChild(root_0, stream_string_list.next());
2129    
2130                }
2131    
2132    
2133    
2134                }
2135    
2136                retval.stop = input.LT(-1);
2137    
2138                    retval.tree = (Object)adaptor.rulePostProcessing(root_0);
2139                    adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
2140    
2141            }
2142            catch (RecognitionException re) {
2143                reportError(re);
2144                recover(input,re);
2145            }
2146            finally {
2147            }
2148            return retval;
2149        }
2150        // $ANTLR end required_types
2151    
2152        public static class default_type_return extends ParserRuleReturnScope {
2153            Object tree;
2154            public Object getTree() { return tree; }
2155        };
2156    
2157        // $ANTLR start default_type
2158        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:320:1: fragment default_type : EQUALS string -> string ;
2159        public final default_type_return default_type() throws RecognitionException {
2160            default_type_return retval = new default_type_return();
2161            retval.start = input.LT(1);
2162    
2163            Object root_0 = null;
2164    
2165            Token EQUALS51=null;
2166            string_return string52 = null;
2167    
2168    
2169            Object EQUALS51_tree=null;
2170            RewriteRuleTokenStream stream_EQUALS=new RewriteRuleTokenStream(adaptor,"token EQUALS");
2171            RewriteRuleSubtreeStream stream_string=new RewriteRuleSubtreeStream(adaptor,"rule string");
2172            try {
2173                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:322:2: ( EQUALS string -> string )
2174                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:322:5: EQUALS string
2175                {
2176                EQUALS51=(Token)input.LT(1);
2177                match(input,EQUALS,FOLLOW_EQUALS_in_default_type1185); 
2178                stream_EQUALS.add(EQUALS51);
2179    
2180                pushFollow(FOLLOW_string_in_default_type1189);
2181                string52=string();
2182                _fsp--;
2183    
2184                stream_string.add(string52.getTree());
2185    
2186                // AST REWRITE
2187                // elements: string
2188                // token labels: 
2189                // rule labels: retval
2190                // token list labels: 
2191                // rule list labels: 
2192                retval.tree = root_0;
2193                RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
2194    
2195                root_0 = (Object)adaptor.nil();
2196                // 325:2: -> string
2197                {
2198                    adaptor.addChild(root_0, stream_string.next());
2199    
2200                }
2201    
2202    
2203    
2204                }
2205    
2206                retval.stop = input.LT(-1);
2207    
2208                    retval.tree = (Object)adaptor.rulePostProcessing(root_0);
2209                    adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
2210    
2211            }
2212            catch (RecognitionException re) {
2213                reportError(re);
2214                recover(input,re);
2215            }
2216            finally {
2217            }
2218            return retval;
2219        }
2220        // $ANTLR end default_type
2221    
2222        public static class attributes_return extends ParserRuleReturnScope {
2223            Object tree;
2224            public Object getTree() { return tree; }
2225        };
2226    
2227        // $ANTLR start attributes
2228        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:328:1: fragment attributes : ( 'ABORT' | 'Abort' | 'abort' | 'autocreated' | 'aut' | 'a' | 'COMPUTE' | 'Compute' | 'compute' | 'COPY' | 'Copy' | 'copy' | 'IGNORE' | 'Ignore' | 'ignore' | 'INITIALIZE' | 'Initialize' | 'initialize' | 'mandatory' | 'man' | 'm' | 'multiple' | 'mul' | STAR | 'primary' | 'pri' | EXCLAMATION | 'protected' | 'pro' | 'p' | 'VERSION' | 'Version' | 'version' );
2229        public final attributes_return attributes() throws RecognitionException {
2230            attributes_return retval = new attributes_return();
2231            retval.start = input.LT(1);
2232    
2233            Object root_0 = null;
2234    
2235            Token set53=null;
2236    
2237            Object set53_tree=null;
2238    
2239            try {
2240                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:330:2: ( 'ABORT' | 'Abort' | 'abort' | 'autocreated' | 'aut' | 'a' | 'COMPUTE' | 'Compute' | 'compute' | 'COPY' | 'Copy' | 'copy' | 'IGNORE' | 'Ignore' | 'ignore' | 'INITIALIZE' | 'Initialize' | 'initialize' | 'mandatory' | 'man' | 'm' | 'multiple' | 'mul' | STAR | 'primary' | 'pri' | EXCLAMATION | 'protected' | 'pro' | 'p' | 'VERSION' | 'Version' | 'version' )
2241                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:
2242                {
2243                root_0 = (Object)adaptor.nil();
2244    
2245                set53=(Token)input.LT(1);
2246                if ( input.LA(1)==EXCLAMATION||input.LA(1)==STAR||input.LA(1)==48||input.LA(1)==54||(input.LA(1)>=94 && input.LA(1)<=122) ) {
2247                    input.consume();
2248                    adaptor.addChild(root_0, adaptor.create(set53));
2249                    errorRecovery=false;
2250                }
2251                else {
2252                    MismatchedSetException mse =
2253                        new MismatchedSetException(null,input);
2254                    recoverFromMismatchedSet(input,mse,FOLLOW_set_in_attributes0);    throw mse;
2255                }
2256    
2257    
2258                }
2259    
2260                retval.stop = input.LT(-1);
2261    
2262                    retval.tree = (Object)adaptor.rulePostProcessing(root_0);
2263                    adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
2264    
2265            }
2266            catch (RecognitionException re) {
2267                reportError(re);
2268                recover(input,re);
2269            }
2270            finally {
2271            }
2272            return retval;
2273        }
2274        // $ANTLR end attributes
2275    
2276        public static class string_return extends ParserRuleReturnScope {
2277            Object tree;
2278            public Object getTree() { return tree; }
2279        };
2280    
2281        // $ANTLR start string
2282        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:343:1: fragment string : ( QUOTED_STRING | UNQUOTED_STRING );
2283        public final string_return string() throws RecognitionException {
2284            string_return retval = new string_return();
2285            retval.start = input.LT(1);
2286    
2287            Object root_0 = null;
2288    
2289            Token set54=null;
2290    
2291            Object set54_tree=null;
2292    
2293            try {
2294                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:345:2: ( QUOTED_STRING | UNQUOTED_STRING )
2295                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:
2296                {
2297                root_0 = (Object)adaptor.nil();
2298    
2299                set54=(Token)input.LT(1);
2300                if ( (input.LA(1)>=QUOTED_STRING && input.LA(1)<=UNQUOTED_STRING) ) {
2301                    input.consume();
2302                    adaptor.addChild(root_0, adaptor.create(set54));
2303                    errorRecovery=false;
2304                }
2305                else {
2306                    MismatchedSetException mse =
2307                        new MismatchedSetException(null,input);
2308                    recoverFromMismatchedSet(input,mse,FOLLOW_set_in_string0);    throw mse;
2309                }
2310    
2311    
2312                }
2313    
2314                retval.stop = input.LT(-1);
2315    
2316                    retval.tree = (Object)adaptor.rulePostProcessing(root_0);
2317                    adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
2318    
2319            }
2320            catch (RecognitionException re) {
2321                reportError(re);
2322                recover(input,re);
2323            }
2324            finally {
2325            }
2326            return retval;
2327        }
2328        // $ANTLR end string
2329    
2330        public static class string_list_return extends ParserRuleReturnScope {
2331            Object tree;
2332            public Object getTree() { return tree; }
2333        };
2334    
2335        // $ANTLR start string_list
2336        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:349:1: fragment string_list : string ( COMMA string )* -> ( string )+ ;
2337        public final string_list_return string_list() throws RecognitionException {
2338            string_list_return retval = new string_list_return();
2339            retval.start = input.LT(1);
2340    
2341            Object root_0 = null;
2342    
2343            Token COMMA56=null;
2344            string_return string55 = null;
2345    
2346            string_return string57 = null;
2347    
2348    
2349            Object COMMA56_tree=null;
2350            RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
2351            RewriteRuleSubtreeStream stream_string=new RewriteRuleSubtreeStream(adaptor,"rule string");
2352            try {
2353                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:351:2: ( string ( COMMA string )* -> ( string )+ )
2354                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:351:5: string ( COMMA string )*
2355                {
2356                pushFollow(FOLLOW_string_in_string_list1391);
2357                string55=string();
2358                _fsp--;
2359    
2360                stream_string.add(string55.getTree());
2361                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:352:3: ( COMMA string )*
2362                loop19:
2363                do {
2364                    int alt19=2;
2365                    int LA19_0 = input.LA(1);
2366    
2367                    if ( (LA19_0==COMMA) ) {
2368                        alt19=1;
2369                    }
2370    
2371    
2372                    switch (alt19) {
2373                    case 1 :
2374                        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:352:5: COMMA string
2375                        {
2376                        COMMA56=(Token)input.LT(1);
2377                        match(input,COMMA,FOLLOW_COMMA_in_string_list1397); 
2378                        stream_COMMA.add(COMMA56);
2379    
2380                        pushFollow(FOLLOW_string_in_string_list1402);
2381                        string57=string();
2382                        _fsp--;
2383    
2384                        stream_string.add(string57.getTree());
2385    
2386                        }
2387                        break;
2388    
2389                    default :
2390                        break loop19;
2391                    }
2392                } while (true);
2393    
2394    
2395                // AST REWRITE
2396                // elements: string
2397                // token labels: 
2398                // rule labels: retval
2399                // token list labels: 
2400                // rule list labels: 
2401                retval.tree = root_0;
2402                RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
2403    
2404                root_0 = (Object)adaptor.nil();
2405                // 356:2: -> ( string )+
2406                {
2407                    if ( !(stream_string.hasNext()) ) {
2408                        throw new RewriteEarlyExitException();
2409                    }
2410                    while ( stream_string.hasNext() ) {
2411                        adaptor.addChild(root_0, stream_string.next());
2412    
2413                    }
2414                    stream_string.reset();
2415    
2416                }
2417    
2418    
2419    
2420                }
2421    
2422                retval.stop = input.LT(-1);
2423    
2424                    retval.tree = (Object)adaptor.rulePostProcessing(root_0);
2425                    adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
2426    
2427            }
2428            catch (RecognitionException re) {
2429                reportError(re);
2430                recover(input,re);
2431            }
2432            finally {
2433            }
2434            return retval;
2435        }
2436        // $ANTLR end string_list
2437    
2438        public static class uri_string_return extends ParserRuleReturnScope {
2439            Object tree;
2440            public Object getTree() { return tree; }
2441        };
2442    
2443        // $ANTLR start uri_string
2444        // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:359:1: fragment uri_string : ( QUOTED_URI_STRING | UNQUOTED_URI_STRING );
2445        public final uri_string_return uri_string() throws RecognitionException {
2446            uri_string_return retval = new uri_string_return();
2447            retval.start = input.LT(1);
2448    
2449            Object root_0 = null;
2450    
2451            Token set58=null;
2452    
2453            Object set58_tree=null;
2454    
2455            try {
2456                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:361:2: ( QUOTED_URI_STRING | UNQUOTED_URI_STRING )
2457                // /Users/rhauch/redhat/dev/java/jboss-dna/trunk/target/checkout/extensions/dna-sequencer-cnd/src/main/antlr/org/jboss/dna/sequencer/cnd/Cnd.g:
2458                {
2459                root_0 = (Object)adaptor.nil();
2460    
2461                set58=(Token)input.LT(1);
2462                if ( (input.LA(1)>=QUOTED_URI_STRING && input.LA(1)<=UNQUOTED_URI_STRING) ) {
2463                    input.consume();
2464                    adaptor.addChild(root_0, adaptor.create(set58));
2465                    errorRecovery=false;
2466                }
2467                else {
2468                    MismatchedSetException mse =
2469                        new MismatchedSetException(null,input);
2470                    recoverFromMismatchedSet(input,mse,FOLLOW_set_in_uri_string0);    throw mse;
2471                }
2472    
2473    
2474                }
2475    
2476                retval.stop = input.LT(-1);
2477    
2478                    retval.tree = (Object)adaptor.rulePostProcessing(root_0);
2479                    adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
2480    
2481            }
2482            catch (RecognitionException re) {
2483                reportError(re);
2484                recover(input,re);
2485            }
2486            finally {
2487            }
2488            return retval;
2489        }
2490        // $ANTLR end uri_string
2491    
2492    
2493     
2494    
2495        public static final BitSet FOLLOW_comment_in_cnd256 = new BitSet(new long[]{0x000000E000000402L});
2496        public static final BitSet FOLLOW_ns_mapping_in_cnd263 = new BitSet(new long[]{0x000000E000000402L});
2497        public static final BitSet FOLLOW_node_type_def_in_cnd270 = new BitSet(new long[]{0x000000E000000402L});
2498        public static final BitSet FOLLOW_set_in_comment0 = new BitSet(new long[]{0x0000000000000002L});
2499        public static final BitSet FOLLOW_NAMESPACE_MAPPING_in_ns_mapping338 = new BitSet(new long[]{0x0000000000000002L});
2500        public static final BitSet FOLLOW_node_type_name_in_node_type_def352 = new BitSet(new long[]{0x007FC00000002222L});
2501        public static final BitSet FOLLOW_supertypes_in_node_type_def357 = new BitSet(new long[]{0x007FC00000002022L});
2502        public static final BitSet FOLLOW_node_type_options_in_node_type_def363 = new BitSet(new long[]{0x0000000000002022L});
2503        public static final BitSet FOLLOW_property_def_in_node_type_def371 = new BitSet(new long[]{0x0000000000002022L});
2504        public static final BitSet FOLLOW_child_node_def_in_node_type_def379 = new BitSet(new long[]{0x0000000000002022L});
2505        public static final BitSet FOLLOW_LEFT_BRACKET_in_node_type_name469 = new BitSet(new long[]{0x0000030000000000L});
2506        public static final BitSet FOLLOW_string_in_node_type_name474 = new BitSet(new long[]{0x0000000000004000L});
2507        public static final BitSet FOLLOW_RIGHT_BRACKET_in_node_type_name479 = new BitSet(new long[]{0x0000000000000002L});
2508        public static final BitSet FOLLOW_GREATER_THAN_in_supertypes504 = new BitSet(new long[]{0x0000030000000000L});
2509        public static final BitSet FOLLOW_string_list_in_supertypes509 = new BitSet(new long[]{0x0000000000000002L});
2510        public static final BitSet FOLLOW_abs_opt_in_node_type_options535 = new BitSet(new long[]{0x007E000000000002L});
2511        public static final BitSet FOLLOW_ord_mix_opt_in_node_type_options537 = new BitSet(new long[]{0x0000000000000002L});
2512        public static final BitSet FOLLOW_ord_mix_opt_in_node_type_options546 = new BitSet(new long[]{0x0001C00000000002L});
2513        public static final BitSet FOLLOW_abs_opt_in_node_type_options548 = new BitSet(new long[]{0x0000000000000002L});
2514        public static final BitSet FOLLOW_set_in_abs_opt0 = new BitSet(new long[]{0x0000000000000002L});
2515        public static final BitSet FOLLOW_orderable_opt_in_ord_mix_opt590 = new BitSet(new long[]{0x0070000000000002L});
2516        public static final BitSet FOLLOW_mixin_opt_in_ord_mix_opt592 = new BitSet(new long[]{0x0000000000000002L});
2517        public static final BitSet FOLLOW_mixin_opt_in_ord_mix_opt601 = new BitSet(new long[]{0x000E000000000002L});
2518        public static final BitSet FOLLOW_orderable_opt_in_ord_mix_opt603 = new BitSet(new long[]{0x0000000000000002L});
2519        public static final BitSet FOLLOW_set_in_orderable_opt0 = new BitSet(new long[]{0x0000000000000002L});
2520        public static final BitSet FOLLOW_set_in_mixin_opt0 = new BitSet(new long[]{0x0000000000000002L});
2521        public static final BitSet FOLLOW_DASH_in_property_def670 = new BitSet(new long[]{0x0000030000040000L});
2522        public static final BitSet FOLLOW_jcr_name_in_property_def675 = new BitSet(new long[]{0x0041000000041982L,0x07FFFFFFC0000000L});
2523        public static final BitSet FOLLOW_property_type_decl_in_property_def680 = new BitSet(new long[]{0x0041000000041182L,0x07FFFFFFC0000000L});
2524        public static final BitSet FOLLOW_default_values_in_property_def686 = new BitSet(new long[]{0x0041000000041102L,0x07FFFFFFC0000000L});
2525        public static final BitSet FOLLOW_attributes_in_property_def692 = new BitSet(new long[]{0x0041000000041102L,0x07FFFFFFC0000000L});
2526        public static final BitSet FOLLOW_value_constraints_in_property_def698 = new BitSet(new long[]{0x0000000000000002L});
2527        public static final BitSet FOLLOW_PLUS_in_child_node_def778 = new BitSet(new long[]{0x0000030000040000L});
2528        public static final BitSet FOLLOW_jcr_name_in_child_node_def782 = new BitSet(new long[]{0x0041000000040982L,0x07FFFFFFC0000000L});
2529        public static final BitSet FOLLOW_required_types_in_child_node_def786 = new BitSet(new long[]{0x0041000000040182L,0x07FFFFFFC0000000L});
2530        public static final BitSet FOLLOW_default_type_in_child_node_def791 = new BitSet(new long[]{0x0041000000040102L,0x07FFFFFFC0000000L});
2531        public static final BitSet FOLLOW_attributes_in_child_node_def796 = new BitSet(new long[]{0x0000000000000002L});
2532        public static final BitSet FOLLOW_string_in_jcr_name863 = new BitSet(new long[]{0x0000000000000002L});
2533        public static final BitSet FOLLOW_STAR_in_jcr_name869 = new BitSet(new long[]{0x0000000000000002L});
2534        public static final BitSet FOLLOW_LEFT_PAREN_in_property_type_decl883 = new BitSet(new long[]{0xFF80000000040000L,0x000000003FFFFFFFL});
2535        public static final BitSet FOLLOW_property_type_in_property_type_decl887 = new BitSet(new long[]{0x0000000000008000L});
2536        public static final BitSet FOLLOW_RIGHT_PAREN_in_property_type_decl891 = new BitSet(new long[]{0x0000000000000002L});
2537        public static final BitSet FOLLOW_set_in_property_type0 = new BitSet(new long[]{0x0000000000000002L});
2538        public static final BitSet FOLLOW_EQUALS_in_default_values1107 = new BitSet(new long[]{0x0000030000000000L});
2539        public static final BitSet FOLLOW_string_list_in_default_values1111 = new BitSet(new long[]{0x0000000000000002L});
2540        public static final BitSet FOLLOW_LESS_THAN_in_value_constraints1132 = new BitSet(new long[]{0x0000030000000000L});
2541        public static final BitSet FOLLOW_string_list_in_value_constraints1136 = new BitSet(new long[]{0x0000000000000002L});
2542        public static final BitSet FOLLOW_LEFT_PAREN_in_required_types1155 = new BitSet(new long[]{0x0000030000000000L});
2543        public static final BitSet FOLLOW_string_list_in_required_types1159 = new BitSet(new long[]{0x0000000000008000L});
2544        public static final BitSet FOLLOW_RIGHT_PAREN_in_required_types1163 = new BitSet(new long[]{0x0000000000000002L});
2545        public static final BitSet FOLLOW_EQUALS_in_default_type1185 = new BitSet(new long[]{0x0000030000000000L});
2546        public static final BitSet FOLLOW_string_in_default_type1189 = new BitSet(new long[]{0x0000000000000002L});
2547        public static final BitSet FOLLOW_set_in_attributes0 = new BitSet(new long[]{0x0000000000000002L});
2548        public static final BitSet FOLLOW_set_in_string0 = new BitSet(new long[]{0x0000000000000002L});
2549        public static final BitSet FOLLOW_string_in_string_list1391 = new BitSet(new long[]{0x0000000000000012L});
2550        public static final BitSet FOLLOW_COMMA_in_string_list1397 = new BitSet(new long[]{0x0000030000000000L});
2551        public static final BitSet FOLLOW_string_in_string_list1402 = new BitSet(new long[]{0x0000000000000012L});
2552        public static final BitSet FOLLOW_set_in_uri_string0 = new BitSet(new long[]{0x0000000000000002L});
2553    
2554    }