newline fiddling in the parser yields goods results

This commit is contained in:
Torsten Ruger
2014-05-12 13:47:47 +03:00
parent ee4d8033af
commit 956d1eb135
10 changed files with 69 additions and 44 deletions

View File

@@ -3,10 +3,11 @@ module Parser
include Parslet
rule(:simple_expression) { function_call | integer | string | name }
rule(:expression) { (while_do | conditional | simple_expression ) >> newline.maybe }
rule(:expression) { (while_do | conditional | operator_expression | function_call ) >> newline }
def delimited_expressions( delimit )
( (delimit.absent? >> (operator_expression | expression)).repeat(1)).as(:expressions) >> delimit >> newline.maybe
( (delimit.absent? >> expression).repeat(1)).as(:expressions) >> delimit
end
rule(:expressions_do) { delimited_expressions(keyword_do) }