Reformat output of lisp eid-table show command.
[vpp.git] / vppapigen / node.c
index ffe5d77..30a3b01 100644 (file)
@@ -292,7 +292,7 @@ void primtype_java_code (node_t * this, enum passid which, FILE *ofp,
             indent_me(ofp);
             fprintf(ofp, "int _i;\n");
             indent_me(ofp);
-            fprintf(ofp, "for (_i = 0; _i < %u; _i++) {\n",
+            fprintf(ofp, "for (_i = 0; _i < %lu; _i++) {\n",
                     (u64)(deeper->data[1]));
             indent += 4;
             indent_me(ofp);
@@ -1161,7 +1161,11 @@ void node_vector_generate (node_t *this, enum passid which, FILE *fp)
         fprintf(fp, "}\n");
         break;
     case PYTHON_PASS:
-        fprintf(fp, "'%s', '%d'),\n", CDATA0, IDATA1);
+        if (CDATA2 != 0) { // variable length vector
+            fprintf(fp, "'%s', '%d', '%s'),\n", CDATA0, IDATA1, CDATA2);
+        } else {
+            fprintf(fp, "'%s', '%d'),\n", CDATA0, IDATA1);
+        }
         break;
 
     default:
@@ -1460,6 +1464,21 @@ YYSTYPE add_vector_vbl (YYSTYPE a1, YYSTYPE a2)
     return ((YYSTYPE) np);
 }
 
+/*
+ * add_vector_vbl (char *vector_name, char *vector_length_var)
+ */
+
+YYSTYPE add_variable_length_vector_vbl (YYSTYPE vector_name, YYSTYPE vector_length_var)
+{
+    node_t *np;
+
+    np = make_node(NODE_VECTOR);
+    np->data[0] = (void *) vector_name;
+    np->data[1] = (void *) 0; // vector size used for vpe.api.h generation (array of length zero)
+    np->data[2] = (void *) vector_length_var; // name of the variable that stores vector length
+    return ((YYSTYPE) np);
+}
+
 /*
  * add_scalar_vbl (char *name)
  */