class RbsTsGenerator::TypeScriptVisitor
Constants
- INSTANCE
Private Instance Methods
binary(node, seed)
click to toggle source
# File lib/generators/rbs_ts/type_script_visitor.rb, line 5 def binary(node, seed) visit(node.right, visit(node.left, seed) + ' + ') end
nary(node, seed)
click to toggle source
# File lib/generators/rbs_ts/type_script_visitor.rb, line 9 def nary(node, seed) last_child = node.children.last node.children.inject(seed) { |s, c| string = visit(c, s) string << '|' unless last_child == c string } end
terminal(node, seed)
click to toggle source
# File lib/generators/rbs_ts/type_script_visitor.rb, line 18 def terminal(node, seed) seed + node.left.to_s.to_json end
variable(node, seed)
click to toggle source
# File lib/generators/rbs_ts/type_script_visitor.rb, line 29 def variable(node, seed) if node.left.to_s[0] == '*' seed + '(' + node.left.to_s[1..-1] + ' ?? "")' else v = node.left.to_s[1..-1] seed + "(() => { if (#{v}) return #{v}; throw #{v.to_json} })()" end end
visit_GROUP(node, seed)
click to toggle source
# File lib/generators/rbs_ts/type_script_visitor.rb, line 22 def visit_GROUP(node, seed) # TODO: support nested level 2 visit(node.left, seed.dup << '(() => { try { return ') << ' } catch { return "" } })()' end
visit_SYMBOL(n, seed)
click to toggle source
# File lib/generators/rbs_ts/type_script_visitor.rb, line 27 def visit_SYMBOL(n, seed); variable(n, seed); end