Module ErgoSpec.Common.Utils.Names
Require
Import
String
.
Section
Names
.
Local
Open
Scope
string
.
Section
ScopedNames
.
Definition
local_name
:
Set
:=
string
.
Definition
namespace_name
:
Set
:=
string
.
Definition
namespace_prefix
:
Set
:=
option
namespace_name
.
Definition
relative_name
:
Set
:=
namespace_prefix
*
local_name
.
Definition
absolute_name
:
Set
:=
string
.
Definition
absolute_name_of_local_name
(
ns
:
namespace_name
) (
ln
:
local_name
) :
absolute_name
:=
ns
++ "." ++
ln
.
Definition
absolute_name_of_relative_name
(
local_ns
:
namespace_name
) (
rn
:
relative_name
) :
absolute_name
:=
match
rn
with
| (
None
,
ln
) =>
absolute_name_of_local_name
local_ns
ln
| (
Some
ns
,
ln
) =>
absolute_name_of_local_name
ns
ln
end
.
End
ScopedNames
.
Section
ReservedNames
.
Definition
clause_main_name
:
local_name
:= "
main
".
Definition
clause_init_name
:
local_name
:= "
init
".
This
Definition
this_contract
:= "
contract
".
Definition
this_state
:= "
state
".
Definition
this_emit
:= "
emit
".
Definition
this_response
:= "
response
".
Definition
local_state
:= "
lstate
".
Definition
local_emit
:= "
lemit
".
Definition
current_time
:= "
now
".
End
ReservedNames
.
Section
TypeNames
.
Definition
hyperledger_namespace
:
string
:= "
org.hyperledger.composer.system
"%
string
.
Definition
stdlib_namespace
:
string
:= "
org.accordproject.ergo.stdlib
"%
string
.
Definition
default_request_absolute_name
:
string
:= "
org.accordproject.cicero.runtime.Request
".
Definition
default_response_absolute_name
:
string
:= "
org.accordproject.cicero.runtime.Response
".
Definition
default_emits_absolute_name
:
string
:= "
org.hyperledger.composer.system.Event
".
Definition
default_state_absolute_name
:
string
:= "
org.accordproject.cicero.contract.AccordContractState
".
Definition
default_error_absolute_name
:
string
:= "
org.accordproject.ergo.stdlib.ErgoErrorResponse
".
End
TypeNames
.
Section
Misc
.
Definition
function_name_in_table
(
tname
:
option
string
) (
fname
:
string
) :
string
:=
match
tname
with
|
None
=>
fname
|
Some
tname
=>
tname
++ "
_
" ++
fname
end
.
End
Misc
.
Section
Namespaces
.
Definition
no_namespace
:
string
:= "".
End
Namespaces
.
End
Names
.