src/Pure/Isar/args.ML
changeset 69349 7cef9e386ffe
parent 63120 629a4c5e953e
child 74563 042041c0ebeb
equal deleted inserted replaced
69348:f0aef5e337a2 69349:7cef9e386ffe
    22   val bracks: 'a parser -> 'a parser
    22   val bracks: 'a parser -> 'a parser
    23   val mode: string -> bool parser
    23   val mode: string -> bool parser
    24   val maybe: 'a parser -> 'a option parser
    24   val maybe: 'a parser -> 'a option parser
    25   val name_token: Token.T parser
    25   val name_token: Token.T parser
    26   val name: string parser
    26   val name: string parser
       
    27   val name_position: (string * Position.T) parser
    27   val cartouche_inner_syntax: string parser
    28   val cartouche_inner_syntax: string parser
    28   val cartouche_input: Input.source parser
    29   val cartouche_input: Input.source parser
    29   val text_token: Token.T parser
    30   val text_token: Token.T parser
    30   val embedded_token: Token.T parser
    31   val embedded_token: Token.T parser
    31   val embedded_inner_syntax: string parser
    32   val embedded_inner_syntax: string parser
    32   val embedded_input: Input.source parser
    33   val embedded_input: Input.source parser
    33   val embedded: string parser
    34   val embedded: string parser
       
    35   val embedded_position: (string * Position.T) parser
    34   val text_input: Input.source parser
    36   val text_input: Input.source parser
    35   val text: string parser
    37   val text: string parser
    36   val binding: binding parser
    38   val binding: binding parser
    37   val alt_name: string parser
    39   val alt_name: string parser
    38   val liberal_name: string parser
    40   val liberal_name: string parser
   105 fun mode s = Scan.optional (parens ($$$ s) >> K true) false;
   107 fun mode s = Scan.optional (parens ($$$ s) >> K true) false;
   106 fun maybe scan = $$$ "_" >> K NONE || scan >> SOME;
   108 fun maybe scan = $$$ "_" >> K NONE || scan >> SOME;
   107 
   109 
   108 val name_token = ident || string;
   110 val name_token = ident || string;
   109 val name = name_token >> Token.content_of;
   111 val name = name_token >> Token.content_of;
       
   112 val name_position = name_token >> (Input.source_content o Token.input_of);
   110 
   113 
   111 val cartouche = Parse.token Parse.cartouche;
   114 val cartouche = Parse.token Parse.cartouche;
   112 val cartouche_inner_syntax = cartouche >> Token.inner_syntax_of;
   115 val cartouche_inner_syntax = cartouche >> Token.inner_syntax_of;
   113 val cartouche_input = cartouche >> Token.input_of;
   116 val cartouche_input = cartouche >> Token.input_of;
   114 
   117 
   115 val embedded_token = ident || string || cartouche;
   118 val embedded_token = ident || string || cartouche;
   116 val embedded_inner_syntax = embedded_token >> Token.inner_syntax_of;
   119 val embedded_inner_syntax = embedded_token >> Token.inner_syntax_of;
   117 val embedded_input = embedded_token >> Token.input_of;
   120 val embedded_input = embedded_token >> Token.input_of;
   118 val embedded = embedded_token >> Token.content_of;
   121 val embedded = embedded_token >> Token.content_of;
       
   122 val embedded_position = embedded_input >> Input.source_content;
   119 
   123 
   120 val text_token = embedded_token || Parse.token Parse.verbatim;
   124 val text_token = embedded_token || Parse.token Parse.verbatim;
   121 val text_input = text_token >> Token.input_of;
   125 val text_input = text_token >> Token.input_of;
   122 val text = text_token >> Token.content_of;
   126 val text = text_token >> Token.content_of;
   123 
   127 
   124 val binding = Parse.position name >> Binding.make;
   128 val binding = Parse.input name >> (Binding.make o Input.source_content);
   125 val alt_name = alt_string >> Token.content_of;
   129 val alt_name = alt_string >> Token.content_of;
   126 val liberal_name = (symbolic >> Token.content_of) || name;
   130 val liberal_name = (symbolic >> Token.content_of) || name;
   127 
   131 
   128 val var =
   132 val var =
   129   (ident >> Token.content_of) :|-- (fn x =>
   133   (ident >> Token.content_of) :|-- (fn x =>