Rechercher une page de manuel
Pugs::Grammar::Precedence.3pm
Langue: en
Version: 2008-07-29 (fedora - 01/12/10)
Section: 3 (Bibliothèques de fonctions)
NAME
Pugs::Grammar::Precedence - Engine for Perl 6 Rule operator precedenceSYNOPSIS
use Pugs::Grammar::Precedence; # example definition for "sub rxinfix:<|> ..." my $rxinfix = Pugs::Grammar::Precedence->new( grammar => 'rxinfix', ); $rxinfix->add_op( name => '|', assoc => 'left', fixity => 'infix', );
Pseudo-code for usage inside a grammar:
sub new_proto( $match ) { return ${$match<category>}.add_op( name => $match<name>, fixity => ..., precedence => ..., ); } rule prototype { proto <category>:<name> <options> { return new_proto($/); } } rule statement { <category.parse> ... }
DESCRIPTION
This module provides an implementation for Perl 6 operator precedence.METHODS
new ()
Class method. Returns a category object.options:
- *
- "grammar => $category_name" - the name of this category (a namespace or a Grammar name).
add_op ()
Instance method. Adds a new operator to the category.options:
- *
- name => $operator_name - the name of this operator, such as '+', '*'
- *
- name2 => $operator_name - the name of the second operator in an operator pair, such as circumfix [ '(', ')' ] or ternary [ '??', '!!' ].
# precedence=>'tighter', # tighter/looser/equiv # other=>'+', # fixity => # infix/prefix/circumfix/postcircumfix/ternary # assoc => # left/right/non/chain/list # rule=>$rule # (is parsed)
AUTHORS
The Pugs Team <perl6-compiler@perl.org>.SEE ALSO
Summary of Perl 6 Operators: <http://dev.perl.org/perl6/doc/design/syn/S03.html>COPYRIGHT
Copyright 2006, 2007 by Flavio Soibelmann Glock and others.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>
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre