src/Pure/System/options.scala
changeset 48580 9df76dd45900
parent 48548 49afe0e92163
child 48605 e777363440d6
equal deleted inserted replaced
48579:0b95a13ed90a 48580:9df76dd45900
    33   private object Parser extends Parse.Parser
    33   private object Parser extends Parse.Parser
    34   {
    34   {
    35     val DECLARE = "declare"
    35     val DECLARE = "declare"
    36     val DEFINE = "define"
    36     val DEFINE = "define"
    37 
    37 
    38     val syntax = Outer_Syntax.empty + ":" + "=" + DECLARE + DEFINE
    38     val syntax = Outer_Syntax.empty + ":" + "=" + "--" + DECLARE + DEFINE
    39 
    39 
    40     val entry: Parser[Options => Options] =
    40     val entry: Parser[Options => Options] =
    41     {
    41     {
    42       val option_name = atom("option name", _.is_xname)
    42       val option_name = atom("option name", _.is_xname)
    43       val option_type = atom("option type", _.is_ident)
    43       val option_type = atom("option type", _.is_ident)
    44       val option_value = atom("option value", tok => tok.is_name || tok.is_float)
    44       val option_value = atom("option value", tok => tok.is_name || tok.is_float)
    45 
    45 
    46       keyword(DECLARE) ~! (option_name ~ keyword(":") ~ option_type ~
    46       keyword(DECLARE) ~! (option_name ~ keyword(":") ~ option_type ~
    47       keyword("=") ~ option_value ~ opt(text)) ^^
    47       keyword("=") ~ option_value ~ (keyword("--") ~! text ^^ { case _ ~ x => x } | success(""))) ^^
    48         { case _ ~ (a ~ _ ~ b ~ _ ~ c ~ d) =>
    48         { case _ ~ (a ~ _ ~ b ~ _ ~ c ~ d) => (options: Options) => options.declare(a, b, c, d) } |
    49             (options: Options) => options.declare(a, b, c, d.getOrElse("")) } |
       
    50       keyword(DEFINE) ~! (option_name ~ keyword("=") ~ option_value) ^^
    49       keyword(DEFINE) ~! (option_name ~ keyword("=") ~ option_value) ^^
    51         { case _ ~ (a ~ _ ~ b) => (options: Options) => options.define(a, b) }
    50         { case _ ~ (a ~ _ ~ b) => (options: Options) => options.define(a, b) }
    52     }
    51     }
    53 
    52 
    54     def parse_entries(file: Path): List[Options => Options] =
    53     def parse_entries(file: Path): List[Options => Options] =