From 60746383ee9e3ff06b94e5af880e2af312be5e4c Mon Sep 17 00:00:00 2001 From: Torsten Ruger Date: Fri, 9 Oct 2015 17:31:08 +0300 Subject: [PATCH] expressions are now statements --- lib/parser/statement.rb | 16 ++++++++-------- test/cases/call_site/field_basic.tst | 8 -------- test/cases/return_statement/return_int.tst | 5 ++--- test/cases/return_statement/return_string.tst | 5 ++--- test/cases/return_statement/return_variable.tst | 5 ++--- 5 files changed, 14 insertions(+), 25 deletions(-) delete mode 100644 test/cases/call_site/field_basic.tst diff --git a/lib/parser/statement.rb b/lib/parser/statement.rb index a274407..e8be3ef 100644 --- a/lib/parser/statement.rb +++ b/lib/parser/statement.rb @@ -1,18 +1,18 @@ module Parser - module Expression + module Statement include Parslet - rule(:expression) { (simple_return | while_do | small_conditional | conditional | - operator_expression | call_site | class_field | field | + rule(:statement) { (return_statement | while_statement | small_conditional | if_statement | + assignment | class_field | field_def | call_site | hash_constant | array_constant) } - def delimited_expressions( delimit ) - ( (delimit.absent? >> expression).repeat(1)).as(:expressions) >> delimit + def delimited_statements( delimit ) + ( (delimit.absent? >> statement).repeat(1)).as(:statements) >> delimit end - rule(:expressions_do) { delimited_expressions(keyword_do) } - rule(:expressions_else) { delimited_expressions(keyword_else) } - rule(:expressions_end) { delimited_expressions(keyword_end) } + rule(:statements_do) { delimited_statements(keyword_do) } + rule(:statements_else) { delimited_statements(keyword_else) } + rule(:statements_end) { delimited_statements(keyword_end) } end end diff --git a/test/cases/call_site/field_basic.tst b/test/cases/call_site/field_basic.tst deleted file mode 100644 index 20a1994..0000000 --- a/test/cases/call_site/field_basic.tst +++ /dev/null @@ -1,8 +0,0 @@ -message.self --- -- -- -s(:expressions, - s(:field_access, - s(:receiver, - s(:name, :message)), - s(:field, - s(:name, :self)))) diff --git a/test/cases/return_statement/return_int.tst b/test/cases/return_statement/return_int.tst index 0b11a4c..3eb6339 100644 --- a/test/cases/return_statement/return_int.tst +++ b/test/cases/return_statement/return_int.tst @@ -1,5 +1,4 @@ return 42 -- -- -- -s(:expressions, - s(:return, - s(:int, 42))) +s(:return, + s(:int, 42)) diff --git a/test/cases/return_statement/return_string.tst b/test/cases/return_statement/return_string.tst index 7956cbe..520d69e 100644 --- a/test/cases/return_statement/return_string.tst +++ b/test/cases/return_statement/return_string.tst @@ -1,5 +1,4 @@ return "hello" -- -- -- -s(:expressions, - s(:return, - s(:string, "hello"))) +s(:return, + s(:string, "hello")) diff --git a/test/cases/return_statement/return_variable.tst b/test/cases/return_statement/return_variable.tst index 334393c..84d0abb 100644 --- a/test/cases/return_statement/return_variable.tst +++ b/test/cases/return_statement/return_variable.tst @@ -1,5 +1,4 @@ return foo -- -- -- -s(:expressions, - s(:return, - s(:name, :foo))) +s(:return, + s(:name, :foo))