src/Pure/Isar/outer_syntax.ML
changeset 27614 f38c25d106a7
parent 27575 e540ad3fb50a
child 27720 c8a462f1f4a2
equal deleted inserted replaced
27613:0e03b957c649 27614:f38c25d106a7
    22   val local_theory_to_proof: string -> string -> OuterKeyword.T ->
    22   val local_theory_to_proof: string -> string -> OuterKeyword.T ->
    23     (OuterParse.token list -> (local_theory -> Proof.state) * OuterLex.token list) -> unit
    23     (OuterParse.token list -> (local_theory -> Proof.state) * OuterLex.token list) -> unit
    24   val print_outer_syntax: unit -> unit
    24   val print_outer_syntax: unit -> unit
    25   val scan: string -> OuterLex.token list
    25   val scan: string -> OuterLex.token list
    26   val parse: Position.T -> string -> Toplevel.transition list
    26   val parse: Position.T -> string -> Toplevel.transition list
       
    27   val prepare_command: Markup.property list -> string * Position.T -> Toplevel.transition
    27   val process_file: Path.T -> theory -> theory
    28   val process_file: Path.T -> theory -> theory
    28   type isar
    29   type isar
    29   val isar: bool -> isar
    30   val isar: bool -> isar
    30   val load_thy: Path.T -> string -> Position.T -> string list -> bool -> unit
    31   val load_thy: Path.T -> string -> Position.T -> string list -> bool -> unit
    31 end;
    32 end;
   193   |> Symbol.source false
   194   |> Symbol.source false
   194   |> T.source (SOME false) OuterKeyword.get_lexicons pos
   195   |> T.source (SOME false) OuterKeyword.get_lexicons pos
   195   |> toplevel_source false NONE get_parser
   196   |> toplevel_source false NONE get_parser
   196   |> Source.exhaust;
   197   |> Source.exhaust;
   197 
   198 
       
   199 fun prepare_command props (str, pos) =
       
   200   let val pos' = Position.of_properties (props |> Position.default_properties pos) in
       
   201     (case parse pos' str of
       
   202       [transition] => transition
       
   203     | _ => error "exactly one command expected")
       
   204   end;
       
   205 
   198 
   206 
   199 (* process file *)
   207 (* process file *)
   200 
   208 
   201 fun process_file path thy =
   209 fun process_file path thy =
   202   let
   210   let