diff docs/modules/txt/SimpleCalcYYLexer.txt @ 0:4816e4a8ae95 draft default tip

Uploaded
author deepakjadmin
date Wed, 20 Jan 2016 09:23:18 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docs/modules/txt/SimpleCalcYYLexer.txt	Wed Jan 20 09:23:18 2016 -0500
@@ -0,0 +1,118 @@
+NAME
+    Parsers::SimpleCalcYYLexer
+
+SYNOPSIS
+    use Parsers::SimpleCalcYYLexer;
+
+    use Parsers::SimpleCalcYYLexer qw(:all);
+
+DESCRIPTION
+    SimpleCalcYYLexer class provides the following methods:
+
+    new, YYLex, GetYYLex, StringifySimpleCalcYYLexer
+
+    Parser::SimpleCalcYYLexer class is derived from Parser::YYLexer class,
+    which in turn is derived from base class Parser::Lexer that provides all
+    the underlying lexer functionality. SimpleCalcYYLexer class is designed
+    to be used with yyparse code generated by running byacc on a parser
+    defined using parser definition SimpleCalcParser.yy file.
+
+    The parser package and token table files, SimpleCalcParser.pm and
+    SimpleCalcParser.tab.ph, are automatically generated from parser grammar
+    definition file, SimpleCalcParser.yy, using byacc available through
+    perl-byacc1.8 modified with perl5-byacc-patches-0.5 for generation of
+    object oriented parser:
+
+        byacc -l -P -d -b SimpleCalcParser SimpleCalcParser.yy
+        mv SimpleCalcParser.tab.pl SimpleCalcParser.pm
+
+    SimpleCalcYYLexer.pm class implements a lexer for a simple calculator
+    and is provided to highlight usasge of YYLex through yyparse.
+
+    The default specification of lexer tokens for SimpleCalcYYLexer.pm
+    includes:
+
+        @YYLexerTokensSpec = (
+            [ 'LETTER', qr/[a-zA-Z]/ ],
+            [ 'NUMBER', qr/\d+/ ],
+            [ 'SPACE', qr/[ ]*/,
+                sub { my($This, $TokenLabel, $MatchedText) = @_; return ''; }
+            ],
+            [ 'NEWLINE', qr/(?:\r\n|\r|\n)/,
+                sub { my($This, $TokenLabel, $MatchedText) = @_;  return "\n"; }
+            ],
+            [ 'CHAR', qr/./ ]
+        );
+
+    The default SimpleCalcParser.tab.ph file containing token identifiers
+    for SimpleCalcParser.yy includes:
+
+        $NUMBER=257;
+        $LETTER=258;
+
+  METHODS
+    new
+            $SimpleCalcYYLexer = new Parsers::SimpleCalcYYLexer($Input);
+
+        Using specified *Input*, new method generates a new
+        SimpleCalcYYLexer and returns a reference to newly created
+        SimpleCalcYYLexer object.
+
+        Examples:
+
+            # Input string...
+            $InputText = "3 + 4 +6\nx=3\ny=5\nx+y\nx+z\n";
+
+            $YYLexer = new Parsers::SimpleCalcYYLexer($InputText);
+            $YYLex = $YYLexer->GetYYLex();
+
+            $Debug = 0;
+            $CalcParser = new Parsers::SimpleCalcParser($YYLex,
+                                    \&Parsers::SimpleCalcParser::yyerror, $Debug);
+            $Value = $SimpleCalcParser->yyparse();
+            print "Value: $Value\n";
+
+            # Input file...
+            $InputFile = "Input.txt";
+            open INPUTFILE, "$InputFile" or die "Couldn't open $InputFile: $!\n";
+            $YYLexer = new Parsers::SimpleCalcYYLexer($InputFile);
+            $YYLex = $YYLexer->GetYYLex();
+
+            $CalcParser = new Parsers::SimpleCalcParser($YYLex,
+                                    \&Parsers::SimpleCalcParser::yyerror);
+            $Value = $SimpleCalcParser->yyparse();
+            print "Value: $Value\n";
+
+            # Input file iterator...
+            $InputFile = "TestSimpleCalcParser.txt";
+            open INPUTFILE, "$InputFile" or die "Couldn't open $InputFile: $!\n";
+            $InputIterator = sub { return <INPUTFILE>; };
+            $YYLexer = new Parsers::SimpleCalcYYLexer($InputIterator);
+            $YYLex = $YYLexer->GetYYLex();
+
+            $CalcParser = new Parsers::SimpleCalcParser($YYLex,
+                                    \&Parsers::SimpleCalcParser::yyerror);
+            $Value = $SimpleCalcParser->yyparse();
+            print "Value: $Value\n";
+
+    StringifySimpleCalcYYLexer
+            $YYLexerString = $YYLexer->StringifySimpleCalcYYLexer();
+
+        Returns a string containing information about *YYLexer* object.
+
+AUTHOR
+    Manish Sud <msud@san.rr.com>
+
+SEE ALSO
+    Lexer.pm, YYLexer.pm, SimpleCalcParser.yy
+
+COPYRIGHT
+    Copyright (C) 2015 Manish Sud. All rights reserved.
+
+    This file is part of MayaChemTools.
+
+    MayaChemTools is free software; you can redistribute it and/or modify it
+    under the terms of the GNU Lesser General Public License as published by
+    the Free Software Foundation; either version 3 of the License, or (at
+    your option) any later version.
+