Open
Description
Created by bitbucket user nilsbecker_ on 2017-09-06 22:14
Last updated on 2019-07-31 09:29
in
can either be parsed as a set operation or as part of a let
, unfolding
or applying
expression in Viper. The rule for applying
is defined as
#!scala
keyword("applying") ~/ "(" ~ magicWandExp ~ ")" ~ "in" ~ exp
Without the parentheses, in
is parsed as a set operation and the in
of the applying
expression cannot be found. The parser should at that point backtrack and parse the expression correctly. This does not work.
A similar issue occurs for let
expressions. As a work around parentheses are inserted as shown above.