test_class.file: sandbox/dominio/src/test/java/br/ufg/inf/es/saep/sandbox/dominio/regra/RegraExpressaoTest.java
test_class.identifier: RegraExpressaoTest
test_case.body: @Test
      public void parserObrigatorioParaPreparacao() {
          RegraExpressao re = new RegraExpressao("v", "d", 1, 0, "x");
          assertThrows(CampoExigidoNaoFornecido.class, () -> re.preparacao(null));
      }
test_case.class_method_signature: RegraExpressaoTest.parserObrigatorioParaPreparacao()
test_case.full_signature: @Test public void parserObrigatorioParaPreparacao()
test_case.identifier: parserObrigatorioParaPreparacao
test_case.invocations: assertThrows preparacao
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void parserObrigatorioParaPreparacao()
focal_class.declarator: expressao
focal_class.modifier: private
focal_class.original_string: private String expressao;
focal_class.type: String
focal_class.var_name: expressao
focal_class.declarator: ast
focal_class.modifier: protected
focal_class.original_string: protected Expressao ast;
focal_class.type: Expressao
focal_class.var_name: ast
focal_class.declarator: ctx
focal_class.modifier: protected
focal_class.original_string: protected Map<String, Float> ctx;
focal_class.type: Map<String, Float>
focal_class.var_name: ctx
focal_class.file: sandbox/dominio/src/main/java/br/ufg/inf/es/saep/sandbox/dominio/regra/RegraExpressao.java
focal_class.identifier: RegraExpressao
focal_class.class_method_signature: RegraExpressao.RegraExpressao(final String variavel, final String descricao,
                            final float valorMaximo, final float valorMinimo,
                            final String expressao)
focal_class.full_signature: public  RegraExpressao(final String variavel, final String descricao,
                            final float valorMaximo, final float valorMinimo,
                            final String expressao)
focal_class.identifier: RegraExpressao
focal_class.modifiers: public
focal_class.parameters: (final String variavel, final String descricao,
                            final float valorMaximo, final float valorMinimo,
                            final String expressao)
focal_class.signature:  RegraExpressao(final String variavel, final String descricao,
                            final float valorMaximo, final float valorMinimo,
                            final String expressao)
focal_class.class_method_signature: RegraExpressao.preparacao(final Parser parser)
focal_class.full_signature: @Override public void preparacao(final Parser parser)
focal_class.identifier: preparacao
focal_class.modifiers: @Override public
focal_class.parameters: (final Parser parser)
focal_class.return: void
focal_class.signature: void preparacao(final Parser parser)
focal_class.class_method_signature: RegraExpressao.getExpressao()
focal_class.full_signature: public String getExpressao()
focal_class.identifier: getExpressao
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getExpressao()
focal_class.class_method_signature: RegraExpressao.getContexto()
focal_class.full_signature: protected Map<String, Float> getContexto()
focal_class.identifier: getContexto
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: Map<String, Float>
focal_class.signature: Map<String, Float> getContexto()
focal_class.class_method_signature: RegraExpressao.avalie(List<Avaliavel> avaliaveis, Map<String, Valor> contexto)
focal_class.full_signature: @Override public Valor avalie(List<Avaliavel> avaliaveis, Map<String, Valor> contexto)
focal_class.identifier: avalie
focal_class.modifiers: @Override public
focal_class.parameters: (List<Avaliavel> avaliaveis, Map<String, Valor> contexto)
focal_class.return: Valor
focal_class.signature: Valor avalie(List<Avaliavel> avaliaveis, Map<String, Valor> contexto)
focal_class.class_method_signature: RegraExpressao.atualizaContexto(final Map<String, Valor> contexto)
focal_class.full_signature: protected void atualizaContexto(final Map<String, Valor> contexto)
focal_class.identifier: atualizaContexto
focal_class.modifiers: protected
focal_class.parameters: (final Map<String, Valor> contexto)
focal_class.return: void
focal_class.signature: void atualizaContexto(final Map<String, Valor> contexto)
focal_class.superclass: extends Regra
focal_method.body: @Override
      public void preparacao(final Parser parser) {
          if (parser == null) {
              throw new CampoExigidoNaoFornecido("parser");
          }
  
          List<String> dd = parser.dependencias(expressao);
          setDependeDe(dd);
  
          ctx = new HashMap<>(dd.size());
          for (String dep : dd) {
             ctx.put(dep, 0f);
          }
  
          ast = parser.ast(expressao);
      }
focal_method.class_method_signature: RegraExpressao.preparacao(final Parser parser)
focal_method.full_signature: @Override public void preparacao(final Parser parser)
focal_method.identifier: preparacao
focal_method.invocations: dependencias setDependeDe size put ast
focal_method.modifiers: @Override public
focal_method.parameters: (final Parser parser)
focal_method.return: void
focal_method.signature: void preparacao(final Parser parser)