Code Duplication    Length = 153-157 lines in 2 locations

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

@@ 4837-4993 (lines=157) @@
4834
4835
	// $ANTLR start "simple_ground_state_variable_transition_constraint"
4836
	// /home/alessandro/opt/antlr/ddl3/ddl3.g:104:1: simple_ground_state_variable_transition_constraint : 'VALUE' simple_ground_state_variable_component_decision range ( 'MEETS' '{' ( simple_ground_state_variable_transition_element ';' )* '}' )? -> ^( 'VALUE' simple_ground_state_variable_component_decision range ( simple_ground_state_variable_transition_element )* ) ;
4837
	public final ddl3Parser.simple_ground_state_variable_transition_constraint_return simple_ground_state_variable_transition_constraint() throws RecognitionException {
4838
		ddl3Parser.simple_ground_state_variable_transition_constraint_return retval = new ddl3Parser.simple_ground_state_variable_transition_constraint_return();
4839
		retval.start = input.LT(1);
4840
		int simple_ground_state_variable_transition_constraint_StartIndex = input.index();
4841
4842
		Object root_0 = null;
4843
4844
		Token string_literal155=null;
4845
		Token string_literal158=null;
4846
		Token char_literal159=null;
4847
		Token char_literal161=null;
4848
		Token char_literal162=null;
4849
		ParserRuleReturnScope simple_ground_state_variable_component_decision156 =null;
4850
		ParserRuleReturnScope range157 =null;
4851
		ParserRuleReturnScope simple_ground_state_variable_transition_element160 =null;
4852
4853
		Object string_literal155_tree=null;
4854
		Object string_literal158_tree=null;
4855
		Object char_literal159_tree=null;
4856
		Object char_literal161_tree=null;
4857
		Object char_literal162_tree=null;
4858
		RewriteRuleTokenStream stream_55=new RewriteRuleTokenStream(adaptor,"token 55");
4859
		RewriteRuleTokenStream stream_80=new RewriteRuleTokenStream(adaptor,"token 80");
4860
		RewriteRuleTokenStream stream_19=new RewriteRuleTokenStream(adaptor,"token 19");
4861
		RewriteRuleTokenStream stream_81=new RewriteRuleTokenStream(adaptor,"token 81");
4862
		RewriteRuleTokenStream stream_75=new RewriteRuleTokenStream(adaptor,"token 75");
4863
		RewriteRuleSubtreeStream stream_simple_ground_state_variable_transition_element=new RewriteRuleSubtreeStream(adaptor,"rule simple_ground_state_variable_transition_element");
4864
		RewriteRuleSubtreeStream stream_range=new RewriteRuleSubtreeStream(adaptor,"rule range");
4865
		RewriteRuleSubtreeStream stream_simple_ground_state_variable_component_decision=new RewriteRuleSubtreeStream(adaptor,"rule simple_ground_state_variable_component_decision");
4866
4867
		try {
4868
			if ( state.backtracking>0 && alreadyParsedRule(input, 21) ) { return retval; }
4869
4870
			// /home/alessandro/opt/antlr/ddl3/ddl3.g:105:2: ( 'VALUE' simple_ground_state_variable_component_decision range ( 'MEETS' '{' ( simple_ground_state_variable_transition_element ';' )* '}' )? -> ^( 'VALUE' simple_ground_state_variable_component_decision range ( simple_ground_state_variable_transition_element )* ) )
4871
			// /home/alessandro/opt/antlr/ddl3/ddl3.g:105:4: 'VALUE' simple_ground_state_variable_component_decision range ( 'MEETS' '{' ( simple_ground_state_variable_transition_element ';' )* '}' )?
4872
			{
4873
			string_literal155=(Token)match(input,75,FOLLOW_75_in_simple_ground_state_variable_transition_constraint1102); if (state.failed) return retval; 
4874
			if ( state.backtracking==0 ) stream_75.add(string_literal155);
4875
4876
			pushFollow(FOLLOW_simple_ground_state_variable_component_decision_in_simple_ground_state_variable_transition_constraint1104);
4877
			simple_ground_state_variable_component_decision156=simple_ground_state_variable_component_decision();
4878
			state._fsp--;
4879
			if (state.failed) return retval;
4880
			if ( state.backtracking==0 ) stream_simple_ground_state_variable_component_decision.add(simple_ground_state_variable_component_decision156.getTree());
4881
			pushFollow(FOLLOW_range_in_simple_ground_state_variable_transition_constraint1106);
4882
			range157=range();
4883
			state._fsp--;
4884
			if (state.failed) return retval;
4885
			if ( state.backtracking==0 ) stream_range.add(range157.getTree());
4886
			// /home/alessandro/opt/antlr/ddl3/ddl3.g:105:66: ( 'MEETS' '{' ( simple_ground_state_variable_transition_element ';' )* '}' )?
4887
			int alt19=2;
4888
			int LA19_0 = input.LA(1);
4889
			if ( (LA19_0==55) ) {
4890
				alt19=1;
4891
			}
4892
			switch (alt19) {
4893
				case 1 :
4894
					// /home/alessandro/opt/antlr/ddl3/ddl3.g:105:67: 'MEETS' '{' ( simple_ground_state_variable_transition_element ';' )* '}'
4895
					{
4896
					string_literal158=(Token)match(input,55,FOLLOW_55_in_simple_ground_state_variable_transition_constraint1109); if (state.failed) return retval; 
4897
					if ( state.backtracking==0 ) stream_55.add(string_literal158);
4898
4899
					char_literal159=(Token)match(input,80,FOLLOW_80_in_simple_ground_state_variable_transition_constraint1111); if (state.failed) return retval; 
4900
					if ( state.backtracking==0 ) stream_80.add(char_literal159);
4901
4902
					// /home/alessandro/opt/antlr/ddl3/ddl3.g:105:79: ( simple_ground_state_variable_transition_element ';' )*
4903
					loop18:
4904
					while (true) {
4905
						int alt18=2;
4906
						int LA18_0 = input.LA(1);
4907
						if ( (LA18_0==ID||LA18_0==20) ) {
4908
							alt18=1;
4909
						}
4910
4911
						switch (alt18) {
4912
						case 1 :
4913
							// /home/alessandro/opt/antlr/ddl3/ddl3.g:105:80: simple_ground_state_variable_transition_element ';'
4914
							{
4915
							pushFollow(FOLLOW_simple_ground_state_variable_transition_element_in_simple_ground_state_variable_transition_constraint1114);
4916
							simple_ground_state_variable_transition_element160=simple_ground_state_variable_transition_element();
4917
							state._fsp--;
4918
							if (state.failed) return retval;
4919
							if ( state.backtracking==0 ) stream_simple_ground_state_variable_transition_element.add(simple_ground_state_variable_transition_element160.getTree());
4920
							char_literal161=(Token)match(input,19,FOLLOW_19_in_simple_ground_state_variable_transition_constraint1116); if (state.failed) return retval; 
4921
							if ( state.backtracking==0 ) stream_19.add(char_literal161);
4922
4923
							}
4924
							break;
4925
4926
						default :
4927
							break loop18;
4928
						}
4929
					}
4930
4931
					char_literal162=(Token)match(input,81,FOLLOW_81_in_simple_ground_state_variable_transition_constraint1120); if (state.failed) return retval; 
4932
					if ( state.backtracking==0 ) stream_81.add(char_literal162);
4933
4934
					}
4935
					break;
4936
4937
			}
4938
4939
			// AST REWRITE
4940
			// elements: simple_ground_state_variable_transition_element, 75, simple_ground_state_variable_component_decision, range
4941
			// token labels: 
4942
			// rule labels: retval
4943
			// token list labels: 
4944
			// rule list labels: 
4945
			// wildcard labels: 
4946
			if ( state.backtracking==0 ) {
4947
			retval.tree = root_0;
4948
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
4949
4950
			root_0 = (Object)adaptor.nil();
4951
			// 105:140: -> ^( 'VALUE' simple_ground_state_variable_component_decision range ( simple_ground_state_variable_transition_element )* )
4952
			{
4953
				// /home/alessandro/opt/antlr/ddl3/ddl3.g:105:142: ^( 'VALUE' simple_ground_state_variable_component_decision range ( simple_ground_state_variable_transition_element )* )
4954
				{
4955
				Object root_1 = (Object)adaptor.nil();
4956
				root_1 = (Object)adaptor.becomeRoot(new DDLSimpleGroundStateVariableTransitionConstraint(stream_75.nextToken()), root_1);
4957
				adaptor.addChild(root_1, stream_simple_ground_state_variable_component_decision.nextTree());
4958
				adaptor.addChild(root_1, stream_range.nextTree());
4959
				// /home/alessandro/opt/antlr/ddl3/ddl3.g:105:256: ( simple_ground_state_variable_transition_element )*
4960
				while ( stream_simple_ground_state_variable_transition_element.hasNext() ) {
4961
					adaptor.addChild(root_1, stream_simple_ground_state_variable_transition_element.nextTree());
4962
				}
4963
				stream_simple_ground_state_variable_transition_element.reset();
4964
4965
				adaptor.addChild(root_0, root_1);
4966
				}
4967
4968
			}
4969
4970
4971
			retval.tree = root_0;
4972
			}
4973
4974
			}
4975
4976
			retval.stop = input.LT(-1);
4977
4978
			if ( state.backtracking==0 ) {
4979
			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
4980
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
4981
			}
4982
		}
4983
		catch (RecognitionException re) {
4984
			reportError(re);
4985
			recover(input,re);
4986
			retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
4987
		}
4988
		finally {
4989
			// do for sure before leaving
4990
			if ( state.backtracking>0 ) { memoize(input, 21, simple_ground_state_variable_transition_constraint_StartIndex); }
4991
4992
		}
4993
		return retval;
4994
	}
