src/Pure/Isar/outer_syntax.ML
changeset 52509 2193d2c7f586
parent 51627 589daaf48dba
child 52510 a4a102237ded
equal deleted inserted replaced
52508:98475be0b1a2 52509:2193d2c7f586
    32   val print_outer_syntax: unit -> unit
    32   val print_outer_syntax: unit -> unit
    33   val scan: Position.T -> string -> Token.T list
    33   val scan: Position.T -> string -> Token.T list
    34   val parse: Position.T -> string -> Toplevel.transition list
    34   val parse: Position.T -> string -> Toplevel.transition list
    35   type isar
    35   type isar
    36   val isar: TextIO.instream -> bool -> isar
    36   val isar: TextIO.instream -> bool -> isar
    37   val span_cmts: Token.T list -> Token.T list
       
    38   val read_span: outer_syntax -> Token.T list -> Toplevel.transition
    37   val read_span: outer_syntax -> Token.T list -> Toplevel.transition
    39 end;
    38 end;
    40 
    39 
    41 structure Outer_Syntax: OUTER_SYNTAX =
    40 structure Outer_Syntax: OUTER_SYNTAX =
    42 struct
    41 struct
   275   |> Symbol.source
   274   |> Symbol.source
   276   |> Token.source {do_recover = SOME true} Keyword.get_lexicons Position.none
   275   |> Token.source {do_recover = SOME true} Keyword.get_lexicons Position.none
   277   |> toplevel_source term (SOME true) lookup_commands_dynamic;
   276   |> toplevel_source term (SOME true) lookup_commands_dynamic;
   278 
   277 
   279 
   278 
   280 (* side-comments *)
       
   281 
       
   282 local
       
   283 
       
   284 fun cmts (t1 :: t2 :: toks) =
       
   285       if Token.keyword_with (fn s => s = "--") t1 then t2 :: cmts toks
       
   286       else cmts (t2 :: toks)
       
   287   | cmts _ = [];
       
   288 
       
   289 in
       
   290 
       
   291 val span_cmts = filter Token.is_proper #> cmts;
       
   292 
       
   293 end;
       
   294 
       
   295 
       
   296 (* read command span -- fail-safe *)
   279 (* read command span -- fail-safe *)
   297 
   280 
   298 fun read_span outer_syntax toks =
   281 fun read_span outer_syntax toks =
   299   let
   282   let
   300     val commands = lookup_commands outer_syntax;
   283     val commands = lookup_commands outer_syntax;