public static Cons parseColumnSpecs(Stella_Object relconst, Stella_Object columnspecs, Object [] MV_returnarray) {
    if (!(Stella_Object.consP(columnspecs))) {
      { OutputStringStream stream000 = OutputStringStream.newOutputStringStream();

        { Object old$PrintreadablyP$000 = Stella.$PRINTREADABLYp$.get();

          try {
            Native.setBooleanSpecial(Stella.$PRINTREADABLYp$, true);
            stream000.nativeStream.println("PARSING ERROR: Illegal variable/column specifications: `" + columnspecs + "'.");
            Logic.helpSignalPropositionError(stream000, RDBMS.KWD_ERROR);

          } finally {
            Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$000);
          }
        }
        throw ((ParsingError)(ParsingError.newParsingError(stream000.theStringReader()).fillInStackTrace()));
      }
    }
    { Cons relationargs = Stella.NIL;
      Cons axioms = Stella.NIL;

      { Stella_Object columnspec = null;
        Cons iter000 = ((Cons)(columnspecs));
        int i = Stella.NULL_INTEGER;
        int iter001 = 1;

        for (;!(iter000 == Stella.NIL); iter000 = iter000.rest, iter001 = iter001 + 1) {
          columnspec = iter000.value;
          i = iter001;
          { PropertyList columninfo = RDBMS.parseOneColumnSpec(columnspec);
            Stella_Object type = columninfo.lookup(RDBMS.KWD_TYPE);
            Stella_Object name = columninfo.lookup(RDBMS.KWD_NAME);
            Stella_Object var = columninfo.lookup(RDBMS.KWD_VARIABLE);
            Stella_Object modulename = columninfo.lookup(RDBMS.KWD_MODULE_NAME);
            Stella_Object modulereference = columninfo.lookup(RDBMS.KWD_MODULE_REFERENCE);

            if (type != null) {
              relationargs = Cons.cons(Cons.consList(Cons.cons(var, Cons.cons(type, Stella.NIL))), relationargs);
            }
            else {
              relationargs = Cons.cons(var, relationargs);
            }
            if (name != null) {
              axioms = Cons.cons(Cons.list$(Cons.cons(RDBMS.SYM_RDBMS_RELATION_COLUMN_NAME, Cons.cons(relconst, Cons.cons(Cons.cons(IntegerWrapper.wrapInteger(i), Cons.cons(name, Stella.NIL)), Stella.NIL)))), axioms);
            }
            if (modulename != null) {
              axioms = Cons.cons(Cons.list$(Cons.cons(RDBMS.SYM_RDBMS_RELATION_COLUMN_MODULE_NAME, Cons.cons(relconst, Cons.cons(Cons.cons(IntegerWrapper.wrapInteger(i), Cons.cons(modulename, Stella.NIL)), Stella.NIL)))), axioms);
            }
            if (modulereference != null) {
              axioms = Cons.cons(Cons.list$(Cons.cons(RDBMS.SYM_RDBMS_RELATION_COLUMN_MODULE_REFERENCE, Cons.cons(relconst, Cons.cons(Cons.cons(IntegerWrapper.wrapInteger(i), Cons.cons(modulereference, Stella.NIL)), Stella.NIL)))), axioms);
            }
          }
        }
      }
      { Cons _return_temp = relationargs.reverse();

        MV_returnarray[0] = axioms.reverse();
        return (_return_temp);
      }
    }
  }