src/Tools/Code/code_scala.ML
changeset 38966 68853347ba37
parent 38928 0e6f54c9d201
child 38968 e55deaa22fff
child 38970 53d1ee3d98b8
equal deleted inserted replaced
38965:45e4d3a855ad 38966:68853347ba37
   486     Code_Target.serialization write (rpair [] oo string_of_pretty) p
   486     Code_Target.serialization write (rpair [] oo string_of_pretty) p
   487   end;
   487   end;
   488 
   488 
   489 end; (*local*)
   489 end; (*local*)
   490 
   490 
       
   491 val serializer : Code_Target.serializer =
       
   492   Code_Target.parse_args (Scan.succeed ()) #> K serialize_scala;
       
   493 
   491 val literals = let
   494 val literals = let
   492   fun char_scala c = if c = "'" then "\\'"
   495   fun char_scala c = if c = "'" then "\\'"
   493     else if c = "\"" then "\\\""
   496     else if c = "\"" then "\\\""
   494     else if c = "\\" then "\\\\"
   497     else if c = "\\" then "\\\\"
   495     else let val k = ord c
   498     else let val k = ord c
   511 } end;
   514 } end;
   512 
   515 
   513 
   516 
   514 (** Isar setup **)
   517 (** Isar setup **)
   515 
   518 
   516 val isar_serializer =
       
   517   Code_Target.parse_args (Scan.succeed ()) #> K serialize_scala;
       
   518 
       
   519 val setup =
   519 val setup =
   520   Code_Target.add_target
   520   Code_Target.add_target
   521     (target, { serializer = isar_serializer, literals = literals,
   521     (target, { serializer = serializer, literals = literals,
   522       check = { env_var = "SCALA_HOME", make_destination = fn p => Path.append p (Path.explode "ROOT.scala"),
   522       check = { env_var = "SCALA_HOME", make_destination = fn p => Path.append p (Path.explode "ROOT.scala"),
   523         make_command = fn scala_home => fn _ =>
   523         make_command = fn scala_home => fn _ =>
   524           "export JAVA_OPTS='-Xms128m -Xmx512m -Xss2m' && "
   524           "export JAVA_OPTS='-Xms128m -Xmx512m -Xss2m' && "
   525             ^ Path.implode (Path.append (Path.explode scala_home) (Path.explode "bin/scalac")) ^ " ROOT.scala" } })
   525             ^ Path.implode (Path.append (Path.explode scala_home) (Path.explode "bin/scalac")) ^ " ROOT.scala" } })
   526   #> Code_Target.add_tyco_syntax target "fun"
   526   #> Code_Target.add_tyco_syntax target "fun"