Compiladores/Pautas 2017-2018/Pauta do Projecto: Entrega Intermédia

From Wiki**3

< Compiladores‎ | Pautas 2017-2018
Revision as of 13:46, 15 May 2018 by Root (talk | contribs) (→‎Pauta)
AVISOS - Avaliação em Época Normal

Esclarecimento de dúvidas:

  • Consultar sempre o corpo docente atempadamente: presencialmente ou através do endereço oficial da disciplina [1].
  • Não utilizar fontes de informação não oficialmente associadas ao corpo docente (podem colocar em causa a aprovação à disciplina).
  • Não são aceites justificações para violações destes conselhos: quaisquer consequências nefastas são da responsabilidade do aluno.

Requisitos para desenvolvimento, material de apoio e actualizações do enunciado (ver informação completa em Projecto de Compiladores):

  • O material de apoio é de uso obrigatório e não pode ser alterado.
  • Verificar atempadamente (mínimo de 48 horas antes do final de cada prazo) os requisitos exigidos pelo processo de desenvolvimento.

Processo de avaliação (ver informação completa em Avaliação do Projecto):

  • Datas: 2018/03/23 17:00 (inicial); 2018/04/20 17:00 (intercalar); 2018/05/21 17:00 (final); 2018/05/21-2018/05/25 (teste prático).
  • A entrega inicial, sendo crucial para o projecto, é obrigatória e sua não realização implica a exclusão da avaliação do projecto e, por consequência, da avaliação da disciplina.
  • Verificar atempadamente (até 48 horas antes do final de cada prazo) os requisitos exigidos pelo processo de avaliação, incluindo a capacidade de acesso ao repositório CVS.
  • Apenas se consideram para avaliação os projectos existentes no repositório CVS oficial.
  • Trabalhos não presentes no repositório no final do prazo têm classificação 0 (zero) (não são aceites outras formas de entrega). Não são admitidas justificações para atrasos em sincronizações do repositório. A indisponibilidade temporária do repositório, desde que inferior a 24 horas, não justifica atrasos na submissão de um trabalho.
  • A avaliação do projecto pressupõe o compromisso de honra de que o trabalho correspondente foi realizado pelos alunos correspondentes ao grupo de avaliação.
  • Fraudes na execução do projecto terão como resultado a exclusão dos alunos implicados do processo de avaliação em curso.
Material de Uso Obrigatório
As bibliotecas CDK e RTS de apoio ao desenvolvimento do projecto são de uso obrigatório:
A máquina virtual, fornecida para desenvolvimento do projecto, já contém todo o material de apoio.
Uso Obrigatório: Repositório CVS
Apenas se consideram para avaliação os projectos existentes no repositório CVS oficial.

Trabalhos não presentes no repositório no final do prazo têm classificação 0 (zero) (não são aceites outras formas de entrega). Não são admitidas justificações para atrasos em sincronizações do repositório. A indisponibilidade temporária do repositório, desde que inferior a 24 horas, não justifica atrasos na submissão de um trabalho.

Prazo de Revisão

PAUTA EM ACTUALIZAÇÃO

A entrega intermédia pode ser revista até à data da entrega final do projecto.

Critérios de Avaliação

LER COM ATENÇÃO

A entrega intermédia vale 6 valores em 20.

A avaliação é realizada sobre a versão existente no CVS no final do prazo para a entrega intermédia. Projectos que não apresentem alterações relativamente ao conteúdo inicial do repositório CVS ou relativamente à entrega inicial não serão considerados.

A avaliação da entrega intermédia considera a execução de intervenções em várias regiões do código do compilador em desenvolvimento, assim como a gestão do projecto correspondente.

Advertem-se os alunos sobre a consulta de colegas de anos anteriores. Estas consultas podem ser positivas, mas comportam algum risco, pois o processo e critérios de avaliação podem ter mudado. Além disso, a proficiência do colega pode majorar negativamente o resultado da avaliação em curso. Não são admitidas quaisquer justificações com base na história da disciplina.

Estas condições são aplicáveis à data da entrega intermédia.

Em caso de dúvidas suscitadas por qualquer elemento neste texto, no projecto, ou na disciplina em geral, os alunos são fortemente encorajados a consultar o corpo docente.

VALORAÇÕES

Existem 6 valores (dos 20 disponíveis para o projecto) associados a esta entrega:

  • gestão do projecto: 1 valor
    • projecto com a estrutura correcta no repositório CVS: 0.5 valores (i.e., código que não apresente a estrutura canónica de um compilador desenvolvido com a CDK é considerado sem a estrutura correcta -- consultar estas páginas sobre o desenvolvimento do projecto com base no repositório CVS)
    • projecto compila e produz compilador "gr8" ("gr8", com letras minúsculas: variações correspondem a "não compilação"): 0.5 valores

