internalize error into command transaction -- relevant for commands that are declared via 'keywords', but not defined yet;
--- a/src/Pure/Isar/outer_syntax.ML Thu Jul 05 14:13:14 2012 +0200
+++ b/src/Pure/Isar/outer_syntax.ML Thu Jul 05 15:40:57 2012 +0200
@@ -69,7 +69,9 @@
(case cmd name of
SOME (Command {int_only, parse, ...}) =>
Parse.!!! (Scan.prompt (name ^ "# ") (Parse.tags |-- parse >> pair int_only))
- | NONE => raise Fail ("No parser for outer syntax command " ^ quote name));
+ | NONE =>
+ Scan.succeed (false, Toplevel.imperative (fn () =>
+ error ("Bad parser for outer syntax command " ^ quote name))));
in