src/Pure/General/symbol.scala
changeset 72744 0017eb17ac1c
parent 71649 2acdbb6ee521
child 72866 1d21b4c8023d
equal deleted inserted replaced
72743:bc82fc605424 72744:0017eb17ac1c
   212     sealed abstract class Name
   212     sealed abstract class Name
   213     case object Default extends Name
   213     case object Default extends Name
   214     case class Id(id: Document_ID.Generic) extends Name
   214     case class Id(id: Document_ID.Generic) extends Name
   215     case class File(name: String) extends Name
   215     case class File(name: String) extends Name
   216 
   216 
   217     val encode_name: XML.Encode.T[Name] =
       
   218     {
       
   219       import XML.Encode._
       
   220       variant(List(
       
   221         { case Default => (Nil, Nil) },
       
   222         { case Id(a) => (List(long_atom(a)), Nil) },
       
   223         { case File(a) => (List(a), Nil) }))
       
   224     }
       
   225 
       
   226     val decode_name: XML.Decode.T[Name] =
       
   227     {
       
   228       import XML.Decode._
       
   229       variant(List(
       
   230         { case (Nil, Nil) => Default },
       
   231         { case (List(a), Nil) => Id(long_atom(a)) },
       
   232         { case (List(a), Nil) => File(a) }))
       
   233     }
       
   234 
       
   235     def apply(text: CharSequence): Text_Chunk =
   217     def apply(text: CharSequence): Text_Chunk =
   236       new Text_Chunk(Text.Range(0, text.length), Index(text))
   218       new Text_Chunk(Text.Range(0, text.length), Index(text))
   237   }
   219   }
   238 
   220 
   239   final class Text_Chunk private(val range: Text.Range, private val index: Index)
   221   final class Text_Chunk private(val range: Text.Range, private val index: Index)