static void write_expression(const expression_t *expression) { /* TODO */ switch(expression->kind) { case EXPR_LITERAL_INTEGER: write_integer(&expression->literal); break; case EXPR_ENUM_CONSTANT: { /* UHOH... hacking */ entity_t *entity = expression->reference.entity; write_enum_name(entity->enum_value.enume); fprintf(out, ".%s.val", entity->base.symbol->string); break; } case EXPR_UNARY_CASES: write_unary_expression(&expression->unary); break; case EXPR_BINARY_CASES: write_binary_expression(&expression->binary); break; default: panic("not implemented expression"); } }
std::string ProbabilisticLayer::write_expression(const Vector<std::string>& inputs_names, const Vector<std::string>& outputs_names) const { switch(probabilistic_method) { case Binary: { return(write_binary_expression(inputs_names, outputs_names)); } break; case Probability: { return(write_probability_expression(inputs_names, outputs_names)); } break; case Competitive: { return(write_competitive_expression(inputs_names, outputs_names)); } break; case Softmax: { return(write_softmax_expression(inputs_names, outputs_names)); } break; case NoProbabilistic: { return(write_no_probabilistic_expression(inputs_names, outputs_names)); } break; default: { std::ostringstream buffer; buffer << "OpenNN Exception: ProbabilisticLayer class.\n" << "std::string write_expression(const Vector<std::string>&, const Vector<std::string>&) const method.\n" << "Unknown probabilistic method.\n"; throw std::logic_error(buffer.str()); }// end default break; }// end switch }