Saurav Kumar Ghosh
Saurav Kumar Ghosh

Reputation: 123

Deleting multiple lines based on pattern

I would like to delete multiple lines based on a starting and ending pattern. For the code

(* ---------------------------------------------------------- *)
(* --- Assertion 'A' (file input.c, line 114)             --- *)
(* ---------------------------------------------------------- *)

goal main_assert_A:
  let r_0 = 0.01e0 * 450.0e0 : real in
  let r_1 = 1.0e0 * 50.0e0 : real in
  let r_2 = ((-10.0972e0) * 50.0e0) + ((-131.494e0) * 450.0e0)
      + ((-872.5367e0) * 50.0e0) : real in
  let r_3 = (-0.0001e0) * r_2 : real in
  let r_4 = ((-0.0531e0) * 450.0e0) + ((-0.0604e0) * 50.0e0)
      + (0.9974e0 * 50.0e0) + (0.0247e0 * r_2) : real in
  let r_5 = (-10.0972e0) * r_4 : real in
  let r_6 = ((-0.0003e0) * 450.0e0) + (0.01e0 * 50.0e0)
      + (0.9997e0 * 450.0e0) + (0.0001e0 * r_2) : real in
  let r_7 = (-131.494e0) * r_6 : real in
  let r_8 = 0.01e0 * r_6 : real in
  let r_9 = (-0.0003e0) * r_6 : real in
  let r_10 = 0.01e0 * r_4 : real in
  let r_11 = 0.9997e0 * r_6 : real in
  let r_12 = (-0.0531e0) * r_6 : real in
  let r_13 = (-0.0604e0) * r_4 : real in
  let r_14 = 0.9974e0 * r_4 : real in
  forall erraA_0 : real.
  let r_15 = erraA_0 + r_0 + r_1 + r_3 : real in
  let r_16 = r_5 + r_7 + ((-872.5367e0) * r_15) : real in
  let r_17 = r_8 + (1.0e0 * r_15) + ((-0.0001e0) * r_16) : real in
  let r_18 = r_9 + r_10 + r_11 + (0.0001e0 * r_16) : real in
  let r_19 = r_12 + r_13 + r_14 + (0.0247e0 * r_16) : real in
  let r_20 = ((-872.5367e0) * r_17) + ((-10.0972e0) * r_19)
      + ((-131.494e0) * r_18) : real in
  let r_21 = (1.0e0 * r_17) + (0.01e0 * r_18)
      + ((-0.0001e0) * r_20) : real in
  let r_22 = ((-0.0003e0) * r_18) + (0.01e0 * r_19) + (0.9997e0 * r_18)
      + (0.0001e0 * r_20) : real in
  let r_23 = ((-0.0531e0) * r_18) + ((-0.0604e0) * r_19) + (0.9974e0 * r_19)
      + (0.0247e0 * r_20) : real in
  let r_24 = ((-872.5367e0) * r_21) + ((-10.0972e0) * r_23)
      + ((-131.494e0) * r_22) : real in
  let r_25 = (1.0e0 * r_21) + (0.01e0 * r_22)
      + ((-0.0001e0) * r_24) : real in
  let r_26 = ((-0.0003e0) * r_22) + (0.01e0 * r_23) + (0.9997e0 * r_22)
      + (0.0001e0 * r_24) : real in
  let r_27 = ((-0.0531e0) * r_22) + ((-0.0604e0) * r_23) + (0.9974e0 * r_23)
      + (0.0247e0 * r_24) : real in
  let r_28 = ((-872.5367e0) * r_25) + ((-10.0972e0) * r_27)
      + ((-131.494e0) * r_26) : real in
  let r_29 = (1.0e0 * r_25) + (0.01e0 * r_26)
      + ((-0.0001e0) * r_28) : real in
  let r_30 = ((-0.0003e0) * r_26) + (0.01e0 * r_27) + (0.9997e0 * r_26)
      + (0.0001e0 * r_28) : real in
  let r_31 = ((-0.0531e0) * r_26) + ((-0.0604e0) * r_27) + (0.9974e0 * r_27)
      + (0.0247e0 * r_28) : real in
  let r_32 = ((-872.5367e0) * r_29) + ((-10.0972e0) * r_31)
      + ((-131.494e0) * r_30) : real in
  let r_33 = (1.0e0 * r_29) + (0.01e0 * r_30)
      + ((-0.0001e0) * r_32) : real in
  let r_34 = ((-0.0003e0) * r_30) + (0.01e0 * r_31) + (0.9997e0 * r_30)
      + (0.0001e0 * r_32) : real in
  let r_35 = ((-0.0531e0) * r_30) + ((-0.0604e0) * r_31) + (0.9974e0 * r_31)
      + (0.0247e0 * r_32) : real in
  let r_36 = ((-872.5367e0) * r_33) + ((-10.0972e0) * r_35)
      + ((-131.494e0) * r_34) : real in
  let r_37 = (1.0e0 * r_33) + (0.01e0 * r_34)
      + ((-0.0001e0) * r_36) : real in
  let r_38 = ((-0.0003e0) * r_34) + (0.01e0 * r_35) + (0.9997e0 * r_34)
      + (0.0001e0 * r_36) : real in
  let r_39 = ((-0.0531e0) * r_34) + ((-0.0604e0) * r_35) + (0.9974e0 * r_35)
      + (0.0247e0 * r_36) : real in
  let r_40 = ((-872.5367e0) * r_37) + ((-10.0972e0) * r_39)
      + ((-131.494e0) * r_38) : real in
  let r_41 = (1.0e0 * r_37) + (0.01e0 * r_38)
      + ((-0.0001e0) * r_40) : real in
  let r_42 = ((-0.0003e0) * r_38) + (0.01e0 * r_39) + (0.9997e0 * r_38)
      + (0.0001e0 * r_40) : real in
  let r_43 = ((-0.0531e0) * r_38) + ((-0.0604e0) * r_39) + (0.9974e0 * r_39)
      + (0.0247e0 * r_40) : real in
  let r_44 = ((-872.5367e0) * r_41) + ((-10.0972e0) * r_43)
      + ((-131.494e0) * r_42) : real in
  let r_45 = (1.0e0 * r_41) + (0.01e0 * r_42)
      + ((-0.0001e0) * r_44) : real in
  let r_46 = ((-0.0003e0) * r_42) + (0.01e0 * r_43) + (0.9997e0 * r_42)
      + (0.0001e0 * r_44) : real in
  let r_47 = ((-0.0531e0) * r_42) + ((-0.0604e0) * r_43) + (0.9974e0 * r_43)
      + (0.0247e0 * r_44) : real in
  let r_48 = ((-872.5367e0) * r_45) + ((-10.0972e0) * r_47)
      + ((-131.494e0) * r_46) : real in
  let r_49 = (1.0e0 * r_45) + (0.01e0 * r_46)
      + ((-0.0001e0) * r_48) : real in
  let r_50 = ((-0.0003e0) * r_46) + (0.01e0 * r_47) + (0.9997e0 * r_46)
      + (0.0001e0 * r_48) : real in
  let r_51 = ((-0.0531e0) * r_46) + ((-0.0604e0) * r_47) + (0.9974e0 * r_47)
      + (0.0247e0 * r_48) : real in
  let r_52 = ((-872.5367e0) * r_49) + ((-10.0972e0) * r_51)
      + ((-131.494e0) * r_50) : real in
  let r_53 = (1.0e0 * r_49) + (0.01e0 * r_50)
      + ((-0.0001e0) * r_52) : real in
  let r_54 = ((-0.0003e0) * r_50) + (0.01e0 * r_51) + (0.9997e0 * r_50)
      + (0.0001e0 * r_52) : real in
  let r_55 = ((-0.0531e0) * r_50) + ((-0.0604e0) * r_51) + (0.9974e0 * r_51)
      + (0.0247e0 * r_52) : real in
  let r_56 = ((-872.5367e0) * r_53) + ((-10.0972e0) * r_55)
      + ((-131.494e0) * r_54) : real in
  let r_57 = (1.0e0 * r_53) + (0.01e0 * r_54)
      + ((-0.0001e0) * r_56) : real in
  let r_58 = ((-0.0003e0) * r_54) + (0.01e0 * r_55) + (0.9997e0 * r_54)
      + (0.0001e0 * r_56) : real in
  let r_59 = ((-0.0531e0) * r_54) + ((-0.0604e0) * r_55) + (0.9974e0 * r_55)
      + (0.0247e0 * r_56) : real in
  let r_60 = ((-872.5367e0) * r_57) + ((-10.0972e0) * r_59)
      + ((-131.494e0) * r_58) : real in
  let r_61 = (1.0e0 * r_57) + (0.01e0 * r_58)
      + ((-0.0001e0) * r_60) : real in
  let r_62 = ((-0.0003e0) * r_58) + (0.01e0 * r_59) + (0.9997e0 * r_58)
      + (0.0001e0 * r_60) : real in
  let r_63 = ((-0.0531e0) * r_58) + ((-0.0604e0) * r_59) + (0.9974e0 * r_59)
      + (0.0247e0 * r_60) : real in
  let r_64 = ((-872.5367e0) * r_61) + ((-10.0972e0) * r_63)
      + ((-131.494e0) * r_62) : real in
  let r_65 = (1.0e0 * r_61) + (0.01e0 * r_62)
      + ((-0.0001e0) * r_64) : real in
  let r_66 = ((-0.0003e0) * r_62) + (0.01e0 * r_63) + (0.9997e0 * r_62)
      + (0.0001e0 * r_64) : real in
  let r_67 = ((-0.0531e0) * r_62) + ((-0.0604e0) * r_63) + (0.9974e0 * r_63)
      + (0.0247e0 * r_64) : real in
  let r_68 = ((-872.5367e0) * r_65) + ((-10.0972e0) * r_67)
      + ((-131.494e0) * r_66) : real in
  let r_69 = (1.0e0 * r_65) + (0.01e0 * r_66)
      + ((-0.0001e0) * r_68) : real in
  let r_70 = ((-0.0003e0) * r_66) + (0.01e0 * r_67) + (0.9997e0 * r_66)
      + (0.0001e0 * r_68) : real in
  let r_71 = ((-0.0531e0) * r_66) + ((-0.0604e0) * r_67) + (0.9974e0 * r_67)
      + (0.0247e0 * r_68) : real in
  let r_72 = ((-872.5367e0) * r_69) + ((-10.0972e0) * r_71)
      + ((-131.494e0) * r_70) : real in
  let r_73 = (1.0e0 * r_69) + (0.01e0 * r_70)
      + ((-0.0001e0) * r_72) : real in
  let r_74 = ((-0.0003e0) * r_70) + (0.01e0 * r_71) + (0.9997e0 * r_70)
      + (0.0001e0 * r_72) : real in
  let r_75 = ((-0.0531e0) * r_70) + ((-0.0604e0) * r_71) + (0.9974e0 * r_71)
      + (0.0247e0 * r_72) : real in
  let r_76 = ((-872.5367e0) * r_73) + ((-10.0972e0) * r_75)
      + ((-131.494e0) * r_74) : real in
  let r_77 = (1.0e0 * r_73) + (0.01e0 * r_74)
      + ((-0.0001e0) * r_76) : real in
  let r_78 = ((-0.0003e0) * r_74) + (0.01e0 * r_75) + (0.9997e0 * r_74)
      + (0.0001e0 * r_76) : real in
  let r_79 = ((-0.0531e0) * r_74) + ((-0.0604e0) * r_75) + (0.9974e0 * r_75)
      + (0.0247e0 * r_76) : real in
  let r_80 = ((-872.5367e0) * r_77) + ((-10.0972e0) * r_79)
      + ((-131.494e0) * r_78) : real in
  let r_81 = (1.0e0 * r_77) + (0.01e0 * r_78)
      + ((-0.0001e0) * r_80) : real in
  let r_82 = ((-0.0003e0) * r_78) + (0.01e0 * r_79) + (0.9997e0 * r_78)
      + (0.0001e0 * r_80) : real in
  let r_83 = ((-0.0531e0) * r_78) + ((-0.0604e0) * r_79) + (0.9974e0 * r_79)
      + (0.0247e0 * r_80) : real in
  let r_84 = ((-872.5367e0) * r_81) + ((-10.0972e0) * r_83)
      + ((-131.494e0) * r_82) : real in
  let r_85 = (-0.0001e0) * r_84 : real in
  let r_86 = (1.0e0 * r_81) + (0.01e0 * r_82) + r_85 : real in
  let r_87 = ((-0.0003e0) * r_82) + (0.01e0 * r_83) + (0.9997e0 * r_82)
      + (0.0001e0 * r_84) : real in
  let r_88 = r_85 + (1.0e0 * r_86) + (0.01e0 * r_87) : real in
  is_float32(erraA_0) ->
  is_float32(r_15) ->
  is_float32(r_16) ->
  is_float32(r_17) ->
  is_float32(r_18) ->
  is_float32(r_19) ->
  is_float32(r_20) ->
  is_float32(r_21) ->
  is_float32(r_22) ->
  is_float32(r_23) ->
  is_float32(r_24) ->
  is_float32(r_25) ->
  is_float32(r_26) ->
  is_float32(r_27) ->
  is_float32(r_28) ->
  is_float32(r_29) ->
  is_float32(r_30) ->
  is_float32(r_31) ->
  is_float32(r_32) ->
  is_float32(r_33) ->
  is_float32(r_34) ->
  is_float32(r_35) ->
  is_float32(r_36) ->
  is_float32(r_37) ->
  is_float32(r_38) ->
  is_float32(r_39) ->
  is_float32(r_40) ->
  is_float32(r_41) ->
  is_float32(r_42) ->
  is_float32(r_43) ->
  is_float32(r_44) ->
  is_float32(r_45) ->
  is_float32(r_46) ->
  is_float32(r_47) ->
  is_float32(r_48) ->
  is_float32(r_49) ->
  is_float32(r_50) ->
  is_float32(r_51) ->
  is_float32(r_52) ->
  is_float32(r_53) ->
  is_float32(r_54) ->
  is_float32(r_55) ->
  is_float32(r_56) ->
  is_float32(r_57) ->
  is_float32(r_58) ->
  is_float32(r_59) ->
  is_float32(r_60) ->
  is_float32(r_61) ->
  is_float32(r_62) ->
  is_float32(r_63) ->
  is_float32(r_64) ->
  is_float32(r_65) ->
  is_float32(r_66) ->
  is_float32(r_67) ->
  is_float32(r_68) ->
  is_float32(r_69) ->
  is_float32(r_70) ->
  is_float32(r_71) ->
  is_float32(r_72) ->
  is_float32(r_73) ->
  is_float32(r_74) ->
  is_float32(r_75) ->
  is_float32(r_76) ->
  is_float32(r_77) ->
  is_float32(r_78) ->
  is_float32(r_79) ->
  is_float32(r_80) ->
  is_float32(r_81) ->
  is_float32(r_82) ->
  is_float32(r_83) ->
  is_float32(r_84) ->
  is_float32(r_86) ->
  is_float32(r_87) ->
  is_float32(((-0.0531e0) * r_82) + ((-0.0604e0) * r_83) + (0.9974e0 * r_83)
    + (0.0247e0 * r_84)) ->
  is_float32(r_88) ->
  (r_88 < 36.0)

