using hash_key and value rules
This commit is contained in:
@ -10,8 +10,7 @@ module Parser
|
||||
space? >> right_bracket
|
||||
end
|
||||
|
||||
|
||||
rule(:hash_pair) { basic_type.as(:argument) >> association >> (operator_expression|value_expression).as(:element) }
|
||||
rule(:hash_pair) { basic_type.as(:hash_key) >> association >> (operator_expression|value_expression).as(:hash_value) }
|
||||
rule(:hash) { left_brace >> ((hash_pair.as(:hash_pair) >>
|
||||
(comma >> space? >> hash_pair.as(:hash_pair)).repeat(0)).repeat(0,1)).as(:hash)>>
|
||||
space? >> right_brace }
|
||||
|
@ -13,7 +13,7 @@ module Parser
|
||||
rule(:array => sequence(:array) ) { Ast::ArrayExpression.new(array) }
|
||||
rule(:element => simple(:element)) { element }
|
||||
rule(:hash => sequence(:hash) ) { Ast::HashExpression.new(hash) }
|
||||
rule(:argument => simple(:argument) , :element => simple(:element)) { Ast::AssociationExpression.new(argument,element) }
|
||||
rule(:hash_key => simple(:hash_key) , :hash_value => simple(:hash_value)) { Ast::AssociationExpression.new(hash_key,hash_value) }
|
||||
rule(:hash_pair => simple(:hash_pair) ) { hash_pair }
|
||||
|
||||
rule(:argument => simple(:argument)) { argument }
|
||||
|
Reference in New Issue
Block a user