Spec-Zone .ru
спецификации, руководства, описания, API
Spec-Zone .ru
спецификации, руководства, описания, API
Библиотека разработчика Mac Разработчик
Поиск

 

Эта страница руководства для  версии 10.9 Mac OS X

Если Вы выполняете различную версию  Mac OS X, просматриваете документацию локально:

Читать страницы руководства

Страницы руководства предназначаются как справочник для людей, уже понимающих технологию.

  • Чтобы изучить, как руководство организовано или узнать о синтаксисе команды, прочитайте страницу руководства для страниц справочника (5).

  • Для получения дополнительной информации об этой технологии, ищите другую документацию в Библиотеке Разработчика Apple.

  • Для получения общей информации о записи сценариев оболочки, считайте Shell, Пишущий сценарий Учебника для начинающих.



Parse::Eyapp::TokenGen(3)            User Contributed Perl Documentation           Parse::Eyapp::TokenGen(3)



NAME
       Parse::Eyapp::TokenGen - Support for Using Parse::Eyapp as a Data Generator

INTRODUCTION
       For a introduction to data generation using Parse::Eyapp see Parse::Eyapp::datagenerationtut.

METHODS
   set_tokengens
       Receives the parser object and the pairs

           token => generator

       Sets the generator attribute of the tokens.  Though not strictly necessary, the generator is a
       Test::LectroTest::Generator object.

   set_weights
       Receives the parser object and the pairs

           token => weight

       Sets the weight attribute of the tokens.  The weight is a floating number.

   set_tokenweightsandgenerators
       Receives the parser object and the pairs

           token => [weight, generator]

       or

           token => weight

       and sets the weight and generator attributes of the tokens.  An example can be found in
       "examples/generator/GenSupport.pm":

         $parser->set_tokenweightsandgenerators(
           NUM => [ 2, Int(range=>[0, 9], sized=>0)],
           VAR => [
                     0,  # At the beginning, no variables are defined
                     Gen {
                       return  Elements(keys %st)->generate if keys %st;
                       return Int(range=>[0, 9], sized=>0)->generate;
                     },
                   ],
           VARDEF => [
                       2,
                       String( length=>[1,2], charset=>"A-NP-Z", size => 100 )
                     ],
           '=' => 2, '-' => 1, '+' => 2,
           '*' => 4, '/' => 2, '^' => 0.5,
           ';' => 1, '(' => 1, ')' => 2,
           ''  => 2, 'error' => 0,
         );

   token_weight
       Receives the parser object and the token and returns the weight.  If an additional weight is provided
       the weight for the token is set.

   token_generator
       Receives the parser object and the token and returns the generator.  If an additional generator is
       provided the generator for the token is set.

   deltaweight
       Has the syntax:

         $parser->deltaweight(TOKEN1 => deltaweight1, TOKEN2 => deltaweight2, ...)

       increases the weight of the respective token by the associated amount.

   pushdeltaweight
       As "deltaweight" but the current weights of the involved tokens are saved in a stack

   popweight
       Restores the weights of the tokens that were previously saved with "pushdeltaweight"

SEE ALSO
          Parse::Eyapp::datagenerationtut

          Test::LectroTest::Generator by Tom Moertel

          The Design and Implementation of a Grammar-based Data Generator (1992) by Peter M. Maurer,
           Software Practice and Experience
           http://www.cs.ubc.ca/local/reading/proceedings/spe91-95/spe/./vol22/issue3/spe756pm.pdf
           <http://www.cs.ubc.ca/local/reading/proceedings/spe91-95/spe/./vol22/issue3/spe756pm.pdf>

          yagg: an easy-to-use generator for structured test inputs by David Coppit and Jiexin Lian.  ASE
           '05: Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering.
           2005, pages 356-359.

            <http://search.cpan.org/perldoc?yagg::Tutorial>,

            <http://www.cs.wm.edu/~coppit/wiki/images/4/4e/yagg_short.pdf>,

            http://www.cs.wm.edu/~coppit/wiki/images/6/69/wm-cs-2005-13.pdf
             <http://www.cs.wm.edu/~coppit/wiki/images/6/69/wm-cs-2005-13.pdf>

          Writing Randomly by Randall Schwartz.  Linux Magazine Column 04 (Sep 1999).
           <http://www.stonehenge.com/merlyn/LinuxMag/col04.html>

          Generating Test Data with Enhanced Context Free Grammars by Peter M. Maurer
           http://cs.baylor.edu/~maurer/aida/dgl-source/documentation/gen_tst.pdf
           <http://cs.baylor.edu/~maurer/aida/dgl-source/documentation/gen_tst.pdf>

          Modules as Programs by Brian d Foy
           <http://www252.pair.com/comdog/mastering_perl/Chapters/18.modulinos.html>

          How a Script Becomes a Module by Brian d Foy. On Perlmonks:
           <http://www.perlmonks.org/index.pl?node_id=396759>.

CONTRIBUTORS
        Hal Finkel <http://www.halssoftware.com/>

        G. Williams <http://kasei.us/>

        Thomas L. Shinnick <http://search.cpan.org/~tshinnic/>

        Frank Leray

AUTHOR
       Casiano Rodriguez-Leon (casiano@ull.es)

ACKNOWLEDGMENTS
       This work has been supported by CEE (FEDER) and the Spanish Ministry of Educacion y Ciencia through
       Plan Nacional I+D+I number TIN2005-08818-C04-04 (ULL::OPLINK project <http://www.oplink.ull.es/>).
       Support from Gobierno de Canarias was through GC02210601 (Grupos Consolidados).  The University of La
       Laguna has also supported my work in many ways and for many years.

       A large percentage of  code is verbatim taken from Parse::Yapp 1.05.  The author of Parse::Yapp is
       Francois Desarmenien.

       I wish to thank Francois Desarmenien for his Parse::Yapp module, to my students at La Laguna and to
       the Perl Community. Thanks to the people who have contributed to improve the module (see
       "CONTRIBUTORS" in Parse::Eyapp).  Thanks to Larry Wall for giving us Perl.  Special thanks to Juana.

LICENCE AND COPYRIGHT
       Copyright (c) 2006-2008 Casiano Rodriguez-Leon (casiano@ull.es). All rights reserved.

       Parse::Yapp copyright is of Francois Desarmenien, all rights reserved. 1998-2001

       These modules are free software; you can redistribute it and/or modify it under the same terms as
       Perl itself. See perlartistic.

       This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
       even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.



perl v5.16.2                                     2012-03-23                        Parse::Eyapp::TokenGen(3)

Сообщение о проблемах

Способ сообщить о проблеме с этой страницей руководства зависит от типа проблемы:

Ошибки содержания
Ошибки отчета в содержании этой документации к проекту Perl. (См. perlbug (1) для инструкций представления.)
Отчеты об ошибках
Сообщите об ошибках в функциональности описанного инструмента или API к Apple через Генератор отчетов Ошибки и к проекту Perl, использующему perlbug (1).
Форматирование проблем
Отчет, форматирующий ошибки в интерактивной версии этих страниц со ссылками на отзыв ниже.