Subversion Repositories wimsdev

Rev

Blame | Last modification | View Log | RSS feed

fml=$formula
fml=!translate ; to $\
$ in $fml
icnt=!itemcnt $fml
:retest
!if $icnt>1
 test=!item 1 of $fml
 test=!declosing $test
 tcnt=!itemcnt $test
 !if $tcnt=2
  form=!lines2items $fml
  form=!nonempty items $form
  lcnt=!itemcnt $form
  !reset fml
  !for i=1 to $lcnt
   l=!item $i of $form
   l=!declosing $l
   c=!itemcnt $l
   !if $c!=2
    error=bad_formula
    !exit
   !endif
   fml=!append line $l to $fml
  !next i
 !else
  tcnt=!wordcnt $test
  !if $tcnt=2
   form=!lines2items $fml
   form=!nonempty items $form
   lcnt=!itemcnt $form
   !reset fml
   !for i=1 to $lcnt
    l=!item $i of $form
    l=!declosing $l
    c=!wordcnt $l
    t=!itemcnt $l
    !if $c!=2 or $t!=1
     error=bad_formula
     !exit
    !endif
    !distribute words $l into x_,y_
    fml=!append line $x_,$y_ to $fml
   !next i
  !else
   form=$fml
   form=!nonempty lines $form
   lcnt=!linecnt $form
   !reset fml
   !for i=1 to $lcnt
    l=!line $i of $form
    c=!itemcnt $l
    !if $c!=2
     error=bad_formula
     !exit
    !endif
    fml=!append line $l to $fml
   !next i
  !endif
 !endif
!else
 fml=!lines2items $fml
 icnt=!itemcnt $fml
 !if $icnt>1
  !goto retest 
 !else
  error=bad_formula
  !exit
 !endif
!endif

fml=!nonempty lines $fml
cnt=!linecnt $fml
op=!lower $option
fml3=
!if exchange iswordof $op
 f=
 !for i=1 to $cnt
  l=!line $i of $fml
  !distribute items $l into x_,y_
  f=!append line $y_,$x_ to $f
  fml3=!append item ($y_,$x_) to $fml3
 !next i
 fml=$f
!else
 !for i=1 to $cnt
  l=!line $i of $fml
  fml3=!append item ($l) to $fml3
 !next i
!endif
fml2=!translate $\
$ to ; in $fml
fml2=!rawmath $fml2
fml2=!replace , by , $ in $fml2
fml2=!replace ; by ; $ in $fml2
fml2=!singlespace $fml2
fml3=!replace , by , $ in $fml3
fml3=!singlespace $fml3

# fml: x1,y1\
# x2,y2...
#
# fml2: x1,y1;x2,y2;...
#
# fml3: (x1,y1),(x2,y2),...