]> gitweb.factorcode.org Git - factor.git/blob - basis/stack-checker/visitor/visitor.factor
13472e8ff8f38ddbb0697fa0add6aad00b3a881a
[factor.git] / basis / stack-checker / visitor / visitor.factor
1 ! Copyright (C) 2008, 2010 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: kernel arrays namespaces ;
4 IN: stack-checker.visitor
5
6 SYMBOL: stack-visitor
7
8 HOOK: child-visitor stack-visitor ( -- visitor )
9
10 : nest-visitor ( -- ) child-visitor stack-visitor set ;
11
12 HOOK: #introduce, stack-visitor ( values -- )
13 HOOK: #call, stack-visitor ( inputs outputs word -- )
14 HOOK: #call-recursive, stack-visitor ( inputs outputs word -- )
15 HOOK: #push, stack-visitor ( literal value -- )
16 HOOK: #shuffle, stack-visitor ( in-d out-d in-r out-r mapping -- )
17 HOOK: #drop, stack-visitor ( values -- )
18 HOOK: #>r, stack-visitor ( inputs outputs -- )
19 HOOK: #r>, stack-visitor ( inputs outputs -- )
20 HOOK: #terminate, stack-visitor ( in-d in-r -- )
21 HOOK: #if, stack-visitor ( ? true false -- )
22 HOOK: #dispatch, stack-visitor ( n branches -- )
23 HOOK: #phi, stack-visitor ( d-phi-in d-phi-out terminated -- )
24 HOOK: #declare, stack-visitor ( declaration -- )
25 HOOK: #return, stack-visitor ( stack -- )
26 HOOK: #enter-recursive, stack-visitor ( label inputs outputs -- )
27 HOOK: #return-recursive, stack-visitor ( label inputs outputs -- )
28 HOOK: #recursive, stack-visitor ( label inputs visitor -- )
29 HOOK: #copy, stack-visitor ( inputs outputs -- )
30 HOOK: #alien-invoke, stack-visitor ( params in-d out-d -- )
31 HOOK: #alien-indirect, stack-visitor ( params in-d out-d -- )
32 HOOK: #alien-assembly, stack-visitor ( params in-d out-d -- )
33 HOOK: #alien-callback, stack-visitor ( params child -- )