annotate mayachemtool/mayachemtools/lib/Parsers/SimpleCalcParser.yy @ 0:68300206e90d draft default tip

Uploaded
author deepakjadmin
date Thu, 05 Nov 2015 02:41:30 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
1 %{
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
2 package Parsers::SimpleCalcParser;
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
3 #
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
4 # $RCSfile: SimpleCalcParser.yy,v $
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
5 # $Date: 2015/02/28 20:50:55 $
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
6 # $Revision: 1.10 $
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
7 #
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
8 # Author: Manish Sud <msud@san.rr.com>
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
9 #
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
10 # Copyright (C) 2015 Manish Sud. All rights reserved.
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
11 #
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
12 # This file is part of MayaChemTools.
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
13 #
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
14 # MayaChemTools is free software; you can redistribute it and/or modify it under
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
15 # the terms of the GNU Lesser General Public License as published by the Free
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
16 # Software Foundation; either version 3 of the License, or (at your option) any
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
17 # later version.
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
18 #
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
19 # MayaChemTools is distributed in the hope that it will be useful, but without
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
20 # any warranty; without even the implied warranty of merchantability of fitness
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
21 # for a particular purpose. See the GNU Lesser General Public License for more
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
22 # details.
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
23 #
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
24 # You should have received a copy of the GNU Lesser General Public License
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
25 # along with MayaChemTools; if not, see <http://www.gnu.org/licenses/> or
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
26 # write to the Free Software Foundation Inc., 59 Temple Place, Suite 330,
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
27 # Boston, MA, 02111-1307, USA.
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
28 #
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
29 #
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
30 # A WORD TO THE WISE:
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
31 #
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
32 # The parser package and token table files, SimpleCalcParser.pm and
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
33 # SimpleCalcParser.tab.ph, are automatically generated from parser grammar
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
34 # definition file, SimpleCalcParser.yy, using byacc available through perl-byacc1.8
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
35 # modified with perl5-byacc-patches-0.5 for generation of object oriented parser:
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
36 #
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
37 # byacc -l -P -d -b SimpleCalcParser SimpleCalcParser.yy
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
38 # mv SimpleCalcParser.tab.pl SimpleCalcParser.pm
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
39 #
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
40
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
41 use Carp;
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
42
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
43 # Setup a hash map for mapping of words/letters to values...
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
44 %LetterToValueMap = ();
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
45
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
46 %}
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
47
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
48 %start list
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
49
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
50 %token NUMBER LETTER
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
51
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
52 %left '+' '-'
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
53 %left '*' '/'
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
54 %left '%'
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
55
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
56 %%
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
57
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
58 list :
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
59 | list stat '\n'
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
60 { $$ = $2; }
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
61 | list error '\n'
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
62 { $p->yyerrok; $p->yyclearin; }
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
63 ;
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
64
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
65
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
66 stat : expr
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
67 { $ExprOut = sprintf "%5i", $1; print "$ExprOut\n"; $$ = $1; }
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
68 | LETTER '=' expr
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
69 { $LetterToValueMap{$1} = $3; }
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
70 ;
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
71
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
72 expr : '(' expr ')'
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
73 { $$ = $2; }
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
74 | expr '+' expr
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
75 { $$ = $1 + $3; }
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
76 | expr '-' expr
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
77 { $$ = $1 - $3; }
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
78 | expr '*' expr
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
79 { $$ = $1 * $3; }
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
80 | expr '/' expr
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
81 { $$ = $1 / $3; }
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
82 | expr '%' expr
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
83 { $$ = $1 % $3; }
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
84 | NUMBER
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
85 | LETTER
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
86 {
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
87 if (exists $LetterToValueMap{$1}) {
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
88 $$ = $LetterToValueMap{$1};
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
89 }
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
90 else {
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
91 $Letter = $1;
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
92 print "Undefined variable $Letter encountered by SimpleCalcParser; Value set to 0\n";
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
93 $$ = 0;
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
94 }
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
95 }
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
96 ;
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
97
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
98 %%
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
99
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
100 # yyerror function supplied to parser along with a lexer during initialization of
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
101 # the parser...
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
102 #
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
103 sub yyerror {
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
104 my ($msg) = @_;
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
105 print "yyerror: $msg...\n";
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
106 }
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
107
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
108 1;
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
109
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
110 __END__
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
111
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
112 =head1 NAME
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
113
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
114 Parsers::SimpleCalcParser
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
115
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
116 =head1 SYNOPSIS
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
117
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
118 use Parsers::SimpleCalcParser ;
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
119
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
120 use Parsers::SimpleCalcParser qw(:all);
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
121
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
122 =head1 DESCRIPTION
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
123
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
124 B<Parsers::SimpleCalcParser> class provides the following methods:
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
125
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
126 new, yyclearin, yyerrok, yyerror, yyparse
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
127
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
128 B<Parsers::SimpleCalcParse.yy> parser grammer definition file implements a simple
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
129 calculator and is provided to highlight usage of lexer capability available through
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
130 B<Parsers::SimpleCalcYYLexer>, which in turn uses B<Parsers::YYLexer> and
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
131 B<Parsers::Lexer> classes to procide underlying lexer functionality.
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
132
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
133 The parser package and token table files, B<Parsers::SimpleCalcParser.pm> and
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
134 B<SimpleCalcParser.tab.ph>, are automatically generated from parser grammar definition
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
135 file, B<Parsers::SimpleCalcParser.yy>, using byacc available through perl-byacc1.8 modified
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
136 with perl5-byacc-patches-0.5 for generation of object oriented parser:
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
137
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
138 byacc -l -P -d -b SimpleCalcParser SimpleCalcParser.yy
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
139 mv SimpleCalcParser.tab.pl SimpleCalcParser.pm
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
140
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
141 =head2 METHODS
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
142
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
143 =over 4
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
144
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
145 =item B<new>
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
146
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
147 $SimpleCalcParser = new Parsers::SimpleCalcParser($YYLex,
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
148 \&Parsers::SimpleCalcParser::yyerror);
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
149 $SimpleCalcParser = new Parsers::SimpleCalcParser($YYLex,
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
150 \&Parsers::SimpleCalcParser::yyerror, $Debug);
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
151
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
152 Using specified I<YYLex> I<YYError> functions, B<new> method generates a new
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
153 B<SimpleCalcParser> and returns a reference to newly created B<SimpleCalcYYParser> object.
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
154
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
155 Examples:
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
156
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
157 # Input string...
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
158 $InputText = "3 + 4 +6\nx=3\ny=5\nx+y\nx+z\n";
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
159 $YYLexer = new Parsers::SimpleCalcYYLexer($InputText);
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
160 $YYLex = $YYLexer->GetYYLex();
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
161
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
162 $Debug = 0;
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
163 $SimpleCalcParser = new Parsers::SimpleCalcParser($YYLex,
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
164 \&Parsers::SimpleCalcParser::yyerror, $Debug);
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
165 $Value = $SimpleCalcParser->yyparse();
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
166 print "Value = " . (defined($Value) ? "$Value" : "Undefined") . "\n";
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
167
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
168 # Input file...
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
169 $InputFile = "TestSimpleCalcParser.txt";
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
170 open INPUTFILE, "$InputFile" or die "Couldn't open $InputFile: $!\n";
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
171
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
172 $YYLexer = new Parsers::SimpleCalcYYLexer(\*INPUTFILE);
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
173 $YYLex = $YYLexer->GetYYLex();
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
174
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
175 $Debug = 0;
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
176 $SimpleCalcParser = new Parsers::SimpleCalcParser($YYLex,
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
177 \&Parsers::SimpleCalcParser::yyerror, $Debug);
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
178 $Value = $SimpleCalcParser->yyparse();
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
179 print "Value = " . (defined($Value) ? "$Value" : "Undefined") . "\n";
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
180
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
181 close INPUTFILE;
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
182
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
183 # Input iterator...
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
184 $InputFile = "TestSimpleCalcParser.txt";
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
185 open INPUTFILE, "$InputFile" or die "Couldn't open $InputFile: $!\n";
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
186 $InputIterator = sub { return <INPUTFILE>; };
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
187
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
188 $YYLexer = new Parsers::SimpleCalcYYLexer($InputIterator);
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
189 $YYLex = $YYLexer->GetYYLex();
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
190
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
191 $Debug = 0;
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
192 $SimpleCalcParser = new Parsers::SimpleCalcParser($YYLex,
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
193 \&Parsers::SimpleCalcParser::yyerror, $Debug);
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
194 $Value = $SimpleCalcParser->yyparse();
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
195 print "Value = " . (defined($Value) ? "$Value" : "Undefined") . "\n";
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
196
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
197 close INPUTFILE;
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
198
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
199 =item B<yyclearin>
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
200
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
201 $SimpleCalcParser->yyclearin();
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
202
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
203 B<yyclearin> method clears any previous look-ahead token after encountering a syntax error
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
204 during parsing. It can be used after B<yyerrok> in a grammer rule with the reserved word
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
205 B<error>.
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
206
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
207 =item B<yyerrok>
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
208
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
209 $SimpleCalcParser->yyerrok();
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
210
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
211 B<yyerrok> method is used with the reserved word B<error> in grammer rule to indcate
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
212 error recovery is complete after encountering a syntax error during parsing.
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
213
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
214 =item B<yyerror>
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
215
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
216 $SimpleCalcParser->yyerror();
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
217
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
218 B<yyerror> function is provided for the caller to use during initialization of a parser. It
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
219 is used by B<yyparse> to print any error messages encountered during parsing of the
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
220 input.
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
221
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
222 =item B<yyparse>
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
223
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
224 $Value = $SimpleCalcParser->yyparse();
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
225
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
226 Returns I<Value> after parsing all the input from a input stream using specified
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
227 grammer rules.
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
228
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
229 =back
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
230
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
231 =head1 AUTHOR
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
232
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
233 Manish Sud <msud@san.rr.com>
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
234
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
235 =head1 SEE ALSO
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
236
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
237 Lexer.pm, YYLexer.pm, SimpleCalcYYLexer.pm
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
238
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
239 =head1 COPYRIGHT
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
240
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
241 Copyright (C) 2015 Manish Sud. All rights reserved.
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
242
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
243 This file is part of MayaChemTools.
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
244
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
245 MayaChemTools is free software; you can redistribute it and/or modify it under
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
246 the terms of the GNU Lesser General Public License as published by the Free
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
247 Software Foundation; either version 3 of the License, or (at your option)
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
248 any later version.
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
249
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
250 =cut
68300206e90d Uploaded
deepakjadmin
parents:
diff changeset
251