Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
L
lustre-v6
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
verimag
synchrone
lustre-v6
Commits
14d2f1fd
Commit
14d2f1fd
authored
3 months ago
by
erwan
Browse files
Options
Downloads
Patches
Plain Diff
build: git rid of Warning 69
parent
2005e8b8
No related branches found
No related tags found
No related merge requests found
Pipeline
#205336
passed
3 months ago
Stage: build
Stage: test
Stage: release
Changes
4
Pipelines
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
lib/astTab.ml
+58
-60
58 additions, 60 deletions
lib/astTab.ml
lib/l2lExpandMetaOp.ml
+4
-4
4 additions, 4 deletions
lib/l2lExpandMetaOp.ml
lib/lic2soc.ml
+3
-3
3 additions, 3 deletions
lib/lic2soc.ml
lib/soc2c.ml
+3
-3
3 additions, 3 deletions
lib/soc2c.ml
with
68 additions
and
70 deletions
lib/astTab.ml
+
58
−
60
View file @
14d2f1fd
(* Time-stamp: <modified the 2
9/08
/20
19
(at 1
5
:2
4
) by Erwan Jahier> *)
(* Time-stamp: <modified the 2
8/11
/20
24
(at 1
1
:2
8
) by Erwan Jahier> *)
(**
(**
Table des infos sources : une couche au dessus de AstV6 pour mieux
Table des infos sources : une couche au dessus de AstV6 pour mieux
ranger les packages et les modèles et faciliter la résolution des
ranger les packages et les modèles et faciliter la résolution des
identificateurs.
identificateurs.
...
@@ -42,9 +42,9 @@ let dbg = (Lv6Verbose.get_flag "ast")
...
@@ -42,9 +42,9 @@ let dbg = (Lv6Verbose.get_flag "ast")
dans la partie provide ou body.
dans la partie provide ou body.
Il contient aussi une table des items exportés pour faciliter le
Il contient aussi une table des items exportés pour faciliter le
traitement des "use" du package. C'est une correspondance
traitement des "use" du package. C'est une correspondance
nature + nom simple -> nom complet
nature + nom simple -> nom complet
(c.a.d. ??? + AstV6.item_ident -> Lv6Id.long)
(c.a.d. ??? + AstV6.item_ident -> Lv6Id.long)
*)
*)
...
@@ -53,7 +53,7 @@ type pack_mng = {
...
@@ -53,7 +53,7 @@ type pack_mng = {
(* le lexeme associé au package? *)
(* le lexeme associé au package? *)
pm_lxm
:
Lxm
.
t
;
pm_lxm
:
Lxm
.
t
;
(* le source brut *)
(* le source brut *)
pm_raw_src
:
AstV6
.
pack_info
;
(*
pm_raw_src : AstV6.pack_info;
*)
(* le source expansé *)
(* le source expansé *)
pm_actual_src
:
AstV6
.
pack_given
;
pm_actual_src
:
AstV6
.
pack_given
;
(* table "brute" des items provided *)
(* table "brute" des items provided *)
...
@@ -83,24 +83,24 @@ type t = {
...
@@ -83,24 +83,24 @@ type t = {
st_raw_mod_tab
:
(
Lv6Id
.
t
,
model_info
srcflagged
)
Hashtbl
.
t
;
st_raw_mod_tab
:
(
Lv6Id
.
t
,
model_info
srcflagged
)
Hashtbl
.
t
;
st_raw_pack_tab
:
(
Lv6Id
.
pack_name
,
pack_info
srcflagged
)
Hashtbl
.
t
;
st_raw_pack_tab
:
(
Lv6Id
.
pack_name
,
pack_info
srcflagged
)
Hashtbl
.
t
;
(* table des managers de packs *)
(* table des managers de packs *)
st_pack_mng_tab
:
(
Lv6Id
.
pack_name
,
pack_mng
)
Hashtbl
.
t
;
st_pack_mng_tab
:
(
Lv6Id
.
pack_name
,
pack_mng
)
Hashtbl
.
t
;
}
}
(* exported *)
(* exported *)
let
(
pack_list
:
t
->
Lv6Id
.
pack_name
list
)
=
let
(
pack_list
:
t
->
Lv6Id
.
pack_name
list
)
=
fun
this
->
fun
this
->
Hashtbl
.
fold
(
fun
n
_p
l
->
n
::
l
)
this
.
st_pack_mng_tab
[]
Hashtbl
.
fold
(
fun
n
_p
l
->
n
::
l
)
this
.
st_pack_mng_tab
[]
(* exported *)
(* exported *)
let
(
pack_body_env
:
t
->
Lv6Id
.
pack_name
->
AstTabSymbol
.
t
)
=
let
(
pack_body_env
:
t
->
Lv6Id
.
pack_name
->
AstTabSymbol
.
t
)
=
fun
this
p
->
fun
this
p
->
try
try
(
Hashtbl
.
find
this
.
st_pack_mng_tab
p
)
.
pm_body_stab
(
Hashtbl
.
find
this
.
st_pack_mng_tab
p
)
.
pm_body_stab
with
Not_found
->
with
Not_found
->
print_string
(
"*** Error: can not find package '"
^
print_string
(
"*** Error: can not find package '"
^
(
Lv6Id
.
pack_name_to_string
p
)
^
"' in the following packages: "
);
(
Lv6Id
.
pack_name_to_string
p
)
^
"' in the following packages: "
);
Hashtbl
.
iter
Hashtbl
.
iter
(
fun
pn
_pm
->
print_string
(
"
\n
***
\t
'"
^
(
Lv6Id
.
pack_name_to_string
pn
)
^
"'"
))
(
fun
pn
_pm
->
print_string
(
"
\n
***
\t
'"
^
(
Lv6Id
.
pack_name_to_string
pn
)
^
"'"
))
this
.
st_pack_mng_tab
;
this
.
st_pack_mng_tab
;
print_string
"
\n
"
;
print_string
"
\n
"
;
...
@@ -112,30 +112,30 @@ let (pack_body_env: t -> Lv6Id.pack_name -> AstTabSymbol.t) =
...
@@ -112,30 +112,30 @@ let (pack_body_env: t -> Lv6Id.pack_name -> AstTabSymbol.t) =
let
pack_prov_env
(
this
:
t
)
(
p
:
Lv6Id
.
pack_name
)
let
pack_prov_env
(
this
:
t
)
(
p
:
Lv6Id
.
pack_name
)
:
AstTabSymbol
.
t
option
=
:
AstTabSymbol
.
t
option
=
try
(
Hashtbl
.
find
this
.
st_pack_mng_tab
p
)
.
pm_provide_stab
try
(
Hashtbl
.
find
this
.
st_pack_mng_tab
p
)
.
pm_provide_stab
with
Not_found
->
with
Not_found
->
(* let msg = *)
(* let msg = *)
(* ("\n*** Could not find package " ^(Lv6Id.pack_name_to_string p) ^ *)
(* ("\n*** Could not find package " ^(Lv6Id.pack_name_to_string p) ^ *)
(* " in the package table" ) *)
(* " in the package table" ) *)
(* in *)
(* in *)
None
None
(* raise(Compile_error(lxm, msg)) *)
(* raise(Compile_error(lxm, msg)) *)
(** Insert an item in the lexeme table. Raise [Compile_error] if already defined. *)
(** Insert an item in the lexeme table. Raise [Compile_error] if already defined. *)
let
put_in_tab
let
put_in_tab
(
what
:
string
)
(
what
:
string
)
(
tab
:
(
'
a
,
'
b
Lxm
.
srcflagged
)
Hashtbl
.
t
)
(
tab
:
(
'
a
,
'
b
Lxm
.
srcflagged
)
Hashtbl
.
t
)
(
key
:
'
a
)
(
key
:
'
a
)
(
value
:
'
b
Lxm
.
srcflagged
)
(
value
:
'
b
Lxm
.
srcflagged
)
=
=
try
try
let
plxm
=
(
Hashtbl
.
find
tab
key
)
.
src
in
let
plxm
=
(
Hashtbl
.
find
tab
key
)
.
src
in
let
msg
=
let
msg
=
Printf
.
sprintf
"%s already declared in %s"
what
(
Lxm
.
position
plxm
)
Printf
.
sprintf
"%s already declared in %s"
what
(
Lxm
.
position
plxm
)
in
in
raise
(
Lv6errors
.
Compile_error
(
value
.
src
,
msg
))
raise
(
Lv6errors
.
Compile_error
(
value
.
src
,
msg
))
with
with
Not_found
->
Hashtbl
.
add
tab
key
value
Not_found
->
Hashtbl
.
add
tab
key
value
...
@@ -152,14 +152,14 @@ let init_user_items (this: pack_mng) = (
...
@@ -152,14 +152,14 @@ let init_user_items (this: pack_mng) = (
(
ConstItem
s
)
(
ConstItem
s
)
(
Lxm
.
flagit
(
Lv6Id
.
make_long
pname
s
)
xci
.
src
)
(
Lxm
.
flagit
(
Lv6Id
.
make_long
pname
s
)
xci
.
src
)
in
in
(* Exportation D'un type_info *)
(* Exportation D'un type_info *)
let
export_type
(
s
:
Lv6Id
.
t
)
(
xti
:
AstCore
.
type_info
srcflagged
)
=
let
export_type
(
s
:
Lv6Id
.
t
)
(
xti
:
AstCore
.
type_info
srcflagged
)
=
(
match
(
xti
.
it
)
with
(
match
(
xti
.
it
)
with
|
EnumType
(
_
,
ecl
)
->
(
|
EnumType
(
_
,
ecl
)
->
(
(* Cas particulier des types enums *)
(* Cas particulier des types enums *)
(* on exporte les constantes ... *)
(* on exporte les constantes ... *)
let
treat_enum_const
ec
=
let
treat_enum_const
ec
=
let
s
=
ec
.
it
in
let
s
=
ec
.
it
in
let
lxm
=
ec
.
src
in
let
lxm
=
ec
.
src
in
Lv6Verbose
.
printf
~
flag
:
dbg
" export enum const %s
\n
"
(
Lv6Id
.
to_string
s
);
Lv6Verbose
.
printf
~
flag
:
dbg
" export enum const %s
\n
"
(
Lv6Id
.
to_string
s
);
...
@@ -170,9 +170,9 @@ let init_user_items (this: pack_mng) = (
...
@@ -170,9 +170,9 @@ let init_user_items (this: pack_mng) = (
List
.
iter
treat_enum_const
ecl
List
.
iter
treat_enum_const
ecl
)
)
|
ExternalType
_
|
ExternalType
_
|
AliasedType
_
|
AliasedType
_
|
StructType
_
|
StructType
_
|
ArrayType
_
|
ArrayType
_
->
()
->
()
);
);
Lv6Verbose
.
printf
~
flag
:
dbg
" export type %s
\n
"
(
Lv6Id
.
to_string
s
);
Lv6Verbose
.
printf
~
flag
:
dbg
" export type %s
\n
"
(
Lv6Id
.
to_string
s
);
...
@@ -182,7 +182,7 @@ let init_user_items (this: pack_mng) = (
...
@@ -182,7 +182,7 @@ let init_user_items (this: pack_mng) = (
in
in
(* Exportation D'un node_info *)
(* Exportation D'un node_info *)
let
export_node
(
s
:
Lv6Id
.
t
)
(
xoi
:
AstCore
.
node_info
srcflagged
)
=
let
export_node
(
s
:
Lv6Id
.
t
)
(
xoi
:
AstCore
.
node_info
srcflagged
)
=
Lv6Verbose
.
printf
~
flag
:
dbg
" export node %s
\n
"
(
Lv6Id
.
to_string
s
);
Lv6Verbose
.
printf
~
flag
:
dbg
" export node %s
\n
"
(
Lv6Id
.
to_string
s
);
put_in_tab
"node"
this
.
pm_user_items
put_in_tab
"node"
this
.
pm_user_items
(
NodeItem
(
s
,
xoi
.
it
.
static_params
))
(
NodeItem
(
s
,
xoi
.
it
.
static_params
))
...
@@ -199,7 +199,7 @@ let init_user_items (this: pack_mng) = (
...
@@ -199,7 +199,7 @@ let init_user_items (this: pack_mng) = (
Hashtbl
.
iter
export_node
pg
.
pg_body
.
pk_node_table
;
Hashtbl
.
iter
export_node
pg
.
pg_body
.
pk_node_table
;
|
Some
spflg
->
|
Some
spflg
->
(* On Exporte Les Provides *)
(* On Exporte Les Provides *)
let
treat_prov
x
=
let
treat_prov
x
=
let
lxm
=
x
.
src
in
let
lxm
=
x
.
src
in
let
s
=
Lxm
.
id
lxm
in
let
s
=
Lxm
.
id
lxm
in
match
(
x
.
it
)
with
match
(
x
.
it
)
with
...
@@ -216,24 +216,24 @@ On pr
...
@@ -216,24 +216,24 @@ On pr
pour pouvoir traiter les éventuels "use" des autres pack.
pour pouvoir traiter les éventuels "use" des autres pack.
Les tables de symboles sont créées plus tard.
Les tables de symboles sont créées plus tard.
*)
*)
let
create_pack_mng
let
create_pack_mng
(
pdata
:
AstV6
.
pack_info
srcflagged
)
(
pdata
:
AstV6
.
pack_info
srcflagged
)
(
pgiven
:
AstV6
.
pack_given
)
(
pgiven
:
AstV6
.
pack_given
)
=
(
=
(
(* la table pm_provide_stab n'est créée que si besoin *)
(* la table pm_provide_stab n'est créée que si besoin *)
let
ppstab
=
match
pgiven
.
pg_provides
with
let
ppstab
=
match
pgiven
.
pg_provides
with
None
->
None
None
->
None
|
Some
_
->
Some
(
AstTabSymbol
.
create
()
)
|
Some
_
->
Some
(
AstTabSymbol
.
create
()
)
in
in
let
res
=
let
res
=
{
{
pm_lxm
=
pdata
.
src
;
pm_lxm
=
pdata
.
src
;
pm_raw_src
=
pdata
.
it
;
(*
pm_raw_src = pdata.it;
*)
pm_actual_src
=
pgiven
;
pm_actual_src
=
pgiven
;
pm_user_items
=
Hashtbl
.
create
50
;
pm_user_items
=
Hashtbl
.
create
50
;
pm_provide_stab
=
ppstab
;
pm_provide_stab
=
ppstab
;
pm_body_stab
=
AstTabSymbol
.
create
()
;
pm_body_stab
=
AstTabSymbol
.
create
()
;
}
}
in
in
init_user_items
res
;
init_user_items
res
;
res
res
...
@@ -254,14 +254,14 @@ Se fait en plusieurs passes :
...
@@ -254,14 +254,14 @@ Se fait en plusieurs passes :
****************************************************************************)
****************************************************************************)
let
rec
(
create
:
AstV6
.
pack_or_model
list
->
t
)
=
let
rec
(
create
:
AstV6
.
pack_or_model
list
->
t
)
=
fun
sl
->
fun
sl
->
(* liste + tables des sources bruts *)
(* liste + tables des sources bruts *)
let
res
=
{
let
res
=
{
st_list
=
sl
;
st_list
=
sl
;
st_raw_mod_tab
=
Hashtbl
.
create
50
;
st_raw_mod_tab
=
Hashtbl
.
create
50
;
st_raw_pack_tab
=
Hashtbl
.
create
50
;
st_raw_pack_tab
=
Hashtbl
.
create
50
;
st_pack_mng_tab
=
Hashtbl
.
create
50
;
st_pack_mng_tab
=
Hashtbl
.
create
50
;
}
}
in
in
Lv6Verbose
.
printf
~
flag
:
dbg
"*** AstTab.create pass 1
\n
"
;
Lv6Verbose
.
printf
~
flag
:
dbg
"*** AstTab.create pass 1
\n
"
;
(* passe 1 *)
(* passe 1 *)
...
@@ -271,7 +271,7 @@ let rec (create : AstV6.pack_or_model list -> t) =
...
@@ -271,7 +271,7 @@ let rec (create : AstV6.pack_or_model list -> t) =
let
init_pack_mng
pname
pdata
=
(
let
init_pack_mng
pname
pdata
=
(
Lv6Verbose
.
printf
~
flag
:
dbg
" init pack %s
\n
"
(
Lv6Id
.
pack_name_to_string
pname
);
Lv6Verbose
.
printf
~
flag
:
dbg
" init pack %s
\n
"
(
Lv6Id
.
pack_name_to_string
pname
);
let
pg
=
AstInstanciateModel
.
f
res
.
st_raw_mod_tab
pdata
in
let
pg
=
AstInstanciateModel
.
f
res
.
st_raw_mod_tab
pdata
in
Hashtbl
.
add
res
.
st_pack_mng_tab
Hashtbl
.
add
res
.
st_pack_mng_tab
pname
pname
(
create_pack_mng
pdata
pg
)
(
create_pack_mng
pdata
pg
)
)
in
)
in
...
@@ -287,14 +287,14 @@ and
...
@@ -287,14 +287,14 @@ and
(* init des tables string -> mod ou pack *)
(* init des tables string -> mod ou pack *)
init_raw_tabs
(
this
:
t
)
(
sl
:
AstV6
.
pack_or_model
list
)
=
init_raw_tabs
(
this
:
t
)
(
sl
:
AstV6
.
pack_or_model
list
)
=
(* on itère pour chaque pack_or_model : *)
(* on itère pour chaque pack_or_model : *)
let
treat_ns
ns
=
let
treat_ns
ns
=
match
ns
with
match
ns
with
(* cas d'un package *)
(* cas d'un package *)
|
AstV6
.
NSPack
pi
->
|
AstV6
.
NSPack
pi
->
let
lxm
=
pi
.
Lxm
.
src
in
let
lxm
=
pi
.
Lxm
.
src
in
let
nme
=
(
Lv6Id
.
pack_name_of_string
(
Lxm
.
str
lxm
))
in
let
nme
=
(
Lv6Id
.
pack_name_of_string
(
Lxm
.
str
lxm
))
in
put_in_tab
"package"
this
.
st_raw_pack_tab
nme
pi
put_in_tab
"package"
this
.
st_raw_pack_tab
nme
pi
|
AstV6
.
NSModel
mi
->
(* cas d'un modele *)
|
AstV6
.
NSModel
mi
->
(* cas d'un modele *)
let
lxm
=
mi
.
Lxm
.
src
in
let
lxm
=
mi
.
Lxm
.
src
in
let
nme
=
(
Lxm
.
id
lxm
)
in
let
nme
=
(
Lxm
.
id
lxm
)
in
...
@@ -303,7 +303,7 @@ and
...
@@ -303,7 +303,7 @@ and
List
.
iter
treat_ns
sl
List
.
iter
treat_ns
sl
and
and
(***** PASSE 3 *****)
(***** PASSE 3 *****)
(* Essentiellement le remplissage des champs de pack_mng :
(* Essentiellement le remplissage des champs de pack_mng :
pm_provide_stab : AstTabSymbol.t
pm_provide_stab : AstTabSymbol.t
table qui permettra de résoudre les refs simples
table qui permettra de résoudre les refs simples
...
@@ -330,7 +330,7 @@ and
...
@@ -330,7 +330,7 @@ and
let
treat_uses
(
px
:
Lv6Id
.
pack_name
srcflagged
)
=
(
let
treat_uses
(
px
:
Lv6Id
.
pack_name
srcflagged
)
=
(
let
pname
=
px
.
it
in
let
pname
=
px
.
it
in
let
lxm
=
px
.
src
in
let
lxm
=
px
.
src
in
let
pum
=
let
pum
=
try
Hashtbl
.
find
this
.
st_pack_mng_tab
pname
try
Hashtbl
.
find
this
.
st_pack_mng_tab
pname
with
Not_found
->
raise
(
Compile_error
(
lxm
,
"unknown package"
))
with
Not_found
->
raise
(
Compile_error
(
lxm
,
"unknown package"
))
in
in
...
@@ -356,7 +356,7 @@ and
...
@@ -356,7 +356,7 @@ and
Some
pt
->
AstTabSymbol
.
add_import_node
pt
n
iks
.
it
sparams
Some
pt
->
AstTabSymbol
.
add_import_node
pt
n
iks
.
it
sparams
|
None
->
()
|
None
->
()
)
)
)
)
in
in
Hashtbl
.
iter
fill_used_item
pum
.
pm_user_items
Hashtbl
.
iter
fill_used_item
pum
.
pm_user_items
)
)
...
@@ -370,17 +370,17 @@ and
...
@@ -370,17 +370,17 @@ and
Hashtbl
.
iter
(
AstTabSymbol
.
add_node
pm
.
pm_body_stab
)
pg
.
pg_body
.
pk_node_table
;
Hashtbl
.
iter
(
AstTabSymbol
.
add_node
pm
.
pm_body_stab
)
pg
.
pg_body
.
pk_node_table
;
(* ... dans le provide : *)
(* ... dans le provide : *)
match
pg
.
pg_provides
with
match
pg
.
pg_provides
with
|
None
->
()
|
None
->
()
|
Some
spflg
->
(
|
Some
spflg
->
(
let
pptab
=
match
pm
.
pm_provide_stab
with
let
pptab
=
match
pm
.
pm_provide_stab
with
Some
pt
->
pt
Some
pt
->
pt
|
None
->
assert
false
|
None
->
assert
false
in
in
let
treat_prov
x
=
let
treat_prov
x
=
let
lxm
=
x
.
src
in
let
lxm
=
x
.
src
in
let
s
=
Lxm
.
id
lxm
in
let
s
=
Lxm
.
id
lxm
in
match
(
x
.
it
)
with
match
(
x
.
it
)
with
|
TypeInfo
xti
->
AstTabSymbol
.
add_type
pptab
pname
s
(
Lxm
.
flagit
xti
lxm
)
|
TypeInfo
xti
->
AstTabSymbol
.
add_type
pptab
pname
s
(
Lxm
.
flagit
xti
lxm
)
|
ConstInfo
xci
->
AstTabSymbol
.
add_const
pptab
pname
s
(
Lxm
.
flagit
xci
lxm
)
|
ConstInfo
xci
->
AstTabSymbol
.
add_const
pptab
pname
s
(
Lxm
.
flagit
xci
lxm
)
|
NodeInfo
xoi
->
AstTabSymbol
.
add_node
pptab
s
(
Lxm
.
flagit
xoi
lxm
)
|
NodeInfo
xoi
->
AstTabSymbol
.
add_node
pptab
s
(
Lxm
.
flagit
xoi
lxm
)
in
in
...
@@ -399,35 +399,33 @@ Associations :
...
@@ -399,35 +399,33 @@ Associations :
(* exported *)
(* exported *)
let
(
dump
:
t
->
unit
)
=
let
(
dump
:
t
->
unit
)
=
fun
x
->
fun
x
->
(* let p = Lv6Verbose.print_string ~level:3 in *)
(* let p = Lv6Verbose.print_string ~level:3 in *)
let
p
=
prerr_string
in
let
p
=
prerr_string
in
p
"*** « Syntax table dump:
\n
"
;
p
"*** « Syntax table dump:
\n
"
;
p
"
\t
- Package or model list:
\n\t\t
"
;
p
"
\t
- Package or model list:
\n\t\t
"
;
(* st_list : AstV6.pack_or_model list ; *)
(* st_list : AstV6.pack_or_model list ; *)
List
.
iter
List
.
iter
(
fun
pm
->
p
(
AstV6
.
pack_or_model_to_string
pm
);
p
"
\n\t\t
"
)
(
fun
pm
->
p
(
AstV6
.
pack_or_model_to_string
pm
);
p
"
\n\t\t
"
)
x
.
st_list
;
x
.
st_list
;
p
"
\n\t
- Raw model table: "
;
p
"
\n\t
- Raw model table: "
;
(* st_raw_mod_tab : (Lv6Id.t , model_info srcflagged) Hashtbl.t ; *)
(* st_raw_mod_tab : (Lv6Id.t , model_info srcflagged) Hashtbl.t ; *)
Hashtbl
.
iter
Hashtbl
.
iter
(
fun
id
_mi
->
p
((
Lv6Id
.
to_string
id
)
^
" "
))
(
fun
id
_mi
->
p
((
Lv6Id
.
to_string
id
)
^
" "
))
x
.
st_raw_mod_tab
;
x
.
st_raw_mod_tab
;
p
"
\n\t
- Raw Package table: "
;
p
"
\n\t
- Raw Package table: "
;
(* st_raw_pack_tab : (Lv6Id.pack_name , pack_info srcflagged) Hashtbl.t ; *)
(* st_raw_pack_tab : (Lv6Id.pack_name , pack_info srcflagged) Hashtbl.t ; *)
Hashtbl
.
iter
Hashtbl
.
iter
(
fun
pn
_pi
->
p
((
Lv6Id
.
pack_name_to_string
pn
)
^
" "
))
(
fun
pn
_pi
->
p
((
Lv6Id
.
pack_name_to_string
pn
)
^
" "
))
x
.
st_raw_pack_tab
;
x
.
st_raw_pack_tab
;
p
"
\n\t
- Package manager table: "
;
p
"
\n\t
- Package manager table: "
;
(* st_pack_mng_tab : (Lv6Id.pack_name , pack_mng) Hashtbl.t; *)
(* st_pack_mng_tab : (Lv6Id.pack_name , pack_mng) Hashtbl.t; *)
Hashtbl
.
iter
Hashtbl
.
iter
(
fun
pn
_pm
->
p
((
Lv6Id
.
pack_name_to_string
pn
)
^
" "
))
(
fun
pn
_pm
->
p
((
Lv6Id
.
pack_name_to_string
pn
)
^
" "
))
x
.
st_pack_mng_tab
;
x
.
st_pack_mng_tab
;
p
"
\n
End of Syntax table dump. »
\n
"
p
"
\n
End of Syntax table dump. »
\n
"
This diff is collapsed.
Click to expand it.
lib/l2lExpandMetaOp.ml
+
4
−
4
View file @
14d2f1fd
(** Time-stamp: <modified the
10
/1
0
/2024 (at 1
4:56
) by Erwan Jahier> *)
(** Time-stamp: <modified the
28
/1
1
/2024 (at 1
1:29
) by Erwan Jahier> *)
open
Lxm
open
Lxm
open
Lic
open
Lic
...
@@ -8,7 +8,7 @@ let dbg = (Lv6Verbose.get_flag "ei")
...
@@ -8,7 +8,7 @@ let dbg = (Lv6Verbose.get_flag "ei")
(* pack useful info into a single struct *)
(* pack useful info into a single struct *)
type
local_ctx
=
{
type
local_ctx
=
{
node
:
Lic
.
node_exp
;
node
:
Lic
.
node_exp
;
prg
:
LicPrg
.
t
;
(*
prg : LicPrg.t;
*)
}
}
(********************************************************************************)
(********************************************************************************)
...
@@ -555,7 +555,7 @@ let (doit : LicPrg.t -> LicPrg.t) =
...
@@ -555,7 +555,7 @@ let (doit : LicPrg.t -> LicPrg.t) =
fun
nk
ne
outprg
->
fun
nk
ne
outprg
->
let
lctx
=
{
let
lctx
=
{
node
=
ne
;
node
=
ne
;
prg
=
inprg
;
(*
prg = inprg;
*)
}
}
in
in
let
ne
=
node
lctx
ne
false
in
let
ne
=
node
lctx
ne
false
in
...
@@ -576,7 +576,7 @@ let (doit_boolred : LicPrg.t -> LicPrg.t) =
...
@@ -576,7 +576,7 @@ let (doit_boolred : LicPrg.t -> LicPrg.t) =
fun
nk
ne
outprg
->
fun
nk
ne
outprg
->
let
lctx
=
{
let
lctx
=
{
node
=
ne
;
node
=
ne
;
prg
=
inprg
;
(*
prg = inprg;
*)
}
}
in
in
let
ne
=
node
lctx
ne
true
in
let
ne
=
node
lctx
ne
true
in
...
...
This diff is collapsed.
Click to expand it.
lib/lic2soc.ml
+
3
−
3
View file @
14d2f1fd
(** Time-stamp: <modified the
31
/1
0
/2024 (at 1
2:07
) by Erwan Jahier> *)
(** Time-stamp: <modified the
28
/1
1
/2024 (at 1
1:29
) by Erwan Jahier> *)
(* XXX ce module est mal crit. A reprendre. (R1) *)
(* XXX ce module est mal crit. A reprendre. (R1) *)
...
@@ -20,7 +20,7 @@ exception Undef_soc of Soc.key * Lxm.t * Lic.by_pos_op * Data.t list * Soc.var_e
...
@@ -20,7 +20,7 @@ exception Undef_soc of Soc.key * Lxm.t * Lic.by_pos_op * Data.t list * Soc.var_e
(** Informations lies au contexte de traduction. *)
(** Informations lies au contexte de traduction. *)
type
ctx
=
{
type
ctx
=
{
prg
:
LicPrg
.
t
;
prg
:
LicPrg
.
t
;
last_temp_var
:
int
;
(*
last_temp_var : int;
*)
last_mem
:
int
;
(* to count instances number *)
last_mem
:
int
;
(* to count instances number *)
last_task
:
int
;
(* to count tasks number *)
last_task
:
int
;
(* to count tasks number *)
locals
:
Soc
.
var
list
;
locals
:
Soc
.
var
list
;
...
@@ -30,7 +30,7 @@ let create_context: (LicPrg.t -> ctx) =
...
@@ -30,7 +30,7 @@ let create_context: (LicPrg.t -> ctx) =
fun
prg
->
fun
prg
->
{
{
prg
=
prg
;
prg
=
prg
;
last_temp_var
=
0
;
(*
last_temp_var = 0;
*)
last_mem
=
0
;
last_mem
=
0
;
last_task
=
0
;
last_task
=
0
;
locals
=
[]
;
locals
=
[]
;
...
...
This diff is collapsed.
Click to expand it.
lib/soc2c.ml
+
3
−
3
View file @
14d2f1fd
(* Time-stamp: <modified the
05
/11/2024 (at
09:56
) by Erwan Jahier> *)
(* Time-stamp: <modified the
28
/11/2024 (at
11:29
) by Erwan Jahier> *)
(* let put (os: out_channel) (fmt:('a, unit, string, unit) format4) : 'a = *)
(* let put (os: out_channel) (fmt:('a, unit, string, unit) format4) : 'a = *)
...
@@ -54,7 +54,7 @@ let _ =
...
@@ -54,7 +54,7 @@ let _ =
(* Soc printer *)
(* Soc printer *)
type
'
a
soc_pp
=
{
type
'
a
soc_pp
=
{
hfmt
:
(
'
a
,
unit
,
string
,
unit
)
format4
->
'
a
;
(*
hfmt: ('a, unit, string, unit) format4 -> 'a;
*)
cfmt
:
(
'
a
,
unit
,
string
,
unit
)
format4
->
'
a
;
cfmt
:
(
'
a
,
unit
,
string
,
unit
)
format4
->
'
a
;
cput
:
string
->
unit
;
cput
:
string
->
unit
;
hput
:
string
->
unit
;
hput
:
string
->
unit
;
...
@@ -327,7 +327,7 @@ let (soc2c : int -> out_channel -> out_channel -> Soc.tbl -> Soc.key ->
...
@@ -327,7 +327,7 @@ let (soc2c : int -> out_channel -> out_channel -> Soc.tbl -> Soc.key ->
let
cfmt
fmt
=
Printf
.
ksprintf
(
fun
t
->
output_string
cfile
t
)
fmt
in
let
cfmt
fmt
=
Printf
.
ksprintf
(
fun
t
->
output_string
cfile
t
)
fmt
in
let
hput
str
=
output_string
hfile
str
in
let
hput
str
=
output_string
hfile
str
in
let
cput
str
=
output_string
cfile
str
in
let
cput
str
=
output_string
cfile
str
in
let
sp
=
{
hfmt
=
hfmt
;
cfmt
=
cfmt
;
hput
=
hput
;
cput
=
cput
;
soc
=
soc
}
in
let
sp
=
{
(*
hfmt = hfmt;
*)
cfmt
=
cfmt
;
hput
=
hput
;
cput
=
cput
;
soc
=
soc
}
in
(* include the header files that define the step functions used by the soc *)
(* include the header files that define the step functions used by the soc *)
if
(
one_file
()
)
then
()
else
(
if
(
one_file
()
)
then
()
else
(
let
(
used_soc
:
Soc
.
key
list
)
=
KeySet
.
elements
(
get_used_soc
soc
)
in
let
(
used_soc
:
Soc
.
key
list
)
=
KeySet
.
elements
(
get_used_soc
soc
)
in
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment