Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
why3
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
121
Issues
121
List
Boards
Labels
Service Desk
Milestones
Merge Requests
15
Merge Requests
15
Operations
Operations
Incidents
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Why3
why3
Commits
9d9770f8
Commit
9d9770f8
authored
Mar 14, 2016
by
Andrei Paskevich
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Discriminate: provide direct get_syntax_map
parent
66d82e9f
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
24 additions
and
12 deletions
+24
-12
src/transform/discriminate.ml
src/transform/discriminate.ml
+21
-12
src/transform/discriminate.mli
src/transform/discriminate.mli
+3
-0
No files found.
src/transform/discriminate.ml
View file @
9d9770f8
...
@@ -367,21 +367,30 @@ let () =
...
@@ -367,21 +367,30 @@ let () =
discriminate_if_poly
discriminate_if_poly
~
desc
:
"Same@ as@ discriminate@ but@ only@ if@ polymorphism@ appear."
~
desc
:
"Same@ as@ discriminate@ but@ only@ if@ polymorphism@ appear."
let
on_lsinst
fn
=
let
li_add_ls
acc
=
function
let
add_ls
acc
=
function
|
[
MAls
ls
;
MAls
nls
]
->
Mls
.
add
nls
ls
acc
|
[
MAls
ls
;
MAls
nls
]
->
Mls
.
add
nls
ls
acc
|
_
->
assert
false
in
|
_
->
assert
false
let
get_lsinst
task
=
Task
.
on_meta
meta_lsinst
li_add_ls
Mls
.
empty
task
let
on_lsinst
fn
=
Trans
.
on_meta
meta_lsinst
(
fun
dls
->
Trans
.
on_meta
meta_lsinst
(
fun
dls
->
fn
(
List
.
fold_left
add_ls
Mls
.
empty
dls
))
fn
(
List
.
fold_left
li_
add_ls
Mls
.
empty
dls
))
let
on_syntax_map
fn
=
let
sm_add_ls
sm0
sm
=
function
let
add_ls
sm0
sm
=
function
|
[
MAls
ls
;
MAls
nls
]
->
|
[
MAls
ls
;
MAls
nls
]
->
begin
match
Mid
.
find_opt
ls
.
ls_name
sm0
with
begin
match
Mid
.
find_opt
ls
.
ls_name
sm0
with
|
Some
s
->
Mid
.
add
nls
.
ls_name
s
sm
|
Some
s
->
Mid
.
add
nls
.
ls_name
s
sm
|
None
->
sm
|
None
->
sm
end
end
|
_
->
assert
false
in
|
_
->
assert
false
let
get_syntax_map
task
=
let
sm0
=
Printer
.
get_syntax_map
task
in
Task
.
on_meta
meta_lsinst
(
sm_add_ls
sm0
)
sm0
task
let
on_syntax_map
fn
=
Printer
.
on_syntax_map
(
fun
sm0
->
Printer
.
on_syntax_map
(
fun
sm0
->
Trans
.
on_meta
meta_lsinst
(
fun
dls
->
Trans
.
on_meta
meta_lsinst
(
fun
dls
->
fn
(
List
.
fold_left
(
fun
sm
dl
->
add_ls
sm0
sm
dl
)
sm0
dls
)))
fn
(
List
.
fold_left
(
sm_add_ls
sm0
)
sm0
dls
)))
src/transform/discriminate.mli
View file @
9d9770f8
...
@@ -23,5 +23,8 @@ val ft_select_inst : (Env.env,Ty.Sty.t) Trans.flag_trans
...
@@ -23,5 +23,8 @@ val ft_select_inst : (Env.env,Ty.Sty.t) Trans.flag_trans
val
ft_select_lskept
:
(
Env
.
env
,
Term
.
Sls
.
t
)
Trans
.
flag_trans
val
ft_select_lskept
:
(
Env
.
env
,
Term
.
Sls
.
t
)
Trans
.
flag_trans
val
ft_select_lsinst
:
(
Env
.
env
,
Lsmap
.
t
)
Trans
.
flag_trans
val
ft_select_lsinst
:
(
Env
.
env
,
Lsmap
.
t
)
Trans
.
flag_trans
val
get_lsinst
:
Task
.
task
->
Term
.
lsymbol
Term
.
Mls
.
t
val
get_syntax_map
:
Task
.
task
->
Printer
.
syntax_map
val
on_lsinst
:
(
Term
.
lsymbol
Term
.
Mls
.
t
->
'
a
Trans
.
trans
)
->
'
a
Trans
.
trans
val
on_lsinst
:
(
Term
.
lsymbol
Term
.
Mls
.
t
->
'
a
Trans
.
trans
)
->
'
a
Trans
.
trans
val
on_syntax_map
:
(
Printer
.
syntax_map
->
'
a
Trans
.
trans
)
->
'
a
Trans
.
trans
val
on_syntax_map
:
(
Printer
.
syntax_map
->
'
a
Trans
.
trans
)
->
'
a
Trans
.
trans
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