Code Duplication    Length = 161-161 lines in 3 locations

src/main/java/it/cnr/istc/pst/platinum/ai/lang/ddl/v3/parser/ddl3Parser.java 3 locations

@@ 8114-8274 (lines=161) @@
8111
8112
	// $ANTLR start "consumable_resource_consumption_component_decision"
8113
	// /home/alessandro/opt/antlr/ddl3/ddl3.g:170:1: consumable_resource_consumption_component_decision : ( '<' parameter ( ',' parameter )* '>' )? 'CONSUMPTION' '(' par_value ')' -> ^( 'CONSUMPTION' par_value ( parameter )* ) ;
8114
	public final ddl3Parser.consumable_resource_consumption_component_decision_return consumable_resource_consumption_component_decision() throws RecognitionException {
8115
		ddl3Parser.consumable_resource_consumption_component_decision_return retval = new ddl3Parser.consumable_resource_consumption_component_decision_return();
8116
		retval.start = input.LT(1);
8117
		int consumable_resource_consumption_component_decision_StartIndex = input.index();
8118
8119
		Object root_0 = null;
8120
8121
		Token char_literal314=null;
8122
		Token char_literal316=null;
8123
		Token char_literal318=null;
8124
		Token string_literal319=null;
8125
		Token char_literal320=null;
8126
		Token char_literal322=null;
8127
		ParserRuleReturnScope parameter315 =null;
8128
		ParserRuleReturnScope parameter317 =null;
8129
		ParserRuleReturnScope par_value321 =null;
8130
8131
		Object char_literal314_tree=null;
8132
		Object char_literal316_tree=null;
8133
		Object char_literal318_tree=null;
8134
		Object string_literal319_tree=null;
8135
		Object char_literal320_tree=null;
8136
		Object char_literal322_tree=null;
8137
		RewriteRuleTokenStream stream_11=new RewriteRuleTokenStream(adaptor,"token 11");
8138
		RewriteRuleTokenStream stream_23=new RewriteRuleTokenStream(adaptor,"token 23");
8139
		RewriteRuleTokenStream stream_12=new RewriteRuleTokenStream(adaptor,"token 12");
8140
		RewriteRuleTokenStream stream_36=new RewriteRuleTokenStream(adaptor,"token 36");
8141
		RewriteRuleTokenStream stream_15=new RewriteRuleTokenStream(adaptor,"token 15");
8142
		RewriteRuleTokenStream stream_20=new RewriteRuleTokenStream(adaptor,"token 20");
8143
		RewriteRuleSubtreeStream stream_par_value=new RewriteRuleSubtreeStream(adaptor,"rule par_value");
8144
		RewriteRuleSubtreeStream stream_parameter=new RewriteRuleSubtreeStream(adaptor,"rule parameter");
8145
8146
		try {
8147
			if ( state.backtracking>0 && alreadyParsedRule(input, 41) ) { return retval; }
8148
8149
			// /home/alessandro/opt/antlr/ddl3/ddl3.g:171:2: ( ( '<' parameter ( ',' parameter )* '>' )? 'CONSUMPTION' '(' par_value ')' -> ^( 'CONSUMPTION' par_value ( parameter )* ) )
8150
			// /home/alessandro/opt/antlr/ddl3/ddl3.g:171:4: ( '<' parameter ( ',' parameter )* '>' )? 'CONSUMPTION' '(' par_value ')'
8151
			{
8152
			// /home/alessandro/opt/antlr/ddl3/ddl3.g:171:4: ( '<' parameter ( ',' parameter )* '>' )?
8153
			int alt54=2;
8154
			int LA54_0 = input.LA(1);
8155
			if ( (LA54_0==20) ) {
8156
				alt54=1;
8157
			}
8158
			switch (alt54) {
8159
				case 1 :
8160
					// /home/alessandro/opt/antlr/ddl3/ddl3.g:171:5: '<' parameter ( ',' parameter )* '>'
8161
					{
8162
					char_literal314=(Token)match(input,20,FOLLOW_20_in_consumable_resource_consumption_component_decision1967); if (state.failed) return retval; 
8163
					if ( state.backtracking==0 ) stream_20.add(char_literal314);
8164
8165
					pushFollow(FOLLOW_parameter_in_consumable_resource_consumption_component_decision1969);
8166
					parameter315=parameter();
8167
					state._fsp--;
8168
					if (state.failed) return retval;
8169
					if ( state.backtracking==0 ) stream_parameter.add(parameter315.getTree());
8170
					// /home/alessandro/opt/antlr/ddl3/ddl3.g:171:19: ( ',' parameter )*
8171
					loop53:
8172
					while (true) {
8173
						int alt53=2;
8174
						int LA53_0 = input.LA(1);
8175
						if ( (LA53_0==15) ) {
8176
							alt53=1;
8177
						}
8178
8179
						switch (alt53) {
8180
						case 1 :
8181
							// /home/alessandro/opt/antlr/ddl3/ddl3.g:171:20: ',' parameter
8182
							{
8183
							char_literal316=(Token)match(input,15,FOLLOW_15_in_consumable_resource_consumption_component_decision1972); if (state.failed) return retval; 
8184
							if ( state.backtracking==0 ) stream_15.add(char_literal316);
8185
8186
							pushFollow(FOLLOW_parameter_in_consumable_resource_consumption_component_decision1974);
8187
							parameter317=parameter();
8188
							state._fsp--;
8189
							if (state.failed) return retval;
8190
							if ( state.backtracking==0 ) stream_parameter.add(parameter317.getTree());
8191
							}
8192
							break;
8193
8194
						default :
8195
							break loop53;
8196
						}
8197
					}
8198
8199
					char_literal318=(Token)match(input,23,FOLLOW_23_in_consumable_resource_consumption_component_decision1978); if (state.failed) return retval; 
8200
					if ( state.backtracking==0 ) stream_23.add(char_literal318);
8201
8202
					}
8203
					break;
8204
8205
			}
8206
8207
			string_literal319=(Token)match(input,36,FOLLOW_36_in_consumable_resource_consumption_component_decision1982); if (state.failed) return retval; 
8208
			if ( state.backtracking==0 ) stream_36.add(string_literal319);
8209
8210
			char_literal320=(Token)match(input,11,FOLLOW_11_in_consumable_resource_consumption_component_decision1984); if (state.failed) return retval; 
8211
			if ( state.backtracking==0 ) stream_11.add(char_literal320);
8212
8213
			pushFollow(FOLLOW_par_value_in_consumable_resource_consumption_component_decision1986);
8214
			par_value321=par_value();
8215
			state._fsp--;
8216
			if (state.failed) return retval;
8217
			if ( state.backtracking==0 ) stream_par_value.add(par_value321.getTree());
8218
			char_literal322=(Token)match(input,12,FOLLOW_12_in_consumable_resource_consumption_component_decision1988); if (state.failed) return retval; 
8219
			if ( state.backtracking==0 ) stream_12.add(char_literal322);
8220
8221
			// AST REWRITE
8222
			// elements: parameter, 36, par_value
8223
			// token labels: 
8224
			// rule labels: retval
8225
			// token list labels: 
8226
			// rule list labels: 
8227
			// wildcard labels: 
8228
			if ( state.backtracking==0 ) {
8229
			retval.tree = root_0;
8230
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
8231
8232
			root_0 = (Object)adaptor.nil();
8233
			// 171:74: -> ^( 'CONSUMPTION' par_value ( parameter )* )
8234
			{
8235
				// /home/alessandro/opt/antlr/ddl3/ddl3.g:171:76: ^( 'CONSUMPTION' par_value ( parameter )* )
8236
				{
8237
				Object root_1 = (Object)adaptor.nil();
8238
				root_1 = (Object)adaptor.becomeRoot(new DDLConsumableResourceComponentDecision(stream_36.nextToken()), root_1);
8239
				adaptor.addChild(root_1, stream_par_value.nextTree());
8240
				// /home/alessandro/opt/antlr/ddl3/ddl3.g:171:142: ( parameter )*
8241
				while ( stream_parameter.hasNext() ) {
8242
					adaptor.addChild(root_1, stream_parameter.nextTree());
8243
				}
8244
				stream_parameter.reset();
8245
8246
				adaptor.addChild(root_0, root_1);
8247
				}
8248
8249
			}
8250
8251
8252
			retval.tree = root_0;
8253
			}
8254
8255
			}
8256
8257
			retval.stop = input.LT(-1);
8258
8259
			if ( state.backtracking==0 ) {
8260
			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
8261
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
8262
			}
8263
		}
8264
		catch (RecognitionException re) {
8265
			reportError(re);
8266
			recover(input,re);
8267
			retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
8268
		}
8269
		finally {
8270
			// do for sure before leaving
8271
			if ( state.backtracking>0 ) { memoize(input, 41, consumable_resource_consumption_component_decision_StartIndex); }
8272
8273
		}
8274
		return retval;
8275
	}
