NAME
DTA::CAB::Analyzer::Dyn - generic analyzer API: dynamic code generation
SYNOPSIS
##========================================================================
## Constructors etc.
$obj
= CLASS_OR_OBJ->new(
%args
);
undef
=
$anl
->dropClosures();
##========================================================================
## Methods: I/O
$bool
=
$anl
->prepare();
##========================================================================
## Methods: Dynamic Closures
$bool
=
$anl
->ensureDynSubs();
\
&sub
=
$anl
->compileDynSub(
$which
);
$code
=
$anl
->dynSubCode(
$which
);
undef
= dumpPackage(
%opts
);
##========================================================================
## Methods: Analysis: API: Dyn
$rc
=
$anl
->analyzeDyn(
$which
,
@args
);
##========================================================================
## Methods: Analysis: API
$doc
=
$anl
->analyzeDocument(
$doc
,\
%opts
);
$doc
=
$anl
->analyzeTypes(
$doc
,\
%types
,\
%opts
);
$doc
=
$anl
->analyzeTokens(
$doc
,\
%opts
);
$doc
=
$anl
->analyzeSentences(
$doc
,\
%opts
);
$doc
=
$anl
->analyzeLocal(
$doc
,\
%opts
);
$doc
=
$anl
->analyzeClean(
$doc
,\
%opts
);
DESCRIPTION
UNMAINTAINED
This module provides a DTA::CAB::Analyzer subclass using dynamically generated closures to implement the DTA::CAB::Analyzer analysis API. In theory, this should be faster than on-the-fly compilation of accessor strings, etc, but is a serious pain in the posterior to debug.
Globals
Constructors etc.
- new
-
$obj
= CLASS_OR_OBJ->new(
%args
);
object structure, new
(
##-- code generation options
analyze${Which}
Code
=>
$str
,
##-- code for analyze${Which} method
##-- generated code
analyze${Which}
Sub
=> \
&sub
,
##-- compiled code for analyze${Which} method
)
- dropClosures
-
undef
=
$anl
->dropClosures();
drops 'analyze${which}' closures
currently does nothing
Methods: I/O: Input: all
- prepare
-
$bool
=
$anl
->prepare();
$bool
=
$anl
->prepare(\
%opts
)
inherited: wrapper for ensureLoaded(), autoEnable(), initInfo()
override appends ensureDynSubs() call
Methods: Dynamic Closures
- ensureDynSubs
-
$bool
=
$anl
->ensureDynSubs();
ensures subs are defined for all analyze${Which} methods
- compileDynSub
-
\
&sub
=
$anl
->compileDynSub(
$which
);
returns compiled analyze${Which} sub
- dynSubCode
-
$code
=
$anl
->dynSubCode(
$which
);
returns code for analyze${Which} sub
- dumpPackage
-
undef
= dumpPackage(
%opts
);
%opts:
file
=>
$file_or_handle
,
package
=>
$pkgname
,
Methods: Analysis: API: Dyn
Methods: Analysis: API
- analyzeDocument
-
$doc
=
$anl
->analyzeDocument(
$doc
,\
%opts
);
analyze a DTA::CAB::Document $doc
- analyzeTypes
-
$doc
=
$anl
->analyzeTypes(
$doc
,\
%types
,\
%opts
);
perform type-wise analysis of all (text) types in $doc->{types}
- analyzeTokens
-
$doc
=
$anl
->analyzeTokens(
$doc
,\
%opts
);
perform token-wise analysis of all tokens $doc->{body}[$si]{tokens}[$wi]
- analyzeSentences
-
$doc
=
$anl
->analyzeSentences(
$doc
,\
%opts
);
perform sentence-wise analysis of all sentences $doc->{body}[$si]
- analyzeLocal
-
$doc
=
$anl
->analyzeLocal(
$doc
,\
%opts
);
perform analyzer-local document-level analysis of $doc
- analyzeClean
-
$doc
=
$anl
->analyzeClean(
$doc
,\
%opts
);
cleanup any temporary data associated with $doc
AUTHOR
Bryan Jurish <moocow@cpan.org>
COPYRIGHT AND LICENSE
Copyright (C) 2011-2019 by Bryan Jurish
This package is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.24.1 or, at your option, any later version of Perl 5 you may have available.
SEE ALSO
dta-cab-analyze.perl(1), DTA::CAB::Analyzer(3pm), DTA::CAB::Chain(3pm), DTA::CAB(3pm), perl(1), ...