GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Parse::LexEvent(3) User Contributed Perl Documentation Parse::LexEvent(3)

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

  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;

"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()".

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

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.

"Parse::Lex", "Parse::Token".

Philippe Verdret.

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.
2011-12-31 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.