]> git.saurik.com Git - bison.git/commitdiff
* doc/bison.texinfo (Calc++ Parser): Fix memory leak reported by
authorPaul Eggert <eggert@cs.ucla.edu>
Mon, 11 Sep 2006 18:02:10 +0000 (18:02 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Mon, 11 Sep 2006 18:02:10 +0000 (18:02 +0000)
Sander Brandenburg in
<http://lists.gnu.org/archive/html/bug-bison/2006-09/msg00002.html>.
Also, fix minor white space and comment issues.

ChangeLog
doc/bison.texinfo

index dfa5420a9dc8914d0b599d0e9e27902be4946fe7..dde03052818835b0cf1edda155aefb508c884900 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2006-09-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * doc/bison.texinfo (Calc++ Parser): Fix memory leak reported by
+       Sander Brandenburg in
+       <http://lists.gnu.org/archive/html/bug-bison/2006-09/msg00002.html>.
+       Also, fix minor white space and comment issues.
+
 2006-09-04  Joel E. Denny  <jdenny@ces.clemson.edu>
 
        Finish implementation of per-type %destructor/%printer.  Discussed
index 94a384e04f83ed823de14dbeeb87128293343c88..cf95066a9f87e1d6f986a5c499c3a593537ecc3d 100644 (file)
@@ -7423,8 +7423,8 @@ factor both as follows.
 
 @comment file: calc++-driver.hh
 @example
-// Announce to Flex the prototype we want for lexing function, ...
-# define YY_DECL                                       \
+// Tell Flex the lexer's prototype ...
+# define YY_DECL                                        \
   yy::calcxx_parser::token_type                         \
   yylex (yy::calcxx_parser::semantic_type* yylval,      \
          yy::calcxx_parser::location_type* yylloc,      \
@@ -7675,7 +7675,9 @@ unit: assignments exp  @{ driver.result = $2; @};
 assignments: assignments assignment @{@}
            | /* Nothing.  */        @{@};
 
-assignment: "identifier" ":=" exp @{ driver.variables[*$1] = $3; @};
+assignment:
+     "identifier" ":=" exp
+       @{ driver.variables[*$1] = $3; delete $1; @};
 
 %left '+' '-';
 %left '*' '/';
@@ -7683,7 +7685,7 @@ exp: exp '+' exp   @{ $$ = $1 + $3; @}
    | exp '-' exp   @{ $$ = $1 - $3; @}
    | exp '*' exp   @{ $$ = $1 * $3; @}
    | exp '/' exp   @{ $$ = $1 / $3; @}
-   | "identifier"  @{ $$ = driver.variables[*$1]; @}
+   | "identifier"  @{ $$ = driver.variables[*$1]; delete $1; @}
    | "number"      @{ $$ = $1; @};
 %%
 @end example
@@ -7844,8 +7846,8 @@ main (int argc, char *argv[])
       driver.trace_scanning = true;
     else
       @{
-       driver.parse (*argv);
-       std::cout << driver.result << std::endl;
+        driver.parse (*argv);
+        std::cout << driver.result << std::endl;
       @}
 @}
 @end example