что-то написал, было условие что Отдельные части оператора разделяются группой пробелов:
| Код | procedure TForm1.Button1Click(Sender: TObject); procedure name(str:string; var q,w,r,t:integer); begin q:=pos(' If ',str); if q=0 then label7.Caption:='ошибка, в имени: "if"; If <имя1> = <имя2> ' ; w:=pos(' Then ',str); if w=0 then label8.Caption:='ошибка, в имени: "Then"; if .. Then Goto <метка> else .. '; r:=pos(' Goto ',str); if r=0 then label9.Caption:='ошибка, в имени: "Goto"; Then Goto <метка> else <имя3>:=<число> '; t:=pos(' else ',str); if t=0 then label10.Caption:='ошибка, в имени: "else"; Then Goto <метка> else <имя3>:=<число> ' end; var str,s1,s2,s3,s4,s5:string; F : TextFile; x,y,a,i,s,d,k,j,h,g:integer; begin Label2.Caption:=''; Label3.Caption:=''; Label4.Caption:=''; Label5.Caption:=''; Label6.Caption:=''; Label7.Caption:=''; Label8.Caption:=''; Label9.Caption:=''; Label10.Caption:=''; Label11.Caption:=''; AssignFile(F, 'text.txt'); Rewrite(F); s1:='ошибка"="; If <имя1> = <имя2> '; s2:='ошибка ":="; Then Goto <метка> else <имя3>:=<число> '; s3:='превышено количество оператора "=" '; s4:='превышено количество оператора ":=" '; s5:='баланс скобок нарушен'; str:= edit1.Text; x:=pos(' = ',str); y:=pos(' := ',str); if x=0 then label2.Caption:=s1; if x=0 then writeln(F, s1); if y=0 then label3.Caption:=s2; if y=0 then writeln(F, s1); s:=0; d:=0; for i:=1 to length(str) do begin if str[i]='=' then inc(s); if str[i]=':=' then inc(d); end; if s>2 then label5.Caption:=s3; if s>2 then writeln(F, s3); if d>1 then label6.Caption:=s4; if d>1 then writeln(F, s4); a:=0; for i:=1 to length(str) do begin if str[i]='(' then inc(a); if str[i]=')' then dec(a); end; if a<>0 then label4.Caption:=s5; if a<>0 then writeln(F, s5); name(str,k,j,h,g); if k=0 then writeln(f,'ошибка, в имени: "if"; If <имя1> = <имя2> ') ; if j=0 then writeln(f,'ошибка, в имени: "Then"; if .. Then Goto <метка> else .. '); if h=0 then writeln(f,'ошибка, в имени: "Goto"; Then Goto <метка> else <имя3>:=<число> '); if g=0 then writeln(f,'ошибка, в имени: "else"; Then Goto <метка> else <имя3>:=<число> '); CloseFile(F) end; end.
|
подскажите пожалуйста как проверить порядок выполнения операторов, и число |