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


Manual Reference Pages  -  PEGEX::GRAMMAR (3)

.ds Aq ’

NAME

Pegex::Grammar - Pegex Grammar Base Class

CONTENTS

SYNOPSIS

Define a Pegex grammar (for the Foo syntax):



    package Pegex::Foo::Grammar;
    use base Pegex::Base;
    extends Pegex::Grammar;

    has text => q{
    foo: bar baz
    ... rest of Foo grammar ...
    };



then use it to parse some Foo:



    use Pegex::Parser;
    my $parse_tree = Pegex::Parser->new(
        grammar => Pegex::Foo::Grammar,
        receiver => Pegex::Tree,
    )->parse(my/file.foo);



DESCRIPTION

Pegex::Grammar is a base class for defining your own Pegex grammar classes. You just need to provide the grammar view the text or the file attributes.

When Pegex::Parser uses your grammar, it will want it in the tree (compiled) form, so Pegex::Grammar provides automatic compilation support.

PROPERTIES AND METHODS

tree This is the data structure containing the compiled grammar for your syntax. It is usually produced by Pegex::Compiler. You can inline it in the tree method, or else the make_tree method will be called to produce it.

The make_tree method will call on Pegex::Compiler to compile the text property by default. You can define your own make_tree method to do override this behavior.

Often times you will want to generate your own Pegex::Grammar subclasses in an automated fashion. The Pegex and TestML modules do this to be performant. This also allows you to keep your grammar text in a separate file, and often in a separate repository, so it can be shared by multiple programming language’s module implementations.

See <https://github.com/ingydotnet/pegex-pgx> and /github.com/ingydotnet/pegex- pm/blob/master/lib/Pegex/Pegex/Grammar.pm in https:.

text This is simply the text of your grammar, if you define this, you should (probably) not define the tree property. This grammar text will be automatically compiled when the tree is required.
file This is the file where your Pegex grammar lives. It is usually used when you are making a Pegex module. The path is relative to your top level module directory.
make_tree This method is called when the grammar needs the compiled version.

AUTHOR

Ingy doet Net <ingy@cpan.org>

COPYRIGHT AND LICENSE

Copyright 2010-2015. Ingy doet Net.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See <http://www.perl.com/perl/misc/Artistic.html>

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


perl v5.20.3 PEGEX::GRAMMAR (3) 2015-01-28

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