Class: Lrama::Grammar::ParameterizingRule::Rule

Inherits:
Object
  • Object
show all
Defined in:
lib/lrama/grammar/parameterizing_rule/rule.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, parameters, rhs_list, tag: nil, is_inline: false) ⇒ Rule

Returns a new instance of Rule.



9
10
11
12
13
14
15
16
# File 'lib/lrama/grammar/parameterizing_rule/rule.rb', line 9

def initialize(name, parameters, rhs_list, tag: nil, is_inline: false)
  @name = name
  @parameters = parameters
  @rhs_list = rhs_list
  @tag = tag
  @is_inline = is_inline
  @required_parameters_count = parameters.count
end

Instance Attribute Details

#is_inlineObject (readonly)

Returns the value of attribute is_inline.



7
8
9
# File 'lib/lrama/grammar/parameterizing_rule/rule.rb', line 7

def is_inline
  @is_inline
end

#nameObject (readonly)

Returns the value of attribute name.



7
8
9
# File 'lib/lrama/grammar/parameterizing_rule/rule.rb', line 7

def name
  @name
end

#parametersObject (readonly)

Returns the value of attribute parameters.



7
8
9
# File 'lib/lrama/grammar/parameterizing_rule/rule.rb', line 7

def parameters
  @parameters
end

#required_parameters_countObject (readonly)

Returns the value of attribute required_parameters_count.



7
8
9
# File 'lib/lrama/grammar/parameterizing_rule/rule.rb', line 7

def required_parameters_count
  @required_parameters_count
end

#rhs_listObject (readonly)

Returns the value of attribute rhs_list.



7
8
9
# File 'lib/lrama/grammar/parameterizing_rule/rule.rb', line 7

def rhs_list
  @rhs_list
end

#tagObject (readonly)

Returns the value of attribute tag.



7
8
9
# File 'lib/lrama/grammar/parameterizing_rule/rule.rb', line 7

def tag
  @tag
end

Instance Method Details

#to_sObject



18
19
20
# File 'lib/lrama/grammar/parameterizing_rule/rule.rb', line 18

def to_s
  "#{@name}(#{@parameters.map(&:s_value).join(', ')})"
end