Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
POTTIER Francois
alphaLib
Commits
03cb6a6a
Commit
03cb6a6a
authored
Feb 20, 2017
by
POTTIER Francois
Browse files
Added a [lookup] method in every kit that needs it.
parent
29206bde
Changes
10
Hide whitespace changes
Inline
Side-by-side
src/KitAvoid.ml
View file @
03cb6a6a
...
...
@@ -20,5 +20,6 @@ let extend bad x env =
class
[
'
self
]
map
bad
=
object
(
_
:
'
self
)
method
private
extend
x
env
=
extend
bad
x
env
method
private
visit_'fn
env
x
=
lookup
env
x
method
private
lookup
=
lookup
method
private
visit_'fn
=
lookup
end
src/KitCopy.ml
View file @
03cb6a6a
...
...
@@ -23,5 +23,6 @@ let extend x env =
class
[
'
self
]
map
=
object
(
_
:
'
self
)
method
private
extend
x
env
=
extend
x
env
method
private
visit_'fn
env
x
=
lookup
env
x
method
private
lookup
=
lookup
method
private
visit_'fn
=
lookup
end
src/KitEquiv.ml
View file @
03cb6a6a
...
...
@@ -48,5 +48,6 @@ let lookup (m1, m2, _) x1 x2 =
class
[
'
self
]
iter2
=
object
(
_
:
'
self
)
method
private
extend
=
extend
method
private
lookup
=
lookup
method
private
visit_'fn
=
lookup
end
src/KitExport.ml
View file @
03cb6a6a
...
...
@@ -51,5 +51,6 @@ let lookup env a =
class
[
'
self
]
map
=
object
(
_
:
'
self
)
method
private
extend
=
extend
method
private
lookup
=
lookup
method
private
visit_'fn
=
lookup
end
src/KitImport.ml
View file @
03cb6a6a
...
...
@@ -28,5 +28,6 @@ let lookup (env : env) (x : string) : Atom.t =
class
[
'
self
]
map
=
object
(
_
:
'
self
)
method
private
extend
x
env
=
extend
x
env
method
private
visit_'fn
env
x
=
lookup
env
x
method
private
lookup
=
lookup
method
private
visit_'fn
=
lookup
end
src/KitShow.ml
View file @
03cb6a6a
...
...
@@ -2,7 +2,11 @@
(* At an abstraction or at a name occurrence, [Atom.show] is applied. *)
let
lookup
_env
x
=
Atom
.
show
x
class
[
'
self
]
map
=
object
(
_
:
'
self
)
method
private
extend
x
env
=
Atom
.
show
x
,
env
method
private
visit_'fn
_env
x
=
Atom
.
show
x
method
private
lookup
=
lookup
method
private
visit_'fn
=
lookup
end
src/KitSubst.ml
View file @
03cb6a6a
...
...
@@ -17,8 +17,15 @@ let extend x env =
substitution [env], unchanged, under the binder. *)
x
,
env
let
lookup
env
x
=
try
Atom
.
Map
.
find
x
env
with
Not_found
->
assert
false
class
[
'
self
]
map
=
object
(
_
:
'
self
)
method
private
extend
=
extend
method
private
lookup
=
lookup
(* [visit_'fn] must be implemented. There could be several kinds of
nodes that carry variables of type ['fn], say, [FooVar] and [BarVar],
and the user may decide to substitute away [FooVar] nodes, but leave
...
...
src/KitToDeBruijn.ml
View file @
03cb6a6a
...
...
@@ -45,6 +45,7 @@ end) = struct
class
[
'
self
]
map
=
object
(
_
:
'
self
)
method
private
extend
=
extend
method
private
lookup
_env
_x
=
()
method
private
visit_'fn
=
lookup
end
...
...
src/KitTrivial.ml
View file @
03cb6a6a
...
...
@@ -8,19 +8,3 @@ class ['self] iter = object (_ : 'self)
method
private
extend
_x
env
=
env
method
private
visit_'fn
_env
_x
=
()
end
(* The following are presently unused:
class ['self] map = object (_ : 'self)
method private extend x env = x, env
method private visit_'fn _env x = x
end
class virtual ['self] reduce = object (self : 'self)
method private virtual zero: _
method private extend _x env = env
method private restrict _x z = z
method private visit_'fn _env _x = self#zero
end
*)
src/ToolboxInput.ml
View file @
03cb6a6a
...
...
@@ -24,6 +24,7 @@ module type INPUT = sig
class
virtual
[
'
self
]
map
:
object
(
'
self
)
method
private
virtual
extend
:
'
bn1
->
'
env
->
'
bn2
*
'
env
method
private
virtual
lookup
:
'
env
->
'
bn1
->
'
bn2
method
private
virtual
visit_'fn
:
'
env
->
'
fn1
->
'
fn2
method
visit_term
:
'
env
->
(
'
bn1
,
'
fn1
)
term
->
(
'
bn2
,
'
fn2
)
term
method
private
visit_TVar
:
'
env
->
'
fn1
->
(
'
bn2
,
'
fn2
)
term
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment