From 2c7f50be6247b4a03bdb27936ea6185cb6a7443c 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"). --- TODO | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/TODO b/TODO index addd135d..404317f9 100644 --- a/TODO +++ b/TODO @@ -251,31 +251,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