src/Pure/Thy/thy_output.ML
changeset 67360 fbc31dea36fa
parent 67359 fed0e220be45
child 67372 820f3cbae27a
equal deleted inserted replaced
67359:fed0e220be45 67360:fbc31dea36fa
   312 
   312 
   313 
   313 
   314 (* presentation tokens *)
   314 (* presentation tokens *)
   315 
   315 
   316 datatype token =
   316 datatype token =
   317     No_Token
   317     Ignore_Token
   318   | Basic_Token of Token.T
   318   | Basic_Token of Token.T
   319   | Markup_Token of string * Input.source
   319   | Markup_Token of string * Input.source
   320   | Markup_Env_Token of string * Input.source
   320   | Markup_Env_Token of string * Input.source
   321   | Raw_Token of Input.source;
   321   | Raw_Token of Input.source;
   322 
   322 
   328 val blank_token = basic_token Token.is_blank;
   328 val blank_token = basic_token Token.is_blank;
   329 val newline_token = basic_token Token.is_newline;
   329 val newline_token = basic_token Token.is_newline;
   330 
   330 
   331 fun present_token state tok =
   331 fun present_token state tok =
   332   (case tok of
   332   (case tok of
   333     No_Token => []
   333     Ignore_Token => []
   334   | Basic_Token tok => output_token state tok
   334   | Basic_Token tok => output_token state tok
   335   | Markup_Token (cmd, source) =>
   335   | Markup_Token (cmd, source) =>
   336       Latex.enclose_body ("%\n\\isamarkup" ^ cmd ^ "{") "%\n}\n"
   336       Latex.enclose_body ("%\n\\isamarkup" ^ cmd ^ "{") "%\n}\n"
   337         (output_text state {markdown = false} source)
   337         (output_text state {markdown = false} source)
   338   | Markup_Env_Token (cmd, source) =>
   338   | Markup_Env_Token (cmd, source) =>
   482 
   482 
   483 
   483 
   484     (* tokens *)
   484     (* tokens *)
   485 
   485 
   486     val ignored = Scan.state --| ignore
   486     val ignored = Scan.state --| ignore
   487       >> (fn d => (NONE, (No_Token, ("", d))));
   487       >> (fn d => (NONE, (Ignore_Token, ("", d))));
   488 
   488 
   489     fun markup pred mk flag = Scan.peek (fn d =>
   489     fun markup pred mk flag = Scan.peek (fn d =>
   490       improper |--
   490       improper |--
   491         Parse.position (Scan.one (fn tok =>
   491         Parse.position (Scan.one (fn tok =>
   492           Token.is_command tok andalso pred keywords (Token.content_of tok))) --
   492           Token.is_command tok andalso pred keywords (Token.content_of tok))) --