function alg_decode_point(pt)
{
  if("|"==pt) return "cursor"
  var r=""
  var e
  if( (e=pt.match(/^ *('[.*]')([A-Z][A-Z0-9]*[bs]?)/)) && 3==e.length )	{
    r="constant "+e[1]+" on scale "+e[2]
  } else if( (e=pt.match(/^ *([\[\]]?)1([A-Z][A-Z0-9]*[bs]?) *$/)) && 3==e.length ) {
    if('['==e[1]) r='left '
    if(']'==e[1]) r='right '
    r+="index on scale "+e[2]
  } else if( (e=pt.match(/^ *([A-Z][A-Z0-9]*[bs]?)(\((.*)\))? *$/)) && 4==e.length ) {
//    alert(pt+":"+e[0]+":"+e[1]+":"+e[2]+":"+e[3]);
    if(''!=e[2]) r=e[3]+" from "
    r+="scale "+e[1]
  } else if( (e=pt.match(/^ *([^A-Z]+)([A-Z][A-Z0-9]*[bs]?) *$/)) && 3==e.length ) {
    if(	''!=e[1] ) r=e[1]+" on "
    r+="scale "+e[2]
  } else if( pt.match(/=/) ) {
    r="point where "+pt;
  } else r=pt
  return r
}

function alg_decode_step(step)
{
//  var	e=step.match(/ *([a-z1]*)([A-Z]+)(<-|->|<=|=>)([a-z1]*)([A-Z]+)/);
  var e;
  if( (e=step.match(/ *(.*)(<-|->|<=|=>)(.*)/))	&& 4==e.length ) {
    if('->'==e[2]) d="move "+alg_decode_point(e[1])+" to "+alg_decode_point(e[3])
    else if('=>'==e[2])	d="read "+alg_decode_point(e[3])+" under "+alg_decode_point(e[1])
    else if('<-'==e[2])	d="move "+alg_decode_point(e[3])+" to "+alg_decode_point(e[1])
    else if('<='==e[2])	d="read "+alg_decode_point(e[1])+" under "+alg_decode_point(e[3])
  } else d=step
  return d
}

function alg2str(alg) {
  var a=alg.split(";");
  var descr="";
  var l=0;
  for(i	in a){
    var	d=alg_decode_step(a[i]);
    descr=descr+(++l)+") "+d+"\n";
  }
  return descr;
}

function alg_decode(el)	{
  alert(alg2str(el.innerHTML));
}

function create_decode_window() {
  window.open("srdecode.htm","sr_notation","resizable=yes,height=220,width=550");
}


