4.2 Regeln betrachten
Die Liste der vorhandenen Regeln kann mit dem Kommando rules ausgegeben werden. Wenn als Argument ein Muster angegeben wird, das neben Buchstaben Sternchen und Fragezeichen enthalten darf, dann werden nur die Regeln ausgegeben, deren Name zu diesem Muster passt. Sternchen stehen dabei für beliebige Zeichenfolgen, jedes Fragezeichen für genau ein beliebiges Zeichen.
Der Code einer einzigen Regel wird mit dem Befehl list ausgegeben. Je nach Angabe einer Regel oder einer Zeilennummer wird die ganze Regel oder nur ein Teil derselben ausgegeben. In Kapitel „Der Befehlssatz des Debuggers“ steht, unter welchen Bedingungen was ausgegeben wird.
Wenn ein Argument für einen Befehl Leerzeichen enthält, wie im nun folgenden Beispiel der Name einer Regel, die mit dem letzten list-Befehl ausgegeben werden soll, dann müssen diese Leerzeichen mit Rückstrichen markiert werden, damit die STDIO-Schnittstelle das Argument an diesen Stellen nicht auftrennt.
rules r1: "on dialog start" in module 1: TestDialog r2: "TestDialog.Root" in module 1: TestDialog r3: "TestDialog.IsPrime" in module 1: TestDialog (Rule r1:"on dialog start" at depth 1 line 7)>rules T* r2: "TestDialog.Root" in module 1: TestDialog r3: "TestDialog.IsPrime" in module 1: TestDialog (Rule r1:"on dialog start" at depth 1 line 7)>list 5 variable integer I; 6 7 for I := 2 to 100 do 8 if IsPrime(I) then 9 print I; 10 endif 11 endfor 12 } (Rule r1:"on dialog start" at depth 1 line 7)>list 9 7 for I := 2 to 100 do 8 if IsPrime(I) then 9 print I; 10 endif 11 endfor 12 } (Rule r1:"on dialog start" at depth 1 line 7)>list 5 3 on dialog start 4 { 5 variable integer I; 6 7 for I := 2 to 100 do 8 if IsPrime(I) then 9 print I; 10 endif (Rule r1:"on dialog start" at depth 1 line 7)>list r2 1 !! Determine greatest integer with a square not greater than X 3 rule integer Root (integer X input) 4 { 5 variable integer I := 0; 6 variable integer J := X; 7 variable integer K; 8 9 if (X <= 0) then 10 return 0; 11 endif 12 while ((J - I) > 1) do 13 K := ((I + J) / 2); 14 if ((K * K) > X) then 15 J := K; 16 else 17 I := K; 18 endif 19 endwhile 20 return I; 21 } (Rule r1:"on dialog start" at depth 1 line 7)>list\ on dialog\ start 1 !! Dialog start rule 2 on dialog start 3 { 4 variable integer I; 5 for I := 2 to 100 do 6 if IsPrime(I) then 7 print I; 8 endif 9 endfor 10 }