Class: Onigmo::PrettyPrintVisitor

Inherits:
Visitor
  • Object
show all
Defined in:
lib/onigmo/pretty_print_visitor.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Visitor

#visit_child_nodes

Constructor Details

#initialize(q) ⇒ PrettyPrintVisitor

Returns a new instance of PrettyPrintVisitor.



9
10
11
# File 'lib/onigmo/pretty_print_visitor.rb', line 9

def initialize(q)
  @q = q
end

Instance Attribute Details

#qObject (readonly)

Returns the value of attribute q.



7
8
9
# File 'lib/onigmo/pretty_print_visitor.rb', line 7

def q
  @q
end

Instance Method Details

#visit_alternation_node(node) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/onigmo/pretty_print_visitor.rb', line 13

def visit_alternation_node(node)
  q.group do
    q.text("alternation(")
    q.nest(2) do
      q.breakable("")
      q.seplist(node.nodes) do |child_node|
        visit(child_node)
      end
    end
    q.breakable("")
    q.text(")")
  end
end

#visit_anchor_buffer_begin_node(node) ⇒ Object



27
28
29
# File 'lib/onigmo/pretty_print_visitor.rb', line 27

def visit_anchor_buffer_begin_node(node)
  q.text("anchorBufferBegin()")
end

#visit_anchor_buffer_end_node(node) ⇒ Object



31
32
33
# File 'lib/onigmo/pretty_print_visitor.rb', line 31

def visit_anchor_buffer_end_node(node)
  q.text("anchorBufferEnd()")
end

#visit_anchor_keep_node(node) ⇒ Object



35
36
37
# File 'lib/onigmo/pretty_print_visitor.rb', line 35

def visit_anchor_keep_node(node)
  q.text("anchorKeep()")
end

#visit_anchor_line_begin_node(node) ⇒ Object



39
40
41
# File 'lib/onigmo/pretty_print_visitor.rb', line 39

def visit_anchor_line_begin_node(node)
  q.text("anchorLineBegin()")
end

#visit_anchor_line_end_node(node) ⇒ Object



43
44
45
# File 'lib/onigmo/pretty_print_visitor.rb', line 43

def visit_anchor_line_end_node(node)
  q.text("anchorLineEnd()")
end

#visit_anchor_position_begin_node(node) ⇒ Object



47
48
49
# File 'lib/onigmo/pretty_print_visitor.rb', line 47

def visit_anchor_position_begin_node(node)
  q.text("anchorPositionBegin()")
end

#visit_anchor_semi_end_node(node) ⇒ Object



51
52
53
# File 'lib/onigmo/pretty_print_visitor.rb', line 51

def visit_anchor_semi_end_node(node)
  q.text("anchorSemiEnd()")
end

#visit_anchor_word_boundary_invert_node(node) ⇒ Object



59
60
61
# File 'lib/onigmo/pretty_print_visitor.rb', line 59

def visit_anchor_word_boundary_invert_node(node)
  q.text("anchorWordBoundaryInvert()")
end

#visit_anchor_word_boundary_node(node) ⇒ Object



55
56
57
# File 'lib/onigmo/pretty_print_visitor.rb', line 55

def visit_anchor_word_boundary_node(node)
  q.text("anchorWordBoundary()")
end

#visit_any_node(node) ⇒ Object



63
64
65
# File 'lib/onigmo/pretty_print_visitor.rb', line 63

def visit_any_node(node)
  q.text("any")
end

#visit_backref_node(node) ⇒ Object



67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/onigmo/pretty_print_visitor.rb', line 67

def visit_backref_node(node)
  q.group do
    q.text("backref(")
    q.nest(2) do
      q.breakable("")
      q.seplist(node.values) do |value|
        q.pp(value)
      end
    end
    q.breakable("")
    q.text(")")
  end
end

#visit_call_node(node) ⇒ Object



81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/onigmo/pretty_print_visitor.rb', line 81

def visit_call_node(node)
  q.group do
    q.text("call(")
    q.nest(2) do
      q.breakable("")
      q.seplist([node.number, node.name]) do |value|
        q.pp(value)
      end
    end
    q.breakable("")
    q.text(")")
  end
end

#visit_cclass_invert_node(node) ⇒ Object



107
108
109
110
111
112
113
114
115
116
117
# File 'lib/onigmo/pretty_print_visitor.rb', line 107

def visit_cclass_invert_node(node)
  q.group do
    q.text("cclassInvert(")
    q.nest(2) do
      q.breakable("")
      q.pp(node.values)
    end
    q.breakable("")
    q.text(")")
  end
end

#visit_cclass_node(node) ⇒ Object



95
96
97
98
99
100
101
102
103
104
105
# File 'lib/onigmo/pretty_print_visitor.rb', line 95

def visit_cclass_node(node)
  q.group do
    q.text("cclass(")
    q.nest(2) do
      q.breakable("")
      q.pp(node.values)
    end
    q.breakable("")
    q.text(")")
  end
end

#visit_enclose_absent_node(node) ⇒ Object



119
120
121
122
123
124
125
126
127
128
129
# File 'lib/onigmo/pretty_print_visitor.rb', line 119

def visit_enclose_absent_node(node)
  q.group do
    q.text("encloseAbsent(")
    q.nest(2) do
      q.breakable("")
      visit(node.node)
    end
    q.breakable("")
    q.text(")")
  end
