fixing module and class rules to actually use module names. fix all tests

This commit is contained in:
Torsten Ruger
2014-05-30 12:17:11 +03:00
parent f03d445f3d
commit 806960a4d6
4 changed files with 32 additions and 32 deletions

View File

@ -2,12 +2,12 @@ module Parser
module ModuleDef
include Parslet
rule(:module_definition) do
keyword_module >> name >> eol >>
keyword_module >> module_name >> eol >>
( (keyword_end.absent? >> root).repeat(1)).as(:module_expressions) >> keyword_end >> newline
end
rule(:class_definition) do
keyword_class >> name >> eol >>
keyword_class >> module_name >> eol >>
( (keyword_end.absent? >> root).repeat(1)).as(:class_expressions) >> keyword_end >> newline
end

View File

@ -56,11 +56,11 @@ module Parser
end
#modules and classes are undertsndibly quite similar Class < Module
rule( :name => simple(:name) , :module_expressions => sequence(:module_expressions) , :end=>"end") do
Ast::ModuleExpression.new(name , module_expressions)
rule( :module_name => simple(:module_name) , :module_expressions => sequence(:module_expressions) , :end=>"end") do
Ast::ModuleExpression.new(module_name , module_expressions)
end
rule( :name => simple(:name) , :class_expressions => sequence(:class_expressions) , :end=>"end") do
Ast::ClassExpression.new(name , class_expressions)
rule( :module_name => simple(:module_name) , :class_expressions => sequence(:class_expressions) , :end=>"end") do
Ast::ClassExpression.new(module_name , class_expressions)
end
#shortcut to get the ast tree for a given string