src/HOL/SMT_Examples/boogie.ML
changeset 67405 e9ab4ad7bd15
parent 67399 eab6ce8368fa
child 69065 440f7a575760
equal deleted inserted replaced
67404:e128ab544996 67405:e9ab4ad7bd15
   186 
   186 
   187 fun parse_func cx arity n ls =
   187 fun parse_func cx arity n ls =
   188   let
   188   let
   189     val ((Ts, atts), ls') =
   189     val ((Ts, atts), ls') =
   190       ls |> repeat (parse_type cx) arity ||>> repeat (parse_attr cx) n
   190       ls |> repeat (parse_type cx) arity ||>> repeat (parse_attr cx) n
   191     val unique = member (=) atts "unique"
   191     val unique = member (op =) atts "unique"
   192   in ((split_last Ts, unique), ls') end
   192   in ((split_last Ts, unique), ls') end
   193 
   193 
   194 fun parse_decl (("type-decl" :: name :: _) :: ls) cx = (ls, add_type name cx)
   194 fun parse_decl (("type-decl" :: name :: _) :: ls) cx = (ls, add_type name cx)
   195   | parse_decl (["fun-decl", name, arity, n] :: ls) cx =
   195   | parse_decl (["fun-decl", name, arity, n] :: ls) cx =
   196       let val (((Ts, T), unique), ls') = parse_func cx arity n ls
   196       let val (((Ts, T), unique), ls') = parse_func cx arity n ls