src/Pure/General/long_name.scala
author wenzelm
Tue, 14 Mar 2017 20:17:44 +0100
changeset 65237 f3ba27dfaeca
parent 56800 b904ea8edd73
child 65358 e345e9420109
permissions -rw-r--r--
show user error as on command-line, e.g. relevant for unexpected crashes;

/*  Title:      Pure/General/long_name.scala
    Author:     Makarius

Long names.
*/

package isabelle


object Long_Name
{
  val separator = "."
  val separator_char = '.'

  def is_qualified(name: String): Boolean = name.contains(separator_char)

  def implode(names: List[String]): String = names.mkString(separator)
  def explode(name: String): List[String] = Library.space_explode(separator_char, name)

  def qualify(qual: String, name: String): String =
    if (qual == "" || name == "") name
    else qual + separator + name

  def base_name(name: String): String =
    if (name == "") ""
    else explode(name).last
}