4995
	// $ANTLR end "simple_ground_state_variable_transition_constraint"
4996
@@ 7294-7446 (lines=153) @@
7291
7292
	// $ANTLR start "simple_ground_state_variable_component_decision"
7293
	// /home/alessandro/opt/antlr/ddl3/ddl3.g:155:1: simple_ground_state_variable_component_decision : ( '<' parameter ( ',' parameter )* '>' )? ID '(' ')' -> ^( ID ( parameter )* ) ;
7294
	public final ddl3Parser.simple_ground_state_variable_component_decision_return simple_ground_state_variable_component_decision() throws RecognitionException {
7295
		ddl3Parser.simple_ground_state_variable_component_decision_return retval = new ddl3Parser.simple_ground_state_variable_component_decision_return();
7296
		retval.start = input.LT(1);
7297
		int simple_ground_state_variable_component_decision_StartIndex = input.index();
7298
7299
		Object root_0 = null;
7300
7301
		Token char_literal275=null;
7302
		Token char_literal277=null;
7303
		Token char_literal279=null;
7304
		Token ID280=null;
7305
		Token char_literal281=null;
7306
		Token char_literal282=null;
7307
		ParserRuleReturnScope parameter276 =null;
7308
		ParserRuleReturnScope parameter278 =null;
7309
7310
		Object char_literal275_tree=null;
7311
		Object char_literal277_tree=null;
7312
		Object char_literal279_tree=null;
7313
		Object ID280_tree=null;
7314
		Object char_literal281_tree=null;
7315
		Object char_literal282_tree=null;
7316
		RewriteRuleTokenStream stream_11=new RewriteRuleTokenStream(adaptor,"token 11");
7317
		RewriteRuleTokenStream stream_23=new RewriteRuleTokenStream(adaptor,"token 23");
7318
		RewriteRuleTokenStream stream_12=new RewriteRuleTokenStream(adaptor,"token 12");
7319
		RewriteRuleTokenStream stream_15=new RewriteRuleTokenStream(adaptor,"token 15");
7320
		RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
7321
		RewriteRuleTokenStream stream_20=new RewriteRuleTokenStream(adaptor,"token 20");
7322
		RewriteRuleSubtreeStream stream_parameter=new RewriteRuleSubtreeStream(adaptor,"rule parameter");
7323
7324
		try {
7325
			if ( state.backtracking>0 && alreadyParsedRule(input, 36) ) { return retval; }
7326
7327
			// /home/alessandro/opt/antlr/ddl3/ddl3.g:156:2: ( ( '<' parameter ( ',' parameter )* '>' )? ID '(' ')' -> ^( ID ( parameter )* ) )
7328
			// /home/alessandro/opt/antlr/ddl3/ddl3.g:156:4: ( '<' parameter ( ',' parameter )* '>' )? ID '(' ')'
7329
			{
7330
			// /home/alessandro/opt/antlr/ddl3/ddl3.g:156:4: ( '<' parameter ( ',' parameter )* '>' )?
7331
			int alt43=2;
7332
			int LA43_0 = input.LA(1);
7333
			if ( (LA43_0==20) ) {
7334
				alt43=1;
7335
			}
7336
			switch (alt43) {
7337
				case 1 :
7338
					// /home/alessandro/opt/antlr/ddl3/ddl3.g:156:5: '<' parameter ( ',' parameter )* '>'
7339
					{
7340
					char_literal275=(Token)match(input,20,FOLLOW_20_in_simple_ground_state_variable_component_decision1761); if (state.failed) return retval; 
7341
					if ( state.backtracking==0 ) stream_20.add(char_literal275);
7342
7343
					pushFollow(FOLLOW_parameter_in_simple_ground_state_variable_component_decision1763);
7344
					parameter276=parameter();
7345
					state._fsp--;
7346
					if (state.failed) return retval;
7347
					if ( state.backtracking==0 ) stream_parameter.add(parameter276.getTree());
7348
					// /home/alessandro/opt/antlr/ddl3/ddl3.g:156:19: ( ',' parameter )*
7349
					loop42:
7350
					while (true) {
7351
						int alt42=2;
7352
						int LA42_0 = input.LA(1);
7353
						if ( (LA42_0==15) ) {
7354
							alt42=1;
7355
						}
7356
7357
						switch (alt42) {
7358
						case 1 :
7359
							// /home/alessandro/opt/antlr/ddl3/ddl3.g:156:20: ',' parameter
7360
							{
7361
							char_literal277=(Token)match(input,15,FOLLOW_15_in_simple_ground_state_variable_component_decision1766); if (state.failed) return retval; 
7362
							if ( state.backtracking==0 ) stream_15.add(char_literal277);
7363
7364
							pushFollow(FOLLOW_parameter_in_simple_ground_state_variable_component_decision1768);
7365
							parameter278=parameter();
7366
							state._fsp--;
7367
							if (state.failed) return retval;
7368
							if ( state.backtracking==0 ) stream_parameter.add(parameter278.getTree());
7369
							}
7370
							break;
7371
7372
						default :
7373
							break loop42;
7374
						}
7375
					}
7376
7377
					char_literal279=(Token)match(input,23,FOLLOW_23_in_simple_ground_state_variable_component_decision1772); if (state.failed) return retval; 
7378
					if ( state.backtracking==0 ) stream_23.add(char_literal279);
7379
7380
					}
7381
					break;
7382
7383
			}
7384
7385
			ID280=(Token)match(input,ID,FOLLOW_ID_in_simple_ground_state_variable_component_decision1776); if (state.failed) return retval; 
7386
			if ( state.backtracking==0 ) stream_ID.add(ID280);
7387
7388
			char_literal281=(Token)match(input,11,FOLLOW_11_in_simple_ground_state_variable_component_decision1778); if (state.failed) return retval; 
7389
			if ( state.backtracking==0 ) stream_11.add(char_literal281);
7390
7391
			char_literal282=(Token)match(input,12,FOLLOW_12_in_simple_ground_state_variable_component_decision1780); if (state.failed) return retval; 
7392
			if ( state.backtracking==0 ) stream_12.add(char_literal282);
7393
7394
			// AST REWRITE
7395
			// elements: ID, parameter
7396
			// token labels: 
7397
			// rule labels: retval
7398
			// token list labels: 
7399
			// rule list labels: 
7400
			// wildcard labels: 
7401
			if ( state.backtracking==0 ) {
7402
			retval.tree = root_0;
7403
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
7404
7405
			root_0 = (Object)adaptor.nil();
7406
			// 156:53: -> ^( ID ( parameter )* )
7407
			{
7408
				// /home/alessandro/opt/antlr/ddl3/ddl3.g:156:55: ^( ID ( parameter )* )
7409
				{
7410
				Object root_1 = (Object)adaptor.nil();
7411
				root_1 = (Object)adaptor.becomeRoot(new DDLSimpleGroundStateVariableComponentDecision(stream_ID.nextToken()), root_1);
7412
				// /home/alessandro/opt/antlr/ddl3/ddl3.g:156:107: ( parameter )*
7413
				while ( stream_parameter.hasNext() ) {
7414
					adaptor.addChild(root_1, stream_parameter.nextTree());
7415
				}
7416
				stream_parameter.reset();
7417
7418
				adaptor.addChild(root_0, root_1);
7419
				}
7420
7421
			}
7422
7423
7424
			retval.tree = root_0;
7425
			}
7426
7427
			}
7428
7429
			retval.stop = input.LT(-1);
7430
7431
			if ( state.backtracking==0 ) {
7432
			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
7433
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
7434
			}
7435
		}
7436
		catch (RecognitionException re) {
7437
			reportError(re);
7438
			recover(input,re);
7439
			retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
7440
		}
7441
		finally {
7442
			// do for sure before leaving
7443
			if ( state.backtracking>0 ) { memoize(input, 36, simple_ground_state_variable_component_decision_StartIndex); }
7444
7445
		}
7446
		return retval;
7447
	}
7448
	// $ANTLR end "simple_ground_state_variable_component_decision"
7449