Code Duplication    Length = 71-75 lines in 2 locations

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

@@ 504-578 (lines=75) @@
501
		RewriteRuleTokenStream stream_INT=new RewriteRuleTokenStream(adaptor,"token INT");
502
		RewriteRuleSubtreeStream stream_range=new RewriteRuleSubtreeStream(adaptor,"rule range");
503
504
		try {
505
			if ( state.backtracking>0 && alreadyParsedRule(input, 3) ) { return retval; }
506
507
			// /home/alessandro/opt/antlr/ddl3/ddl3.g:15:2: ( 'TEMPORAL_MODULE' ID '=' range ',' INT ';' -> ^( ID range INT ) )
508
			// /home/alessandro/opt/antlr/ddl3/ddl3.g:15:4: 'TEMPORAL_MODULE' ID '=' range ',' INT ';'
509
			{
510
			string_literal10=(Token)match(input,74,FOLLOW_74_in_temporal_module113); if (state.failed) return retval; 
511
			if ( state.backtracking==0 ) stream_74.add(string_literal10);
512
513
			ID11=(Token)match(input,ID,FOLLOW_ID_in_temporal_module115); if (state.failed) return retval; 
514
			if ( state.backtracking==0 ) stream_ID.add(ID11);
515
516
			char_literal12=(Token)match(input,22,FOLLOW_22_in_temporal_module117); if (state.failed) return retval; 
517
			if ( state.backtracking==0 ) stream_22.add(char_literal12);
518
519
			pushFollow(FOLLOW_range_in_temporal_module119);
520
			range13=range();
521
			state._fsp--;
522
			if (state.failed) return retval;
523
			if ( state.backtracking==0 ) stream_range.add(range13.getTree());
524
			char_literal14=(Token)match(input,15,FOLLOW_15_in_temporal_module121); if (state.failed) return retval; 
525
			if ( state.backtracking==0 ) stream_15.add(char_literal14);
526
527
			INT15=(Token)match(input,INT,FOLLOW_INT_in_temporal_module123); if (state.failed) return retval; 
528
			if ( state.backtracking==0 ) stream_INT.add(INT15);
529
530
			char_literal16=(Token)match(input,19,FOLLOW_19_in_temporal_module125); if (state.failed) return retval; 
531
			if ( state.backtracking==0 ) stream_19.add(char_literal16);
532
533
			// AST REWRITE
534
			// elements: INT, range, ID
535
			// token labels: 
536
			// rule labels: retval
537
			// token list labels: 
538
			// rule list labels: 
539
			// wildcard labels: 
540
			if ( state.backtracking==0 ) {
541
			retval.tree = root_0;
542
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
543
544
			root_0 = (Object)adaptor.nil();
545
			// 15:47: -> ^( ID range INT )
546
			{
547
				// /home/alessandro/opt/antlr/ddl3/ddl3.g:15:49: ^( ID range INT )
548
				{
549
				Object root_1 = (Object)adaptor.nil();
550
				root_1 = (Object)adaptor.becomeRoot(new DDLTemporalModule(stream_ID.nextToken()), root_1);
551
				adaptor.addChild(root_1, stream_range.nextTree());
552
				adaptor.addChild(root_1, stream_INT.nextNode());
553
				adaptor.addChild(root_0, root_1);
554
				}
555
556
			}
557
558
559
			retval.tree = root_0;
560
			}
561
562
			}
563
564
			retval.stop = input.LT(-1);
565
566
			if ( state.backtracking==0 ) {
567
			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
568
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
569
			}
570
		}
571
		catch (RecognitionException re) {
572
			reportError(re);
573
			recover(input,re);
574
			retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
575
		}
576
		finally {
577
			// do for sure before leaving
578
			if ( state.backtracking>0 ) { memoize(input, 3, temporal_module_StartIndex); }
579
580
		}
581
		return retval;
