aEnvironment.iCurrentOutput.Write("Function not yet implemented : LispExplodeTag");
LispPtr out = new LispPtr(); out.Set(ARGUMENT(aEnvironment, aStackTop, 1).Get()); LispError.CHK_ISSTRING_CORE(aEnvironment,aStackTop,out,1);  String str = out.Get().String(); int strInd = 0; strInd++; if (str.charAt(strInd) != '<') { RESULT(aEnvironment, aStackTop).Set(out.Get()); return; } LispError.CHK_ARG_CORE(aEnvironment,aStackTop,str.charAt(strInd) == '<',1); strInd++; String type = "\"Open\"";  if (str.charAt(strInd) == '/') { type = "\"Close\""; strInd++; } String tag = new String();   tag = tag + "\""; while (LispTokenizer.IsAlpha(str.charAt(strInd))) { char c = str.charAt(strInd); strInd++; if (c >= 'a' && c <= 'z') c = (char)(c + ('A'-'a')); tag = tag + c; } tag = tag + "\"";  LispObject info = null;  while (str.charAt(strInd) == ' ') strInd++; while (str.charAt(strInd) != '>' && str.charAt(strInd) != '/') { String name = new String(); name = name + "\"";  while (LispTokenizer.IsAlpha(str.charAt(strInd))) { char c = str.charAt(strInd); strInd++; if (c >= 'a' && c <= 'z') c = (char)(c + ('A'-'a')); name = name + c; } name = name + "\""; LispError.CHK_ARG_CORE(aEnvironment,aStackTop,str.charAt(strInd) == '=',1); strInd++; LispError.CHK_ARG_CORE(aEnvironment,aStackTop,str.charAt(strInd) == '\"',1); String value = new String();  value = value + (str.charAt(strInd)); strInd++; while (str.charAt(strInd) != '\"') { value = value + (str.charAt(strInd)); strInd++; } value = value + (str.charAt(strInd)); strInd++;   { LispObject ls = LispAtom.New(aEnvironment,"List"); LispObject nm = LispAtom.New(aEnvironment,name); LispObject vl = LispAtom.New(aEnvironment,value); nm.Next().Set(vl); ls.Next().Set(nm); LispObject newinfo =  LispSubList.New(ls); newinfo.Next().Set(info); info = newinfo; } while (str.charAt(strInd) == ' ') strInd++;
    public void Eval(LispEnvironment aEnvironment,int aStackTop) throws Exception    {      aEnvironment.iCurrentOutput.Write("Function not yet implemented : LispExplodeTag");//TODO FIXME    }