| Language-Prolog-Yaswi documentation | Contained in the Language-Prolog-Yaswi distribution. |
Language::Prolog::Yaswi::Low - Low level interface to SWI-Prolog
# don't use Language::Prolog::Yaswi::Low; use Language::Prolog::Yaswi; # instead ;-)
Low level interface to SWI-Prolog.
The variable $Language::Prolog::Yaswi::Low::dl_load_flags can be
used to change the way the XS part of the module is loaded. The
default value (0x01) allows to use Prolog extensions written in C in
most architectures but it could introduce conflicts with other Perl
modules.
Copyright 2003-2006, 2008 by Salvador Fandiņo (sfandino@yahoo.com).
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
SWI-Prolog is distributed under the GPL license. Read the LICENSE file from your SWI-Prolog distribution for details.
| Language-Prolog-Yaswi documentation | Contained in the Language-Prolog-Yaswi distribution. |
package Language::Prolog::Yaswi::Low; our $VERSION = '0.18'; use strict; use warnings; require Exporter; our @ISA = qw(Exporter DynaLoader); our @EXPORT = qw( init cleanup toplevel openquery cutquery nextsolution swi2perl testquery getvar getquery getallvars $converter ); use Carp; use Language::Prolog::Types::Converter; our $converter = Language::Prolog::Types::Converter->new(); # our @fids; our ($qid, $query, @vars, @cells, %vars_cache); sub getvar ($) { my $name=$_[0]->name(); croak "no such variable '$name'" unless exists $vars_cache{$name}; return swi2perl($vars_cache{$name}); } sub getallvars { return map { swi2perl($_) } @cells[0..$#vars] } sub getquery () { swi2perl($query); } # require XSLoader; # XSLoader::load('Language::Prolog::Yaswi::Low', $VERSION); our $dl_load_flags; $dl_load_flags = 0x1 unless defined $dl_load_flags; sub dl_load_flags { $dl_load_flags } require DynaLoader; __PACKAGE__->bootstrap; our @args; @args = (PL_EXE(), '-q') unless @args; sub init { @args=(PL_EXE(), @_); start(); } 1; __END__