From 6e141b8f6efa866c9f3606795bfd6ac93a14dcea Mon Sep 17 00:00:00 2001
From: rien <uploaded@gmail.com>
Date: Sat, 10 Dec 2011 20:59:22 -0500
Subject: [PATCH] added B: (break for parsing words) and appropriate
 documentation

---
 basis/tools/walker/walker-docs.factor | 4 ++++
 basis/tools/walker/walker.factor      | 4 ++++
 2 files changed, 8 insertions(+)

diff --git a/basis/tools/walker/walker-docs.factor b/basis/tools/walker/walker-docs.factor
index 318f7e065c..454fb29372 100644
--- a/basis/tools/walker/walker-docs.factor
+++ b/basis/tools/walker/walker-docs.factor
@@ -12,6 +12,9 @@ HELP: breakpoint-if
 HELP: B
 { $description "An alias for " { $link break } ", defined in the " { $vocab-link "syntax" } " vocabulary so that it is always available." } ;
 
+HELP: B:
+{ $description "A breakpoint for parsing words. When this word is executed, it copies the definition of the following parsing word, prepends a " { $link break } " to it so that it is the first word to be executed when the definition is called, and calls this new definition.\n\nWhen the walker tool opens, execution will still be inside " { $link POSTPONE: B: } ". To step out of B: and into the parsing word, do just that: jump out with O, then into with I." } ;
+
 ARTICLE: "breakpoints" "Setting breakpoints"
 "In addition to invoking the walker explicitly through the UI, it is possible to set breakpoints on words using words in the " { $vocab-link "tools.walker" } " vocabulary."
 $nl
@@ -24,6 +27,7 @@ $nl
 { $subsections
     break
     POSTPONE: B
+    POSTPONE: B:
 }
 "Note that because the walker calls various core library and UI words while rendering its own user interface, setting a breakpoint on a word such as " { $link append } " or " { $link + } " will hang the UI." ;
 
diff --git a/basis/tools/walker/walker.factor b/basis/tools/walker/walker.factor
index 3cc53cda9d..3c287cbf24 100644
--- a/basis/tools/walker/walker.factor
+++ b/basis/tools/walker/walker.factor
@@ -168,3 +168,7 @@ SYMBOL: +stopped+
 IN: syntax
 
 SYNTAX: B \ break suffix! ;
+
+SYNTAX: B: scan-word definition
+    [ break "now press O I to land inside the parsing word" drop ]
+    prepose call( accum -- accum ) ;