File: README

package info (click to toggle)
libtext-query-perl 0.07-3
  • links: PTS
  • area: main
  • in suites: woody
  • size: 140 kB
  • ctags: 106
  • sloc: perl: 734; makefile: 38
file content (137 lines) | stat: -rw-r--r-- 4,594 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
NAME
    Text::Query - Query processing framework

SYNOPSIS
        use Text::Query;
        
        # Constructor
        $query = Text::Query->new([QSTRING] [OPTIONS]);

        # Methods
        $query->prepare(QSTRING [OPTIONS]);
        $query->match([TARGET]);
        $query->matchscalar([TARGET]);

DESCRIPTION
    This module provides an object that matches a data source
    against a query expression.

    Query expressions are compiled into an internal form when a new
    object is created or the `prepare' method is called; they are
    not recompiled on each match.

    The class provided by this module uses four packages to process
    the query. The query parser parses the question and calls a
    query expression builder (internal form of the question). The
    optimizer is then called to reduce the complexity of the
    expression. The solver applies the expression on a data source.

    The following parsers are provided:

    Text::Query::ParseAdvanced
    Text::Query::ParseSimple
    The following builders are provided:

    Text::Query::BuildAdvancedString
    Text::Query::BuildSimpleString
    The following solver is provided:

    Text::Query::SolveSimpleString
    Text::Query::SolveAdvancedString
EXAMPLES
      use Text::Query;
      my $q=new Text::Query('hello and world',
                            -parse => 'Text::Query::ParseAdvanced',
                            -solve => 'Text::Query::SolveAdvancedString',
                            -build => 'Text::Query::BuildAdvancedString');
      die "bad query expression" if not defined $q;
      print if $q->match;
      ...
      $q->prepare('goodbye or adios or ta ta',
                  -litspace => 1,
                  -case => 1);
      #requires single space between the two ta's
      if($q->match($line)) {
      #doesn't match "Goodbye"
      ...
      $q->prepare('"and" or "or"');
      #quoting operators for literal match
      ...
      $q->prepare('\\bintegrate\\b', -regexp => 1);
      #won't match "disintegrated"

CONSTRUCTOR
    new ([QSTRING] [OPTIONS])
        This is the constructor for a new Text::Query object. If a
        `QSTRING' is given it will be compiled to internal form.

        `OPTIONS' are passed in a hash like fashion, using key and
        value pairs. Possible options are:

        -parse - Package name of the parser. Default is
        Text::Query::ParseSimple.

        -build - Package name of the builder. Default is
        Text::Query::Build.

        -optimize - Package name of the optimizer. Default is
        Text::Query::Optimize.

        -solve - Package name of the solver. Default is
        Text::Query::Solve.

        -mode - Name of predefined group of packages to use. Options
        are currently `simple_text' and `advanced_text'.

        These options are handled by the `configure' method.

        All other options are passed to the parser `prepare'
        function. See the corresponding manual pages for a
        description.

        If `QSTRING' is undefined, the prepare function is not
        called.

        The constructor will croak if a `QSTRING' was supplied and
        had illegal syntax.

METHODS
    configure ([OPTIONS])
        Set the `parse', `build', `optimize' or `solve' packages.
        See the `CONSTRUCTOR' description for explanations.

    prepare (QSTRING [OPTIONS])
        Compiles the query expression in `QSTRING' to internal form
        and sets any options (same as in the constructor). `prepare'
        may be used to change the query expression and options for
        an existing query object. If `OPTIONS' are omitted, any
        options set by a previous call to `prepare' are persistent.

        The optimizer (-optimize) is called with the result of the
        parser (-parse). The parser uses the builder (-build) to
        construct the internal form.

        This method returns a reference to the query object if the
        syntax of the expression was legal, or croak if not.

    match ([TARGET])
        Calls the match method of the solver (-solve).

    matchscalar ([TARGET])
        Calls the matchscalar method of the solver (-solve).

SEE ALSO
    Text::Query::ParseAdvanced(3), Text::Query::ParseSimple(3),
    Text::Query::BuildSimpleString(3),
    Text::Query::BuildAdvanedString(3),
    Text::Query::SolveSimpleString(3),
    Text::Query::SolveAdvancedString(3),

    Text::Query::Build(3), Text::Query::Parse(3),
    Text::Query::Solve(3), Text::Query::Optimize(3)

AUTHORS
    Eric Bohlman (ebohlman@netcom.com)

    Loic Dachary (loic@senga.org)