ScanSource()
Parse one Haro source string: class headers (with single-inheritance 'from X', stored in the shared MULTIPLE-inheritance shape as [X] or []), 'def' method registry, and body-line call candidates.
Exemples de base (2)
oCG = new stzRingCodeGraph("")
oCG.ScanSource("class Bag" + nl + "def Len()" + nl + " return 1" + nl, "s")
aF = oCG.CheckRules() # the graph checks itself
# a finding carries all five unified keys
? HasKey(aF[1], :rule) and HasKey(aF[1], :subject) and HasKey(aF[1], :where) and
HasKey(aF[1], :severity) and HasKey(aF[1], :message)
# ...with :subject = the rule's domain
? aF[1][:subject]
aC = StzCheckCode("class Bag" + nl + "def Len()" + nl + " return 1" + nl)
# it keeps :line (not :where)
? HasKey(aC[1], :line)
# ...and does NOT leak :subject -- its shape is frozen
? HasKey(aC[1], :subject)1 code 1 0
exécuté le 2026-10-02 04:22 dans la bibliothèque au commit 0e72e2e2c ; tiré de rulereport_narrated.ring(s'ouvre dans un nouvel onglet)
oRep = new stzRuleReport("clean")
oAG = new stzAgentGraph("ok")
oAG.AddLLMActor("writer")
oAG.AddGuardian("gate")
oAG.AddEffect("send")
oAG.AddTraceSink("audit")
oAG.Proposes("writer", "gate")
oAG.Guards("gate", "send")
oAG.Feeds("gate", "send")
oAG.Traces("send", "audit")
oRep.Collect(oAG)
oCG = new stzRingCodeGraph("")
oCG.ScanSource("class Bag" + nl + "def Count()" + nl + " return 1" + nl, "s")
oRep.Collect(oCG)
# no findings
? oRep.NumberOfFindings()
# ...the gate is sound
? oRep.IsSound()0 1
exécuté le 2026-10-02 04:22 dans la bibliothèque au commit 0e72e2e2c ; tiré de rulereport_narrated.ring(s'ouvre dans un nouvel onglet)
Les extensions de cette méthode
Chaque extension, et si elle existe pour cette méthode ; une extension qui existe se compose avec les autres (FindSTCS).
Chaque exemple est un fichier de test de la bibliothèque, exécuté dans la bibliothèque pour cette page ; seuls ceux dont la sortie a tenu toutes les promesses écrites par leur fichier sont montrés. Les explications, les titres et le code sont ceux de la bibliothèque, en anglais.
Voir aussi
- La classe stzRingCodeGraph
- La référence du domaine : Métaprogrammation et règles de code
- Les autres méthodes de ces exemples : stzAgentGraph.AddEffect · stzAgentGraph.AddGuardian · stzAgentGraph.AddLLMActor · stzAgentGraph.AddTraceSink · stzAgentGraph.Feeds · stzAgentGraph.Guards · stzAgentGraph.Proposes · stzAgentGraph.Traces · stzRuleReport.Collect · stzRuleReport.IsSound · stzRuleReport.NumberOfFindings

