diff --git a/src/compiler/tmlCPparser/CPparserDEF.jjt b/src/compiler/tmlCPparser/CPparserDEF.jjt index f5e5718c84327a384fe089726ac5c624f7930b70..8e61e3de01b48e800a48e273a68ea8022843c43c 100644 --- a/src/compiler/tmlCPparser/CPparserDEF.jjt +++ b/src/compiler/tmlCPparser/CPparserDEF.jjt @@ -456,7 +456,6 @@ String ID(): void ActivityDiagram( TMLCP mainCP ): { String name; - TMLCPActivityDiagram ad = null; } { <ACTIVITY_DIAGRAM> name = ID() @@ -469,7 +468,17 @@ void ActivityDiagram( TMLCP mainCP ): previousElement = currentElement; } - ( ActivityDiagramType1( mainCP ) | ActivityDiagramType2( mainCP ) ) // either sequences and parallelism or junction-choice + ( + ActivityDiagramType1( mainCP ) + { + TraceManager.addDev( "AFTER DIAGRAMTYPE1" ); + } + | + ActivityDiagramType2( mainCP ) + { + TraceManager.addDev( "AFTER DIAGRAMTYPE2" ); + } + ) // either sequences and parallelism or junction-choice "><" "END" "END" ID() @@ -485,7 +494,7 @@ void ActivityDiagramType1( TMLCP mainCP ): { if( currentElement != null ) { previousElement.addNextElement( currentElement ); - globalAD.addElement( currentElement ); + globalAD.addTMLCPElement( currentElement ); previousElement = currentElement; } } @@ -497,9 +506,10 @@ void ActivityDiagramType2( TMLCP mainCP ): { parseJunctionChoice( mainCP ) { + TraceManager.addDev( " --- After parseJunctionChoice ---\n" + globalAD.toString() ); currentElement = new TMLCPStop( "stop" + counter, null ); previousElement.addNextElement( currentElement ); - globalAD.addElement( currentElement ); + globalAD.addTMLCPElement( currentElement ); } } @@ -538,7 +548,7 @@ void parseForkJoin( TMLCP mainCP ): { previousElement.addNextElement( fork1 ); fork1.addNextElement( currentElement ); //the next element of Fork is only the first element of the sequence - globalAD.addElement( currentElement ); + globalAD.addTMLCPElement( currentElement ); previousElement = currentElement; } // from now on is like parsing a normal sequence, in the sense that I ignore the fact of being inside a fork-join @@ -547,7 +557,7 @@ void parseForkJoin( TMLCP mainCP ): { if( currentElement != null ) { previousElement.addNextElement( currentElement ); - globalAD.addElement( currentElement ); + globalAD.addTMLCPElement( currentElement ); previousElement = currentElement; } } @@ -558,7 +568,7 @@ void parseForkJoin( TMLCP mainCP ): ( "*" "{" parseReferenceToDiagram( mainCP ) { fork1.addNextElement( currentElement ); - globalAD.addElement( currentElement ); + globalAD.addTMLCPElement( currentElement ); previousElement = currentElement; } // from now on is like parsing a normal sequence, in the sense that I ignore the fact of being inside a fork-join @@ -567,7 +577,7 @@ void parseForkJoin( TMLCP mainCP ): { if( currentElement != null ) { previousElement.addNextElement( currentElement ); - globalAD.addElement( currentElement ); + globalAD.addTMLCPElement( currentElement ); previousElement = currentElement; } } @@ -576,8 +586,8 @@ void parseForkJoin( TMLCP mainCP ): { previousElement.addNextElement( join1 ); } )+ "};" // end of a whole fork-join { - globalAD.addElement( fork1 ); - globalAD.addElement( join1 ); + globalAD.addTMLCPElement( fork1 ); + globalAD.addTMLCPElement( join1 ); previousElement = join1; } } @@ -592,14 +602,14 @@ void parseJunctionChoice( TMLCP mainCP ): <LABEL_KW> s = ID() ":" // the second ID parses what follows the first underscore { currentElement = new TMLCPStart( s, null ); - globalAD.addElement( currentElement ); + globalAD.addTMLCPElement( currentElement ); previousElement = currentElement; } ( parseReferenceToDiagram( mainCP ) <SEQUENCING_OP> { if( currentElement != null ) { previousElement.addNextElement( currentElement ); - globalAD.addElement( currentElement ); + globalAD.addTMLCPElement( currentElement ); previousElement = currentElement; } } )* //In case there is a sequence between the junction and the choice @@ -619,7 +629,7 @@ void parseJunctionChoice( TMLCP mainCP ): if( !(previousElement instanceof TMLCPStop) ) { // avoid the spurious case when returning from the end of a branch previousElement.addNextElement( currentElement ); } - globalAD.addElement( currentElement ); + globalAD.addTMLCPElement( currentElement ); previousElement = currentElement; choice.addNextElement( currentElement ); } @@ -629,7 +639,7 @@ void parseJunctionChoice( TMLCP mainCP ): { currentElement = new TMLCPStop( "stop" + stopCounter, null ); previousElement.addNextElement( currentElement ); - globalAD.addElement( currentElement ); + globalAD.addTMLCPElement( currentElement ); stopCounter++; previousElement = currentElement; currentElement = choice; // end of a branch, the previous element is reset to the choice node @@ -639,7 +649,7 @@ void parseJunctionChoice( TMLCP mainCP ): TMLCPElement refAD = new TMLCPRefAD( s, null ); currentElement.addNextElement( refAD ); currentElement = refAD; - globalAD.addElement( refAD ); + globalAD.addTMLCPElement( refAD ); } ) @@ -649,7 +659,7 @@ void parseJunctionChoice( TMLCP mainCP ): { if( currentElement != null ) { previousElement.addNextElement( currentElement ); - globalAD.addElement( currentElement ); + globalAD.addTMLCPElement( currentElement ); previousElement = currentElement; } } )+ //continues the sequence of diagrams @@ -657,7 +667,7 @@ void parseJunctionChoice( TMLCP mainCP ): { currentElement = new TMLCPStop( "stop" + stopCounter, null ); previousElement.addNextElement( currentElement ); - globalAD.addElement( currentElement ); + globalAD.addTMLCPElement( currentElement ); stopCounter++; previousElement = currentElement; currentElement = choice; // end of a branch, the previous element is reset to the choice node @@ -667,13 +677,13 @@ void parseJunctionChoice( TMLCP mainCP ): TMLCPElement refAD = new TMLCPRefAD( s, null ); currentElement.addNextElement( refAD ); currentElement = refAD; - globalAD.addElement( refAD ); + globalAD.addTMLCPElement( refAD ); } ) )+ "END" ID() { - globalAD.addElement( choice ); + globalAD.addTMLCPElement( choice ); previousElement = currentElement; lastElementBeforeChoice.setNextElement( choice ); TraceManager.addDev( "FINISHED PARSING AD IN JC" + globalAD.toString() );