Se o projecto compilar, poderão ser atribuídos mais 5 valores (desenvolvimento do compilador), distribuídos como se segue:

  • Flex (completo): 1.5 valores
    • Tokens correspondentes aos símbolos e palavras chave (simples ajuste do Simple)
    • Identificadores (simples ajuste do Simple)
    • Inteiros (deve estar implementada a base 7 -- a base 10 já está implementada no Simple)
    • Reais (extensão dos inteiros)
    • Strings (extensão do Simple)
    • O Flex deve retornar os tokens ao byacc (sobre DEBUG, ver abaixo) -- o não retorno de tokens penaliza fortemente toda a componente Flex (ver penalizações)
  • BYACC (completo): 1 valor
    • Regras correspondentes a literais de reais e strings (simples extensão do Simple)
    • Regras correspondentes a ciclos, etc. (simples extensão e adaptação do Simple)
    • Regras correspondentes a declarações de variáveis
    • Regras correspondentes a declarações/definições de funções
    • As acções correspondentes às regras definidas no BYACC devem estar implementadas (simples criação de nós) -- a não implementação corresponde a penalizações (var abaixo)
  • Nós (nodes) (completo): 1 valor
    • Todos os nós necessários para a linguagem (utilizados na especificação BYACC e em passos subsequentes) devem ser criados
    • A não criação de nós motivada pela ausência de definição de acções no BYACC é penalizada (ver abaixo)
  • Semântica (visitors) (xml_writer completo; postfix_writer ver a seguir): 1.5 valores
    • O "visitor" xml_writer deve estar completamente implementado (ver também DEBUG abaixo)
    • O "visitor" type_checker deve ter todos os métodos (correspondentes aos nós, tal como o xml_writer), embora alguns possam estar ainda vazios (i.e., podem não executar qualquer acção)
    • O "visitor" postfix_writer deve ter todos os métodos (correspondentes aos nós, tal como o xml_writer), embora alguns possam estar ainda vazios (i.e., podem não executar qualquer acção)
    • Métodos correspondentes a acções semelhantes às existentes devem ser modelados nos existentes (mesmo que não modificados numa primeira instância)
    • A presença de implementações de semântica no postfix_writer (tabela de símbolos, validação de tipos, etc.) não é penalizada, mas não será avaliada nesta entrega
PENALIZAÇÕES

Existem penalizações relativas à (deficiente) execução do projecto.

São considerados os seguintes aspectos preliminares:

  1. A linguagem do projecto contém a linguagem Simple, pelo que não há razão para não utilizar completamente o compilador Simple, eventualmente com pequenas alterações.
  2. A semântica da linguagem do projecto contém a da linguagem Simple, pelo que a implementação de alguns aspectos da linguagem do projecto não requer qualquer reimplementação relativamente ao Simple.
  3. O compilador Simple foi fornecido completamente funcional, assim como a versão inicial do compilador do projecto no respositório CVS (igual ao Simple e apenas alterado para ter o nome apropriado).
  4. A criação de novos nós não apresenta quaisquer dificuldades (são classes muito simples)
  5. O código dos métodos do visitor xml_writer corresponde a uma simples impressão dos atributos dos nós, através de uma travessia da árvore que formam e que os contém.
  6. O compilador é obrigatoriamente desenvolvido em C++.

Considerando os aspectos 1. a 6., são aplicadas as seguintes penalizações:

  • Destruição de funcionalidade do compilador Simple sem substituição por funcionalidade equivalente do compilador do projecto: 4 valores

Não definição dos nós para regras BYACC em avaliação (ver acima) ou não utilização de nós definidos para a escrita dessas acções: 2 valores

  • A utilização de funções e estruturas C, quando existem alternativas directas C++ (malloc em lugar de new, por exemplo; strcmp, etc. em lugar da classe std::string; e outras) terá uma penalização máxima de 1 valor
  • Não utilização de qualquer material obrigatório: 6 valores (e considera-se projecto não realizado)

DEBUG

O despiste de problemas em especificações Flex pode ser realizado de forma simples utilizando os métodos descritos em How to Debug a Flex Specification.

O visitor xml_writer foi concebido para produzir uma representação textual hierárquica (árvore XML) correspondente ao programa em compilação. É muito útil para inspeccionar a contrução da árvore de nós por parte do BYACC, permitindo, inclusivamente, a apresentação gráfica.

Legenda

As questões relativas às colunas "Problemas" devem ser resolvidas quanto antes (nos horários de dúvidas ou, sendo possível, por correio electrónico).

Problemas na análise lexical
  • .* - uso indevido do padrão
  • chars - definição indevida (não existem na linguagem)
  • comments - problemas com comentários (em excesso ou em falta)
  • doubles - problemas com vírgula flutuante (definições incompletas)
  • idents - problems com identificadores
  • indent - problems com indentação
  • ints - problemas com inteiros (definições incompletas ou excessivas)
  • keywords - problemas com palavras chave (a mais ou a menos)
  • ops - problemas com operadores e afins
  • (bad) patterns - problemas genéricos com escrita de padrões lexicais
  • strings - problemas na definição de strings (composição, concatenação indevida, etc.)
  • [outros] - casos específicos (contactar professor responsável)
