def search.reads
bolt@1.27.0.0 · src/rules/correctness/pick.bend:133
import bolt@1.27.0.0/src/rules/correctness/pick.bend as Pick
import Base
import bolt@1.27.0.0/src/syntax/lex.bend as Lex
import bolt@1.27.0.0/src/syntax/tree.bend as Tree
133
134def search.reads(nn: Tree.Node, +xx: String) -> Bool:
135 match nn:
136 case Tree.Leaf{Lex.Tok{k, +t, _l, _c}}:
137 Bool.and(Lex.is_name(k), String.eq(t, xx))
138 case Tree.Group{_o, kids, _cl}:
139 search.reads(kids, xx)
140 case Tree.Stmt{_k, kids, body}:
141 +a = search.reads(kids, xx)
142 +b = search.reads(body, xx)
143 Bool.or(a, b)
144 case Tree.NCons{h, t}:
145 +a = search.reads(h, xx)
146 +b = search.reads(t, xx)
147 Bool.or(a, b)
148 case Tree.NNil{}:
149 False{}