src/Pure/Thy/thy_header.scala
changeset 66918 ec2b50aeb0dd
parent 66713 afba7ffd6492
child 66984 a1d3e5df0c95
equal deleted inserted replaced
66917:fcf84cd6c94f 66918:ec2b50aeb0dd
   187   }
   187   }
   188 
   188 
   189   def read(reader: Reader[Char], start: Token.Pos, strict: Boolean = true): Thy_Header =
   189   def read(reader: Reader[Char], start: Token.Pos, strict: Boolean = true): Thy_Header =
   190   {
   190   {
   191     val (_, tokens0) = read_tokens(reader, true)
   191     val (_, tokens0) = read_tokens(reader, true)
   192     val text =
   192     val text = Scan.reader_decode_utf8(reader, Token.implode(tokens0))
   193       if (reader.isInstanceOf[Scan.Byte_Reader])
       
   194         UTF8.decode_permissive(Token.implode(tokens0))
       
   195       else Token.implode(tokens0)
       
   196 
   193 
   197     val (drop_tokens, tokens) = read_tokens(Scan.char_reader(text), strict)
   194     val (drop_tokens, tokens) = read_tokens(Scan.char_reader(text), strict)
   198     val pos = (start /: drop_tokens)(_.advance(_))
   195     val pos = (start /: drop_tokens)(_.advance(_))
   199 
   196 
   200     parse(commit(header), Token.reader(tokens, pos)) match {
   197     parse(commit(header), Token.reader(tokens, pos)) match {