object Elements { def apply(elems: Set[String]): Elements = new Elements(elems) def apply(elems: String*): Elements = apply(Set(elems: _*)) val empty: Elements = apply() val full: Elements = new Elements(Set.empty) { overridedef apply(elem: String): Boolean = true overridedef toString: String = "Elements.full"
}
}
sealedclass Elements private[Markup](privateval rep: Set[String]) { def apply(elem: String): Boolean = rep.contains(elem) def + (elem: String): Elements = new Elements(rep + elem) def ++ (elems: Elements): Elements = new Elements(rep ++ elems.rep) def - (elem: String): Elements = new Elements(rep - elem) def -- (elems: Elements): Elements = new Elements(rep -- elems.rep) overridedef toString: String = rep.mkString("Elements(", ",", ")")
}
/* properties */
val NAME = "name" val Name = new Properties.String(NAME)
val XNAME = "xname" val XName = new Properties.String(XNAME)
val KIND = "kind" val Kind = new Properties.String(KIND)
val CONTENT = "content" val Content = new Properties.String(CONTENT)
val SERIAL = "serial" val Serial = new Properties.Long(SERIAL)
val INSTANCE = "instance" val Instance = new Properties.String(INSTANCE)
/* basic markup */
val Empty: Markup = Markup("", Nil) val Broken: Markup = Markup("broken", Nil)
val META_TITLE = "meta_title" val META_CREATOR = "meta_creator" val META_CONTRIBUTOR = "meta_contributor" val META_DATE = "meta_date" val META_LICENSE = "meta_license" val META_DESCRIPTION = "meta_description"
/* formal entities */
val BINDING = "binding" val ENTITY = "entity"
object Entity { valDef = new Markup_Long(ENTITY, "def") val Ref = new Markup_Long(ENTITY, "ref")
def unapply(markup: Markup): Option[(String, String)] =
markup match { case Markup(ENTITY, props) => Some((Kind.get(props), Name.get(props))) case _ => None
}
}
/* completion */
val COMPLETION = "completion" val NO_COMPLETION = "no_completion"
val UPDATE = "update"
/* position */
val LINE = "line" val END_LINE = "line" val OFFSET = "offset" val END_OFFSET = "end_offset" val LABEL = "label" val FILE = "file" val ID = "id"
val DEF_LINE = "def_line" val DEF_OFFSET = "def_offset" val DEF_END_OFFSET = "def_end_offset" val DEF_LABEL = "def_label" val DEF_FILE = "def_file" val DEF_ID = "def_id"
def def_name(a: String): String = def_names.getOrElse(a, a + "def_")
/* notation */
val NOTATION = "notation" object Notation { def unapply(markup: Markup): Option[(String, String)] =
markup match { case Markup(NOTATION, props) => Some((Kind.get(props), Name.get(props))) case _ => None
}
}
/* expression */
val EXPRESSION = "expression" object Expression { def unapply(markup: Markup): Option[(String, String)] =
markup match { case Markup(EXPRESSION, props) => Some((Kind.get(props), Name.get(props))) case _ => None
}
val item: Markup = Markup(EXPRESSION, Kind(ITEM))
}
/* citation */
val CITATION = "citation" val Citation = new Markup_String(CITATION, NAME)
/* embedded languages */
val Symbols = new Properties.Boolean("symbols") val Antiquotes = new Properties.Boolean("antiquotes") val Delimited = new Properties.Boolean("delimited")
val LANGUAGE = "language" object Language { val DOCUMENT = "document" val ANTIQUOTATION = "antiquotation" val ML = "ML" val SML = "SML" val PATH = "path" val UNKNOWN = "unknown"
def apply(name: String, symbols: Boolean, antiquotes: Boolean, delimited: Boolean): Language = new Language(name, symbols, antiquotes, delimited)
val outer: Language = apply("", true, false, false)
def unapply(markup: Markup): Option[Language] =
markup match { case Markup(LANGUAGE, props) =>
(props, props, props, props) match { case (Name(name), Symbols(symbols), Antiquotes(antiquotes), Delimited(delimited)) =>
Some(apply(name, symbols, antiquotes, delimited)) case _ => None
} case _ => None
}
} class Language private( val name: String, val symbols: Boolean, val antiquotes: Boolean, val delimited: Boolean
) { overridedef toString: String = name
def is_document: Boolean = name == Language.DOCUMENT def is_antiquotation: Boolean = name == Language.ANTIQUOTATION def is_path: Boolean = name == Language.PATH
def description: String = Word.informal(name)
}
/* external resources */
val PATH = "path" val Path = new Markup_String(PATH, NAME)
val EXPORT_PATH = "export_path" val Export_Path = new Markup_String(EXPORT_PATH, NAME)
val URL = "url" val Url = new Markup_String(URL, NAME)
val DOC = "doc" val Doc = new Markup_String(DOC, NAME)
/* pretty printing */
val Consistent = new Properties.Boolean("consistent") val Indent = new Properties.Int("indent") val Width = new Properties.Int("width")
object Block { val name = "block" def apply(consistent: Boolean = false, indent: Int = 0): Markup =
Markup(name,
(if (consistent) Consistent(consistent) else Nil) :::
(if (indent != 0) Indent(indent) else Nil)) def unapply(markup: Markup): Option[(Boolean, Int)] = if (markup.name == name) { val consistent = Consistent.get(markup.properties) val indent = Indent.get(markup.properties)
Some((consistent, indent))
} else None
}
object Break { val name = "break" def apply(width: Int = 0, indent: Int = 0): Markup =
Markup(name,
(if (width != 0) Width(width) else Nil) :::
(if (indent != 0) Indent(indent) else Nil)) def unapply(markup: Markup): Option[(Int, Int)] = if (markup.name == name) { val width = Width.get(markup.properties) val indent = Indent.get(markup.properties)
Some((width, indent))
} else None
}
val ITEM = "item" val BULLET = "bullet"
val SEPARATOR = "separator"
/* text properties */
val WORDS = "words"
val HIDDEN = "hidden"
val DELETE = "delete"
/* misc entities */
val SESSION = "session"
val THEORY = "theory" valCLASS = "class" val LOCALE = "locale" val BUNDLE = "bundle" val TYPE_NAME = "type_name" val CONSTANT = "constant" val AXIOM = "axiom" val FACT = "fact" val ORACLE = "oracle"
val FIXED = "fixed" valCASE = "case" val DYNAMIC_FACT = "dynamic_fact" val LITERAL_FACT = "literal_fact"
val ATTRIBUTE = "attribute" val METHOD = "method" val METHOD_MODIFIER = "method_modifier"
/* inner syntax */
val TCLASS = "tclass" val TCONST = "tconst" val TFREE = "tfree" val TVAR = "tvar" val CONST = "const" val FREE = "free" val SKOLEM = "skolem" val BOUND = "bound" valVAR = "var" val NUMERAL = "numeral" val LITERAL = "literal" val DELIMITER = "delimiter" val INNER_STRING = "inner_string" val INNER_CARTOUCHE = "inner_cartouche"
val TOKEN_RANGE = "token_range"
val SORTING = "sorting" val TYPING = "typing" val CLASS_PARAMETER = "class_parameter"
/* antiquotations */
val ANTIQUOTED = "antiquoted" val ANTIQUOTE = "antiquote"
val ML_ANTIQUOTATION = "ML_antiquotation" val DOCUMENT_ANTIQUOTATION = "document_antiquotation" val DOCUMENT_ANTIQUOTATION_OPTION = "document_antiquotation_option"
/* document text */
val RAW_TEXT = "raw_text" val PLAIN_TEXT = "plain_text"
val PARAGRAPH = "paragraph" val TEXT_FOLD = "text_fold"
object Document_Tag extends Markup_String("document_tag", NAME) { val IMPORTANT = "important" val UNIMPORTANT = "unimportant"
}
/* HTML */
val RAW_HTML = "raw_html"
/* LaTeX */
val Document_Latex = new Markup_Elem("document_latex")
val Latex_Output = new Markup_Elem("latex_output") val Latex_Macro0 = new Markup_String("latex_macro0", NAME) val Latex_Macro = new Markup_String("latex_macro", NAME) val Latex_Environment = new Markup_String("latex_environment", NAME) val Latex_Heading = new Markup_String("latex_heading", KIND) val Latex_Body = new Markup_String("latex_body", KIND) val Latex_Delim = new Markup_String("latex_delim", NAME) val Latex_Tag = new Markup_String("latex_tag", NAME)
val Latex_Cite = new Markup_Elem("latex_cite") val Citations = new Properties.String("citations")
val Latex_Index_Item = new Markup_Elem("latex_index_item") val Latex_Index_Entry = new Markup_String("latex_index_entry", KIND)
val Optional_Argument = new Properties.String("optional_argument")
/* Markdown document structure */
val MARKDOWN_PARAGRAPH = "markdown_paragraph" val MARKDOWN_ITEM = "markdown_item" val Markdown_Bullet = new Markup_Int("markdown_bullet", "depth") val Markdown_List = new Markup_String("markdown_list", "kind")
val ITEMIZE = "itemize" val ENUMERATE = "enumerate" val DESCRIPTION = "description"
/* ML */
val ML_KEYWORD1 = "ML_keyword1" val ML_KEYWORD2 = "ML_keyword2" val ML_KEYWORD3 = "ML_keyword3" val ML_DELIMITER = "ML_delimiter" val ML_TVAR = "ML_tvar" val ML_NUMERAL = "ML_numeral" val ML_CHAR = "ML_char" val ML_STRING = "ML_string" val ML_COMMENT = "ML_comment"
val ML_DEF = "ML_def" val ML_OPEN = "ML_open" val ML_STRUCTURE = "ML_structure" val ML_TYPING = "ML_typing"
val ML_BREAKPOINT = "ML_breakpoint"
/* outer syntax */
val COMMAND_SPAN = "command_span" object Command_Span { val Is_Begin = new Properties.Boolean("is_begin")
val COMMAND = "command" val KEYWORD = "keyword" val KEYWORD1 = "keyword1" val KEYWORD2 = "keyword2" val KEYWORD3 = "keyword3" val QUASI_KEYWORD = "quasi_keyword" val IMPROPER = "improper" val OPERATOR = "operator" val STRING = "string" val ALT_STRING = "alt_string" val CARTOUCHE = "cartouche" val COMMENT = "comment"
val LOAD_COMMAND = "load_command"
/* comments */
val COMMENT1 = "comment1" val COMMENT2 = "comment2" val COMMENT3 = "comment3"
def unapply(props: Properties.T): Option[Process_Result] =
props match { case Return_Code(rc) =>
Some(isabelle.Process_Result(rc, timing = Timing_Properties.get(props))) case _ => None
}
}
/* command indentation */
val Command_Indent = new Markup_Int("command_indent", Indent.name)
/* goals */
val GOAL = "goal" val SUBGOAL = "subgoal"
/* command status */
val TASK = "task"
val ACCEPTED = "accepted" val FORKED = "forked" val JOINED = "joined" val RUNNING = "running" val FINISHED = "finished" val FAILED = "failed" val CANCELED = "canceled" val INITIALIZED = "initialized" val FINALIZED = "finalized" val CONSOLIDATING = "consolidating" val CONSOLIDATED = "consolidated"
val command_running: Properties.Entry = (COMMAND, RUNNING)
/* interactive documents */
val VERSION = "version" val ASSIGN = "assign"
/* prover process */
val PROVER_COMMAND = "prover_command" val PROVER_ARG = "prover_arg"
/* messages */
val Urgent = new Properties.Boolean("urgent")
val INIT = "init" val STATUS = "status" val REPORT = "report" val RESULT = "result" val WRITELN = "writeln" val STATE = "state" val INFORMATION = "information" val TRACING = "tracing" val WARNING = "warning" val LEGACY = "legacy" val ERROR = "error" val NODES_STATUS = "nodes_status" val PROTOCOL = "protocol" val SYSTEM = "system" val STDOUT = "stdout" val STDERR = "stderr" val EXIT = "exit"
val WRITELN_MESSAGE = "writeln_message" val STATE_MESSAGE = "state_message" val INFORMATION_MESSAGE = "information_message" val TRACING_MESSAGE = "tracing_message" val WARNING_MESSAGE = "warning_message" val LEGACY_MESSAGE = "legacy_message" val ERROR_MESSAGE = "error_message"
val messages = Map(
WRITELN -> WRITELN_MESSAGE,
STATE -> STATE_MESSAGE,
INFORMATION -> INFORMATION_MESSAGE,
TRACING -> TRACING_MESSAGE,
WARNING -> WARNING_MESSAGE,
LEGACY -> LEGACY_MESSAGE,
ERROR -> ERROR_MESSAGE)
val message: String => String = messages.withDefault((s: String) => s)
val NO_REPORT = "no_report"
val BAD = "bad" object Bad { def apply(serial: Long): Markup = Markup(BAD, Serial(serial)) def unapply(markup: Markup): Option[Long] =
markup match { case Markup(BAD, Serial(i)) => Some(i) case _ => None
}
}
val INTENSIFY = "intensify"
/* ML profiling */
val COUNT = "count" val ML_PROFILING_ENTRY = "ML_profiling_entry" val ML_PROFILING = "ML_profiling"
object ML_Profiling { def unapply_entry(tree: XML.Tree): Option[isabelle.ML_Profiling.Entry] =
tree match { case XML.Elem(Markup(ML_PROFILING_ENTRY, List((NAME, name), (COUNT, Value.Long(count)))), _) =>
Some(isabelle.ML_Profiling.Entry(name, count)) case _ => None
}
def unapply_report(tree: XML.Tree): Option[isabelle.ML_Profiling.Report] =
tree match { case XML.Elem(Markup(ML_PROFILING, List((KIND, kind))), body) =>
Some(isabelle.ML_Profiling.Report(kind, body.flatMap(unapply_entry))) case _ => None
}
}
/* active areas */
val BROWSER = "browser" val GRAPHVIEW = "graphview" val THEORY_EXPORTS = "theory_exports"
val SENDBACK = "sendback" val PADDING = "padding" val PADDING_LINE = (PADDING, "line") val PADDING_COMMAND = (PADDING, "command")
val DIALOG = "dialog" val Result = new Properties.String(RESULT)
object Invoke_Scala extends Function("invoke_scala") { def unapply(props: Properties.T): Option[(String, String)] =
props match { case List(THIS, (NAME, name), (ID, id)) => Some((name, id)) case _ => None
}
}
object Cancel_Scala extends Function("cancel_scala") { def unapply(props: Properties.T): Option[String] =
props match { case List(THIS, (ID, id)) => Some(id) case _ => None
}
}
val PRINT_OPERATIONS = "print_operations"
/* export */
val EXPORT = "export" val THEORY_NAME = "theory_name" val EXECUTABLE = "executable" val COMPRESS = "compress" val STRICT = "strict"
/* debugger output */
val DEBUGGER_STATE = "debugger_state" object Debugger_State { def unapply(props: Properties.T): Option[String] =
props match { case List((FUNCTION, DEBUGGER_STATE), (NAME, name)) => Some(name) case _ => None
}
}
val DEBUGGER_OUTPUT = "debugger_output" object Debugger_Output { def unapply(props: Properties.T): Option[String] =
props match { case List((FUNCTION, DEBUGGER_OUTPUT), (NAME, name)) => Some(name) case _ => None
}
}
/* simplifier trace */
val SIMP_TRACE_PANEL = "simp_trace_panel"
val SIMP_TRACE_LOG = "simp_trace_log" val SIMP_TRACE_STEP = "simp_trace_step" val SIMP_TRACE_RECURSE = "simp_trace_recurse" val SIMP_TRACE_HINT = "simp_trace_hint" val SIMP_TRACE_IGNORE = "simp_trace_ignore"
val SIMP_TRACE_CANCEL = "simp_trace_cancel" object Simp_Trace_Cancel { def unapply(props: Properties.T): Option[Long] =
props match { case (FUNCTION, SIMP_TRACE_CANCEL) :: Serial(i) => Some(i) case _ => None
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.