src/Pure/General/scan.scala
changeset 52616 3ac2878764f9
parent 48914 51560e392e1b
child 52920 4539e4a06339
equal deleted inserted replaced
52610:78a64edf431f 52616:3ac2878764f9
   346     }
   346     }
   347 
   347 
   348     private def other_token(is_command: String => Boolean)
   348     private def other_token(is_command: String => Boolean)
   349       : Parser[Token] =
   349       : Parser[Token] =
   350     {
   350     {
   351       val id = one(Symbol.is_letter) ~ many(Symbol.is_letdig) ^^ { case x ~ y => x + y }
   351       val letdigs1 = many1(Symbol.is_letdig)
       
   352       val sub_sup =
       
   353         one(s =>
       
   354           s == Symbol.sub_decoded || s == "\\<^sub>" ||
       
   355           s == Symbol.isub_decoded || s == "\\<^isub>" ||
       
   356           s == Symbol.sup_decoded || s == "\\<^sup>" ||
       
   357           s == Symbol.isup_decoded || s == "\\<^isup>")
       
   358       val id =
       
   359         one(Symbol.is_letter) ~
       
   360           (rep(letdigs1 | (sub_sup ~ letdigs1 ^^ { case x ~ y => x + y })) ^^ (_.mkString)) ^^
       
   361         { case x ~ y => x + y }
       
   362 
   352       val nat = many1(Symbol.is_digit)
   363       val nat = many1(Symbol.is_digit)
   353       val natdot = nat ~ "." ~ nat ^^ { case x ~ y ~ z => x + y + z }
   364       val natdot = nat ~ "." ~ nat ^^ { case x ~ y ~ z => x + y + z }
   354       val id_nat = id ~ opt("." ~ nat) ^^ { case x ~ Some(y ~ z) => x + y + z case x ~ None => x }
   365       val id_nat = id ~ opt("." ~ nat) ^^ { case x ~ Some(y ~ z) => x + y + z case x ~ None => x }
   355 
   366 
   356       val ident = id ~ rep("." ~> id) ^^
   367       val ident = id ~ rep("." ~> id) ^^