rem: function AMparseIexpr(str) { var symbol, sym1, sym2, node, result, underover; str = AMremoveCharsAndBlanks(str,0); sym1 = AMgetSymbol(str); result = AMparseSexpr(str); node = result[0]; str = result[1]; symbol = AMgetSymbol(str); if (symbol.ttype == INFIX && symbol.input != "/") { str = AMremoveCharsAndBlanks(str,symbol.input.length);  result = AMparseSexpr(str); if (result[0] == null) result[0] = AMcreateMmlNode("mo",document.createTextNode("\u25A1")); else AMremoveBrackets(result[0]); str = result[1];  if (symbol.input == "_") { sym2 = AMgetSymbol(str); underover = (sym1.ttype == UNDEROVER); if (sym2.input == "^") { str = AMremoveCharsAndBlanks(str,sym2.input.length); var res2 = AMparseSexpr(str); AMremoveBrackets(res2[0]); str = res2[1]; node = AMcreateMmlNode((underover?"munderover":"msubsup"),node); node.appendChild(result[0]); node.appendChild(res2[0]); node = AMcreateMmlNode("mrow",node); } else { node = AMcreateMmlNode((underover?"munder":"msub"),node); node.appendChild(result[0]); } } else { node = AMcreateMmlNode(symbol.tag,node); node.appendChild(result[0]); } } return [node,str]; 
add: function AMparseIexpr(str){ var _2a,sym1,sym2,node,result,underover; str=AMremoveCharsAndBlanks(str,0); sym1=AMgetSymbol(str); result=AMparseSexpr(str); node=result[0]; str=result[1]; _2a=AMgetSymbol(str); if(_2a.ttype==INFIX&&_2a.input!="/"){ str=AMremoveCharsAndBlanks(str,_2a.input.length); result=AMparseSexpr(str); if(result[0]==null){ result[0]=AMcreateMmlNode("mo",document.createTextNode("\u25a1")); }else{ AMremoveBrackets(result[0]); 
context: function AMparseIexpr(str) {  var symbol, sym1, sym2, node, result, underover;  str = AMremoveCharsAndBlanks(str,0);  sym1 = AMgetSymbol(str);  result = AMparseSexpr(str);  node = result[0];  str = result[1];  symbol = AMgetSymbol(str);  if (symbol.ttype == INFIX && symbol.input != "/") {    str = AMremoveCharsAndBlanks(str,symbol.input.length);//    if (symbol.input == "/") result = AMparseIexpr(str); else ...    result = AMparseSexpr(str);    if (result[0] == null) // show box in place of missing argument      result[0] = AMcreateMmlNode("mo",document.createTextNode("\u25A1"));    else AMremoveBrackets(result[0]);    str = result[1];//    if (symbol.input == "/") AMremoveBrackets(node);    if (symbol.input == "_") {      sym2 = AMgetSymbol(str);      underover = (sym1.ttype == UNDEROVER);      if (sym2.input == "^") {        str = AMremoveCharsAndBlanks(str,sym2.input.length);        var res2 = AMparseSexpr(str);        AMremoveBrackets(res2[0]);        str = res2[1];        node = AMcreateMmlNode((underover?"munderover":"msubsup"),node);        node.appendChild(result[0]);        node.appendChild(res2[0]);        node = AMcreateMmlNode("mrow",node); // so sum does not stretch      } else {        node = AMcreateMmlNode((underover?"munder":"msub"),node);        node.appendChild(result[0]);      }    } else {      node = AMcreateMmlNode(symbol.tag,node);      node.appendChild(result[0]);    }  }  return [node,str];}
meta: 6015	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/6015/d8776708e0e10dfa0ab6ee1d0fa9e512d8d16348/ASCIIMathML.js/clean/packages/acs-templating/www/resources/xinha-nightly/plugins/Equation/ASCIIMathML.js