Example #1
0
int main(){
  oprand op1, op2, op3;
  quad qd;

  op1 = create_oprand(OP_TYPE_INT, 1);  
  op2 = create_oprand(OP_TYPE_NA, 1);  
  op3 = create_oprand(OP_TYPE_DOUBLE, 1.5);

  qd = create_quad(FUNC_BODY, op1, op2, op3);
  insert_quad(qd);
  insert_quad(qd);
  insert_quad(qd);

  print_code();
  return 0;
}
Example #2
0
void xml_end_element(void *user_data, const xmlChar *name)
{
  xmlctxt *ctxt = (xmlctxt *) user_data;
  switch  (ctxt->state) {
    case WANT_TRIX:
      fs_error(LOG_WARNING, "impossible document structure");
      break;

    case WANT_GRAPH:
      if (strcmp((char *) name, "TriX")) {
        fs_error(LOG_WARNING, "expected </TriX> found </%s>", name);
      } else {
        ctxt->state = DONE_TRIX;
      }
      break;

    case WANT_TRIPLE:
      if (strcmp((char *) name, "graph")) {
        fs_error(LOG_WARNING, "expected </graph> found </%s>", name);
      } else {
        ctxt->state = WANT_GRAPH;
      }
      break;

    case WANT_MODEL_URI:
      if (strcmp((char *) name, "uri")) {
        fs_error(LOG_WARNING, "expected </uri> found </%s>", name);
      } else {
        ctxt->m = insert_uri(ctxt);
        ctxt->state = WANT_TRIPLE;
      }
      break;

    case WANT_SUBJECT:
    case WANT_PREDICATE:
    case WANT_OBJECT:
      fs_error(LOG_ERR, "missing part of triple");
      ctxt->state = WANT_TRIPLE;
      break;

    case WANT_SUBJECT_BNODE:
      if (strcmp((char *) name, "id")) {
        fs_error(LOG_WARNING, "expected </id> found </%s>", name);
      } else {
        ctxt->s = insert_bnode(ctxt);
        ctxt->state = WANT_PREDICATE;
      }
      break;

    case WANT_SUBJECT_PLAIN_LITERAL:
      if (strcmp((char *) name, "plainLiteral")) {
        fs_error(LOG_WARNING, "expected </plainLiteral> found </%s>", name);
      } else {
        ctxt->s = insert_plain(ctxt);
        ctxt->state = WANT_PREDICATE;
      }
      break;

    case WANT_SUBJECT_TYPED_LITERAL:
      if (strcmp((char *) name, "typedLiteral")) {
        fs_error(LOG_WARNING, "expected </typedLiteral> found </%s>", name);
      } else {
        ctxt->s = insert_typed(ctxt);
        ctxt->state = WANT_PREDICATE;
      }
      break;

    case WANT_SUBJECT_URI:
      if (strcmp((char *) name, "uri")) {
        fs_error(LOG_WARNING, "expected </uri> found </%s>", name);
      } else {
        ctxt->s = insert_uri(ctxt);
        ctxt->state = WANT_PREDICATE;
      }
      break;

    case WANT_PREDICATE_URI:
      if (strcmp((char *) name, "uri")) {
        fs_error(LOG_WARNING, "expected </uri> found </%s>", name);
      } else {
        ctxt->p = insert_uri(ctxt);
        ctxt->state = WANT_OBJECT;
      }
      break;

    case WANT_OBJECT_BNODE:
      if (strcmp((char *) name, "id")) {
        fs_error(LOG_WARNING, "expected </id> found </%s>", name);
      } else {
        ctxt->o = insert_bnode(ctxt);
        ctxt->state = DONE_TRIPLE;
      }
      break;

    case WANT_OBJECT_PLAIN_LITERAL:
      if (strcmp((char *) name, "plainLiteral")) {
        fs_error(LOG_WARNING, "expected </plainLiteral> found </%s>", name);
      } else {
        ctxt->o = insert_plain(ctxt);
        ctxt->state = DONE_TRIPLE;
      }
      break;

    case WANT_OBJECT_TYPED_LITERAL:
      if (strcmp((char *) name, "typedLiteral")) {
        fs_error(LOG_WARNING, "expected </typedLiteral> found </%s>", name);
      } else {
        ctxt->o = insert_typed(ctxt);
        ctxt->state = DONE_TRIPLE;
      }
      break;

    case WANT_OBJECT_URI:
      if (strcmp((char *) name, "uri")) {
        fs_error(LOG_WARNING, "expected </uri> found </%s>", name);
      } else {
        ctxt->o = insert_uri(ctxt);
        ctxt->state = DONE_TRIPLE;
      }
      break;

    case DONE_TRIPLE:
      if (strcmp((char *) name, "triple")) {
        fs_error(LOG_WARNING, "expected </triple> found </%s>", name);
      } else {
        insert_quad(ctxt);
        ctxt->state = WANT_TRIPLE;
      }
      break;

    case WANT_MODEL:
    case DONE_TRIX:
      fs_error(LOG_WARNING, "impossible document structure");
      break;
  }
}