src/Pure/Thy/thy_syntax.ML
changeset 55915 607948c90bf0
parent 55828 42ac3cfb89f6
child 57105 bf5ddf4ec64b
equal deleted inserted replaced
55914:c5b752d549e3 55915:607948c90bf0
    49       Symbol_Pos.explode (text, pos)
    49       Symbol_Pos.explode (text, pos)
    50       |> map_filter (fn (sym, pos) =>
    50       |> map_filter (fn (sym, pos) =>
    51           if Symbol.is_malformed sym
    51           if Symbol.is_malformed sym
    52           then SOME ((pos, Markup.bad), "Malformed symbolic character") else NONE);
    52           then SOME ((pos, Markup.bad), "Malformed symbolic character") else NONE);
    53     val is_malformed = Token.is_error tok orelse not (null malformed_symbols);
    53     val is_malformed = Token.is_error tok orelse not (null malformed_symbols);
    54     val (markup, msg) = Token.markup tok;
    54     val reports = Token.report tok :: Token.completion_report tok @ malformed_symbols;
    55     val reports = ((Token.pos_of tok, markup), msg) :: malformed_symbols;
       
    56   in (is_malformed, reports) end;
    55   in (is_malformed, reports) end;
    57 
    56 
    58 in
    57 in
    59 
    58 
    60 fun reports_of_tokens toks =
    59 fun reports_of_tokens toks =
    61   let val results = map reports_of_token toks
    60   let val results = map reports_of_token toks
    62   in (exists fst results, maps snd results) end;
    61   in (exists fst results, maps snd results) end;
    63 
    62 
    64 fun present_token tok =
    63 fun present_token tok =
    65   Markup.enclose (fst (Token.markup tok)) (Output.output (Token.unparse tok));
    64   Markup.enclose (Token.markup tok) (Output.output (Token.unparse tok));
    66 
    65 
    67 end;
    66 end;
    68 
    67 
    69 
    68 
    70 
    69