> On 8 Nov 2018, at 21:19, Akim Demaille <a...@lrde.epita.fr> wrote: > > Hi Uxio, hi Hans,
Hi Akim, > You cannot use Bison to resolve dynamically your precedence if > you have a free set of levels. But if you have a fixed number > of level, say 10, then you could define ten tokens for each level, > and give them the precedence you want. Then, in the scanner, > map each operator to the corresponding level, storing the actual > operator as a semantic value. The scanner could use a map for > instance to decide to which token you map each operator. That is also a possibility, but make it at least 20 to cover C/C++ [1], as the 10 or so that Haskell admits is too limited. But it becomes problematic if the number of levels is large, like 1200 as in SWI-Prolog. > That wouldn’t be of much help if you also want to play with > associativity. Maybe using even more tokens to denote the different > possibilities. I recall that the Haskell interpreter Hugs [2] used something like that. 1. https://en.cppreference.com/w/cpp/language/operator_precedence 2. https://wiki.haskell.org/Hugs _______________________________________________ help-bison@gnu.org https://lists.gnu.org/mailman/listinfo/help-bison