文法変更予定

before

Statements  :=  ( ( BlockStatement | ExpressionStatement ";" | ";" ) )*
ExpressionStatement :=  Expression ( ( "@if" Expression | "@while" Expression ) )?
|   "assert" PrimitiveExpression ( PrimitiveExpression )?
|   "break" ( <ID> )?
|   "continue" ( <ID> )?
|   "return" ( Expression )?
|   "throw" Expression

after

Statements  :=  ( BlockStatement
    |    ExpressionStatement ( "@if" Expression
        |    "@while" Expression
        |    "@for" <ID> "in" Expression (".." Expression)? )? ";"
    |    ";"
)*
ExpressionStatement :=  Expression
|   "assert" PrimitiveExpression ( PrimitiveExpression )?
|   "break" ( <ID> )?
|   "continue" ( <ID> )?
|   "return" ( Expression )?
|   "throw" Expression