CUP_history: 
--------------------------------------------------------------------------------------------------------------------

cup_circus.v4.5.1: 	Tree of inner_form is fixed, my tests are running perfectly (with the 4 old errors).
cup_circus.v4.6.1: 	outer_form is fixed, TODO's comments cleaned, uses CircusParserUtil.
cup_circus.v4.7.1: 	conjecture, PrefixExpressionMounter etc. uncommented, changed func_appl to TermA
					I've moved some of the parser methods to CircusParserUtil.
				
24 conflicts				
			
--------------------------------------------------------------------------------------------------------------------		
cup_circus.v4.8.1:	ATTEMPTS ON MODIFICATION IN THE SYNTAX
--------------------------------------------------------------------------------------------------------------------

- Adding func_appl productions for chanSetPara and nsExpr -> 125/140
- (schema) negation - Mudei no else de expr -> pred
- Adding Assumption and coercion -> 129/144
- Taking away func_appl productions for chanSetPara and nsExpr -> 28/43
- Adding N [ Exp+ ] in proc -> 28/43 (no changes)
- Taking away proc [ Exp+ ] in proc -> 28/43 (no changes)
- Adding proc LPAR csExp BAR csExp RPAR in proc -> 28/43 (no changes)
- Adding two new ProcessRI productions in proc -> 28/43 (no changes)
- Adding two new ProcessR productions in proc -> 28/43 (no changes)
- Adding four new Action productions in cspActExp -> 39/54
- Adding six new ActionR productions in cspActExp -> 39/54

--------------------------------------------------------------------------------------------------------------------
cup_circus.v4.9: 	
--------------------------------------------------------------------------------------------------------------------

- Several modification by Leo. Most important modification was in callAction -> 99 conflicts

--------------------------------------------------------------------------------------------------------------------
cup_circus.v4.10:
--------------------------------------------------------------------------------------------------------------------

- Substituting the let definition construction by the one of CZT -> 99/114 (no changes).

--------------------------------------------------------------------------------------------------------------------
cup_circus.v5.0:
--------------------------------------------------------------------------------------------------------------------

- Modification of the Java Code by Leo, few modifications on the productions.

99 conflicts

--------------------------------------------------------------------------------------------------------------------       
cup_circus.v6.0, cup_circus.v7.0: 
--------------------------------------------------------------------------------------------------------------------
        
- Taking away 10 productions (parallel) + callAction production in cspActExp -> 28  
- Bringing again the 2 take_this_away productions of cspActExp -> 28
- Taking away 5 new productions in proc -> 28
- Bringing again the 2 take_this_away productions of proc -> 28
- Taking N [ Exp+ ] -> 28

    Error(s) for T_Simple.tex
        Syntax error near ',' at line 26

- Taking assumption and coertion -> 24

    Error(s) for T_Simple.tex 
        Syntax error near ',' at line 26
        
- Voltando para identList ao inves de refNameList em csExp.    
    
- Coloquei de volta LPAREN circdecl:cd ODOT procDesc:p RPAREN LFL term_list:fl RFL, que Leo havia comentado.

    Error(s) for T_Simple.tex 
        Syntax error near '@' at line 115

- Coloquei de volta LPAREN circdecl:cd SPOT procDesc:p RPAREN LPAREN term_list:fl RPAREN

    Error(s) for T_Simple.tex 
        Syntax error near ',' at line 123. Este erro eu nao consegui tirar.
			
Conclusao:  cup_circus.v7.0 aceita T_Simples retirando-se o Rename.

Terminou com 24 conflitos.

--------------------------------------------------------------------------------------------------------------------
cup_circus.v8.0: 
--------------------------------------------------------------------------------------------------------------------

Inicialmente com 24 conflitos.

- Tirei term de act. -> 15
- Coloquei de volta IDENT EM cspActExp -> 30

    Isto foi feito para se tirar o conflito ne Schema-Exp (SchExprAction) com N (CallAction) na producao de Action.

--------------------------------------------------------------------------------------------------------------------
cup_circus.v9.0: 
--------------------------------------------------------------------------------------------------------------------

Inicialmente com 30 conflitos.

- Acrescentei um branch em state_def, para horizontal definition. -> 30
- Mudei o tipo de unboxed_def para AxPara.
- Mudei codigo java para tratar a nova gramatica: state definitions agora sao um ZPara (schema ou horiz. def.).
- Consertei codigo java. Em createParamAction eu tirei ".getCircusAction()".

--------------------------------------------------------------------------------------------------------------------
cup_circus.v5.1:
--------------------------------------------------------------------------------------------------------------------

Inicialmente com 99 conflitos. Feito a partir da v5.0.

- Voltando para identList ao inves de refNameList em csExp -> 99

