blob: e662448fb45ac0228c3f0b8a6fa8ae2ed4354197 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
package Lucy::Analysis::Token;
use Lucy;
1;
__END__
__BINDING__
my $xs = <<'END_XS';
MODULE = Lucy PACKAGE = Lucy::Analysis::Token
SV*
new(either_sv, ...)
SV *either_sv;
CODE:
{
SV *text_sv = NULL;
uint32_t start_off = 0;
uint32_t end_off = 0;
int32_t pos_inc = 1;
float boost = 1.0f;
chy_bool_t args_ok
= XSBind_allot_params(&(ST(0)), 1, items,
"Lucy::Analysis::Token::new_PARAMS",
ALLOT_SV(&text_sv, "text", 4, true),
ALLOT_U32(&start_off, "start_offset", 12, true),
ALLOT_U32(&end_off, "end_offset", 10, true),
ALLOT_I32(&pos_inc, "pos_inc", 7, false),
ALLOT_F32(&boost, "boost", 5, false),
NULL);
if (!args_ok) {
CFISH_RETHROW(LUCY_INCREF(cfish_Err_get_error()));
}
STRLEN len;
char *text = SvPVutf8(text_sv, len);
lucy_Token *self = (lucy_Token*)XSBind_new_blank_obj(either_sv);
lucy_Token_init(self, text, len, start_off, end_off, boost,
pos_inc);
RETVAL = CFISH_OBJ_TO_SV_NOINC(self);
}
OUTPUT: RETVAL
SV*
get_text(self)
lucy_Token *self;
CODE:
RETVAL = newSVpvn(Lucy_Token_Get_Text(self), Lucy_Token_Get_Len(self));
SvUTF8_on(RETVAL);
OUTPUT: RETVAL
void
set_text(self, sv)
lucy_Token *self;
SV *sv;
PPCODE:
{
STRLEN len;
char *ptr = SvPVutf8(sv, len);
Lucy_Token_Set_Text(self, ptr, len);
}
END_XS
Clownfish::Binding::Perl::Class->register(
parcel => "Lucy",
class_name => "Lucy::Analysis::Token",
bind_methods => [
qw(
Get_Start_Offset
Get_End_Offset
Get_Boost
Get_Pos_Inc
)
],
xs_code => $xs,
);