src/Pure/Isar/parse.ML
changeset 59029 c907cbe36713
parent 58908 58bedbc18915
child 59064 a8bcb5a446c8
equal deleted inserted replaced
59028:df7476e79558 59029:c907cbe36713
    12   val triple1: ('a * 'b) * 'c -> 'a * 'b * 'c
    12   val triple1: ('a * 'b) * 'c -> 'a * 'b * 'c
    13   val triple2: 'a * ('b * 'c) -> 'a * 'b * 'c
    13   val triple2: 'a * ('b * 'c) -> 'a * 'b * 'c
    14   val triple_swap: ('a * 'b) * 'c -> ('a * 'c) * 'b
    14   val triple_swap: ('a * 'b) * 'c -> ('a * 'c) * 'b
    15   val not_eof: Token.T parser
    15   val not_eof: Token.T parser
    16   val token: 'a parser -> Token.T parser
    16   val token: 'a parser -> Token.T parser
       
    17   val range: 'a parser -> ('a * Position.range) parser
    17   val position: 'a parser -> ('a * Position.T) parser
    18   val position: 'a parser -> ('a * Position.T) parser
    18   val source_position: 'a parser -> Symbol_Pos.source parser
    19   val source_position: 'a parser -> Symbol_Pos.source parser
    19   val inner_syntax: 'a parser -> string parser
    20   val inner_syntax: 'a parser -> string parser
    20   val command_: string parser
    21   val command_: string parser
    21   val keyword: string parser
    22   val keyword: string parser
   170 
   171 
   171 val not_eof = RESET_VALUE (Scan.one Token.not_eof);
   172 val not_eof = RESET_VALUE (Scan.one Token.not_eof);
   172 
   173 
   173 fun token atom = Scan.ahead not_eof --| atom;
   174 fun token atom = Scan.ahead not_eof --| atom;
   174 
   175 
       
   176 fun range scan = (Scan.ahead not_eof >> (Token.range_of o single)) -- scan >> Library.swap;
   175 fun position scan = (Scan.ahead not_eof >> Token.pos_of) -- scan >> Library.swap;
   177 fun position scan = (Scan.ahead not_eof >> Token.pos_of) -- scan >> Library.swap;
   176 fun source_position atom = Scan.ahead atom |-- not_eof >> Token.source_position_of;
   178 fun source_position atom = Scan.ahead atom |-- not_eof >> Token.source_position_of;
   177 fun inner_syntax atom = Scan.ahead atom |-- not_eof >> Token.inner_syntax_of;
   179 fun inner_syntax atom = Scan.ahead atom |-- not_eof >> Token.inner_syntax_of;
   178 
   180 
   179 fun kind k =
   181 fun kind k =