Lines Matching refs:s
9 " notice is copied with it. Like most anything else that's free,
43 let s:keepcpo = &cpo
53 com! -nargs=+ LogiPatFlags let s:LogiPatFlags="<args>"
54 sil! com -nargs=+ LPF let s:LogiPatFlags="<args>"
71 let s:LogiPatFlags= a:3
74 let s:npatstack = 0
75 let s:nopstack = 0
76 let s:preclvl = 0
85 let expr = substitute(expr,'^\s*"','','')
89 let expr = substitute(expr,'^\s*','','')
92 call s:LP_PatPush('.*'.pat.'.*')
102 call s:LP_OpPush(op)
104 elseif expr =~ '^\s'
116 call s:LP_OpPush('Z')
118 let result= s:LP_PatPop(1)
122 if s:npatstack > 0
123 echoerr s:npatstack." patterns left on stack!"
124 let s:npatstack= 0
126 if s:nopstack > 0
127 echoerr s:nopstack." operators left on stack!"
128 let s:nopstack= 0
133 if exists("s:LogiPatFlags") && s:LogiPatFlags != ""
134 " call Decho("search(result<".result."> LogiPatFlags<".s:LogiPatFlags.">)")
135 call search(result,s:LogiPatFlags)
148 " s:String: Vim6.4 doesn't have string() {{{2
149 func! s:String(str)
155 fun! s:LP_PatPush(pat)
157 let s:npatstack = s:npatstack + 1
158 let s:patstack_{s:npatstack} = a:pat
159 " call s:StackLook("patpush") "Decho
160 " call Dret("LP_PatPush : npatstack=".s:npatstack)
164 " LP_PatPop: pop a number/variable from LogiPat's pattern stack {{{2
165 fun! s:LP_PatPop(lookup)
167 if s:npatstack > 0
168 let ret = s:patstack_{s:npatstack}
169 let s:npatstack = s:npatstack - 1
174 " call s:StackLook("patpop") "Decho
181 fun! s:LP_OpPush(op)
184 " determine new operator's precedence level
186 let s:preclvl= s:preclvl + 10
187 let preclvl = s:preclvl
189 let s:preclvl= s:preclvl - 10
190 if s:preclvl < 0
191 let s:preclvl= 0
192 echoerr "too many )s"
194 let preclvl= s:preclvl
196 let preclvl= s:preclvl + 2
198 let preclvl= s:preclvl + 4
200 let preclvl= s:preclvl + 6
205 let preclvl= s:preclvl
211 call s:LP_Execute(preclvl)
214 " call Decho("push new operator<".a:op."> onto stack with preclvl=".preclvl." at nopstack=".(s:nop…
216 let s:nopstack = s:nopstack + 1
217 let s:opprec_{s:nopstack} = preclvl
218 let s:opstack_{s:nopstack} = a:op
220 let s:nopstack = s:nopstack + 1
221 let s:opprec_{s:nopstack} = preclvl
222 let s:opstack_{s:nopstack} = a:op
224 let s:nopstack = s:nopstack + 1
225 let s:opprec_{s:nopstack} = preclvl
226 let s:opstack_{s:nopstack} = a:op
229 " call s:StackLook("oppush") "Decho
230 " call Dret("LP_OpPush : s:preclvl=".s:preclvl)
235 fun! s:LP_Execute(preclvl)
236 " call Dfunc("LP_Execute(preclvl=".a:preclvl.") npatstack=".s:npatstack." nopstack=".s:nopstack)
239 while s:nopstack > 0 && a:preclvl < s:opprec_{s:nopstack}
240 let op= s:opstack_{s:nopstack}
241 " call Decho("op<".op."> nop=".s:nopstack." [preclvl=".a:preclvl."] < [opprec_".s:nopstack."=".s:…
243 let s:nopstack = s:nopstack - 1
246 let n1= s:LP_PatPop(1)
247 call s:LP_PatPush(s:LP_Not(n1))
250 let n1= s:LP_PatPop(1)
251 let n2= s:LP_PatPop(1)
252 call s:LP_PatPush(s:LP_Or(n2,n1))
255 let n1= s:LP_PatPop(1)
256 let n2= s:LP_PatPop(1)
257 call s:LP_PatPush(s:LP_And(n2,n1))
260 " call s:StackLook("execute") "Decho
268 fun! s:LP_Not(pat)
282 fun! s:LP_Or(pat1,pat2)
291 fun! s:LP_And(pat1,pat2)
300 fun! s:StackLook(description)
307 while ifp <= s:npatstack && iop <= s:nopstack
308 let fp = s:patstack_{ifp}
309 let op = s:opstack_{iop}." (P".s:opprec_{s:nopstack}.')'
320 while ifp <= s:npatstack
321 let fp = s:patstack_{ifp}
327 while iop <= s:nopstack
328 let op = s:opstack_{iop}." (P".s:opprec_{s:nopstack}.')'
337 let &cpo= s:keepcpo
338 unlet s:keepcpo