good=!rows2lines $(replygood$i)
menulist=!line 2 to -1 of $good
menulist=!translate internal $\
$ to ; in $menulist
good=!line 1 of $good
replyGood$i=!item $good of $menulist
menucnt=!itemcnt $menulist

!if $wims_read_parm=nocompare
 !exit
!endif

!if $(replyGood$i)=$empty
 Test=bad $i
 !exit
!endif

!reset menupos
reply$i=!replace internal \\( by \( in $(reply$i)
!if &#39; isin $menulist
 reply$i=!replace internal ' by &#39; in $(reply$i)
!endif
!if &#44; isin $menulist
 reply$i=!replace internal , by &#44; in $(reply$i)
!endif
!if $(replytype$i) iswordof mark
  menupos=$(reply$i)
  m_reply$i=!item $menupos of $menulist
 reply_$i=$(m_reply$i)
!else
 !for ri_ in $(reply$i)
  mp_=!positionof item $ri_ in $menulist
  menupos=!append item $mp_ to $menupos
 !next ri_
!endif
!if $menupos=$empty
 test=NaN
 !exit
!endif

poscnt1=!itemcnt $menupos
menupos=!listintersect $menupos and $good
poscnt2=!itemcnt $menupos
poscnt3=!itemcnt $good
!if split iswordof $(replyoption$i)
 !if $poscnt1=$poscnt2 and $poscnt1=$poscnt3
  diareply$i=good
  !advance freegot
 !else
  diareply$i=bad
  freegot=$[$freegot+ max(0,$poscnt2/$poscnt3 - ($poscnt1-$poscnt2)/$poscnt1)] 
 !endif
!else
 !if $poscnt1=$poscnt2 and $poscnt1=$poscnt3
  diareply$i=good
  !advance freegot
 !else
  diareply$i=bad
 !endif
!endif
