equal
deleted
inserted
replaced
744 val _ = |
744 val _ = |
745 OuterSyntax.improper_command "kill" "kill current history node" K.control |
745 OuterSyntax.improper_command "kill" "kill current history node" K.control |
746 (Scan.succeed (Toplevel.no_timing o Toplevel.print o IsarCmd.kill)); |
746 (Scan.succeed (Toplevel.no_timing o Toplevel.print o IsarCmd.kill)); |
747 |
747 |
748 |
748 |
|
749 (* nested command *) |
|
750 |
|
751 val _ = |
|
752 OuterSyntax.improper_command "Isabelle.command" "nested Isabelle command" K.control |
|
753 (P.position P.string :|-- (fn (str, pos) => |
|
754 (case OuterSyntax.parse pos str of |
|
755 [transition] => Scan.succeed (K transition) |
|
756 | _ => Scan.fail_with (K "exactly one nested Isabelle command expected")) |
|
757 handle ERROR msg => Scan.fail_with (K ("malformed nested command\n" ^ msg)))); |
|
758 |
|
759 |
749 |
760 |
750 (** diagnostic commands (for interactive mode only) **) |
761 (** diagnostic commands (for interactive mode only) **) |
751 |
762 |
752 val opt_modes = Scan.optional (P.$$$ "(" |-- P.!!! (Scan.repeat1 P.xname --| P.$$$ ")")) []; |
763 val opt_modes = Scan.optional (P.$$$ "(" |-- P.!!! (Scan.repeat1 P.xname --| P.$$$ ")")) []; |
753 val opt_bang = Scan.optional (P.$$$ "!" >> K true) false; |
764 val opt_bang = Scan.optional (P.$$$ "!" >> K true) false; |