Разработка словесного описания лексики, синтаксиса и семантики языка, предназначенного для программирования потоковых вычислений, страница 16

if (ii == TmpNames.size() && !found || VectPentadTotal.size() == 0) break;

%><p><table border=1 align=center class=dh cellpadding=0 cellspacing=0 style="border-collapse:collapse">

 <tr class=bh><td colspan="7" align="center" style="background-color:lightgreen">Блок: <%=block_name%></td></tr>

 <tr class=bh><td align=center>&nbsp;Номер&nbsp;</td><td align=center>&nbsp;Метка&nbsp;</td><td align=center>&nbsp;Операция&nbsp;</td><td align=center>&nbsp;Операнд1&nbsp;</td><td align=center>&nbsp;Операнд2&nbsp;</td><td align=center>&nbsp;Приёмник&nbsp;</td><td align=center>&nbsp;Результат&nbsp;</td></tr>

<%

Vector Pentad = new Vector((Vector)(VectPentadTotal.get(block_ind)));

for (i=0; i<Pentad.size(); i++)

{%><tr><td align=center>&nbsp;<%=i%></td><td align=center><%=((Vector)Pentad.get(i)).elementAt(0)%></td><td align=center><%=((Vector)Pentad.get(i)).elementAt(1)%></td><td align=center><%=((Vector)Pentad.get(i)).elementAt(2)%></td><td align=center><%=((Vector)Pentad.get(i)).elementAt(3)%></td><td align=center><%=((Vector)Pentad.get(i)).elementAt(4)%></td>

<%

if(((Vector)Pentad.get(i)).elementAt(1) == "let")

{  

    tmp = ((Hashtable)(HTidTotal.get(block_name))).get(((Vector)Pentad.get(i)).elementAt(2));

    tmp2 = ((Hashtable)(HTidTotal.get(block_name))).get(((Vector)Pentad.get(i)).elementAt(2).toString());

    ind = ((lexem)(((Hashtable)(HTidTotal.get(block_name))).get(((Vector)Pentad.get(i)).elementAt(4).toString()))).wordIndex;

    if (tmp != null || tmp2 != null)

    {

        ind2 = ((lexem)(tmp2)).wordIndex;

        if (ind2<VectValues.size() && VectValues.get(ind2) != null && !VectValues.get(ind2).toString().equals(""))

        {

            val = new Float((VectValues.get(ind2).toString()));

            if (ind >= VectValues.size()) VectValues.setSize(ind+1);

            VectValues.set(ind, val);

            %><td align=center><%=val.floatValue()%></td><%

        }

        else {%><td align=center><%="Переменная "+((Vector)Pentad.get(i)).elementAt(2)+" не определена."%></td><%break;}

    }

    else

    {

        val = new Float(((Vector)Pentad.get(i)).elementAt(2).toString());

        if (ind >= VectValues.size()) VectValues.setSize(ind+1);

        VectValues.set(ind, val);

        %><td align=center><%=val.floatValue()%></td><%   

    }

}

else if (((Vector)Pentad.get(i)).elementAt(1).toString().equals("+") || ((Vector)Pentad.get(i)).elementAt(1).toString().equals("-") || ((Vector)Pentad.get(i)).elementAt(1).toString().equals("*") || ((Vector)Pentad.get(i)).elementAt(1).toString().equals("/") || ((Vector)Pentad.get(i)).elementAt(1).toString().equals("==") || ((Vector)Pentad.get(i)).elementAt(1).toString().equals("!=") || ((Vector)Pentad.get(i)).elementAt(1).toString().equals("<") || ((Vector)Pentad.get(i)).elementAt(1).toString().equals(">") || ((Vector)Pentad.get(i)).elementAt(1).toString().equals("<=") || ((Vector)Pentad.get(i)).elementAt(1).toString().equals(">=") || ((Vector)Pentad.get(i)).elementAt(1).toString().equals("||") || ((Vector)Pentad.get(i)).elementAt(1).toString().equals("&&"))

{

    tmp = ((Hashtable)(HTidTotal.get(block_name))).get(((Vector)Pentad.get(i)).elementAt(2));

    tmp2 = ((Hashtable)(HTidTotal.get(block_name))).get(((Vector)Pentad.get(i)).elementAt(2).toString());

    if (tmp != null || tmp2 != null)