Add for-in statement

pull/70/head
Max Brunsfeld 2014-08-04 20:42:15 +07:00
parent bcce5504a8
commit 55f7177ae5
2 changed files with 30 additions and 1 deletions

@ -20,6 +20,7 @@ module.exports = compiler.grammar
@if_statement,
@switch_statement,
@for_statement,
@for_in_statement,
@break_statement,
@statement_block,
@return_statement,
@ -66,6 +67,16 @@ module.exports = compiler.grammar
")",
@statement)
for_in_statement: -> seq(
keyword("for"),
"(",
optional(keyword("var")),
@identifier,
keyword("in"),
@expression,
")",
@statement)
return_statement: -> seq(
keyword("return"),
optional(@expression),

@ -48,7 +48,25 @@ for (;;) {
(expression_statement)
(statement_block
(expression_statement (function_call (identifier) (identifier))))))
============================================
For-in statements
============================================
for (var item in items)
log(item);
for (item in items)
log(item);
---
(program
(for_in_statement (identifier) (identifier)
(expression_statement (function_call (identifier) (identifier))))
(for_in_statement (identifier) (identifier)
(expression_statement (function_call (identifier) (identifier)))))
============================================
Return statements
============================================