8276
	// $ANTLR end "consumable_resource_consumption_component_decision"
8277
@@ 7940-8100 (lines=161) @@
7937
7938
	// $ANTLR start "consumable_resource_production_component_decision"
7939
	// /home/alessandro/opt/antlr/ddl3/ddl3.g:167:1: consumable_resource_production_component_decision : ( '<' parameter ( ',' parameter )* '>' )? 'PRODUCTION' '(' par_value ')' -> ^( 'PRODUCTION' par_value ( parameter )* ) ;
7940
	public final ddl3Parser.consumable_resource_production_component_decision_return consumable_resource_production_component_decision() throws RecognitionException {
7941
		ddl3Parser.consumable_resource_production_component_decision_return retval = new ddl3Parser.consumable_resource_production_component_decision_return();
7942
		retval.start = input.LT(1);
7943
		int consumable_resource_production_component_decision_StartIndex = input.index();
7944
7945
		Object root_0 = null;
7946
7947
		Token char_literal305=null;
7948
		Token char_literal307=null;
7949
		Token char_literal309=null;
7950
		Token string_literal310=null;
7951
		Token char_literal311=null;
7952
		Token char_literal313=null;
7953
		ParserRuleReturnScope parameter306 =null;
7954
		ParserRuleReturnScope parameter308 =null;
7955
		ParserRuleReturnScope par_value312 =null;
7956
7957
		Object char_literal305_tree=null;
7958
		Object char_literal307_tree=null;
7959
		Object char_literal309_tree=null;
7960
		Object string_literal310_tree=null;
7961
		Object char_literal311_tree=null;
7962
		Object char_literal313_tree=null;
7963
		RewriteRuleTokenStream stream_11=new RewriteRuleTokenStream(adaptor,"token 11");
7964
		RewriteRuleTokenStream stream_23=new RewriteRuleTokenStream(adaptor,"token 23");
7965
		RewriteRuleTokenStream stream_12=new RewriteRuleTokenStream(adaptor,"token 12");
7966
		RewriteRuleTokenStream stream_15=new RewriteRuleTokenStream(adaptor,"token 15");
7967
		RewriteRuleTokenStream stream_62=new RewriteRuleTokenStream(adaptor,"token 62");
7968
		RewriteRuleTokenStream stream_20=new RewriteRuleTokenStream(adaptor,"token 20");
7969
		RewriteRuleSubtreeStream stream_par_value=new RewriteRuleSubtreeStream(adaptor,"rule par_value");
7970
		RewriteRuleSubtreeStream stream_parameter=new RewriteRuleSubtreeStream(adaptor,"rule parameter");
7971
7972
		try {
7973
			if ( state.backtracking>0 && alreadyParsedRule(input, 40) ) { return retval; }
7974
7975
			// /home/alessandro/opt/antlr/ddl3/ddl3.g:168:2: ( ( '<' parameter ( ',' parameter )* '>' )? 'PRODUCTION' '(' par_value ')' -> ^( 'PRODUCTION' par_value ( parameter )* ) )
7976
			// /home/alessandro/opt/antlr/ddl3/ddl3.g:168:4: ( '<' parameter ( ',' parameter )* '>' )? 'PRODUCTION' '(' par_value ')'
7977
			{
7978
			// /home/alessandro/opt/antlr/ddl3/ddl3.g:168:4: ( '<' parameter ( ',' parameter )* '>' )?
7979
			int alt52=2;
7980
			int LA52_0 = input.LA(1);
7981
			if ( (LA52_0==20) ) {
7982
				alt52=1;
7983
			}
7984
			switch (alt52) {
7985
				case 1 :
7986
					// /home/alessandro/opt/antlr/ddl3/ddl3.g:168:5: '<' parameter ( ',' parameter )* '>'
7987
					{
7988
					char_literal305=(Token)match(input,20,FOLLOW_20_in_consumable_resource_production_component_decision1921); if (state.failed) return retval; 
7989
					if ( state.backtracking==0 ) stream_20.add(char_literal305);
7990
7991
					pushFollow(FOLLOW_parameter_in_consumable_resource_production_component_decision1923);
7992
					parameter306=parameter();
7993
					state._fsp--;
7994
					if (state.failed) return retval;
7995
					if ( state.backtracking==0 ) stream_parameter.add(parameter306.getTree());
7996
					// /home/alessandro/opt/antlr/ddl3/ddl3.g:168:19: ( ',' parameter )*
7997
					loop51:
7998
					while (true) {
7999
						int alt51=2;
8000
						int LA51_0 = input.LA(1);
8001
						if ( (LA51_0==15) ) {
8002
							alt51=1;
8003
						}
8004
8005
						switch (alt51) {
8006
						case 1 :
8007
							// /home/alessandro/opt/antlr/ddl3/ddl3.g:168:20: ',' parameter
8008
							{
8009
							char_literal307=(Token)match(input,15,FOLLOW_15_in_consumable_resource_production_component_decision1926); if (state.failed) return retval; 
8010
							if ( state.backtracking==0 ) stream_15.add(char_literal307);
8011
8012
							pushFollow(FOLLOW_parameter_in_consumable_resource_production_component_decision1928);
8013
							parameter308=parameter();
8014
							state._fsp--;
8015
							if (state.failed) return retval;
8016
							if ( state.backtracking==0 ) stream_parameter.add(parameter308.getTree());
8017
							}
8018
							break;
8019
8020
						default :
8021
							break loop51;
8022
						}
8023
					}
8024
8025
					char_literal309=(Token)match(input,23,FOLLOW_23_in_consumable_resource_production_component_decision1932); if (state.failed) return retval; 
8026
					if ( state.backtracking==0 ) stream_23.add(char_literal309);
8027
8028
					}
8029
					break;
8030
8031
			}
8032
8033
			string_literal310=(Token)match(input,62,FOLLOW_62_in_consumable_resource_production_component_decision1936); if (state.failed) return retval; 
8034
			if ( state.backtracking==0 ) stream_62.add(string_literal310);
8035
8036
			char_literal311=(Token)match(input,11,FOLLOW_11_in_consumable_resource_production_component_decision1938); if (state.failed) return retval; 
8037
			if ( state.backtracking==0 ) stream_11.add(char_literal311);
8038
8039
			pushFollow(FOLLOW_par_value_in_consumable_resource_production_component_decision1940);
8040
			par_value312=par_value();
8041
			state._fsp--;
8042
			if (state.failed) return retval;
8043
			if ( state.backtracking==0 ) stream_par_value.add(par_value312.getTree());
8044
			char_literal313=(Token)match(input,12,FOLLOW_12_in_consumable_resource_production_component_decision1942); if (state.failed) return retval; 
8045
			if ( state.backtracking==0 ) stream_12.add(char_literal313);
8046
8047
			// AST REWRITE
8048
			// elements: parameter, 62, par_value
8049
			// token labels: 
8050
			// rule labels: retval
8051
			// token list labels: 
8052
			// rule list labels: 
8053
			// wildcard labels: 
8054
			if ( state.backtracking==0 ) {
8055
			retval.tree = root_0;
8056
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
8057
8058
			root_0 = (Object)adaptor.nil();
8059
			// 168:73: -> ^( 'PRODUCTION' par_value ( parameter )* )
8060
			{
8061
				// /home/alessandro/opt/antlr/ddl3/ddl3.g:168:75: ^( 'PRODUCTION' par_value ( parameter )* )
8062
				{
8063
				Object root_1 = (Object)adaptor.nil();
8064
				root_1 = (Object)adaptor.becomeRoot(new DDLConsumableResourceComponentDecision(stream_62.nextToken()), root_1);
8065
				adaptor.addChild(root_1, stream_par_value.nextTree());
8066
				// /home/alessandro/opt/antlr/ddl3/ddl3.g:168:140: ( parameter )*
8067
				while ( stream_parameter.hasNext() ) {
8068
					adaptor.addChild(root_1, stream_parameter.nextTree());
8069
				}
8070
				stream_parameter.reset();
8071
8072
				adaptor.addChild(root_0, root_1);
8073
				}
8074
8075
			}
8076
8077
8078
			retval.tree = root_0;
8079
			}
8080
8081
			}
8082
8083
			retval.stop = input.LT(-1);
8084
8085
			if ( state.backtracking==0 ) {
8086
			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
8087
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
8088
			}
8089
		}
8090
		catch (RecognitionException re) {
8091
			reportError(re);
8092
			recover(input,re);
8093
			retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
8094
		}
8095
		finally {
8096
			// do for sure before leaving
8097
			if ( state.backtracking>0 ) { memoize(input, 40, consumable_resource_production_component_decision_StartIndex); }
8098
8099
		}
8100
		return retval;
8101
	}