end

#visit_enclose_condition_node(node) ⇒ Object



131
132
133
134
135
136
137
138
139
140
141
142
143
# File 'lib/onigmo/pretty_print_visitor.rb', line 131

def visit_enclose_condition_node(node)
  q.group do
    q.text("encloseCondition(")
    q.nest(2) do
      q.breakable("")
      q.pp(node.number)
      q.comma_breakable
      visit(node.node)
    end
    q.breakable("")
    q.text(")")
  end
end

#visit_enclose_memory_node(node) ⇒ Object



145
146
147
148
149
150
151
152
153
154
155
156
157
# File 'lib/onigmo/pretty_print_visitor.rb', line 145

def visit_enclose_memory_node(node)
  q.group do
    q.text("encloseMemory(")
    q.nest(2) do
      q.breakable("")
      q.pp(node.number)
      q.comma_breakable
      visit(node.node)
    end
    q.breakable("")
    q.text(")")
  end
end

#visit_enclose_options_node(node) ⇒ Object



159
160
161
162
163
164
165
166
167
168
169
170
171
# File 'lib/onigmo/pretty_print_visitor.rb', line 159

def visit_enclose_options_node(node)
  q.group do
    q.text("encloseOptions(")
    q.nest(2) do
      q.breakable("")
      q.pp(node.options)
      q.comma_breakable
      visit(node.node)
    end
    q.breakable("")
    q.text(")")
  end
end

#visit_enclose_stop_backtrack_node(node) ⇒ Object



173
174
175
176
177
178
179
180
181
182
183
# File 'lib/onigmo/pretty_print_visitor.rb', line 173

def visit_enclose_stop_backtrack_node(node)
  q.group do
    q.text("encloseStopBacktrack(")
    q.nest(2) do
      q.breakable("")
      visit(node.node)
    end
    q.breakable("")
    q.text(")")
  end
end

#visit_list_node(node) ⇒ Object



185
186
187
188
189
190
191
192
193
194
195
196
197
# File 'lib/onigmo/pretty_print_visitor.rb', line 185

def visit_list_node(node)
  q.group do
    q.text("list(")
    q.nest(2) do
      q.breakable("")
      q.seplist(node.nodes) do |child_node|
        visit(child_node)
      end
    end
    q.breakable("")
    q.text(")")
  end
end

#visit_look_ahead_invert_node(node) ⇒ Object



211
212
213
214
215
216
217
218
219
220
221
# File 'lib/onigmo/pretty_print_visitor.rb', line 211

def visit_look_ahead_invert_node(node)
  q.group do
    q.text("lookAheadInvert(")
    q.nest(2) do
      q.breakable("")
      visit(node.node)
    end
    q.breakable("")
    q.text(")")
  end
end

#visit_look_ahead_node(node) ⇒ Object



199
200
201
202
203
204
205
206
207
208
209
# File 'lib/onigmo/pretty_print_visitor.rb', line 199

def visit_look_ahead_node(node)
  q.group do
    q.text("lookAhead(")
    q.nest(2) do
      q.breakable("")
      visit(node.node)
    end
    q.breakable("")
    q.text(")")
  end
end

#visit_look_behind_invert_node(node) ⇒ Object



235
236
237
238
239
240
241
242
243
244
245
# File 'lib/onigmo/pretty_print_visitor.rb', line 235

def visit_look_behind_invert_node(node)
  q.group do
    q.text("lookBehindInvert(")
    q.nest(2) do
      q.breakable("")
      visit(node.node)
    end
    q.breakable("")
    q.text(")")
  end
end

#visit_look_behind_node(node) ⇒ Object



223
224
225
226
227
228
229
230
231
232
233
# File 'lib/onigmo/pretty_print_visitor.rb', line 223

def visit_look_behind_node(node)
  q.group do
    q.text("lookBehind(")
    q.nest(2) do
      q.breakable("")
      visit(node.node)
    end
    q.breakable("")
    q.text(")")
  end
end

#visit_quantifier_node(node) ⇒ Object



247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
# File 'lib/onigmo/pretty_print_visitor.rb', line 247

def visit_quantifier_node(node)
  q.group do
    q.text("quantifier(")
    q.nest(2) do
      q.breakable("")
      q.seplist({ lower: node.lower, upper: node.upper, greedy: node.greedy }) do |key, value|
        q.text("#{key}: ")
        q.pp(value)
      end
      q.comma_breakable
      visit(node.node)
    end
    q.breakable("")
    q.text(")")
  end
end

#visit_string_node(node) ⇒ Object



264
265
266
267
268
269
270
271
272
273
274
# File 'lib/onigmo/pretty_print_visitor.rb', line 264

def visit_string_node(node)
  q.group do
    q.text("string(")
    q.nest(2) do
      q.breakable("")
      q.pp(node.value)
    end
    q.breakable("")
    q.text(")")
  end
end

#visit_word_invert_node(node) ⇒ Object



280
281
282
# File 'lib/onigmo/pretty_print_visitor.rb', line 280

def visit_word_invert_node(node)
  q.text("wordInvert()")
end

#visit_word_node(node) ⇒ Object



276
277
278
# File 'lib/onigmo/pretty_print_visitor.rb', line 276

def visit_word_node(node)
  q.text("word()")
end