@@ 5689-5759 (lines=71) @@
5686
		RewriteRuleTokenStream stream_64=new RewriteRuleTokenStream(adaptor,"token 64");
5687
		RewriteRuleSubtreeStream stream_positive_number=new RewriteRuleSubtreeStream(adaptor,"rule positive_number");
5688
5689
		try {
5690
			if ( state.backtracking>0 && alreadyParsedRule(input, 27) ) { return retval; }
5691
5692
			// /home/alessandro/opt/antlr/ddl3/ddl3.g:125:2: ( 'COMP_TYPE' 'RenewableResource' ID '(' positive_number ')' -> ^( ID positive_number ) )
5693
			// /home/alessandro/opt/antlr/ddl3/ddl3.g:125:4: 'COMP_TYPE' 'RenewableResource' ID '(' positive_number ')'
5694
			{
5695
			string_literal191=(Token)match(input,35,FOLLOW_35_in_renewable_resource_component_type1304); if (state.failed) return retval; 
5696
			if ( state.backtracking==0 ) stream_35.add(string_literal191);
5697
5698
			string_literal192=(Token)match(input,64,FOLLOW_64_in_renewable_resource_component_type1306); if (state.failed) return retval; 
5699
			if ( state.backtracking==0 ) stream_64.add(string_literal192);
5700
5701
			ID193=(Token)match(input,ID,FOLLOW_ID_in_renewable_resource_component_type1308); if (state.failed) return retval; 
5702
			if ( state.backtracking==0 ) stream_ID.add(ID193);
5703
5704
			char_literal194=(Token)match(input,11,FOLLOW_11_in_renewable_resource_component_type1310); if (state.failed) return retval; 
5705
			if ( state.backtracking==0 ) stream_11.add(char_literal194);
5706
5707
			pushFollow(FOLLOW_positive_number_in_renewable_resource_component_type1312);
5708
			positive_number195=positive_number();
5709
			state._fsp--;
5710
			if (state.failed) return retval;
5711
			if ( state.backtracking==0 ) stream_positive_number.add(positive_number195.getTree());
5712
			char_literal196=(Token)match(input,12,FOLLOW_12_in_renewable_resource_component_type1314); if (state.failed) return retval; 
5713
			if ( state.backtracking==0 ) stream_12.add(char_literal196);
5714
5715
			// AST REWRITE
5716
			// elements: positive_number, ID
5717
			// token labels: 
5718
			// rule labels: retval
5719
			// token list labels: 
5720
			// rule list labels: 
5721
			// wildcard labels: 
5722
			if ( state.backtracking==0 ) {
5723
			retval.tree = root_0;
5724
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
5725
5726
			root_0 = (Object)adaptor.nil();
5727
			// 125:63: -> ^( ID positive_number )
5728
			{
5729
				// /home/alessandro/opt/antlr/ddl3/ddl3.g:125:65: ^( ID positive_number )
5730
				{
5731
				Object root_1 = (Object)adaptor.nil();
5732
				root_1 = (Object)adaptor.becomeRoot(new DDLRenewableResourceComponentType(stream_ID.nextToken()), root_1);
5733
				adaptor.addChild(root_1, stream_positive_number.nextTree());
5734
				adaptor.addChild(root_0, root_1);
5735
				}
5736
5737
			}
5738
5739
5740
			retval.tree = root_0;
5741
			}
5742
5743
			}
5744
5745
			retval.stop = input.LT(-1);
5746
5747
			if ( state.backtracking==0 ) {
5748
			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
5749
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
5750
			}
5751
		}
5752
		catch (RecognitionException re) {
5753
			reportError(re);
5754
			recover(input,re);
5755
			retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
5756
		}
5757
		finally {
5758
			// do for sure before leaving
5759
			if ( state.backtracking>0 ) { memoize(input, 27, renewable_resource_component_type_StartIndex); }
5760
5761
		}
5762
		return retval;