Mercurial > repos > deepakjadmin > mayatool3_test2
comparison docs/modules/html/SimpleCalcYYLexer.html @ 0:4816e4a8ae95 draft default tip
Uploaded
| author | deepakjadmin |
|---|---|
| date | Wed, 20 Jan 2016 09:23:18 -0500 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:4816e4a8ae95 |
|---|---|
| 1 <html> | |
| 2 <head> | |
| 3 <title>MayaChemTools:Documentation:Parsers::SimpleCalcYYLexer.pm</title> | |
| 4 <meta http-equiv="content-type" content="text/html;charset=utf-8"> | |
| 5 <link rel="stylesheet" type="text/css" href="../../css/MayaChemTools.css"> | |
| 6 </head> | |
| 7 <body leftmargin="20" rightmargin="20" topmargin="10" bottommargin="10"> | |
| 8 <br/> | |
| 9 <center> | |
| 10 <a href="http://www.mayachemtools.org" title="MayaChemTools Home"><img src="../../images/MayaChemToolsLogo.gif" border="0" alt="MayaChemTools"></a> | |
| 11 </center> | |
| 12 <br/> | |
| 13 <div class="DocNav"> | |
| 14 <table width="100%" border=0 cellpadding=0 cellspacing=2> | |
| 15 <tr align="left" valign="top"><td width="33%" align="left"><a href="./SimpleCalcParser.html" title="SimpleCalcParser.html">Previous</a> <a href="./index.html" title="Table of Contents">TOC</a> <a href="./YYLexer.html" title="YYLexer.html">Next</a></td><td width="34%" align="middle"><strong>Parsers::SimpleCalcYYLexer.pm</strong></td><td width="33%" align="right"><a href="././code/SimpleCalcYYLexer.html" title="View source code">Code</a> | <a href="./../pdf/SimpleCalcYYLexer.pdf" title="PDF US Letter Size">PDF</a> | <a href="./../pdfgreen/SimpleCalcYYLexer.pdf" title="PDF US Letter Size with narrow margins: www.changethemargins.com">PDFGreen</a> | <a href="./../pdfa4/SimpleCalcYYLexer.pdf" title="PDF A4 Size">PDFA4</a> | <a href="./../pdfa4green/SimpleCalcYYLexer.pdf" title="PDF A4 Size with narrow margins: www.changethemargins.com">PDFA4Green</a></td></tr> | |
| 16 </table> | |
| 17 </div> | |
| 18 <p> | |
| 19 </p> | |
| 20 <h2>NAME</h2> | |
| 21 <p>Parsers::SimpleCalcYYLexer</p> | |
| 22 <p> | |
| 23 </p> | |
| 24 <h2>SYNOPSIS</h2> | |
| 25 <p>use Parsers::SimpleCalcYYLexer;</p> | |
| 26 <p>use Parsers::SimpleCalcYYLexer qw(:all);</p> | |
| 27 <p> | |
| 28 </p> | |
| 29 <h2>DESCRIPTION</h2> | |
| 30 <p><strong>SimpleCalcYYLexer</strong> class provides the following methods:</p> | |
| 31 <p> <a href="#new">new</a>, <a href="#yylex">YYLex</a>, <a href="#getyylex">GetYYLex</a>, <a href="#stringifysimplecalcyylexer">StringifySimpleCalcYYLexer</a> | |
| 32 </p><p><strong>Parser::SimpleCalcYYLexer</strong> class is derived from <strong>Parser::YYLexer</strong> class, which in | |
| 33 turn is derived from base class <strong>Parser::Lexer</strong> that provides all the underlying | |
| 34 lexer functionality. <strong>SimpleCalcYYLexer</strong> class is designed to be used with | |
| 35 <strong>yyparse</strong> code generated by running <strong>byacc</strong> on a parser defined using | |
| 36 parser definition <strong>SimpleCalcParser.yy</strong> file.</p> | |
| 37 <p>The parser package and token table files, <strong>SimpleCalcParser.pm</strong> and <strong>SimpleCalcParser.tab.ph</strong>, | |
| 38 are automatically generated from parser grammar definition file, <strong>SimpleCalcParser.yy</strong>, using | |
| 39 byacc available through perl-byacc1.8 modified with perl5-byacc-patches-0.5 for generation | |
| 40 of object oriented parser:</p> | |
| 41 <div class="OptionsBox"> | |
| 42 byacc -l -P -d -b SimpleCalcParser SimpleCalcParser.yy | |
| 43 <br/> mv SimpleCalcParser.tab.pl SimpleCalcParser.pm</div> | |
| 44 <p><strong>SimpleCalcYYLexer.pm</strong> class implements a lexer for a simple calculator and is provided | |
| 45 to highlight usasge of <strong>YYLex</strong> through <strong>yyparse</strong>.</p> | |
| 46 <p>The default specification of lexer tokens for <strong>SimpleCalcYYLexer.pm</strong> includes:</p> | |
| 47 <div class="OptionsBox"> | |
| 48 @YYLexerTokensSpec = ( | |
| 49 <br/> [ 'LETTER', qr/[a-zA-Z]/ ], | |
| 50 [ 'NUMBER', qr/\d+/ ], | |
| 51 [ 'SPACE', qr/[ ]*/, | |
| 52 <br/> sub { my($This, $TokenLabel, $MatchedText) = @_; return ''; } | |
| 53 <br/> ], | |
| 54 [ 'NEWLINE', qr/(?:\r\n|\r|\n)/, | |
| 55 <br/> sub { my($This, $TokenLabel, $MatchedText) = @_; return "\n"; } | |
| 56 <br/> ], | |
| 57 [ 'CHAR', qr/./ ] | |
| 58 <br/> );</div> | |
| 59 <p>The default <strong>SimpleCalcParser.tab.ph</strong> file containing token identifiers for | |
| 60 <strong>SimpleCalcParser.yy</strong> includes:</p> | |
| 61 <div class="OptionsBox"> | |
| 62 $NUMBER=257; | |
| 63 <br/> $LETTER=258;</div> | |
| 64 <p> | |
| 65 </p> | |
| 66 <h2>METHODS</h2> | |
| 67 <dl> | |
| 68 <dt><strong><a name="new" class="item"><strong>new</strong></a></strong></dt> | |
| 69 <dd> | |
| 70 <div class="OptionsBox"> | |
| 71 $SimpleCalcYYLexer = new Parsers::SimpleCalcYYLexer($Input);</div> | |
| 72 <p>Using specified <em>Input</em>, <strong>new</strong> method generates a new <strong>SimpleCalcYYLexer</strong> | |
| 73 and returns a reference to newly created <strong>SimpleCalcYYLexer</strong> object.</p> | |
| 74 <p>Examples:</p> | |
| 75 <div class="OptionsBox"> | |
| 76 # Input string... | |
| 77 <br/> $InputText = "3 + 4 +6\nx=3\ny=5\nx+y\nx+z\n";</div> | |
| 78 <div class="OptionsBox"> | |
| 79 $YYLexer = new Parsers::SimpleCalcYYLexer($InputText); | |
| 80 <br/> $YYLex = $YYLexer->GetYYLex();</div> | |
| 81 <div class="OptionsBox"> | |
| 82 $Debug = 0; | |
| 83 <br/> $CalcParser = new Parsers::SimpleCalcParser($YYLex, | |
| 84 \&Parsers::SimpleCalcParser::yyerror, $Debug); | |
| 85 <br/> $Value = $SimpleCalcParser->yyparse(); | |
| 86 <br/> print "Value: $Value\n";</div> | |
| 87 <div class="OptionsBox"> | |
| 88 # Input file... | |
| 89 <br/> $InputFile = "Input.txt"; | |
| 90 <br/> open INPUTFILE, "$InputFile" or die "Couldn't open $InputFile: $!\n"; | |
| 91 <br/> $YYLexer = new Parsers::SimpleCalcYYLexer($InputFile); | |
| 92 <br/> $YYLex = $YYLexer->GetYYLex();</div> | |
| 93 <div class="OptionsBox"> | |
| 94 $CalcParser = new Parsers::SimpleCalcParser($YYLex, | |
| 95 \&Parsers::SimpleCalcParser::yyerror); | |
| 96 <br/> $Value = $SimpleCalcParser->yyparse(); | |
| 97 <br/> print "Value: $Value\n";</div> | |
| 98 <div class="OptionsBox"> | |
| 99 # Input file iterator... | |
| 100 <br/> $InputFile = "TestSimpleCalcParser.txt"; | |
| 101 <br/> open INPUTFILE, "$InputFile" or die "Couldn't open $InputFile: $!\n"; | |
| 102 <br/> $InputIterator = sub { return <INPUTFILE>; }; | |
| 103 <br/> $YYLexer = new Parsers::SimpleCalcYYLexer($InputIterator); | |
| 104 <br/> $YYLex = $YYLexer->GetYYLex();</div> | |
| 105 <div class="OptionsBox"> | |
| 106 $CalcParser = new Parsers::SimpleCalcParser($YYLex, | |
| 107 \&Parsers::SimpleCalcParser::yyerror); | |
| 108 <br/> $Value = $SimpleCalcParser->yyparse(); | |
| 109 <br/> print "Value: $Value\n";</div> | |
| 110 </dd> | |
| 111 <dt><strong><a name="stringifysimplecalcyylexer" class="item"><strong>StringifySimpleCalcYYLexer</strong></a></strong></dt> | |
| 112 <dd> | |
| 113 <div class="OptionsBox"> | |
| 114 $YYLexerString = $YYLexer->StringifySimpleCalcYYLexer();</div> | |
| 115 <p>Returns a string containing information about <em>YYLexer</em> object.</p> | |
| 116 </dd> | |
| 117 </dl> | |
| 118 <p> | |
| 119 </p> | |
| 120 <h2>AUTHOR</h2> | |
| 121 <p><a href="mailto:msud@san.rr.com">Manish Sud</a></p> | |
| 122 <p> | |
| 123 </p> | |
| 124 <h2>SEE ALSO</h2> | |
| 125 <p><a href="./Lexer.html">Lexer.pm</a>, <a href="./YYLexer.html">YYLexer.pm</a>, <a href="./SimpleCalcParser.html">SimpleCalcParser.yy</a> | |
| 126 </p> | |
| 127 <p> | |
| 128 </p> | |
| 129 <h2>COPYRIGHT</h2> | |
| 130 <p>Copyright (C) 2015 Manish Sud. All rights reserved.</p> | |
| 131 <p>This file is part of MayaChemTools.</p> | |
| 132 <p>MayaChemTools is free software; you can redistribute it and/or modify it under | |
| 133 the terms of the GNU Lesser General Public License as published by the Free | |
| 134 Software Foundation; either version 3 of the License, or (at your option) | |
| 135 any later version.</p> | |
| 136 <p> </p><p> </p><div class="DocNav"> | |
| 137 <table width="100%" border=0 cellpadding=0 cellspacing=2> | |
| 138 <tr align="left" valign="top"><td width="33%" align="left"><a href="./SimpleCalcParser.html" title="SimpleCalcParser.html">Previous</a> <a href="./index.html" title="Table of Contents">TOC</a> <a href="./YYLexer.html" title="YYLexer.html">Next</a></td><td width="34%" align="middle"><strong>March 29, 2015</strong></td><td width="33%" align="right"><strong>Parsers::SimpleCalcYYLexer.pm</strong></td></tr> | |
| 139 </table> | |
| 140 </div> | |
| 141 <br /> | |
| 142 <center> | |
| 143 <img src="../../images/h2o2.png"> | |
| 144 </center> | |
| 145 </body> | |
| 146 </html> |