Problemas na análise sintáctica
  • conflicts - conflitos no analisador LALR(1) (não avaliado nesta entrega)
  • decls - problemas nas declarações (e.g. mistura com expressões ou com instruções)
  • empty rules - regras sem semântica associada
  • exprs - problemas nas expressões (em falta ou com inclusão de casos errados)
  • funcalls - problemas nas chamadas a funções (e.g. não estão definidos como expressões)
  • funcs - problemas (vários) nas declarações/definições de funções
  • lvals - problemas na definição de left-values (e.g. ausência de definições ou incompletas)
  • precs - problemas na definição de precedências (tipicamente, em excesso ou sem correspondência com o manual)
  • tokens - problemas na definição de tokens (tipicamente, em excesso ou sem correspondência com o manual)
  • read - problemas na definição da expressão de leitura (verificar manual de referência)
  • semantics - problemas na definição de acções semânticas
  • (simple) - contém apenas a definição original (linguagem Simple)
  • strings - problemas na definção de cadeias de caracteres
  • syntax - problemas na definição da gramática ou na semântica (nó) correspondente (verificar manual de referência)
  • [outras anotações] - casos específicos (contactar professor responsável)
Problemas na análise semântica e na geração de código (nós e XML)

Nos nós:

  • lvals - problemas na definição ou uso de left-values
  • decls - problemas na definição de declarações/definições de funções/variáveis
  • read_node - uso de left-value no read_node (não é uma atribuição, pelo que não tem left-values); ou derivação de basic_node (mas deve ser uma expressão); ou derivação de unary_expression (mas não tem argumentos); ou remoção do nó
  • [outros nós] - nós com problemas (nós excedentários ou em falta ou com problemas na definição)
  • [outras anotações] - casos específicos (contactar professor responsável)

No visitor xml_writer:

  • ast - o método "ast" do compilador não foi chamado no parser (.y), pelo que a AST está indefinida
  • empty methods - métodos vazios ou funcionalmente vazios
  • [outras anotações] - casos específicos (contactar professor responsável)

Pauta

EM ACTUALIZAÇÃO

<runphp> echo<<<___EOT___

<colgroup width="70"></colgroup> <colgroup span="2" width="43"></colgroup> <colgroup width="37"></colgroup> <colgroup width="62"></colgroup> <colgroup width="37"></colgroup> <colgroup width="69"></colgroup> <colgroup width="37"></colgroup> <colgroup span="3" width="69"></colgroup> <colgroup width="38"></colgroup> <colgroup span="3" width="71"></colgroup> <colgroup width="38"></colgroup> <colgroup span="3" width="71"></colgroup> <colgroup width="38"></colgroup> <colgroup width="85"></colgroup> <colgroup width="82"></colgroup> <tbody> </tbody>
  Nota Total CVS Compilação
