Class: SFRP::Raw::MatchExp
- Inherits:
-
Struct
- Object
- Struct
- SFRP::Raw::MatchExp
- Defined in:
- lib/sfrp/raw/expression.rb
Defined Under Namespace
Instance Attribute Summary collapse
-
#cases ⇒ Object
Returns the value of attribute cases.
-
#left_exp ⇒ Object
Returns the value of attribute left_exp.
-
#sp ⇒ Object
Returns the value of attribute sp.
Instance Method Summary collapse
Instance Attribute Details
#cases ⇒ Object
Returns the value of attribute cases
51 52 53 |
# File 'lib/sfrp/raw/expression.rb', line 51 def cases @cases end |
#left_exp ⇒ Object
Returns the value of attribute left_exp
51 52 53 |
# File 'lib/sfrp/raw/expression.rb', line 51 def left_exp @left_exp end |
#sp ⇒ Object
Returns the value of attribute sp
51 52 53 |
# File 'lib/sfrp/raw/expression.rb', line 51 def sp @sp end |
Instance Method Details
#blame_side_effect ⇒ Object
74 75 76 77 |
# File 'lib/sfrp/raw/expression.rb', line 74 def blame_side_effect left_exp.blame_side_effect cases.map(&:exp).each(&:blame_side_effect) end |
#to_flat(set, ns) ⇒ Object
79 80 81 82 83 84 85 |
# File 'lib/sfrp/raw/expression.rb', line 79 def to_flat(set, ns) flat_cases = cases.map do |c| flat_pattern = c.pattern.to_flat(set, ns) Flat::MatchExp::Case.new(flat_pattern, c.exp.to_flat(set, ns)) end Flat::MatchExp.new(left_exp.to_flat(set, ns), flat_cases, sp) end |
#vconst_refs ⇒ Object
70 71 72 |
# File 'lib/sfrp/raw/expression.rb', line 70 def vconst_refs [left_exp, *cases.map(&:pattern), *cases.map(&:exp)].flat_map(&:vconst_refs) end |