From 7aadf26359e95f8b113c972e42155c908bb850b8 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Wed, 25 Jan 2012 16:36:03 +0100 Subject: [PATCH] maint: update TODO. * TODO (Labeling the symbols): Remove, it's done ("Name references"). (cherry picked from commit 2c7f50be6247b4a03bdb27936ea6185cb6a7443c) --- TODO | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/TODO b/TODO index 49928d09..5807ccdc 100644 --- a/TODO +++ b/TODO @@ -52,31 +52,6 @@ DeRemer and Penello: they already provide the algorithm. * Extensions -** Labeling the symbols -Have a look at the Lemon parser generator: instead of $1, $2 etc. they -can name the values. This is much more pleasant. For instance: - - exp (res): exp (a) '+' exp (b) { $res = $a + $b; }; - -I love this. I have been bitten too often by the removal of the -symbol, and forgetting to shift all the $n to $n-1. If you are -unlucky, it compiles... - -But instead of using $a etc., we can use regular variables. And -instead of using (), I propose to use `:' (again). Paul suggests -supporting `->' in addition to `:' to separate LHS and RHS. In other -words: - - r:exp -> a:exp '+' b:exp { r = a + b; }; - -That requires an significant improvement of the grammar parser. Using -GLR would be nice. It also requires that Bison know the type of the -symbols (which will be useful for %include anyway). So we have some -time before... - -Note that there remains the problem of locations: `@r'? - - ** $-1 We should find a means to provide an access to values deep in the stack. For instance, instead of -- 2.45.2