<a href="https://goo.gl/8VkE5k">https://goo.gl/8VkE5k</a>
Análise Lexical Análise Sintáctica Nós Semântica OBS.
Número 6.00 6.00 0.50 Problemas 0.50 Problemas 1.50 Problemas (a mais) (a menos) 1.00 Problemas (a mais) (a menos) 1.00 Problemas (a mais) (a menos) 1.50 Problemas
001 2.00 2.00 1.00   0.00 (corrigido) 0.50 doubles, strings ops indent 0.75 conflicts, elsifs, types precs     alloc, bad alloc, index, address assignment        
002 1.88 1.88 1.00   1.00   0.25 strings, doubles, ints function patterns indent 0.50 conflicts, syntax, types, exprs, lvals, calls   precs, term   read, return, alloc, bad alloc, identity          
003 3.25 3.25 1.00   1.00   1.00   \0   0.75 conflicts, elsifs                  
004 2.00 2.00 1.00   1.00   0.50 keywords, doubles, strings   string special, indent 0.25 conflicts, (simple) (simple) decls, funcs, vars, lvals, etc.   null, index          
005 2.25 2.25 1.00   1.00   0.50 strings, doubles, ints ops, comments, bellow string special 0.50 types, syntax precs, yyconvertString lvals, exprs, term   tweet, post, read, null, alloc, address         regex_match
006 1.88 1.88 1.00   1.00   0.25 strings, ints, idents ops, keywords, covfefe, tMAIN doubles, indent 0.50 conflicts, precs, root node, syntax   lvals, exprs, types   read, alloc, bad alloc, index, address       ast  
007 1.63 1.63 1.00   1.00   0.25 strings, ints, idents, etc, (simple) ops, keywords indent, doubles, comments 0.25 conflicts, (simple) (simple) (simple)   tweet, post, read, block, alloc, identity, address print, while again, stop, return, null      
008      
009 3.25 3.25 1.00   1.00   1.00 strings     0.75 precs, elsifs precs     read          
010 2.88 2.88 1.00   1.00   0.75 doubles, strings     0.75 conflicts, null_node precs                
011 2.88 2.88 1.00   1.00   0.75 doubles, strings, idents     0.75 conflicts, precs, root node, syntax, types precs term   index, address print, program, while, assignment, symmetric, modulus null      
012 2.50 2.50 1.00   1.00   0.50 strings, .* strings special   0.75 conflicts, types, empty rules precs types              
013 2.50 2.50 1.00   1.00   0.50 strings, \0, string ignore keywords, tCONTINUE, covfefe   0.75 tokens, types, elsifs precs                
014 2.88 2.88 1.00   1.00   0.75   elsif patterns, \0   0.75 elsifs, syntax                  
015 2.88 2.88 1.00   1.00   0.75 doubles, strings, idents \0   0.75 types, literals, ifs, syntax precs, exprs exprs              
016 2.50 2.50 1.00   1.00   0.50 doubles, strings, ints, idents bellow   0.75 conflicts, precs, tokens, elsifs, lvals, syntax   precs, term   index, address          
017 2.25 2.25 1.00   1.00   0.50 doubles, strings keywords, comments, string concat idents, string special 0.50 conflicts, elsifs, syntax, exprs, root node   precs, term, delim, stmts, exprs, lvals, types   address       ast  
018 2.50 2.50 1.00   1.00   0.50 doubles tNILL indent 0.75 conflicts, ifs, exprs, types precs term, delim, types   return          
019 2.88 2.88 1.00   1.00   0.75 comments, ..., strings string concat   0.75 conflicts, fdecl, ifs, exprs precs term   identity, address          
020 1.88 1.88 1.00   1.00   0.25 strings, ints ops doubles, indent, string specials, ints 0.50 precs, elsifs, types, exprs exprs term, lvals   read, null, block          
021 3.13 3.13 1.00   1.00   0.75 idents \0, string ignore, \\   1.00                    
022 2.00 2.00 1.00   1.00   0.50 strings, ints, indent ops   0.25 syntax, decls, funcs, vars, lvals, exprs (simple) exprs, instrs, decls, etc.   read, null, index          
023 NA sem entrega intermédia  
024 3.00 3.00 1.00   1.00   1.00       0.50 conflicts, syntax, elsifs, empty rules precs                
025 2.88 2.88 1.00   1.00   0.75 idents, doubles, strings \0, string ignore   0.75 conflicts, precs precs term              
026 2.50 2.50 1.00   1.00   0.50 doubles, idents, tAS, tELSE ops, needBlock, needNL, string igore   0.75 conflicts, syntax, elsifs precs                
027 2.25 2.25 1.00   1.00   0.50 idents, doubles, \0, string ignore string concat   0.50 conflicts, precs, ifs, syntax, instrs, read exprs, exprNolval term   read          
028 2.25 2.25 1.00   1.00   0.50 doubles, strings keywords, comments, ops, string special string special 0.50 conflicts, declzone, syntax, stmts, exprs precs term   isTweet, isPost, index          
029 2.88 2.88 1.00   1.00   0.75 indent (check indent), doubles keywords   0.75 precs, elsifs, syntax tokens                
030 2.88 2.88 1.00   1.00   0.75 ..., ints string concat   0.75 conflicts, precs, syntax, exprs precs term   read read        
031 2.25 2.25 1.00   1.00   0.50 idents, ints, doubles, strings, string ignore, ident, bad patterns string concat   0.50 conflicts, precs, ifs, elsifs, syntax, input objects null, lvals   read, identity, index          
032 1.75 1.75 1.00   0.00 (corrigido) 0.50 strings, string special, doubles, ints ops string special, ints, indent 0.50 conflicts, syntax, elsifs, blocks, strings   term, delim, lvals, exprs   index, address          
033 2.25 2.25 1.00   1.00   0.50 strings, string special, idents, doubles, ..., indent ops   0.50 syntax, stmts, exprs, read, elsifs, types precs                
034 2.25 2.25 1.00   1.00   0.50 comments ops, braces indent 0.50 conflicts, precs, types, syntax stmts, ifs, elsifs   term, delim, exprs, calls, lvals   alloc, index, address (symmetric)        
035 2.88 2.88 1.00   1.00   0.75 idents, doubles, indent, ..., bad patterns     0.75 conflicts, precs, syntax, exprs, strings   term, delim              
036 1.38 1.38 1.00   0.00 (corrigido) 0.25 strings, string ignore, double, ints ops, keywords, bad patterns string special, indent 0.50 precs, types, syntax, stmts, exprs, strings address precs, term, delim, lvals   return, alloc, bad alloc print, program, while tweet, again, stop      
037 4.50 4.50 1.00   1.00   1.00       1.00 conflicts, ifs     1.00            
038      
039 2.25 2.25 1.00   1.00   0.50 ints, strings, bad patterns, indent string concat   0.50 precs, empty rules, types, syntax, initially, exprs   strings   return, index          
040 3.63 3.63 1.00   1.00   0.75 ints, strings, comments     0.50 precs, syntax, bad rules t1, t2 precs, term 1.00            
041 2.25 2.25 1.00   1.00   0.50 idents, strings, string special, doubles ops, keywords string special 0.50 precs, bad root, empty rules, types, elsifs, syntax   delim, exprs, calls, etc., lvals   again, stop, null, alloc, address program, while, (body)     ast  
042 2.25 2.25 1.00   1.00   0.50 ints, doubles, strings bellow, ops, string special string special 0.50 conflicts, precs, syntax, decls, vars, elsifs, exprs precs null, term   (null), alloc, bad alloc          
043      
044 2.88 2.88 1.00   1.00   0.75 ints, strings, idents hex string special, ... 0.75 syntax, exprs, input input     null, address          
045 1.63 1.63 1.00   1.00   0.25 doubles, strings, comments, (simple) ops keywords, string special, indent 0.25 (simple) (simple) (simple)   address          
046 2.25 2.25 1.00   1.00   0.50 idents, strings, doubles ops, string concat, string special string special 0.50 conflicts, precs, ifs, strings, exprs, calls precs term, null              
047 2.88 2.88 1.00   1.00   0.75 ints string concat   0.75 strings precs                
048 2.25 2.25 1.00   1.00   0.50 idents, doubles, strings, comments, indents, bad patterns ops, covfefe string special 0.50 conflicts, precs, syntax, decls, types, elsifs, exprs precs exprs, calls   read, again, stop, return, block print tweet, post      
049 2.88 2.88 1.00   1.00   0.75 strings ops, string special   0.75 conflicts, precs, strings precs term              
050 3.25 3.25 1.00   1.00   1.00       0.75 conflicts, precs, syntax, types precs term   return          
051 2.25 2.25 1.00   1.00   0.50 comments, .*, idents, strings, ints ops, keywords string special, doubles 0.50 conflicts, precs, types, syntax, read, elsifs, exprs precs term   read, address          
052 1.88 1.88 1.00   1.00   0.25 doubles, ints, (simple) ops, keywords (etc.) 0.50 conflicts, precs, types, syntax, block, stmts, elsifs   term, exprs, lvals   again, stop          
053 2.63 2.63 1.00   1.00   0.75 idents     0.50 precs, syntax, read, exprs   term, exprs   read, again, stop, null, index program, while        
054 3.50 3.50 1.00   1.00   1.00 strings, string ignore, NOTZERO     1.00 ifs                  
055 2.88 2.88 1.00   1.00   0.75 doubles, idents, ..., strings ops string special 0.75 conflicts, precs, syntax, ifs, exprs, types   term              
056 2.50 2.50 1.00   1.00   0.50 macro, idents, bad patterns, doubles, strings, indent ops, keywords   0.75 conflicts, ifs, types precs term             scanner.h
057 3.13 3.13 1.00   1.00   0.75 bad patterns, strings ops, keywords, string special   1.00 syntax, ifs                  
058 2.50 2.50 1.00   1.00   0.50 strings string special indent 0.75 syntax, elsifs, exprs, instrs precs term, exprs              
059 2.63 2.63 1.00   1.00   0.75 strings ops, comments, strings, null   0.50 conflicts, precs, elsifs precs term   null          
060 2.63 2.63 1.00   1.00   0.75 strings, doubles, ints comments, string special   0.50 precs, exprs, strings, types   exprs, calls, null     assignment        
061 2.88 2.88 1.00   1.00   0.75 doubles keywords, string concat   0.75 conflicts, exprs, strings   term, null   address          
062 NA sem entrega intermédia  
063 2.50 2.50 1.00   1.00   0.50 doubles, idents, ints, strings, string special ops indent 0.75 conflicts, types, syntax, elsifs, exprs, instrs   term, null   return          
064 2.25 2.25 1.00   1.00   0.50 strings, string ignore, doubles, indent, bad patterns ops, comments, string concat   0.50 conflicts, precs, syntax, types, empty rules, ifs, elsifs precs term, exprs, calls, lvals   tweet, post, identity          
065 2.25 2.25 1.00   1.00   0.50 indent, bad patterns, strings, string special, doubles ops, string concat, string special   0.50 conflicts, precs, syntax, ifs, decls, types, elsifs, bad rules   term, exprs, calls, lvals   read, null, identity          
066 3.00 3.00 1.00   1.00   1.00 doubles bellow   0.50 precs, syntax, stmt, bad rules, exprs precs lvals   alloc, identity, index program        
067 1.88 1.88 1.00   1.00   0.25 strings, string special, doubles covfefe, string special string special, indent 0.50 conflicts, precs, elsifs, strings, types precs term, delim   address          
068 2.88 2.88 1.00   1.00   0.75 comments, strings, string special, doubles, indent string special   0.75 types precs null              
069 2.25 2.25 1.00   1.00   0.50 idents, strings, doubles, ... ops, braces, string concat, string special   0.50 conflicts, syntax, ifs, decls, calls, types, read, elsifs precs, exprs term, null              
070 2.88 2.88 1.00   1.00   0.75 strings, indent, bad patterns, doubles     0.75 tokens, syntax precs                
071 4.50 4.50 1.00   1.00   1.00       1.00 conflicts, ifs     1.00            
072 2.88 2.88 1.00   1.00   0.75 ... string concat   0.75 conflicts, precs, strings precs null   block          
073 1.88 1.88 1.00 errors.txt 1.00   0.25 (simple) ops, keywords, comments (etc.) 0.50 conflicts, precs, lvals, strings, syntax, calls precs term              
074 2.00 2.00 1.00   1.00   0.50 (simple) ops indent, string special 0.25 conflicts, precs, types, syntax precs term, stmt, calls exprs, lvals   again, stop   address      
075 2.25 2.25 1.00   1.00   0.50 indent, bad patterns, strings, ints, string special, .*, doubles, comments string concat, string cleaner string special 0.50 conflicts, syntax, stmts, elsifs, strings, exprs, lvals, funcs, types precs term, delim   read, address          
076 2.50 2.50 1.00   1.00   0.50 comments, idents, strings, string special, ints, doubles   string special, ints 0.75 syntax, stmts, types covfefe null   index program, while, symmetric null      
077 2.50 2.50 1.00   1.00   0.50 strings, string special, indent string special, ops   0.75   precs term              
078 2.88 2.88 1.00   1.00   0.75 types, indent ops   0.75 conflicts, types, ifs exprs, initially term   address          
079 2.25 2.25 1.00   1.00   0.50 idents, strings, string ignore, doubles ops keywords 0.50 conflicts, types, strings, precs precs term, exprs, lvals   address          
080 2.88 2.88 1.00   1.00   0.75 doubles, strings, comments, string ignore keywords, string special   0.75 conflicts precs null              
081 2.25 2.25 1.00   1.00   0.50 doubles, idents ops, comments, keywords   0.50 conflicts, precs, syntax, stmts, ifs precs, exprs, initially lvals, term   alloc, address          
082 2.63 2.63 1.00   1.00   0.75 comments, string special     0.50 conflicts, syntax, decls, precs, empty rules, strings obj exprs, term, delim   read, alloc, index print tweet      
083 2.25 2.25 1.00   1.00   0.50 strings, string special ops indent 0.50 conflicts, precs, syntax, types, ifs, elsifs, strings   term, exprs, calls, etc.   alloc, identity          
084 2.88 2.88 1.00   1.00   0.75 strings, string special, ... string concat, ops   0.75 conflicts, precs, strings, syntax, stmts   term       block      
085      
086 NA sem entrega intermédia  
087 2.25 2.25 1.00   1.00   0.50 doubles, strings, indent, .* covfefe   0.50 conflicts, precs, syntax, calls, ifs, strings   term, stmts, exprs              
088 2.63 2.63 1.00   1.00   0.75 tweet, post ops, string concat   0.50 conflicts, precs, bad rules, ifs, syntax, stmts, strings   term              
089 0.50 0.50 1.00 .project 0.00 não compila   strings, string special, comments, ints       conflicts, bad root, empty rules, types, syntax, precs, exprs, elsifs precs term, exprs, calls, lvals   read, alloc, address   again, stop, return, null, block, index   ast  
090 2.50 2.50 1.00   1.00   0.50 strings, string special, comments, doubles, keywords, ints string concat   0.75 conflicts, ifs, bad root precs, term term   address       ast  
091 2.88 2.88 1.00   1.00   0.75 ints string concat, ops   0.75 precs, elsifs, syntax, lvals, exprs precs term, null              
092 1.88 1.88 1.00   1.00   0.25 strings, string special, ints, idents ops doubles, indent 0.50 conflicts, syntax, decls, types, syntax, exprs, strings   term, delim, null, lvals   address          
093 NA sem entrega intermédia  
094 2.00 2.00 1.00   1.00   0.50 idents, strings, ints, doubles, string special bellow indent 0.25 conflicts, syntax, decls, lvals, bad rules, types, bad types, syntax, stmts, read, exprs, calls, elsifs, strings elsif nodes precs, term, lvals   read, null, identity, index, address elsif, index if_else      
095 2.25 2.25 1.00   1.00   0.50 comments, string special, doubles ops, string concat, string special indent 0.50 conflicts, syntax, exprs, lvals, strings, ifs, elsifs, blocks, types precs term, lvals, null   identity          
096 2.88 2.88 1.00   1.00   0.75 doubles     0.75 precs, syntax, exprs, instrs, lvals precs term              
097 NA sem entrega intermédia  
098 2.25 2.25 1.00   1.00   0.50 strings, string special, comments, doubles string special, bad pattern, bracket counts indent 0.50 conflicts, precs, syntax, elsifs, strings   term, delim, exprs, calls   if_else, elsifs, tweet, post, read, again, stop, return, block, alloc, index          
099 3.25 3.25 1.00   1.00   1.00 doubles     0.75 conflicts precs, EMPTY_NODE term              
100      
101 3.13 3.13 1.00   1.00   0.75 doubles, strings, string special keywords   1.00 conflicts precs, tokens                
102 2.25 2.25 1.00   1.00   0.50 idents, strings, string special keywords, comments, ops string special, indent 0.50 conflicts, ifs, precs, types, exprs   term, delim, lvals, exprs   read, return, index, address          
103 2.88 2.88 1.00   1.00   0.75 strings, string ignore     0.75 conflicts, ifs precs term              
104 1.63 1.63 1.00   1.00   0.25 functions, bad patterns, doubles, ints, idents   ints, string special, indent, keywords 0.25 conflicts, precs, syntax, blocks, types   term, delim, exprs, instrs, etc.   print, read, null, alloc, index, address type block, identity      
105 2.25 2.25 1.00   1.00   0.50 ints keywords, bellow, ops, string concat indent 0.50 precs, syntax, ifs, instrs, read, tokens, strings precs term, lvals   return, alloc, index          
106 2.88 2.88 1.00   1.00   0.75 ints   ints 0.75 conflicts, precs, ifs precs term              
107 1.63 1.63 1.00   1.00   0.25 idents, ints, strings, string special, doubles keywords, ops string special, indent 0.25 precs, bad root, types, ifs, elsifs, bad syntax precs instrs, exprs   read, null, address       ast  
108 2.25 2.25 1.00   1.00   0.50 doubles, idents, strings ops string special 0.50 precs, elsifs, empty rules precs null   address          
109 1.63 1.63 1.00   1.00   0.25 doubles, ints, strings, (simple) ops, keywords, comments indent, string special, comments 0.25 conflicts, precs, syntax, (simple) precs, (simple) (simple)   read, again elsifs        
110 2.88 2.88 1.00   1.00   0.75 doubles, elsif, bad pattern, idents, strings, string special     0.75 ifs, elsifs, syntax precs                
111 2.25 2.25 1.00   1.00   0.50 strings, string special, bad patterns keywords, bellow, ops, string special, string concat indent 0.50 conflicts, precs, elsifs, syntax, ifs, decls, exprs, lvals, strings precs term, delim, null, calls   post, return, address          
112      
113 NA sem entrega intermédia  
114 2.25 2.25 1.00   1.00   0.50 doubles, ints, bad patterns braces, string concat   0.50 conflicts, precs, types, syntax, ifs, elsifs, strings, exprs precs term              
115 2.25 2.25 1.00   1.00   0.50 doubles, strings, string ignore keywords, parentheses, ops string special 0.50 conflicts, syntax, instrs, exprs, read, types, bad types precs term, lvals, exprs, calls   read, block, alloc, address   index      
116 2.25 2.25 1.00   1.00   0.50 idents ops string special 0.50 conflicts, ifs, exprs, lvals precs term, delim, exprs, calls   read, address          
117 1.75 1.75 1.00   0.00 (corrigido) 0.50 ints, doubles, strings, indent ops string special 0.50 conflicts, empty rules, syntax, instrs, exprs, lvals, strings   term, lvals   index, address       ast  
118 1.63 1.63 1.00   1.00   0.25 comments, idents, doubles, ints, strings, string special, (simple) ops, keywords keywords 0.25 conflicts, precs, types, syntax, ifs precs exprs, etc.   again, stop, index, address program, symmetric read, null, alloc      
119 0.50 0.50 1.00   0.00 não compila   (simple) ops, keywords (etc.)   (simple) (simple) (simple)   read print, read, program, while again, stop, return, null, alloc, plus (empty), index, decls, funcs, vars, address      
120      
121 2.25 2.25 1.00   1.00   0.50 idents, doubles, strings, string special, ints chars   0.50 precs, types, tokens, ifs, syntax, strings precs term              
122 2.25 2.25 1.00   1.00   0.50 string, string special, ints, doubles string concat   0.50 conflicts, empty rules, syntax, decls, lvals, bad root   precs, term, null, lvals   alloc, index       ast tJUNCTION
123 2.25 2.25 1.00   1.00   0.50 comments, strings, string special, doubles, ints string special   0.50 precs, syntax precs, type constants term   null          
124      
125 2.00 2.00 1.00   1.00   0.50 ints, idents, strings, bad patterns ops, comments indent 0.25 precs, types, bad syntax, etc., (simple) (simple) (simple)   read, again, stop, address program, while, assignment        
126 2.50 2.50 1.00   1.00   0.50 strings strings special string special, indent 0.75 conflicts, precs, bad root, ifs, elsifs   term, delim   again, stop, return, address       ast  
127 2.50 2.50 1.00   1.00   0.50 doubles, strings, string special, string ignore, keywords, bad patterns ops   0.75 conflicts, precs, ifs, syntax, instrs, exprs, calls, strings precs                
128 2.88 2.88 1.00   1.00   0.75 ints, doubles keywords, foobar   0.75 conflicts, precs precs term              
129 1.75 1.75 1.00   0.00 (corrigido) 0.50 doubles, idents, ints, strings, string special, indent ops keywords 0.50 conflicts, precs, strings, types, bad root precs null, term, epxrs, calls, lvals   print, return print, program, assignment post, null, alloc, identity, index, address   ast nomenc: print, tweet
130 2.25 2.25 1.00   1.00   0.50 ..., strings, string special, ints, doubles, indent keywords, covfefe, tMAIN, string special string special 0.50 conflicts, precs, bad root, types, syntax precs exprs, calls, etc., term, lvals   read, alloc, bad alloc, index types, assignment null, identity, address   ast function_sign
131 2.25 2.25 1.00   1.00   0.50 idents, strings, double, bad patterns, indent string special string special 0.50 precs, syntax, decls, ifs, elsifs, types, blocks, instrs, exprs, read, calls   term, lvals, null   return, index          
132 2.25 2.25 1.00   1.00   0.50 comments, idents, strings, doubles ops string special, indent 0.50 conflicts, types, empty rules, syntax, exprs   term, null, exprs, calls, lvals   read, index          
133 2.25 2.25 1.00   1.00   0.50 strings ops, keywords, string concat, string special string special, doubles 0.50 conflicts, types, syntax, instrs, lists, exprs, read precs term, exprs, double, null, lvals   null, address          
134 1.88 1.88 1.00   1.00   0.25 idents, strings, ints, (simple) ops, keywords, comments string special, ints, indent, doubles 0.50 conflicts, precs, types, syntax, blocks, ifs, elsifs, tokens, strings, callls   term, delim, lvals   again, stop, address          
135 1.63 1.63 1.00   1.00   0.25 idents, strings, ints, doubles, comments ops, keywords, covfefe, tMAIN, string special string special, indent 0.25 conflicts, precs, bad syntax, (simple) (simple) (simple)   if_else, elsifs, read, null, block, index, address print, while tweet, post      
136 3.25 3.25 1.00   1.00   0.50 strings, string ignore, indent, bad patterns, doubles keywords, indent, if, then, else   0.50 conflicts, syntax, ifs, elsifs, types   term 1.00            
137 3.50 3.50 1.00   1.00   1.00       1.00         return          
138 2.25 2.25 1.00   1.00   0.50 comments, idents, strings, doubles, indent ops, keywords, string special string special 0.50 conflicts, precs, syntax, instrs, ifs, elsifs, types, strings, exprs precs term, lvals   index, address print, while post      
139 1.88 1.88 1.00   1.00   0.25 comments, strings, doubles, string special ops, keywords, string special   0.50 conflicts, precs, syntax, decls, ifs, elsifs   term, delim, exprs, calls, etc., lvals   read, null assignment        
140 1.88 1.88 1.00   1.00   0.25 doubles, strings, functions, (simple) ops, keywords, comments string special, indent 0.50 conflicts, precs, types precs term, exprs, calls, etc., lvals   read, address print, program, while, elsifs, symmetric, subtraction, assignment null, index      
141      
142 1.63 1.63 1.00   1.00   0.25 ints, strings, idents, string special keywords, ops indent, keywords 0.25 conflicts, precs, tokens, types, elsifs, syntax, elsifs, etc. bad specs types, lvals, term, etc.   read, identity, address   null      
143 2.88 2.88 1.00   1.00   0.75 strings, string special, doubles bellow   0.75 precs, elsifs   lvals   if_else, elsifs, null          
144 0.50 0.50 1.00   0.00 não compila   (simple) (simple) (simple)   (simple) (simple) (simple)   read, return (empty) print, program, while tweet, post, null, alloc, address      
145 3.13 3.13 1.00   1.00   0.75 string ignore, doubles     1.00 conflicts, ifs                  
146 1.00 1.00 1.00   1.00   0.00 (simple) (simple) (simple) 0.00 (simple) (simple) (simple)   read, return, null, block, alloc, bad alloc, identity, index, address          
147 NA sem entrega intermédia  
148 2.88 2.88 1.00   1.00   0.75 strings, string ignore, indent     0.75 conflicts, ifs, sweep, syntax exprs term              
149 2.50 2.50 1.00   1.00   0.50 types, idents, string special, ints, doubles, .* bellow   0.75 conflicts, precs, decls, funcs, types   null   block, index          
150 2.13 2.13 1.00   0.00 (corrigido) 0.75 idents, doubles bellow (incomplete pattern matching) 0.50 conflicts, precs, strings, exprs, syntax, elsifs precs lvals   alloc, bad alloc, (for), index, address          
151 2.63 2.63 1.00   1.00   0.75 comments, strings, doubles, indent ops   0.50 conflicts, precs, types, syntax, elsifs exprs term, delim              
152 NA sem entrega intermédia  
153 2.25 2.25 1.00   1.00   0.50 string, ..., ints, doubles   indent 0.50 conflicts, precs, syntax, ifs, elsifs, types precs term, delim, null   read          
154 2.88 2.88 1.00 .directory 1.00   0.75 idents, doubles, string special ops   0.75 conflicts, ifs   term, null       null      
155 2.25 2.25 1.00   1.00   0.50 idents, doubles initially patterns, ops string special, indent 0.50 decls, vars, syntax, exprs, elsifs precs null, types   null          
156      
157 2.00 2.00 1.00   1.00   0.50 doubles, string ignore, ints, idents, indent   string special 0.25 conflicts, (simple) (simple) decls, funcs, vars, lvals, etc.   read, again, stop, null, identity, index symmetric        
158      
159      
160      
161 2.25 2.25 1.00   1.00   0.50 doubles, strings ops, string special indent 0.50 conflicts, precs, types, syntax, elsifs, exprs precs term, exprs, calls   return, identity          
162      

___EOT___; </runphp>