I would like to delete all lines starting with is_float32. So the final code should be

    (* ---------------------------------------------------------- *)
(* --- Assertion 'A' (file input.c, line 114)             --- *)
(* ---------------------------------------------------------- *)

goal main_assert_A:
  let r_0 = 0.01e0 * 450.0e0 : real in
  let r_1 = 1.0e0 * 50.0e0 : real in
  let r_2 = ((-10.0972e0) * 50.0e0) + ((-131.494e0) * 450.0e0)
      + ((-872.5367e0) * 50.0e0) : real in
  let r_3 = (-0.0001e0) * r_2 : real in
  let r_4 = ((-0.0531e0) * 450.0e0) + ((-0.0604e0) * 50.0e0)
      + (0.9974e0 * 50.0e0) + (0.0247e0 * r_2) : real in
  let r_5 = (-10.0972e0) * r_4 : real in
  let r_6 = ((-0.0003e0) * 450.0e0) + (0.01e0 * 50.0e0)
      + (0.9997e0 * 450.0e0) + (0.0001e0 * r_2) : real in
  let r_7 = (-131.494e0) * r_6 : real in
  let r_8 = 0.01e0 * r_6 : real in
  let r_9 = (-0.0003e0) * r_6 : real in
  let r_10 = 0.01e0 * r_4 : real in
  let r_11 = 0.9997e0 * r_6 : real in
  let r_12 = (-0.0531e0) * r_6 : real in
  let r_13 = (-0.0604e0) * r_4 : real in
  let r_14 = 0.9974e0 * r_4 : real in
  forall erraA_0 : real.
  let r_15 = erraA_0 + r_0 + r_1 + r_3 : real in
  let r_16 = r_5 + r_7 + ((-872.5367e0) * r_15) : real in
  let r_17 = r_8 + (1.0e0 * r_15) + ((-0.0001e0) * r_16) : real in
  let r_18 = r_9 + r_10 + r_11 + (0.0001e0 * r_16) : real in
  let r_19 = r_12 + r_13 + r_14 + (0.0247e0 * r_16) : real in
  let r_20 = ((-872.5367e0) * r_17) + ((-10.0972e0) * r_19)
      + ((-131.494e0) * r_18) : real in
  let r_21 = (1.0e0 * r_17) + (0.01e0 * r_18)
      + ((-0.0001e0) * r_20) : real in
  let r_22 = ((-0.0003e0) * r_18) + (0.01e0 * r_19) + (0.9997e0 * r_18)
      + (0.0001e0 * r_20) : real in
  let r_23 = ((-0.0531e0) * r_18) + ((-0.0604e0) * r_19) + (0.9974e0 * r_19)
      + (0.0247e0 * r_20) : real in
  let r_24 = ((-872.5367e0) * r_21) + ((-10.0972e0) * r_23)
      + ((-131.494e0) * r_22) : real in
  let r_25 = (1.0e0 * r_21) + (0.01e0 * r_22)
      + ((-0.0001e0) * r_24) : real in
  let r_26 = ((-0.0003e0) * r_22) + (0.01e0 * r_23) + (0.9997e0 * r_22)
      + (0.0001e0 * r_24) : real in
  let r_27 = ((-0.0531e0) * r_22) + ((-0.0604e0) * r_23) + (0.9974e0 * r_23)
      + (0.0247e0 * r_24) : real in
  let r_28 = ((-872.5367e0) * r_25) + ((-10.0972e0) * r_27)
      + ((-131.494e0) * r_26) : real in
  let r_29 = (1.0e0 * r_25) + (0.01e0 * r_26)
      + ((-0.0001e0) * r_28) : real in
  let r_30 = ((-0.0003e0) * r_26) + (0.01e0 * r_27) + (0.9997e0 * r_26)
      + (0.0001e0 * r_28) : real in
  let r_31 = ((-0.0531e0) * r_26) + ((-0.0604e0) * r_27) + (0.9974e0 * r_27)
      + (0.0247e0 * r_28) : real in
  let r_32 = ((-872.5367e0) * r_29) + ((-10.0972e0) * r_31)
      + ((-131.494e0) * r_30) : real in
  let r_33 = (1.0e0 * r_29) + (0.01e0 * r_30)
      + ((-0.0001e0) * r_32) : real in
  let r_34 = ((-0.0003e0) * r_30) + (0.01e0 * r_31) + (0.9997e0 * r_30)
      + (0.0001e0 * r_32) : real in
  let r_35 = ((-0.0531e0) * r_30) + ((-0.0604e0) * r_31) + (0.9974e0 * r_31)
      + (0.0247e0 * r_32) : real in
  let r_36 = ((-872.5367e0) * r_33) + ((-10.0972e0) * r_35)
      + ((-131.494e0) * r_34) : real in
  let r_37 = (1.0e0 * r_33) + (0.01e0 * r_34)
      + ((-0.0001e0) * r_36) : real in
  let r_38 = ((-0.0003e0) * r_34) + (0.01e0 * r_35) + (0.9997e0 * r_34)
      + (0.0001e0 * r_36) : real in
  let r_39 = ((-0.0531e0) * r_34) + ((-0.0604e0) * r_35) + (0.9974e0 * r_35)
      + (0.0247e0 * r_36) : real in
  let r_40 = ((-872.5367e0) * r_37) + ((-10.0972e0) * r_39)
      + ((-131.494e0) * r_38) : real in
  let r_41 = (1.0e0 * r_37) + (0.01e0 * r_38)
      + ((-0.0001e0) * r_40) : real in
  let r_42 = ((-0.0003e0) * r_38) + (0.01e0 * r_39) + (0.9997e0 * r_38)
      + (0.0001e0 * r_40) : real in
  let r_43 = ((-0.0531e0) * r_38) + ((-0.0604e0) * r_39) + (0.9974e0 * r_39)
      + (0.0247e0 * r_40) : real in
  let r_44 = ((-872.5367e0) * r_41) + ((-10.0972e0) * r_43)
      + ((-131.494e0) * r_42) : real in
  let r_45 = (1.0e0 * r_41) + (0.01e0 * r_42)
      + ((-0.0001e0) * r_44) : real in
  let r_46 = ((-0.0003e0) * r_42) + (0.01e0 * r_43) + (0.9997e0 * r_42)
      + (0.0001e0 * r_44) : real in
  let r_47 = ((-0.0531e0) * r_42) + ((-0.0604e0) * r_43) + (0.9974e0 * r_43)
      + (0.0247e0 * r_44) : real in
  let r_48 = ((-872.5367e0) * r_45) + ((-10.0972e0) * r_47)
      + ((-131.494e0) * r_46) : real in
  let r_49 = (1.0e0 * r_45) + (0.01e0 * r_46)
      + ((-0.0001e0) * r_48) : real in
  let r_50 = ((-0.0003e0) * r_46) + (0.01e0 * r_47) + (0.9997e0 * r_46)
      + (0.0001e0 * r_48) : real in
  let r_51 = ((-0.0531e0) * r_46) + ((-0.0604e0) * r_47) + (0.9974e0 * r_47)
      + (0.0247e0 * r_48) : real in
  let r_52 = ((-872.5367e0) * r_49) + ((-10.0972e0) * r_51)
      + ((-131.494e0) * r_50) : real in
  let r_53 = (1.0e0 * r_49) + (0.01e0 * r_50)
      + ((-0.0001e0) * r_52) : real in
  let r_54 = ((-0.0003e0) * r_50) + (0.01e0 * r_51) + (0.9997e0 * r_50)
      + (0.0001e0 * r_52) : real in
  let r_55 = ((-0.0531e0) * r_50) + ((-0.0604e0) * r_51) + (0.9974e0 * r_51)
      + (0.0247e0 * r_52) : real in
  let r_56 = ((-872.5367e0) * r_53) + ((-10.0972e0) * r_55)
      + ((-131.494e0) * r_54) : real in
  let r_57 = (1.0e0 * r_53) + (0.01e0 * r_54)
      + ((-0.0001e0) * r_56) : real in
  let r_58 = ((-0.0003e0) * r_54) + (0.01e0 * r_55) + (0.9997e0 * r_54)
      + (0.0001e0 * r_56) : real in
  let r_59 = ((-0.0531e0) * r_54) + ((-0.0604e0) * r_55) + (0.9974e0 * r_55)
      + (0.0247e0 * r_56) : real in
  let r_60 = ((-872.5367e0) * r_57) + ((-10.0972e0) * r_59)
      + ((-131.494e0) * r_58) : real in
  let r_61 = (1.0e0 * r_57) + (0.01e0 * r_58)
      + ((-0.0001e0) * r_60) : real in
  let r_62 = ((-0.0003e0) * r_58) + (0.01e0 * r_59) + (0.9997e0 * r_58)
      + (0.0001e0 * r_60) : real in
  let r_63 = ((-0.0531e0) * r_58) + ((-0.0604e0) * r_59) + (0.9974e0 * r_59)
      + (0.0247e0 * r_60) : real in
  let r_64 = ((-872.5367e0) * r_61) + ((-10.0972e0) * r_63)
      + ((-131.494e0) * r_62) : real in
  let r_65 = (1.0e0 * r_61) + (0.01e0 * r_62)
      + ((-0.0001e0) * r_64) : real in
  let r_66 = ((-0.0003e0) * r_62) + (0.01e0 * r_63) + (0.9997e0 * r_62)
      + (0.0001e0 * r_64) : real in
  let r_67 = ((-0.0531e0) * r_62) + ((-0.0604e0) * r_63) + (0.9974e0 * r_63)
      + (0.0247e0 * r_64) : real in
  let r_68 = ((-872.5367e0) * r_65) + ((-10.0972e0) * r_67)
      + ((-131.494e0) * r_66) : real in
  let r_69 = (1.0e0 * r_65) + (0.01e0 * r_66)
      + ((-0.0001e0) * r_68) : real in
  let r_70 = ((-0.0003e0) * r_66) + (0.01e0 * r_67) + (0.9997e0 * r_66)
      + (0.0001e0 * r_68) : real in
  let r_71 = ((-0.0531e0) * r_66) + ((-0.0604e0) * r_67) + (0.9974e0 * r_67)
      + (0.0247e0 * r_68) : real in
  let r_72 = ((-872.5367e0) * r_69) + ((-10.0972e0) * r_71)
      + ((-131.494e0) * r_70) : real in
  let r_73 = (1.0e0 * r_69) + (0.01e0 * r_70)
      + ((-0.0001e0) * r_72) : real in
  let r_74 = ((-0.0003e0) * r_70) + (0.01e0 * r_71) + (0.9997e0 * r_70)
      + (0.0001e0 * r_72) : real in
  let r_75 = ((-0.0531e0) * r_70) + ((-0.0604e0) * r_71) + (0.9974e0 * r_71)
      + (0.0247e0 * r_72) : real in
  let r_76 = ((-872.5367e0) * r_73) + ((-10.0972e0) * r_75)
      + ((-131.494e0) * r_74) : real in
  let r_77 = (1.0e0 * r_73) + (0.01e0 * r_74)
      + ((-0.0001e0) * r_76) : real in
  let r_78 = ((-0.0003e0) * r_74) + (0.01e0 * r_75) + (0.9997e0 * r_74)
      + (0.0001e0 * r_76) : real in
  let r_79 = ((-0.0531e0) * r_74) + ((-0.0604e0) * r_75) + (0.9974e0 * r_75)
      + (0.0247e0 * r_76) : real in
  let r_80 = ((-872.5367e0) * r_77) + ((-10.0972e0) * r_79)
      + ((-131.494e0) * r_78) : real in
  let r_81 = (1.0e0 * r_77) + (0.01e0 * r_78)
      + ((-0.0001e0) * r_80) : real in
  let r_82 = ((-0.0003e0) * r_78) + (0.01e0 * r_79) + (0.9997e0 * r_78)
      + (0.0001e0 * r_80) : real in
  let r_83 = ((-0.0531e0) * r_78) + ((-0.0604e0) * r_79) + (0.9974e0 * r_79)
      + (0.0247e0 * r_80) : real in
  let r_84 = ((-872.5367e0) * r_81) + ((-10.0972e0) * r_83)
      + ((-131.494e0) * r_82) : real in
  let r_85 = (-0.0001e0) * r_84 : real in
  let r_86 = (1.0e0 * r_81) + (0.01e0 * r_82) + r_85 : real in
  let r_87 = ((-0.0003e0) * r_82) + (0.01e0 * r_83) + (0.9997e0 * r_82)
      + (0.0001e0 * r_84) : real in
  let r_88 = r_85 + (1.0e0 * r_86) + (0.01e0 * r_87) : real in
  (r_88 < 36.0)

