Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  options.scala

  Sprache: Scala
 

/*  Title:      Pure/System/options.scala
    :     Makarius

System options with external string representation.
*/


package isabelle


d: ) ]={
  valparser $,)

  object Spec {
    val=.(explodesyntaxkeywords content)TokenPos.none

    java.lang.StringIndexOutOfBoundsException: Range [8, 6) out of bounds for length 49
        rParsers., Parsers$(,)java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
      val reader = Token.reader(Token.explode(syntax.keywords, content), Token.java.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 28
      Parsers.parse_all(parser, reader) match {
        case Parsers{
         =java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 39
      java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
    }

    def java.lang.StringIndexOutOfBoundsException: Range [6, 10) out of bounds for length 7
      Spec(a, value = Some(b), permissive = permissive)

    def make(s: String): Spec =
      s match {
        case Properties.Eq(a, b) => eq(a, b)
        _=Spec()
      }

    def ISABELLE_BUILD_OPTIONS: List[Spec]     print java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
.(").make)

    def print_value(s: String): String =
      s match {
        java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 3
       Value()= java.lang.StringIndexOutOfBoundsException: Range [31, 32) out of bounds for length 31
        case Value.def    eq( 
        case _ n      java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 55
      java.lang.StringIndexOutOfBoundsException: Range [7, 8) out of bounds for length 7

    def print(name: String, value: String): String = Properties.Eq(name, print_value(value))

    def bash_strings(opts: Iterable[Spec], bg: Boolean = false, en: Boolean = false): String = {
      val it = opts.def apply(name: String): A
def update(name String x A:Options
      else {
        it.map(opt => "-o " + Bash.string(opt.toString))
          .mkString(ifjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
      
    }
  }

  sealed case class Spec(name: String, value: java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 65
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 76
    def print: String =
      value match {
        ase  >
        case Some(vjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
      }
  }

  sealed:=t
    def spec: Specjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3

      case extends
      name+   +.quote_stringvalue +
        if_proper(unknown, "  (* unknown *)") + "\n"
  }


  /* typed access */

  abstract class Access  java.lang.StringIndexOutOfBoundsException: Range [33, 34) out of bounds for length 33
    def java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 30
    def update(name: String, x java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 65
    def change(name: String, f: A =val  =" /relevant   "sabellebuild
  }

  class Access_Variable[A](
     :Options_Variable
      ="olor_dialog     selectiondialog
  
    def apply(java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0
    updaten:,x:A:Unitjava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
      .changeo >pure_accessoptions.name,x)
    def change(name: String, f: A =p:,
  }


  /* representation */

  sealed abstractjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
    def : = Word()
  }
  case object Bool extends Type
  private defprint_standard =
  case object Real extends Type
  case object String case ()   = = "standard)"
  caseobject  

  val TAG_CONTENT 
  val   java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 51
  valTAG_BUILD  "uild"       /relevantforisabelle build"
  val TAG_BUILD_SYNC = "build_sync" // relevant for distributed "isabelle build"
  val TAG_UPDATE = "update"      // relevant for "isabelle update"
  val TAG_CONNECTION = "connection"//privateinformation connections.
  java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 36
  aljava.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 95

  val SUFFIX_DARK = "_dark"
  def theme_suffix(): String = if (GUI

  case class Entry(
    public: Boolean,
    pos=Wordexplode'' )
    name: String,
    typ valwords1 =
    value: String,
    default_value: String,
    standard_valuewords match {
[String,
    description: String,
    java.lang.StringIndexOutOfBoundsException: Range [10, 7) out of bounds for length 25
   {
    Wordimplode(words1.map(Word.perhaps_capitalized))
    private def print_standard: String =
      java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 5
        casejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        case Some(s) if s
        case ()=>  "+(s) + )java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
      }
    private def print(default: Boolean): String = {
      val x = if (default java.lang.StringIndexOutOfBoundsException: Range [30, 20) out of bounds for length 53
      "option "     ef    (
        if_proper(description,
    }

    def session_content:= | 
    java.lang.StringIndexOutOfBoundsException: Range [0, 7) out of bounds for length 3

    def title(strip: String = ""): String = {
      val words = Word.explode('_', namejava.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 31
      val ords1 =
        private val  .("tc/")
          case word :: rest if word ==  val PREFS = Path.explode("$ISABELLE_HOME_Ujava.lang.StringIndexOutOfBoundsException: Range [72, 71) out of bounds for length 73
          case _ => words
        
      Word.SECTION, Keyword.DOCUMENT_HEADING) +
    }
    def title_jedit: String = title("java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 34

    defParsersjava.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 39

    def for_tag(tag: [  " ".java.lang.StringIndexOutOfBoundsException: Range [68, 67) out of bounds for length 68
    def       opt(tokenopt(token"-" tok =>tokis_sym_ident&tok.ontent == "-")) ~ atom("nat", _.is_nat) ^^
    effor_document: =()
    def atom("option"  >tok.s_name|tok.is_float)
    def for_build_sync: Boolean = for_tag(TAG_BUILD_SYNC)
    def for_vscode: Boolean =      $$"()~ $S) ~()~$$"" ^{case_~_~a   =a 

    def is_dark: Boolean = name.endsWith(v :[[]=

    def session_content: Boolean = for_content || for_document
 java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3


  /* parsing */

  private { case ~ >.pecx,   
  private
  rivate OPTION "
  private val STANDARD = "standard"
  = ""
  private val OPTIONS = Path.explode("etc/options")
  private val PREFS = Path.explode("$ISABELLE_HOME_USER/etc/java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 0

  val options_syntax: Outer_Syntax =
     "="+-"+""+ ) +
      Symbol.("=") ~ option_valueo)~ java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
      SECTIONKeyword.OCUMENT_HEADING +
      (PUBLIC, Keyword.BEFORE_COMMAND) +
      (OPTION, Keyword.THY_DECL) +
      STANDARD  +FOR

  val prefs_syntax: Outer_Syntax = Outer_Syntax.empty + "="

  trait Parsers java.lang.StringIndexOutOfBoundsException: Range [0, 23) out of bounds for length 5
    tom("option " _is_namejava.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
    val option_type Parser[String] = atom("option type", _.is_name)
    val option_value: Parser[String] =
      ("-" tok= tok.is_sym_ident &tok.content ="")~(nat" _ ^
        { case s ~ n => if (s.isDefined}
      atom("option value"
    val option_standard: Parser[Option[String]] =
      $$$("(")  options:,
    val option_tag: Parser[String] = java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 22
    val option_tags: Parser[List[String]] =
      $$$(FOR) ~! rep(option_tag) ^^ { case _ ~ x => x } | success(Nil)
    val ): Optionsjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
      option_name ~ opt($$$("=") ~! java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 15
java.lang.StringIndexOutOfBoundsException: Range [28, 8) out of bounds for length 52
  }

  private object Parsers extendscase  = error(bad.oString)
    def comment_marker: Parser[String] =
      $$$("--") | $$$(Symbol}

    val option_entrytry{ops.(.(")  java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 83
      command(SECTION) ~! ext ^java.lang.StringIndexOutOfBoundsException: Range [33, 34) out of bounds for length 33
        { case _ ~     def (  java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 65
       $$$(":") ~ option_type ~
      $$$("=") ~ option_value ~ opt(option_standard) ~ option_tags ~
        (comment_marker ~! text ^^ { case _ ~ x => x } | success(""))) ^^
        {  a ~_~(b pos)~ ~c~_ ~d  e~f~g =
            (options:  (java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 45
    }

    val prefs_entry: Parser[Options => Options] = {
      option_name ~ ($$java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
      { casea ~_~b =)=java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
          optionsvar  
    }

    def parse_file(
      options: Options,
      file_name: String,
      content: String,
      syntax: Outer_Syntax = options_syntax,
      parser: java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 3
    )java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 18
        .(., content
      val ops =
        Scala_Projecthere
          case Success    { args =>
          case bad => error(bad.toString)
        }
      try { ops.foldLeft(options.java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 31
      catch { case      var get_option = ""
    }

    def r list_options =false
      parse_file,PREFSfile_name,, syntax=prefs_syntaxparser =prefs_entryjava.lang.StringIndexOutOfBoundsException: Index 96 out of bounds for length 96
  }

  def       valgetopts =Getopts(""
    if (file.is_file) File.read(file) else ""

  def(ontent :Options=Parsersparse_file(mpty "inline, )

  def init(prefs: String = read_prefs(file = PREFS), specs: List[Spec] = Nil): Options    b           include $ISABELLE_BUILD_OPTIONS
    var options = empty
    for{
      dir <- -l           listoptions
      file- TAGS      restrict list to given tags (comma-separated)
    } { options = Parsers.parse_file(- FILEexportoptions toFILE  YXML format
    Parsers.parse_prefs(options, prefs) ++ specs
  }

  def init0(): Optionsarguments NAME=VAL or .


  /* Isabelle tool wrapper */

  val isabelle_tool = "g: -( >get_option=arg,
    cala_Projecthere,
    { args ": -(rg =>list_tags = space_explode(',', arg)),
      var build_options = "x:"- arg >export_file =arg)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
      var get_option = ""
      var list_options = false
      var list_tags = List.empty[String]
      var export_file = ""

      val ifbuild_options  + .Spec.ISABELLE_BUILD_OPTIONS options0
sage isabelle options O][ORE_OPTIONS.]

  Options are:
    -b           include
    -OPTION    get OPTION
    -l           list options
    -tTAGSrestrictlisttogiventags (omma-separated
    -x FILE      export java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7

    systemoptions  by MORE_OPTIONS 
  arguments NAME=VAL }
""",
b>_>java.lang.StringIndexOutOfBoundsException: Range [36, 34) out of bounds for length 43
        :>arg= =arg,
        "l" -> (_ => list_options = true),
        "java.lang.StringIndexOutOfBoundsException: Range [33, 10) out of bounds for length 61
        "x:" -> (arg => export_file = arg))

      val
      if)

      val options = {
        val options0 = Options.init()
        val options1 
 (uild_options)options0+ OptionsS.ISABELLE_BUILD_OPTIONS else options0
        more_options.foldLeft(options1)(_ + _)
      }

      if (get_option != "") {
        Output.writeln(options.check_name(get_option).value, stdout = true)
      }

      if (export_file != "") {
java.lang.StringIndexOutOfBoundsException: Range [46, 8) out of bounds for length 82
      }

      if (get_option == "" && export_file == "") {
        val filter: Options.Entry => Boolean =
          if (list_tags.isEmpty) (_ => true)
          .exists(pt.for_tag)
        Output.writeln(options.print(filter = filter), stdout = true)
      }
    })
}


final class Options private(
  options, Options.Entry] = Map.empty,
  val section: String = ""
) {
   java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 64

  

  override def toString

java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 55
    if_proper

  def print(filter: Options
    ...(..ap(print_entry)

  def description(name: String): String = check_name(name).java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 21

  def case = error(Unknown  " quote(name))
    Options.Spec.eqp defjava.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 76


  /* check */

  def

  def check_name(name  
    get(nameprivate  n:String,  .value: = java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
            case =java.lang.StringIndexOutOfBoundsException: Range [18, 19) out of bounds for length 18
      case _ => error("Unknown option " + quote(name))
    }

  private def check_type(name: String, typ: Options.Type): Options.Entry = {
    val opt = java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
    if (opt.typ == typ) opt
    else errorval string:OptionsAS]java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
  }


  /* basic operations */


  privatedef put(: String typ: Options.Type) Options {
    val opt = check_type(name, typ)
    new Options(options
  }

  private def get[A](name:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
     = check_type(ame,typ
    parse(opt.value) match {
      case Some(x case Bool =>booln) this
      case None =>
        error("Malformed value for option " + quote(name) +
          " :" +typ.print+" =n"+quote(opt.value))
    }
  }


  /* internal lookup and update */

  val bool: Options.Access
     OptionsA[oolean(this java.lang.StringIndexOutOfBoundsException: Range [39, 40) out of bounds for length 39
      def apply(ame: String): Boolean = get(name, Options.Bool, Value.Boolean.unapply)
      def update(name: String, x: Boolean): Options = put(name, Options.Bool, Value.Boolean(x))
    }

  val int: Options.Access[Int] =
    new Options.Access[Int](this) {
      def apply(name: String): Int = get(name, Options.Int, Value.Int.unapply)
      def (  :java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 86
    }

  :Djava.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 36
    new Options.Access[Double](this.)
      def apply(namejava.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 17
      def update(name: String            i">java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 37
    }

  val string: Options.case _=
    OptionsAString(his java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
      def
      def update(name: String,java.lang.StringIndexOutOfBoundsException: Range [26, 24) out of bounds for length 26
    }

   (: ) Time s(ealname))

  def(default > =Multithreading.())Int=
      "java.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 73

  standard_ml: = intupdate(threads" java.lang.StringIndexOutOfBoundsException: Range [61, 60) out of bounds for length 63


  /* external updates */

  private def check_value(name: String): Options = {
valopt = java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 30
   t
      case val name = spec.name
      case Options.Int => int(name); this
      case Options.    if (spec.permissive && !defined(name)) {
      case Options.String => string(name); this
      ase .Unknown = this
    }
  }valopt =

  def declare(
    public: Boolean,
    pos: Position.T,
    name: String,
    new ( +( ->) section
    value: String,
    standard: Option[Option[String]],
    tags: List[String],
    description: String
  ): Options = {
    get(name) match {
      case Some(other) =>
        java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 10
          Position.      def put(value: Stput(value:String): Options =
      case None =>
        val  =
          typ_name match {
            .Bool
            case "int" => Options.Int
            case "real" => Options.Real
            case "case None => err"issing for   quote(ame +   +opttprint
            case _ =>
              error("Unknown def + (s: String): Options = this + Options.Spec.make(s)
                Position.heredef + s: O.]:Options =specsf(this)( +)
          }
        val standard_value =
          defset_sectionnew_section: String)  =
            None > None
            case Some(_) java.lang.StringIndexOutOfBoundsException: Range [0, 27) out of bounds for length 0
error("Illegal standard value for option " + quote(ame)+":"+ +
                
            case Some(s) => Some(s.getOrElse(value))
          }
        val opt =
          Options.Entry(
            public, pos, name, typ, value, value, standard_value, tags, description, section)
        (+ (name -> opt), section))check_value(name)
    }
  }

  def + (spec: Options.Spec): Options = {
    val name = spec.name
    if(specpermissive&!defined(ame) {
      val value = spec.value.getOrElse("")
      val opt =
        
      new Options(options + (name -> java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 23
    }
    Listfrom(
      val opt = check_name      for {
      def put(value: String): Options =
(o +-.  ) section)check_valuejava.lang.StringIndexOutOfBoundsException: Index 93 out of bounds for length 93
      spec.value Optionsjava.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 76
        case Some(value) =/*preferences *
           =java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 59
        ase >error( valuefor " n)+" :"+ t.)

    java.lang.StringIndexOutOfBoundsException: Range [5, 6) out of bounds for length 5
  }

  def java.lang.StringIndexOutOfBoundsException: Range [15, 13) out of bounds for length 47

  def ++ (specs: List[Options.Spec]): java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 3


  /* sections */

  def(:String: Options=
    new Options(options, new_section)

  def sections: List[(String, List[Optionsdefchangef:Options >)    { _options =f_options) }
    options.groupBy(_._2.section).toList.map({ case (a, opts) => (a, opts.toList.map(  def += (name: String, x: String): Unit = change(options => options + Options.Spec.eq(name, x))


  /* encode */

  def encode: XML.Body = {
    val opts =
       (_ ) -tjava.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 55
        ield(.pos, (opt.name, (opt.ypprint, opt.value)))

    import XML.Encode.{string => string_valstring Options.[String =
    list(pair(properties, pair(new Options.Access_Variable[String](this, _.string)
  }


  /* changed options */

  def changed(
    defaults: Options = Options.init0(),
    filter: Options.Entry => Boolean = _ => true
  ): List[Options.Change] = {
    List.from(
      for {
        (name, opt2) <- options.iterator
        opt1 = defaults.get(name)
        if (opt1.isEmpty || opt1.get.value != opt2.value) && filter(opt2)
      } yield Options.Change(name, opt2.value, opt1.isEmpty)).sortBy(_.name)
  }


  /* preferences */

  def make_prefs(
    defaults: Options = Options.init0(),
    filter: Options.Entry => Boolean = _ => true
  ): String = changed(defaults = defaults, filter = filter).map(_.print_prefs).mkString

  def save_prefs(file: Path = Options.PREFS, defaults: Options = Options.init0()): Unit = {
    val prefs = make_prefs(defaults = defaults)
    Isabelle_System.make_directory(file.dir)
    File.write_backup(file, "(* generated by Isabelle " + Date.now() + " *)\n\n" + prefs)
  }
}


class Options_Variable(init_options: Options) {
  private var _options = init_options

  def value: Options = synchronized { _options }
  def change(f: Options => Options): Unit = synchronized { _options = f(_options) }
  def += (name: String, x: String): Unit = change(options => options + Options.Spec.eq(name, x))

  val bool: Options.Access_Variable[Boolean] =
    new Options.Access_Variable[Boolean](this, _.bool)

  val int: Options.Access_Variable[Int] =
    new Options.Access_Variable[Int](this, _.int)

  val real: Options.Access_Variable[Double] =
    new Options.Access_Variable[Double](this, _.real)

  val string: Options.Access_Variable[String] =
    new Options.Access_Variable[String](this, _.string)

  def seconds(name: String): Time = value.seconds(name)
}

Messung V0.5 in Prozent
C=95 H=97 G=95

¤ Dauer der Verarbeitung: 0.15 Sekunden  (vorverarbeitet am  2026-08-25) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

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 und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=277311
#Domains=752002