Class: Dhaka::LexerSupport::CatNode

Inherits:
BinaryNode show all
Defined in:
lib/dhaka/lexer/regex_grammar.rb

Direct Known Subclasses

LookaheadNode, RootNode

Instance Attribute Summary

Attributes inherited from BinaryNode

#left, #right

Instance Method Summary collapse

Methods inherited from BinaryNode

#initialize, #to_dot

Methods inherited from ASTNode

#accepting, #checkpoint

Constructor Details

This class inherits a constructor from Dhaka::LexerSupport::BinaryNode

Instance Method Details

#calculate_follow_setsObject



222
223
224
225
226
227
# File 'lib/dhaka/lexer/regex_grammar.rb', line 222

def calculate_follow_sets
  super
  left.last.each do |leaf_node|
    leaf_node.follow_set.merge right.first
  end
end

#firstObject



214
215
216
# File 'lib/dhaka/lexer/regex_grammar.rb', line 214

def first
  left.nullable ? (left.first | right.first) : left.first
end

#labelObject



206
207
208
# File 'lib/dhaka/lexer/regex_grammar.rb', line 206

def label
  "cat"
end

#lastObject



218
219
220
# File 'lib/dhaka/lexer/regex_grammar.rb', line 218

def last
  right.nullable ? (left.last | right.last) : right.last
end

#nullableObject



210
211
212
# File 'lib/dhaka/lexer/regex_grammar.rb', line 210

def nullable
  left.nullable && right.nullable
end