- Coloquei de volta LPAREN circdecl:cd ODOT procDesc:p RPAREN LFL term_list:fl RFL, que Leo havia comentado.
  e coloquei de volta LPAREN circdecl:cd SPOT procDesc:p RPAREN LPAREN term_list:fl RPAREN 
  e comentario do codigo java destes dois branches -> 99

- Tirei term de act. -> 45

- Fiz as mesmas modificacoes listadas em cup_circus.v9.0 -> 45

--------------------------------------------------------------------------------------------------------------------
cup_circus.v5.1.1:
--------------------------------------------------------------------------------------------------------------------

45 conflicts. Feito a partir da versao 5.1.

- modifiquei a chamada a createBasicProcess(), acrescentando um parametro null, 
para entrar em conformidade com as modificacoes na AST.

--------------------------------------------------------------------------------------------------------------------
cup_circus.v5.3:
--------------------------------------------------------------------------------------------------------------------

Feito a partir da v.5.0.

Modificacoes feitas por Manuela. Nenhum conflito, porem incompleto.

--------------------------------------------------------------------------------------------------------------------
cup_circus.v5.4:
--------------------------------------------------------------------------------------------------------------------

Feito a partir da v5.3.

Modificacoes relativas a CircusStateAnn e OnTheFlyDefAnn, este tanto para acoes quanto para processos, inclusive
com a inclusao dos processos implicitos na lista de definicoes de paragrafo da secao.

--------------------------------------------------------------------------------------------------------------------
cup_circus.v5.5:
--------------------------------------------------------------------------------------------------------------------

Feito a partir da v.5.4.

Apenas descomentando alguns dos conflitos que Manuela comentou, de forma a poder testar os 
meus exemplos. 
    - assignment
    - guarded action

--------------------------------------------------------------------------------------------------------------------
cup_circus.v5.6:
--------------------------------------------------------------------------------------------------------------------

Inicialmente com 59 conflitos. Feito a partir da v5.1 (v5.4?) que Angela me enviou no dia 22/06/2005.

Indentifiquei os pontos de conflitos mas ainda no soube corrigi-los :(. Infelizmente,
a incluso de novas produes aumentou bastante o nmero de conflitos. Esta verso no
tem produes comentadas, pois precisei fazer testes com tudo. Concluso: esta verso 
possui 158 conflitos!!! Fazendo uma busca por <<Manuela>> no .cup, pode-se encontrar tudo 
que acrescentei e os pontos de conflitos. Resumindo aqui:

MUDANAS:

- Mudou de refName para IDENT na producao de comunicacao.
- Precedencia de Fun App. (?) Checar se isto e' apenas um comentario.
- Na producao de Schema decoration mudou a forma de recuperar os strokes.

1)ok  acrescentei os tokens CVAL, CRES, CVALRES para posteriormente incluir comandos 
parametrizados.
2)ok  removi os tokens sem uso: ARW, COMMA2, INSTATIATION, SETMIM1, END, ENDF, CUP1, CCON,
CAP1, LOWER_INSTATIATION e INIT. A remoo do primeiro token implica em modificao no
arquivo ClassifyTokens.java, que faz referncia a ele.
3)ok  inclui produes que tratam de instanciao de processos genricos indexados/parametrizados.
4)ok  a criao de CallProcess, por receber mais uma lista como parmetro, foram devidamente
alteradas, para obedecer a ordem correta das listas.
5)ok  comentei as produes que tratavam de processos iterativos indexados, j que no devem
mais existir. Futuramente pretendo deletar estas produes.
-6)ok  criei o paramAct, para ficar de acordo com a sintaxe mais atual de Circus
7)ok  inclui a produo que trata de substituio de ao.
-8)ok  inclui parenteses da produo: LPAREN paramAct:a RPAREN LPAREN:lp term_list:fl RPAREN
-9)ok  criei a produo: IDENT:i LPAREN term_list:fl RPAREN
-10)ok criei a produo: LPAREN CMU IDENT:i SPOT paramAct:a RPAREN LPAREN term_list:fl RPAREN
11)ok mudei a forma de criar um comando de especificao
12)ok mudei a forma de criai um comando de atribuio
13)ok mudei "LPAREN circdecl:cd SPOT procDesc:p RPAREN LPAREN term_list:fl RPAREN" para 
"LPAREN circdecl:cd SPOT proc:p RPAREN LPAREN term_list:fl RPAREN"
14)ok mudei "LPAREN circdecl:cd ODOT procDesc:p RPAREN LFL term_list:fl RFL" para 
"LPAREN circdecl:cd ODOT proc:p RPAREN LFL term_list:fl RFL"

