1 |
ulpfr |
13 |
# -*- Mode: Cperl -*- |
2 |
ulpfr |
10 |
# Base.pm -- |
3 |
|
|
# ITIID : $ITI$ $Header $__Header$ |
4 |
|
|
# Author : Ulrich Pfeifer |
5 |
|
|
# Created On : Fri Sep 6 09:50:53 1996 |
6 |
|
|
# Last Modified By: Ulrich Pfeifer |
7 |
ulpfr |
19 |
# Last Modified On: Fri Apr 7 13:59:40 2000 |
8 |
ulpfr |
10 |
# Language : CPerl |
9 |
ulpfr |
19 |
# Update Count : 24 |
10 |
ulpfr |
10 |
# Status : Unknown, Use with caution! |
11 |
|
|
# |
12 |
|
|
# Copyright (c) 1996-1997, Ulrich Pfeifer |
13 |
|
|
# |
14 |
|
|
|
15 |
|
|
package WAIT::Parse::Base; |
16 |
|
|
use Carp; |
17 |
|
|
|
18 |
|
|
sub new { |
19 |
|
|
my $type = shift; |
20 |
ulpfr |
13 |
|
21 |
ulpfr |
10 |
bless {}, ref($type) || $type; |
22 |
|
|
} |
23 |
|
|
|
24 |
|
|
sub split { |
25 |
|
|
my $self = shift; |
26 |
|
|
my %result; |
27 |
|
|
my @in = $self->tag(@_); |
28 |
|
|
|
29 |
|
|
while (@in) { |
30 |
|
|
my $tags = shift @in; |
31 |
|
|
my $text = shift @in; |
32 |
|
|
my @tags = grep /^[^_]/, keys %$tags; |
33 |
|
|
for my $field (@tags) { |
34 |
|
|
if (exists $result{$field}) { # make perl -w happy |
35 |
|
|
$result{$field} .= ' ' . $text; |
36 |
|
|
} else { |
37 |
|
|
$result{$field} = $text; |
38 |
|
|
} |
39 |
|
|
} |
40 |
|
|
} |
41 |
|
|
return \%result; # we go for speed |
42 |
|
|
} |
43 |
|
|
|
44 |
|
|
sub tag { |
45 |
ulpfr |
19 |
({text => 1}, $_[1]); |
46 |
ulpfr |
10 |
} |
47 |
|
|
|
48 |
|
|
1; |