2015-09-24 22:39 GMT+02:00 Thierry Goubier <[email protected]>:
> Le 24/09/2015 09:11, Nicolai Hess a écrit : > >> >> >> 2015-09-24 8:19 GMT+02:00 Peter Uhnák <[email protected] >> <mailto:[email protected]>>: >> >> > - 250 * 1.5 returns -2.25 >> >> why is this valid syntax? >> >> >> >> I don't know if this is valid syntax (I always wondered that there is >> one place in PointTest, that is not compilable with old compiler but >> compiles >> fine with opal). >> But the error happens in >> RBParser>>#parseNegatedNumber. >> If a #- is recognized, it tests if a literalnumber follows (but from the >> token stream, that is, the spaces are ignored). >> Now the real bug is, that we do two "steps" and concstruct a new >> literalvaluenode from the now following tokens. >> RBParser parseExpression:'- 2' -> throws an error, because no following >> tokens >> RBParser parseExpression:'- 2 * 3' -> works but actually duplicates the >> two last tokens "*3 *3. >> and some funny other things '- 2@1' -> '-1@1' >> > > Another one I found in the tests: would you expect > > RBParser parseExpression: '# > > 1 = 1' > > To be the same thing as '#1 = 1' ? > I tested this in squeak and it seems that #1 isn't allowed as symbol, the only way to use a digit as symbol is #'1' (is this defined in smalltalks syntax defintion?) -> Parsing '#' has to be fixed too. > > Thierry >