My problem is similar to sed delete multiple lines. But I could not understand that solution and apply to my problem.

Upvotes: 1

Views: 133

Answers (4)

sat
sat

Reputation: 14949

You can try this sed:

sed '/^abcd/{:loop; /->$/d; N; b loop}' file

Test:

$ cat file
let r_88 = r_85 + (1.0e0 * r_86) + (0.01e0 * r_87) : real in
is_float32(erraA_0) ->
is_float32(((-0.0531e0) * r_82) + ((-0.0604e0) * r_83) + (0.9974e0 * r_83)
+ (0.0247e0 * r_84)) ->
(r_88 < 36.0)

$ sed '/^is_float32/{:loop; /->$/d; N; b loop}' file
let r_88 = r_85 + (1.0e0 * r_86) + (0.01e0 * r_87) : real in
(r_88 < 36.0)

Upvotes: 3

anubhava
anubhava

Reputation: 784898

This awk can do the job:

awk '/^is_float32/{d=1} !d; /->[[:space:]]*$/{d=0}' file

let r_88 = r_85 + (1.0e0 * r_86) + (0.01e0 * r_87) : real in
(r_88 < 36.0)

This awk sets a flag d when it encounters is_float32 at start and resets it when it finds -> and 0 or more white-spaces at the end of a line. It prints lines only when flag is not set i.e. using !d check.

Upvotes: 3

hek2mgl
hek2mgl

Reputation: 157947

I would play with awk's record separator:

awk '!/^abcd/' RS='->\n' ORS='->\n' file

The above script splits the input into records separated by -> + newline. If those records doesn't start with abcd they will get printed.

Output:

general code segment 1 ->
general code segment 2 ->

It looks like your file has Windows style line endings, in that case you need to use:

awk '!/^abcd/' RS='->\r\n' ORS='->\r\n' file

Upvotes: 0

P....
P....

Reputation: 18351

awk -v RS='->' '{$1=$1;} !/^abcd/' del
general code segment 1
general code segment 2

Upvotes: 0

Related Questions