Seguindo a dica de Angela, resolvi ir construindo o parser de circus aos pouquinhos, tendo 
apenas a parte de Z sem conflitos. Desta forma, identifiquei as produes que causavam
conflitos e listo a segui o nmero de conflitos que cada produo gera:

CONFLITOS ENCONTRADOS:

- simCDecl ::= expression:f (5 conflitos)
- proc ::= pred:pr CGUARD proc:p (25 conflitos)
- act ::= term:f (100 conflitos!!!!) 
- cspActExp ::= pred:p CGUARD act:a (31 conflitos)
- cspActExp ::= act:aL LPAR nSExpression:nsL BAR cSExp:cs BAR nSExpression:nsR  RPAR act:aR (9 conflitos)
- cspActExp ::= act:aL LPAR nSExpression:nsL BAR cSExp:csL BAR cSExp:csR BAR nSExpression:nsR  RPAR act:aR (9 conflitos)
- cspActExp ::= CMU IDENT:i SPOT act:a (19 conflitos)
- cspActExp ::= LPAREN paramAct:a RPAREN LPAREN:lp term_list:fl RPAREN (1 conflito)
- cspActExp ::= CPAR circdecl:cd SPOT LPAR nSExpression:ns BAR cSExp:cs RPAR act:a (7 conflitos)
- cspActExp ::= LPAR cSExp:cs RPAR circdecl:cd SPOT LPAR nSExpression:ns RPAR act:a (9 conflitos)
- commun ::= IDENT:n LBRACT term_list:fl RBRACT cParams:cp (18 conflitos)
- command ::= declname_list:dl TWOP LBRACT pred:t COMMA1 pred:t2 RBRACT (5 conflitos)
- command ::= declname_list:dl ATRIB  term_list:fl (1 conflito)

Exige mudancas na AST:

>> Em Circus.xsd:
>>  - em CallType, adicione GenParam e GenIndex para tratar aquele caso de
>> processo genricos e parametrizados ou processo genricos e
>> indexado, respectivamente;
>>  - em CallProcess, adicione o atributo genExpr, para ser armazenada as
>> expresses de instanciao genrica. Mudei o parser para que as
>> listas fosse aramazenadas corretamente;
>>  - em AssignmentCommand tirei o atributo AssignmentPair e inclui dois
>> outros: o LeftVars (que armazena a lista de variveis de lado
>> esquerdo da atribuio) e Exprs (que armazena a lista de
>> expresses do lado direito da atribuio). Fiz isto pois acho que
>> o tratamento que o parser estava dando no estava adequado. L ele
>> j checava se o numero das listas eram iguais... acho que isso
>> fica a cargo do typechecker.
>> 
>> 
>> Em CircusTools.xsd:
>>  - criei duas classes: ChanSetType e NameSetType;
>>  - em ActionSignature inclui o atributo Params
>> 
>> 
>> Basicamente foram estas as mudanas. Tambm mando em anexo o
>> parser mais atual (ainda com conflitos... e muitos :(, pois ainda
>> no sei como resolv-los) e o .lex mais atual tambm.

--------------------------------------------------------------------------------------------------------------------
cup_circus.v5.6.1:
--------------------------------------------------------------------------------------------------------------------

- Tirei os parenteses em: LPAREN paramAct:a RPAREN LPAREN:lp term_list:fl RPAREN

--------------------------------------------------------------------------------------------------------------------
cup_circus.v5.7:
--------------------------------------------------------------------------------------------------------------------

Feito a partir da v5.6. Igual a v5.6, porem formatado.

--------------------------------------------------------------------------------------------------------------------
cup_circus.v5.8 e cup_circus.v5.9:
--------------------------------------------------------------------------------------------------------------------

Seguindo a sequencia da v5.7.

--------------------------------------------------------------------------------------------------------------------
cup_circus.v10.0:
--------------------------------------------------------------------------------------------------------------------

Feito a partir da v5.9.

Versao estavel do parser, testado. Modificacoes descritas no e-mail de 31/08.

56 conflitos.

--------------------------------------------------------------------------------------------------------------------
cup_circus.v10.1:
--------------------------------------------------------------------------------------------------------------------

Feito a partir da v10.0.

- Modificacoes no codigo Java para tratamento de erros.
- Reconhecimento dos tokens \# e \emptyset.
- Correcao de bug: reinicializao de fStateName.

56 conflitos.

--------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------

teste_cup_circus.v1.0.cup:	Only Z part, without any conflict.

teste_cup_circus.v2.0.cup: 

- Z Part + program, circPar_list, circPar (this last one without chanPara,
chaSetPara and procPara productions) -> 0/0

- chanPara, cDecl, simDecl and ident_list + chanPara production in circPar -> 5/5

	The problem was due to 'expression' production in simCDecl.
	
- Taking away 'expression' production in SimCDecl -> 0/0

