/[suikacvs]/webroot/regexp/lib/Regexp/Parser/JavaScript.pod
Suika

Contents of /webroot/regexp/lib/Regexp/Parser/JavaScript.pod

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations) (download)
Sun Mar 8 14:30:51 2009 UTC (15 years, 8 months ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
++ swe/lib/Regexp/Parser/ChangeLog	8 Mar 2009 14:30:01 -0000
2009-03-08  Wakaba  <wakaba@suika.fam.cx>

	* Makefile: New file.

	* JavaScript.pod, Perl58.pod: New documentations.

++ swe/lib/ChangeLog	8 Mar 2009 14:29:22 -0000
2009-03-08  Wakaba  <wakaba@suika.fam.cx>

	* .htaccess: New file.

1 wakaba 1.1 =head1 NAME
2    
3     Regexp::Parser::JavaScript - A Regexp::Parser Subclass for JavaScript
4     Regular Expressions
5    
6     =head1 SYNOPSIS
7    
8     use Regexp::Parser::JavaScript;
9    
10     my $parser = Regexp::Parser::JavaScript->new;
11    
12     my @error;
13    
14     ## Prepare a callback function invoked whenever an error or warning
15     ## is raised by the parser.
16     $parser->onerror (sub {
17     my %args = @_;
18    
19     my $error_message = '';
20     if ($args{level} eq 'w') {
21     $error_message .= 'Warning: ';
22     } else {
23     $error_message .= 'Error: ';
24     }
25    
26     $error_message .= sprintf $args{type}, @{$args{args}};
27    
28     $error_message .= ' (';
29     $error_message .= substr ${$args{valueref}},
30     $args{pos_start}, $args{pos_end} - $args{pos_start};
31     $error_message .= ')';
32    
33     $error_message .= "\n";
34    
35     push @error, $error_message;
36     });
37    
38     ## Parse the regular expression given as a string.
39     ## Use |eval| to catch an exception that would be thrown if the
40     ## regular expression contains a fatal error.
41     eval {
42     $parser->parse ($regexp_as_string);
43     };
44    
45     if ($parser->errnum) {
46     ## @error contains at least one fatal error.
47     warn @error;
48     } else {
49     ## @error contains no fatal error.
50     warn @error;
51    
52     ## Now, $parser->root contains the root node of the parsed regular
53     ## expression tree. See |perldoc Regexp::Parser| for more information.
54     }
55    
56     =head1 DESCRIPTION
57    
58     The C<Regexp::Parser::JavaScript> modules provides a subclass of the
59     C<Regexp::Parser>, a regular expression parser module. The
60     C<Regexp::Parser::JavaScript> module provides an implementation of the
61     parser for the regular expression language as defined by ECMA 376
62     Third Edition (the ECMAScript specification), modified for
63     compatibility with Web browser implementations.
64    
65     Apart from this additional function, this module provides the same
66     interface as the one applied by the C<Regexp::Parser::Perl58> module.
67     For more information, see L<Regexp::Parser::Perl58>.
68    
69     =head1 METHODS
70    
71     The C<Regexp::Parser::JavaScript> module provides same methods as
72     C<Regexp::Parser::JavaScript>. See L<Regexp::Parser::Perl58>.
73    
74     =head1 ERROR TYPES
75    
76     The C<Regexp::Parser::JavaScript> module reports same kinds of errors
77     as the C<Regexp::Parser> module does to the callback function
78     specified by the C<onerror> method, if any. In addition, it might
79     also have an additional error type: C<RPJSe_OCTESC>.
80    
81     =over 4
82    
83     =item RPJSe_OCTESC
84    
85     This error is reported when an octal escape sequence is used in the
86     regular expression. The octal escape sequence is I<not> part of the
87     ECMAScript specification though it is supported by Web browsers for
88     backward compatibility.
89    
90     =back
91    
92     =head1 DEPENDENCY
93    
94     This module requires Perl 5.10.0 or later.
95    
96     This module depends on C<Regexp::Parser> and C<Regexp::Parser::Perl58>
97     modules.
98    
99     =head1 SEE ALSO
100    
101     The latest version of this module is available at
102     L<http://suika.fam.cx/regexp/>.
103    
104     Regular expression visualizer
105     L<http://suika.fam.cx/regexp/visualizer/input>. It uses this module
106     to parse Perl 5.8 regular expressions.
107    
108     L<Regexp::Parser> - A superclass, available from CPAN.
109    
110     L<Regexp::Parser::Perl58> - A superclass.
111    
112     =head1 DEVELOPMENT
113    
114     CVS log:
115     L<http://suika.fam.cx/regexp/lib/Regexp/Parser/JavaScript.pm,cvslog>.
116    
117     Bug tracking system: L<http://manakai.g.hatena.ne.jp/task/7/>.
118    
119     =head1 AUTHOR
120    
121     Wakaba <w@suika.fam.cx>.
122    
123     =head1 LICENSE
124    
125     Copyright 2008-2009 Wakaba <w@suika.fam.cx>.
126    
127     This library is free software; you can redistribute it and/or modify
128     it under the same terms as Perl itself.
129    
130     =cut
131    
132     # $Date: 2009/01/13 14:15:47 $

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24