ethereum / act

Smart contract specification language

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ambiguous parse for read only storage blocks

d-xo opened this issue · comments

commented

Consider the following spec:

behaviour f of C
interface f()

iff in range uint256

    x + y

storage

    x 
    y

returns x + y

The storage block is currently parsed into:

[ExtStorage "x" [Constant (Entry (AlexPn 168 19 5) "y" [])]]

When it should be parsed into:

[Constant (Entry (AlexPn 162 18 5) "x" []),Constant (Entry (AlexPn 173 19 5) "y" [])]

Perhaps we need to make the parser whitespace aware, or introduce some delimiters?

commented

@MrChico I guess we should try and remove all the shift / reduce conflicts from the parser stage?