10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/kumi/support/s_expression_printer.rb', line 10
def visit(node)
return node.inspect unless node.respond_to?(:class)
case node
when nil then "nil"
when Array then visit_array(node)
when Kumi::Syntax::Root then visit_root(node)
when Kumi::Syntax::ValueDeclaration then visit_value_declaration(node)
when Kumi::Syntax::TraitDeclaration then visit_trait_declaration(node)
when Kumi::Syntax::InputDeclaration then visit_input_declaration(node)
when Kumi::Syntax::CallExpression then visit_call_expression(node)
when Kumi::Syntax::ArrayExpression then visit_array_expression(node)
when Kumi::Syntax::CascadeExpression then visit_cascade_expression(node)
when Kumi::Syntax::CaseExpression then visit_case_expression(node)
when Kumi::Syntax::InputReference then visit_input_reference(node)
when Kumi::Syntax::InputElementReference then visit_input_element_reference(node)
when Kumi::Syntax::DeclarationReference then visit_declaration_reference(node)
when Kumi::Syntax::Literal then visit_literal(node)
when Kumi::Syntax::HashExpression then visit_hash_expression(node)
when Kumi::Syntax::ImportCall then visit_import_call(node)
else visit_generic(node)
end
end
|