src/Pure/Thy/thy_header.scala
changeset 43646 598b2c6ce13f
parent 43611 21a57a0c5f25
child 43648 e32de528b5ef
equal deleted inserted replaced
43645:ac886d096c11 43646:598b2c6ce13f
     7 package isabelle
     7 package isabelle
     8 
     8 
     9 
     9 
    10 import scala.annotation.tailrec
    10 import scala.annotation.tailrec
    11 import scala.collection.mutable
    11 import scala.collection.mutable
    12 import scala.util.parsing.input.Reader
    12 import scala.util.parsing.input.{Reader, CharSequenceReader}
    13 import scala.util.matching.Regex
    13 import scala.util.matching.Regex
    14 
    14 
    15 import java.io.File
    15 import java.io.File
    16 
    16 
    17 
    17 
    97       case Success(result, _) => result
    97       case Success(result, _) => result
    98       case bad => error(bad.toString)
    98       case bad => error(bad.toString)
    99     }
    99     }
   100   }
   100   }
   101 
   101 
       
   102   def read(source: CharSequence): Header =
       
   103     read(new CharSequenceReader(source))
       
   104 
   102   def read(file: File): Header =
   105   def read(file: File): Header =
   103   {
   106   {
   104     val reader = Scan.byte_reader(file)
   107     val reader = Scan.byte_reader(file)
   105     try { read(reader).decode_permissive_utf8 }
   108     try { read(reader).decode_permissive_utf8 }
   106     finally { reader.close }
   109     finally { reader.close }