step 6.5: investigate collision Problem .. Specification; Position?
authorWalther Neuper <walther.neuper@jku.at>
Fri, 26 Feb 2021 13:13:03 +0100
changeset 60157dd3a9eee47f2
parent 60156 82777b2afa44
child 60158 f927af8ac6ba
step 6.5: investigate collision Problem .. Specification; Position?
src/HOL/SPARK/Examples/Gcd/Greatest_Common_Divisor.thy
src/Pure/General/position.ML
src/Pure/General/scan.ML
src/Pure/Isar/token.ML
src/Pure/Pure.thy
src/Tools/isac/BridgeJEdit/Calculation.thy
src/Tools/isac/BridgeJEdit/parseC.sml
     1.1 --- a/src/HOL/SPARK/Examples/Gcd/Greatest_Common_Divisor.thy	Wed Feb 17 15:43:34 2021 +0100
     1.2 +++ b/src/HOL/SPARK/Examples/Gcd/Greatest_Common_Divisor.thy	Fri Feb 26 13:13:03 2021 +0100
     1.3 @@ -91,7 +91,16 @@
     1.4  ### Token.syntax_generic, Scan.error
     1.5  \<close>
     1.6  subsubsection \<open>click on "from \<open>0 < d\<close>"\<close>
     1.7 -text \<open>
     1.8 +text \<open>COMPARE Calculation.thy,
     1.9 +subsubsection \<open>on Given: WITHOUT "Specification:" OUTCOMMENTED\<close>
    1.10 +?WHERE DOES DOUBLING COME FROM BELOW..
    1.11 +
    1.12 +-----------------v BEGIN ---------------vv END of      \<open>0 < d\<close>, the argument of "from:
    1.13 +Token ((Pos ((0, 6, 13), [_]), Pos ((0, 13, 0), [_])), \<open>0 < d\<close>, _) 
    1.14 +
    1.15 +---------------------------------------------------------- SCAN STOPS BEFORE "have "0 \<le> c mod d""
    1.16 +Token ((Pos ((0, 6, 13), [_]), Pos ((0, 13, 0), [_])), \<open>0 < d\<close>, _), 
    1.17 +Token ((Pos ((0, 13, 0), [_]), Pos ((0, 0, 0), [_])), , _) 
    1.18  ### Private_Output.report keyword1
    1.19  ### Private_Output.report cartouch
    1.20  ### Private_Output.report delimite
     2.1 --- a/src/Pure/General/position.ML	Wed Feb 17 15:43:34 2021 +0100
     2.2 +++ b/src/Pure/General/position.ML	Fri Feb 26 13:13:03 2021 +0100
     2.3 @@ -10,6 +10,7 @@
     2.4    val ord: T ord
     2.5    val make: Thread_Position.T -> T
     2.6    val dest: T -> Thread_Position.T
     2.7 +  val to_string: T -> string (*WN*)
     2.8    val line_of: T -> int option
     2.9    val offset_of: T -> int option
    2.10    val end_offset_of: T -> int option
    2.11 @@ -95,6 +96,9 @@
    2.12  fun make {line = i, offset = j, end_offset = k, props} = Pos ((i, j, k), norm_props props);
    2.13  fun dest (Pos ((i, j, k), props)) = {line = i, offset = j, end_offset = k, props = props};
    2.14  
    2.15 +(*WN*)fun to_string (Pos ((line, offset, end_offset), _)) = ("Pos ((" ^
    2.16 +  string_of_int line ^ ", " ^ string_of_int offset ^ ", " ^ string_of_int end_offset ^ "), [_])")
    2.17 +
    2.18  fun valid (i: int) = i > 0;
    2.19  fun if_valid i i' = if valid i then i' else i;
    2.20  
     3.1 --- a/src/Pure/General/scan.ML	Wed Feb 17 15:43:34 2021 +0100
     3.2 +++ b/src/Pure/General/scan.ML	Fri Feb 26 13:13:03 2021 +0100
     3.3 @@ -6,7 +6,7 @@
     3.4  
     3.5  infix 5 -- :-- :|-- |-- --| ^^;
     3.6  infixr 5 ::: @@@;
     3.7 -infix 3 >>;
     3.8 +infix 3 >> @@>>;
     3.9  infixr 0 ||;
    3.10  
    3.11  signature BASIC_SCAN =
    3.12 @@ -15,7 +15,8 @@
    3.13    (*error msg handler*)
    3.14    val !! : ('a * message option -> message) -> ('a -> 'b) -> 'a -> 'b
    3.15    (*apply function*)
    3.16 -  val >> : ('a -> 'b * 'c) * ('b -> 'd) -> 'a -> 'd * 'c
    3.17 +  val >> :                 ('a -> 'b * 'c)  * ('b -> 'd) -> 'a -> 'd * 'c
    3.18 +  val @@>> : (('a -> 'b) * ('a -> 'c * 'd)) * ('c -> 'e) -> 'a -> 'e * 'd
    3.19    (*alternative*)
    3.20    val || : ('a -> 'b) * ('a -> 'b) -> 'a -> 'b
    3.21    (*sequential pairing*)
    3.22 @@ -127,7 +128,8 @@
    3.23  
    3.24  (* scanner combinators *)
    3.25  
    3.26 -fun (scan >> f) xs = scan xs |>> f;
    3.27 +fun (scan >> f) xs =                       scan xs  |>> f;
    3.28 +fun ((write, scan) @@>> f) xs = (write xs; scan xs) |>> f;
    3.29  
    3.30  fun (scan1 || scan2) xs = scan1 xs handle FAIL _ => scan2 xs;
    3.31  
     4.1 --- a/src/Pure/Isar/token.ML	Wed Feb 17 15:43:34 2021 +0100
     4.2 +++ b/src/Pure/Isar/token.ML	Fri Feb 26 13:13:03 2021 +0100
     4.3 @@ -30,6 +30,7 @@
     4.4      Declaration of declaration |
     4.5      Files of file Exn.result list
     4.6    val pos_of: T -> Position.T
     4.7 +  val end_pos_of: T -> Position.T (*WN*)
     4.8    val adjust_offsets: (int -> int option) -> T -> T
     4.9    val eof: T
    4.10    val is_eof: T -> bool
    4.11 @@ -64,6 +65,7 @@
    4.12    val reports: Keyword.keywords -> T -> Position.report_text list
    4.13    val markups: Keyword.keywords -> T -> Markup.T list
    4.14    val unparse: T -> string
    4.15 +  val s_to_string: T list -> string
    4.16    val print: T -> string
    4.17    val text_of: T -> string * string
    4.18    val file_source: file -> Input.source
    4.19 @@ -357,6 +359,15 @@
    4.20    | EOF => ""
    4.21    | _ => x);
    4.22  
    4.23 +(*WN-------------------------------------------------------------------------------------------\\*)
    4.24 +fun to_string tok = ("\nToken ((" ^
    4.25 +  Position.to_string (pos_of tok) ^ ", " ^ 
    4.26 +  Position.to_string (end_pos_of tok) ^ "), " ^
    4.27 +  unparse tok ^ ", _)")
    4.28 +
    4.29 +fun s_to_string toks = fold (curry op ^) (map to_string toks |> rev |> separate ", ") "";
    4.30 +(*WN-------------------------------------------------------------------------------------------//*)
    4.31 +
    4.32  fun print tok = Markup.markups (markups Keyword.empty_keywords tok) (unparse tok);
    4.33  
    4.34  fun text_of tok =
     5.1 --- a/src/Pure/Pure.thy	Wed Feb 17 15:43:34 2021 +0100
     5.2 +++ b/src/Pure/Pure.thy	Fri Feb 26 13:13:03 2021 +0100
     5.3 @@ -811,7 +811,7 @@
     5.4  
     5.5  val _ =
     5.6    Outer_Syntax.command \<^command_keyword>\<open>from\<close> "forward chaining from given facts"
     5.7 -    (facts >>
     5.8 +    ((writeln o Token.s_to_string, facts) @@>>
     5.9        (writeln "####-## from Proof.from_thmss_cmd";(Toplevel.proof o Proof.from_thmss_cmd)));
    5.10  
    5.11  val _ =
     6.1 --- a/src/Tools/isac/BridgeJEdit/Calculation.thy	Wed Feb 17 15:43:34 2021 +0100
     6.2 +++ b/src/Tools/isac/BridgeJEdit/Calculation.thy	Fri Feb 26 13:13:03 2021 +0100
     6.3 @@ -46,14 +46,74 @@
     6.4  \<close> ML \<open>
     6.5  \<close>
     6.6  
     6.7 +subsubsection \<open>tools to analyse parsing in Outer_Syntax >> \<close>
     6.8 +ML \<open>
     6.9 +\<close> text \<open> (*original basics.ML*)
    6.10 +op |>> : ('a * 'b) * ('a -> 'c) -> 'c * 'b;
    6.11 +fun (x, y) |>> f = (f x, y);
    6.12 +\<close> text \<open> (*original scan.ML*)
    6.13 +op >> : ('a -> 'b * 'c) * ('b -> 'd) -> 'a -> 'd * 'c;                              (*---vvv*)
    6.14 +fun (scan >> f) xs = scan xs |>> f;
    6.15 +\<close> ML \<open>
    6.16 +\<close> ML \<open> (*cp.from originals*)
    6.17 +infix 3 @>>;
    6.18 +fun (scan @>> f) xs = scan xs |>> f;
    6.19 +op @>> : ('a        -> 'b * 'c)        * ('b -> 'd) -> 'a        -> 'd * 'c;        (*---^^^*)
    6.20 +\<close> ML \<open> (*appl.to parser*)
    6.21 +op @>> : (Token.src -> 'b * Token.src) * ('b -> 'd) -> Token.src -> 'd * Token.src; (*---^^^*)
    6.22 +\<close> ML \<open>
    6.23 +\<close> ML \<open> (*add analysis*)
    6.24 +\<close> text \<open>
    6.25 +datatype T = Pos of (int * int * int) * Properties.T;
    6.26 +
    6.27 +fun s_to_string (Pos ((line, offset, end_offset), _)) = ("Pos ((" ^
    6.28 +  string_of_int line ^ ", " ^ string_of_int offset ^ ", " ^ string_of_int end_offset ^ "), [_])")
    6.29 +
    6.30 +s_to_string: src -> string
    6.31 +\<close> text \<open>
    6.32 +datatype T = Token of (Symbol_Pos.text * Position.range) * (kind * string) * slot
    6.33 +\<close> ML \<open>
    6.34 +Token.pos_of;        (*^^^^^^^^^^^^^^^*)
    6.35 +Token.end_pos_of;                      (*^^^^^^^^^^^^^*)
    6.36 +Token.unparse;                                            (*^^^^^^^^^^^^^*)
    6.37 +\<close> ML \<open>
    6.38 +fun string_of_tok tok = ("\nToken ((" ^
    6.39 +  Position.to_string (Token.pos_of tok) ^ ", " ^ 
    6.40 +  Position.to_string (Token.end_pos_of tok) ^ "), " ^
    6.41 +  Token.unparse tok ^ ", _)")
    6.42 +\<close> ML \<open>
    6.43 +fun string_of_toks toks = fold (curry op ^) (map string_of_tok toks |> rev |> separate ", ") "";
    6.44 +string_of_toks:    Token.src -> string;
    6.45 +\<close> ML \<open>
    6.46 +Token.s_to_string: Token.src -> string; (*<-- string_of_toks WN*)
    6.47 +\<close> ML \<open>
    6.48 +fun (scan @>> f) xs = (@{print}{a = "_ >> ", toks = xs(*GIVES\<rightarrow>"?"*)}; scan xs) |>> f;
    6.49 +fun (scan @>> f) xs = (writeln ("toks= " ^ Token.s_to_string xs);      scan xs) |>> f;
    6.50 +op @>> : (Token.src -> 'b * Token.src) * ('b -> 'd) -> Token.src -> 'd * Token.src; (*---^^^*)
    6.51 +\<close> ML \<open>
    6.52 +op @>> : (Token.T list -> 'a * 'b) * ('a -> 'c) -> Token.T list -> 'c * 'b
    6.53 +\<close> ML \<open>
    6.54 +\<close> ML \<open> (*Scan < Token in bootstrap, thus we take Token.s_to_string as argument of >> *)
    6.55 +infix 3 @@>>;
    6.56 +\<close> ML \<open>
    6.57 +fun ((write, scan) @@>> f) xs = (write xs;                             scan xs) |>> f;
    6.58 +op @@>> : (('a -> 'b) * ('a -> 'c * 'd)) * ('c -> 'e) -> 'a -> 'e * 'd
    6.59 +\<close> ML \<open>
    6.60 +\<close> ML \<open>
    6.61 +\<close> ML \<open>
    6.62 +\<close> ML \<open>
    6.63 +\<close>
    6.64 +
    6.65 +
    6.66  subsubsection \<open>TODO\<close>
    6.67  ML \<open>
    6.68  \<close> ML \<open>
    6.69  \<close> ML \<open>
    6.70 +\<close> ML \<open>
    6.71  \<close>
    6.72  
    6.73  section \<open>setup command_keyword + preliminary test\<close>
    6.74 -ML \<open>
    6.75 +ML \<open>                                            
    6.76  \<close> ML \<open>
    6.77  val _ =                                                  
    6.78    Outer_Syntax.command \<^command_keyword>\<open>Example\<close> "start a Calculation from a Formalise-file"
    6.79 @@ -71,7 +131,8 @@
    6.80    Outer_Syntax.command \<^command_keyword>\<open>Problem\<close>
    6.81      "start a Specification, either from scratch or from preceding 'Example'"
    6.82  (** )(ParseC.problem >> (Toplevel.theory o Preliminary.init_specify));( **)
    6.83 -(**)(ParseC.problem_headline >> (Toplevel.theory o Preliminary.init_specify));(**)
    6.84 +(**)((writeln o Token.s_to_string, ParseC.problem_headline)
    6.85 +      @@>> (Toplevel.theory o Preliminary.init_specify));(**)
    6.86  \<close> ML \<open>
    6.87  (**)                   Preliminary.init_specify: ParseC.problem_headline -> theory -> theory;(**)
    6.88  (*                                                                          ^^^^^^    ^^^^^^*)
    6.89 @@ -82,13 +143,14 @@
    6.90  \<close> ML \<open>
    6.91  val _ =
    6.92    Outer_Syntax.command \<^command_keyword>\<open>Given\<close> "input Given items to the Model of a Specification"
    6.93 -    (facts >> (Toplevel.proof o Proof.from_thmss_cmd));
    6.94 +(*                                (facts    >> (Toplevel.proof o Proof.from_thmss_cmd));*)
    6.95 +    ((writeln o Token.s_to_string, facts) @@>> (Toplevel.proof o Proof.from_thmss_cmd));
    6.96  val _ =
    6.97    Outer_Syntax.command \<^command_keyword>\<open>Find\<close> "input Find items to the Model of a Specification"
    6.98 -    (facts >> (Toplevel.proof o Proof.from_thmss_cmd));
    6.99 +    (facts @>> (Toplevel.proof o Proof.from_thmss_cmd));
   6.100  val _ =
   6.101    Outer_Syntax.command \<^command_keyword>\<open>Relate\<close> "input Relate items to the Model of a Specification"
   6.102 -    (facts >> (Toplevel.proof o Proof.from_thmss_cmd));
   6.103 +    (facts @>> (Toplevel.proof o Proof.from_thmss_cmd));
   6.104  \<close> ML \<open>
   6.105  (Toplevel.proof o Proof.from_thmss_cmd)
   6.106  :
   6.107 @@ -101,17 +163,52 @@
   6.108  \<close> ML \<open>
   6.109  @{here}(*val it = {offset=8, end_offset=12, id=-4402}: Position.T*)
   6.110  \<close> ML \<open>
   6.111 +\<close> ML \<open>
   6.112 +\<close> ML \<open>
   6.113 +\<close> ML \<open>
   6.114 +val problem_headline_str =
   6.115 +  "( \"Biegelinie\" , [\"Biegelinien\"] )";
   6.116 +\<close> ML \<open>
   6.117 +val problem_headline_str =
   6.118 +  "( \"Biegelinie\" , [\"Biegelinien\"] ) \n" ^
   6.119 +  "(*1 collapse*) \n" ^
   6.120 +  "  Specification:";
   6.121 +\<close> ML \<open>
   6.122 +val toks = ParseC.tokenize problem_headline_str;
   6.123 +\<close> text \<open>
   6.124 +[Token (("(", ({}, {})), (Keyword, "("), Slot), 
   6.125 + Token (("Biegelinie", ({}, {})), (String, "Biegelinie"), Slot), 
   6.126 + Token ((",", ({}, {})), (Keyword, ","), Slot), 
   6.127 + Token (("[", ({}, {})), (Keyword, "["), Slot),
   6.128 + Token (("Biegelinien", ({}, {})), (String, "Biegelinien"), Slot), 
   6.129 + Token (("]", ({}, {})), (Keyword, "]"), Slot), 
   6.130 + Token ((")", ({}, {})), (Keyword, ")"), Slot),
   6.131 + Token (("Specification", ({}, {})), (Keyword, "Specification"), Slot), 
   6.132 + Token ((":", ({}, {})), (Keyword, ":"), Slot)]
   6.133 +\<close> ML \<open>
   6.134 +ParseC.problem_headline toks
   6.135 +\<close> text \<open> (->K, )->Z:
   6.136 +((((("K", "Biegelinie"
   6.137 +    ), ","
   6.138 +   ), ["Biegelinien"]
   6.139 +  ), "Z"
   6.140 + ), 
   6.141 + [Token (("Specification", ({}, {})), (Keyword, "Specification"), Slot), 
   6.142 +  Token ((":", ({}, {})), (Keyword, ":"), Slot)
   6.143 + ]
   6.144 +)
   6.145 +\<close> ML \<open>
   6.146 +\<close> ML \<open>
   6.147  \<close>
   6.148  
   6.149  subsection \<open>test runs with test-Example\<close>
   6.150  (**)
   6.151  Example \<open>/usr/local/isabisac/src/Tools/isac/Examples/exp_Statics_Biegel_Timischl_7-70\<close>
   6.152 -(*(1) outcomment before creating session Isac*)
   6.153  
   6.154  Problem ("Biegelinie", ["Biegelinien"])
   6.155  (*1 collapse* )
   6.156    Specification:                                               (*Outer syntax error\<^here>: command expected, but keyword Specification\<^here> was found*)
   6.157 -  (*2 collapse* )
   6.158 +  (*2 collapse*)
   6.159      Model:
   6.160        Given: "Traegerlaenge " "Streckenlast "              
   6.161        Where: "q_0 ist_integrierbar_auf {| 0, L |}" "0 < L"     (*Outer syntax error\<^here>: command expected, but keyword Where\<^here> was found*)
   6.162 @@ -123,16 +220,116 @@
   6.163        RProblem: ["", ""]
   6.164        RMethod: ["", ""]
   6.165        (*3 collapse*)
   6.166 -  ( *2 collapse*)
   6.167 +  (*2 collapse*)
   6.168    Solution:
   6.169  ( *1 collapse*)
   6.170 -(*(1) outcomment before creating session Isac*)
   6.171  (*
   6.172    compare click on above Given: "Traegerlaenge ", "Streckenlast " 
   6.173    with click on from \<open>0 < d\<close> in SPARK/../Greatest_Common_Divisorthy
   6.174  *)
   6.175  
   6.176 -subsection \<open><Output> BY CLICK ON Problem..Solution\<close>
   6.177 +subsection \<open><Output> BY CLICK ON Problem..Given: Position, command-range?\<close>
   6.178 +subsubsection \<open>on Problem: WITHOUT "Specification:" OUTCOMMENTED\<close>
   6.179 +text \<open>
   6.180 +              line * offset * end_offset
   6.181 +       Symbol_Pos.text       * Position.range)* (kind * string) * slot
   6.182 +-----------------------------------------------------------------------------------
   6.183 +-----------------v BEGIN ---------------vv END OF -----v
   6.184 +Token ((Pos ((0, 9, 10), [_]), Pos ((0, 10, 0), [_])), (, _), 
   6.185 +Token ((Pos ((0, 10, 22), [_]), Pos ((0, 22, 0), [_])), "Biegelinie", _),  //INCLUDING ""
   6.186 +Token ((Pos ((0, 22, 23), [_]), Pos ((0, 23, 0), [_])), ,, _), 
   6.187 +Token ((Pos ((0, 24, 25), [_]), Pos ((0, 25, 0), [_])), [, _), 
   6.188 +Token ((Pos ((0, 25, 38), [_]), Pos ((0, 38, 0), [_])), "Biegelinien", _), 
   6.189 +Token ((Pos ((0, 38, 39), [_]), Pos ((0, 39, 0), [_])), ], _), 
   6.190 +Token ((Pos ((0, 39, 40), [_]), Pos ((0, 40, 0), [_])), ), _), 
   6.191 +Token ((Pos ((0, 58, 71), [_]), Pos ((0, 71, 0), [_])), Specification, _), //58: "P"robken .. "S"pecification
   6.192 +Token ((Pos ((0, 71, 72), [_]), Pos ((0, 72, 0), [_])), :, _), 
   6.193 +Token ((Pos ((0, 220, 225), [_]), Pos ((0, 225, 0), [_])), Model, _),      //LONG COMMENT INBETWEEN
   6.194 +Token ((Pos ((0, 225, 226), [_]), Pos ((0, 226, 0), [_])), :, _) 
   6.195 +-----------------------------------------------------------^ STOPS BEFORE Given WITH Outer_Syntax.
   6.196 +Outer syntax error: command expected,
   6.197 +but keyword Specification was found
   6.198 +\<close>
   6.199 +subsubsection \<open>on Problem: WITH "Specification:" OUTCOMMENTED\<close>
   6.200 +text \<open>
   6.201 +-----------------v BEGIN ---------------vv END OF -----v
   6.202 +Token ((Pos ((0, 9, 10), [_]), Pos ((0, 10, 0), [_])), (, _), 
   6.203 +Token ((Pos ((0, 10, 22), [_]), Pos ((0, 22, 0), [_])), "Biegelinie", _),  //INCLUDING ""
   6.204 +Token ((Pos ((0, 22, 23), [_]), Pos ((0, 23, 0), [_])), ,, _), 
   6.205 +Token ((Pos ((0, 24, 25), [_]), Pos ((0, 25, 0), [_])), [, _), 
   6.206 +Token ((Pos ((0, 25, 38), [_]), Pos ((0, 38, 0), [_])), "Biegelinien", _), 
   6.207 +Token ((Pos ((0, 38, 39), [_]), Pos ((0, 39, 0), [_])), ], _), 
   6.208 +Token ((Pos ((0, 39, 40), [_]), Pos ((0, 40, 0), [_])), ), _) 
   6.209 +{a = "//--- Spark_Commands.init_specify", headline =
   6.210 + (((("(", "Biegelinie"), ","), ["Biegelinien"]), ")")} (line 119 of "~~/src/Tools/isac/BridgeJEdit/preliminary.sml")
   6.211 +\<close>
   6.212 +subsubsection \<open>on Problem: == on Specification: == on Model:\<close>
   6.213 +
   6.214 +subsubsection \<open>on Given: WITHOUT "Specification:" OUTCOMMENTED\<close>
   6.215 +text \<open>COMPARE Greatest_Common_Divisor.thy
   6.216 +subsubsection \<open>click on "from \<open>0 < d\<close>"\<close>
   6.217 +
   6.218 +              line * offset * end_offset
   6.219 +       Symbol_Pos.text      * Position.range)* (kind * string) * slot
   6.220 +-----------------------------------------------------------------------------------
   6.221 +Token ((Pos ((0, 6, 7), [_]), Pos ((0, 7, 0), [_])), :, _), 
   6.222 +Token ((Pos ((0, 8, 24), [_]), Pos ((0, 24, 0), [_])), "Traegerlaenge ", _), 
   6.223 +Token ((Pos ((0, 25, 40), [_]), Pos ((0, 40, 0), [_])), "Streckenlast ", _), 
   6.224 +---------------------------------------------------------- PARSER DOES NOT STOP..
   6.225 +Token ((Pos ((0, 61, 66), [_]), Pos ((0, 66, 0), [_])), Where, _), 
   6.226 +Token ((Pos ((0, 66, 67), [_]), Pos ((0, 67, 0), [_])), :, _), 
   6.227 +Token ((Pos ((0, 68, 105), [_]), Pos ((0, 105, 0), [_])), "q_0 ist_integrierbar_auf {| 0, L |}", _),
   6.228 +Token ((Pos ((0, 106, 113), [_]), Pos ((0, 113, 0), [_])), "0 < L", _) 
   6.229 +Outer syntax error: command expected,
   6.230 +but keyword Where was found
   6.231 +\<close>
   6.232 +subsubsection \<open>on Where: == on Given:\<close>
   6.233 +
   6.234 +subsubsection \<open>on Find:\<close>
   6.235 +text \<open>
   6.236 +toks= 
   6.237 +Token ((Pos ((0, 5, 6), [_]), Pos ((0, 6, 0), [_])), :, _), 
   6.238 +Token ((Pos ((0, 7, 20), [_]), Pos ((0, 20, 0), [_])), "Biegelinie ", _) 
   6.239 +toks= 
   6.240 +Token ((Pos ((0, 5, 6), [_]), Pos ((0, 6, 0), [_])), :, _), 
   6.241 +Token ((Pos ((0, 7, 20), [_]), Pos ((0, 20, 0), [_])), "Biegelinie ", _), 
   6.242 +Token ((Pos ((0, 20, 0), [_]), Pos ((0, 0, 0), [_])), , _) 
   6.243 +Bad context for command "Find" -- using reset state
   6.244 +\<close>
   6.245 +subsubsection \<open>on Relate:\<close>
   6.246 +text \<open>
   6.247 +toks= 
   6.248 +Token ((Pos ((0, 7, 8), [_]), Pos ((0, 8, 0), [_])), :, _), 
   6.249 +Token ((Pos ((0, 9, 27), [_]), Pos ((0, 27, 0), [_])), "Randbedingungen ", _), 
   6.250 +Token ((Pos ((0, 32, 42), [_]), Pos ((0, 42, 0), [_])), References, _), 
   6.251 +Token ((Pos ((0, 42, 43), [_]), Pos ((0, 43, 0), [_])), :, _), 
   6.252 +Token ((Pos ((0, 195, 202), [_]), Pos ((0, 202, 0), [_])), RTheory, _), 
   6.253 +Token ((Pos ((0, 202, 203), [_]), Pos ((0, 203, 0), [_])), :, _), 
   6.254 +Token ((Pos ((0, 204, 206), [_]), Pos ((0, 206, 0), [_])), "", _), 
   6.255 +Token ((Pos ((0, 213, 221), [_]), Pos ((0, 221, 0), [_])), RProblem, _), 
   6.256 +Token ((Pos ((0, 221, 222), [_]), Pos ((0, 222, 0), [_])), :, _), 
   6.257 +Token ((Pos ((0, 223, 224), [_]), Pos ((0, 224, 0), [_])), [, _), 
   6.258 +Token ((Pos ((0, 224, 226), [_]), Pos ((0, 226, 0), [_])), "", _), 
   6.259 +Token ((Pos ((0, 226, 227), [_]), Pos ((0, 227, 0), [_])), ,, _), 
   6.260 +Token ((Pos ((0, 228, 230), [_]), Pos ((0, 230, 0), [_])), "", _), 
   6.261 +Token ((Pos ((0, 230, 231), [_]), Pos ((0, 231, 0), [_])), ], _), 
   6.262 +Token ((Pos ((0, 238, 245), [_]), Pos ((0, 245, 0), [_])), RMethod, _), 
   6.263 +Token ((Pos ((0, 245, 246), [_]), Pos ((0, 246, 0), [_])), :, _), 
   6.264 +Token ((Pos ((0, 247, 248), [_]), Pos ((0, 248, 0), [_])), [, _), 
   6.265 +Token ((Pos ((0, 248, 250), [_]), Pos ((0, 250, 0), [_])), "", _), 
   6.266 +Token ((Pos ((0, 250, 251), [_]), Pos ((0, 251, 0), [_])), ,, _), 
   6.267 +Token ((Pos ((0, 252, 254), [_]), Pos ((0, 254, 0), [_])), "", _), 
   6.268 +Token ((Pos ((0, 254, 255), [_]), Pos ((0, 255, 0), [_])), ], _), 
   6.269 +Token ((Pos ((0, 296, 304), [_]), Pos ((0, 304, 0), [_])), Solution, _), 
   6.270 +Token ((Pos ((0, 304, 305), [_]), Pos ((0, 305, 0), [_])), :, _) 
   6.271 +Outer syntax error: command expected,
   6.272 +but keyword References was found
   6.273 +\<close>
   6.274 +subsubsection \<open>on References: == on Relate: == ...\<close>
   6.275 +
   6.276 +
   6.277 +subsection \<open><Output> BY CLICK ON Problem..Solution: session Isac\<close>
   6.278 +subsubsection \<open>(1)AFTER session Isac (after ./zcoding-to-test.sh)\<close>
   6.279  text \<open>
   6.280    Comparison of the two subsections below:
   6.281  (1) <Output> AFTER session Isac (after ./zcoding-to-test.sh) WITH click on Problem..Specification:
   6.282 @@ -366,5 +563,5 @@
   6.283      Bad context for command "end"\<^here> -- using reset state 
   6.284      Found the end of the theory, but the last SPARK environment is still open.
   6.285  "(2) outcomment before creating session Isac" ABOVE OTHERWISE YOU HAVE..
   6.286 -  ERROR: 
   6.287 +  ERROR:                         
   6.288      Bad context for command "end"\<^here> -- using reset state*)
     7.1 --- a/src/Tools/isac/BridgeJEdit/parseC.sml	Wed Feb 17 15:43:34 2021 +0100
     7.2 +++ b/src/Tools/isac/BridgeJEdit/parseC.sml	Fri Feb 26 13:13:03 2021 +0100
     7.3 @@ -13,7 +13,7 @@
     7.4    val problem_headline: problem_headline parser
     7.5  
     7.6  (* exclude "Problem" from parsing * )
     7.7 -  val read_out_headline: headline_string * Token.T list -> ThyC.id * Problem.id
     7.8 +  val read_out_headline: headline_string * Token.src -> ThyC.id * Problem.id
     7.9  ( * exclude "Problem" from parsing *)
    7.10    val read_out_headline: problem_headline -> ThyC.id * Problem.id
    7.11  (* exclude "Problem" from parsing *)
    7.12 @@ -31,9 +31,9 @@
    7.13    val formalisation: Fdl_Lexer.T list -> form_model_refs * Fdl_Lexer.T list;
    7.14  
    7.15  (* ---- for tests only: shifted from below to remove the Warning "unused" at fun.def. --------- *)
    7.16 -  val tokenize: string -> Token.T list
    7.17 -  val string_of_toks: Token.T list -> string
    7.18 -  val parse: (Token.T list -> 'a * Token.T list) -> Token.T list -> 'a * Token.T list
    7.19 +  val tokenize: string -> Token.src
    7.20 +  val string_of_toks: Token.src -> string
    7.21 +  val parse: (Token.src -> 'a * Token.src) -> Token.src -> 'a * Token.src
    7.22  (*/-------------------------------------------------------- ! aktivate for Test_Isac BEGIN ---\* )
    7.23  
    7.24    (*Model*)
    7.25 @@ -59,7 +59,7 @@
    7.26    val exec_rewrite_set_inst: (string * string) * string -> string
    7.27    val exec_substitute: (string * string) * string -> string
    7.28  
    7.29 -  val tactic: Token.T list -> (string * string) * Token.T list
    7.30 +  val tactic: Token.src -> (string * string) * Token.src
    7.31  
    7.32    (*Steps*)
    7.33    val steps: (string * (string * string)) list parser