Paulo Custodio > ParseLex > Parse::LexEvent

Download:
ParseLex-2.21.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  1
Open  0
View/Report Bugs
Module Version: 2.21   Source  

NAME ^

Parse::LexEvent - Generator of event-oriented lexical analyzers (1.00 ALPHA)

SYNOPSIS ^

  use Parse::LexEvent;

  sub string {
    print $_[0]->name, ": $_[1]\n";
  }
  sub comment {
    print $_[0]->name, ": $_[1]\n";
  }
  sub remainder {
    print $_[0]->name, ": $_[1]\n";
  }

  $lexer = Parse::LexEvent->new()->configure(
       From => \*DATA,
       Tokens =>
         [
          Type => 'Simple', Name => 'ccomment', Handler => 'comment',
               Regex => '//.*\n',
          Type => 'Delimited', Name => 'comment', Handler => 'comment',
               Start => '/[*]', End => '[*]/',
          Type => 'Quoted', Name => 'squotes', Handler => 'string', Quote => qq!\'!,
          Type => 'Quoted', Name => 'dquotes', Handler => 'string', Quote => qq!\"!,
          Type => 'Simple', Name => 'remainder',
               Regex => '(?s:[^/\'\"]+)', ReadMore => 1,
         ]
      )->parse();
  __END__
  /*
    C comment
  */
  // C++ comment
  var d = "string in double quotes";
  var s = 'string in single quotes';
  var i = 10;
  var y = 100;

DESCRIPTION ^

Parse::LexEvent generates lexical analyzers in the fashion of Parse::Lex, but the generated analyzers emit an event at the finish of recognition of each token. This event corresponds to the call of a procedure whose name is that of the token. It is possible to give a different name to this procedure by making use of the Handler parameter when defining a token.

An application using Parse::LexEvent must define the required procedures. These procedures take the token object as first argument and the recognized character string as the second.

Parse::LexEvent inherits from Parse::ALex and possesses all the methods described in the documentation of the Parse::Lex class, except for the methods analyze(), every() next(), and nextis().

Methods

parse()

This method runs the analysis of data specified by from().

EXAMPLES ^

cparser.pl - This analyzer recognizes three types of structures: C ou C++ comments, strings within quotation marks, and the rest. It emits an event specific to each. You can use it, for example, to analyze C, C++ or Javascript programs.

SEE ALSO ^

Parse::Lex, Parse::Token.

AUTHOR ^

Philippe Verdret.

COPYRIGHT ^

Copyright (c) 1999 Philippe Verdret. All rights reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

syntax highlighting: