BEGIN {
$Treex::Core::Common::VERSION
=
'0.05222'
;
}
my
$validation_sub
;
sub
pos_validated_list {
my
$args_ref
=
shift
;
my
$i
= 0;
while
(
ref
$_
[0] eq
'HASH'
) {
my
$spec
=
shift
;
if
(
defined
$spec
->{
default
} ) {
$args_ref
->[
$i
] ||=
$spec
->{
default
};
}
$i
++;
}
return
@{
$args_ref
};
}
if
(
$Treex::Core::Config::params_validate
== 2 ) {
$validation_sub
= \
&MooseX::Params::Validate::pos_validated_list
;
}
else
{
$validation_sub
= \
&pos_validated_list
;
}
my
(
$import
,
$unimport
,
$init_meta
) =
Moose::Exporter->build_import_methods(
install
=> [
qw(unimport init_meta)
],
also
=>
'Moose'
,
class_metaroles
=> {
attribute
=> [
'MooseX::SemiAffordanceAccessor::Role::Attribute'
] },
as_is
=> [
\
&Treex::Core::Log::log_fatal
,
\
&Treex::Core::Log::log_warn
,
\
&Treex::Core::Log::log_debug
,
\
&Treex::Core::Log::log_set_error_level
,
\
&Treex::Core::Log::log_info
,
\
&List::MoreUtils::first_index
,
\
&List::MoreUtils::all
,
\
&List::MoreUtils::any
,
\
&List::Util::first
,
\
&Readonly::Readonly
,
\
&Scalar::Util::weaken
,
\
&Data::Dumper::Dumper
,
\
&Moose::Util::TypeConstraints::enum
,
$validation_sub
,
]
);
sub
import
{
utf8::
import
();
goto
&$import
;
}
subtype
'Selector'
=> as
'Str'
=> where {m/^[a-z\d]*$/i}
=> message {
"Selector must =~ /^[a-z\\d]*\$/i. You've provided $_"
};
subtype
'Layer'
=> as
'Str'
=> where {m/^[ptan]$/i}
=> message {
"Layer must be one of: [P]hrase structure, [T]ectogrammatical, [A]nalytical, [N]amed entities, you've provided $_"
};
subtype
'Message'
=> as
'Str'
=> where {
$_
ne
''
}
=> message {
"Message must be nonempty"
};
subtype
'Id'
=> as
'Str'
;
my
%EXTRA_LANG_CODES
= (
'bxr'
=>
"Buryat"
,
'dsb'
=>
"Lower Sorbian"
,
'hsb'
=>
"Upper Sorbian"
,
'hak'
=>
"Hakka"
,
'kaa'
=>
"Karakalpak"
,
'ku-latn'
=>
"Kurdish in Latin script"
,
'ku-arab'
=>
"Kurdish in Arabic script"
,
'ku-cyrl'
=>
"Kurdish in Cyrillic script"
,
'nan'
=>
"Taiwanese"
,
'rmy'
=>
"Romany"
,
'sah'
=>
"Yakut"
,
'und'
=>
"ISO 639-2 code for undetermined/unknown language"
,
'xal'
=>
"Kalmyk"
,
'yue'
=>
"Cantonese"
);
my
%IS_LANG_CODE
=
map
{
$_
=> 1 } ( all_language_codes(),
keys
%EXTRA_LANG_CODES
);
enum
'LangCode'
=>
keys
%IS_LANG_CODE
;
sub
is_lang_code {
return
$IS_LANG_CODE
{
$_
[0] }; }
sub
get_lang_name {
my
$code
=
shift
;
return
exists
$EXTRA_LANG_CODES
{
$code
} ?
$EXTRA_LANG_CODES
{
$code
} : code2language(
$code
);
}
1;