8102
	// $ANTLR end "consumable_resource_production_component_decision"
8103
@@ 7687-7847 (lines=161) @@
7684
7685
	// $ANTLR start "renewable_resource_component_decision"
7686
	// /home/alessandro/opt/antlr/ddl3/ddl3.g:161:1: renewable_resource_component_decision : ( '<' parameter ( ',' parameter )* '>' )? 'REQUIREMENT' '(' par_value ')' -> ^( 'REQUIREMENT' par_value ( parameter )* ) ;
7687
	public final ddl3Parser.renewable_resource_component_decision_return renewable_resource_component_decision() throws RecognitionException {
7688
		ddl3Parser.renewable_resource_component_decision_return retval = new ddl3Parser.renewable_resource_component_decision_return();
7689
		retval.start = input.LT(1);
7690
		int renewable_resource_component_decision_StartIndex = input.index();
7691
7692
		Object root_0 = null;
7693
7694
		Token char_literal294=null;
7695
		Token char_literal296=null;
7696
		Token char_literal298=null;
7697
		Token string_literal299=null;
7698
		Token char_literal300=null;
7699
		Token char_literal302=null;
7700
		ParserRuleReturnScope parameter295 =null;
7701
		ParserRuleReturnScope parameter297 =null;
7702
		ParserRuleReturnScope par_value301 =null;
7703
7704
		Object char_literal294_tree=null;
7705
		Object char_literal296_tree=null;
7706
		Object char_literal298_tree=null;
7707
		Object string_literal299_tree=null;
7708
		Object char_literal300_tree=null;
7709
		Object char_literal302_tree=null;
7710
		RewriteRuleTokenStream stream_11=new RewriteRuleTokenStream(adaptor,"token 11");
7711
		RewriteRuleTokenStream stream_23=new RewriteRuleTokenStream(adaptor,"token 23");
7712
		RewriteRuleTokenStream stream_12=new RewriteRuleTokenStream(adaptor,"token 12");
7713
		RewriteRuleTokenStream stream_15=new RewriteRuleTokenStream(adaptor,"token 15");
7714
		RewriteRuleTokenStream stream_63=new RewriteRuleTokenStream(adaptor,"token 63");
7715
		RewriteRuleTokenStream stream_20=new RewriteRuleTokenStream(adaptor,"token 20");
7716
		RewriteRuleSubtreeStream stream_par_value=new RewriteRuleSubtreeStream(adaptor,"rule par_value");
7717
		RewriteRuleSubtreeStream stream_parameter=new RewriteRuleSubtreeStream(adaptor,"rule parameter");
7718
7719
		try {
7720
			if ( state.backtracking>0 && alreadyParsedRule(input, 38) ) { return retval; }
7721
7722
			// /home/alessandro/opt/antlr/ddl3/ddl3.g:162:2: ( ( '<' parameter ( ',' parameter )* '>' )? 'REQUIREMENT' '(' par_value ')' -> ^( 'REQUIREMENT' par_value ( parameter )* ) )
7723
			// /home/alessandro/opt/antlr/ddl3/ddl3.g:162:4: ( '<' parameter ( ',' parameter )* '>' )? 'REQUIREMENT' '(' par_value ')'
7724
			{
7725
			// /home/alessandro/opt/antlr/ddl3/ddl3.g:162:4: ( '<' parameter ( ',' parameter )* '>' )?
7726
			int alt49=2;
7727
			int LA49_0 = input.LA(1);
7728
			if ( (LA49_0==20) ) {
7729
				alt49=1;
7730
			}
7731
			switch (alt49) {
7732
				case 1 :
7733
					// /home/alessandro/opt/antlr/ddl3/ddl3.g:162:5: '<' parameter ( ',' parameter )* '>'
7734
					{
7735
					char_literal294=(Token)match(input,20,FOLLOW_20_in_renewable_resource_component_decision1860); if (state.failed) return retval; 
7736
					if ( state.backtracking==0 ) stream_20.add(char_literal294);
7737
7738
					pushFollow(FOLLOW_parameter_in_renewable_resource_component_decision1862);
7739
					parameter295=parameter();
7740
					state._fsp--;
7741
					if (state.failed) return retval;
7742
					if ( state.backtracking==0 ) stream_parameter.add(parameter295.getTree());
7743
					// /home/alessandro/opt/antlr/ddl3/ddl3.g:162:19: ( ',' parameter )*
7744
					loop48:
7745
					while (true) {
7746
						int alt48=2;
7747
						int LA48_0 = input.LA(1);
7748
						if ( (LA48_0==15) ) {
7749
							alt48=1;
7750
						}
7751
7752
						switch (alt48) {
7753
						case 1 :
7754
							// /home/alessandro/opt/antlr/ddl3/ddl3.g:162:20: ',' parameter
7755
							{
7756
							char_literal296=(Token)match(input,15,FOLLOW_15_in_renewable_resource_component_decision1865); if (state.failed) return retval; 
7757
							if ( state.backtracking==0 ) stream_15.add(char_literal296);
7758
7759
							pushFollow(FOLLOW_parameter_in_renewable_resource_component_decision1867);
7760
							parameter297=parameter();
7761
							state._fsp--;
7762
							if (state.failed) return retval;
7763
							if ( state.backtracking==0 ) stream_parameter.add(parameter297.getTree());
7764
							}
7765
							break;
7766
7767
						default :
7768
							break loop48;
7769
						}
7770
					}
7771
7772
					char_literal298=(Token)match(input,23,FOLLOW_23_in_renewable_resource_component_decision1871); if (state.failed) return retval; 
7773
					if ( state.backtracking==0 ) stream_23.add(char_literal298);
7774
7775
					}
7776
					break;
7777
7778
			}
7779
7780
			string_literal299=(Token)match(input,63,FOLLOW_63_in_renewable_resource_component_decision1875); if (state.failed) return retval; 
7781
			if ( state.backtracking==0 ) stream_63.add(string_literal299);
7782
7783
			char_literal300=(Token)match(input,11,FOLLOW_11_in_renewable_resource_component_decision1877); if (state.failed) return retval; 
7784
			if ( state.backtracking==0 ) stream_11.add(char_literal300);
7785
7786
			pushFollow(FOLLOW_par_value_in_renewable_resource_component_decision1879);
7787
			par_value301=par_value();
7788
			state._fsp--;
7789
			if (state.failed) return retval;
7790
			if ( state.backtracking==0 ) stream_par_value.add(par_value301.getTree());
7791
			char_literal302=(Token)match(input,12,FOLLOW_12_in_renewable_resource_component_decision1881); if (state.failed) return retval; 
7792
			if ( state.backtracking==0 ) stream_12.add(char_literal302);
7793
7794
			// AST REWRITE
7795
			// elements: parameter, 63, par_value
7796
			// token labels: 
7797
			// rule labels: retval
7798
			// token list labels: 
7799
			// rule list labels: 
7800
			// wildcard labels: 
7801
			if ( state.backtracking==0 ) {
7802
			retval.tree = root_0;
7803
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
7804
7805
			root_0 = (Object)adaptor.nil();
7806
			// 162:74: -> ^( 'REQUIREMENT' par_value ( parameter )* )
7807
			{
7808
				// /home/alessandro/opt/antlr/ddl3/ddl3.g:162:76: ^( 'REQUIREMENT' par_value ( parameter )* )
7809
				{
7810
				Object root_1 = (Object)adaptor.nil();
7811
				root_1 = (Object)adaptor.becomeRoot(new DDLRenewableResourceComponentDecision(stream_63.nextToken()), root_1);
7812
				adaptor.addChild(root_1, stream_par_value.nextTree());
7813
				// /home/alessandro/opt/antlr/ddl3/ddl3.g:162:141: ( parameter )*
7814
				while ( stream_parameter.hasNext() ) {
7815
					adaptor.addChild(root_1, stream_parameter.nextTree());
7816
				}
7817
				stream_parameter.reset();
7818
7819
				adaptor.addChild(root_0, root_1);
7820
				}
7821
7822
			}
7823
7824
7825
			retval.tree = root_0;
7826
			}
7827
7828
			}
7829
7830
			retval.stop = input.LT(-1);
7831
7832
			if ( state.backtracking==0 ) {
7833
			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
7834
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
7835
			}
7836
		}
7837
		catch (RecognitionException re) {
7838
			reportError(re);
7839
			recover(input,re);
7840
			retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
7841
		}
7842
		finally {
7843
			// do for sure before leaving
7844
			if ( state.backtracking>0 ) { memoize(input, 38, renewable_resource_component_decision_StartIndex); }
7845
7846
		}
7847
		return retval;
7848
	}
7849
	// $ANTLR end "renewable_resource_component_decision"
7850