Sha256: a12793a98f898b7076a61934620c082c91d1251c60d5aa324d12a0adabaf6a4b
Contents?: true
Size: 1.19 KB
Versions: 3
Compression:
Stored size: 1.19 KB
Contents
# frozen_string_literal: true module Lrama class Grammar class Code class DestructorCode < Code def initialize(type:, token_code:, tag:) super(type: type, token_code: token_code) @tag = tag end private # * ($$) *yyvaluep # * (@$) *yylocationp # * ($:$) error # * ($1) error # * (@1) error # * ($:1) error def reference_to_c(ref) case when ref.type == :dollar && ref.name == "$" # $$ member = @tag.member "((*yyvaluep).#{member})" when ref.type == :at && ref.name == "$" # @$ "(*yylocationp)" when ref.type == :index && ref.name == "$" # $:$ raise "$:#{ref.value} can not be used in #{type}." when ref.type == :dollar # $n raise "$#{ref.value} can not be used in #{type}." when ref.type == :at # @n raise "@#{ref.value} can not be used in #{type}." when ref.type == :index # $:n raise "$:#{ref.value} can not be used in #{type}." else raise "Unexpected. #{self}, #{ref}" end end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
lrama-0.7.0 | lib/lrama/grammar/code/destructor_code.rb |
lrama-0.6.11 | lib/lrama/grammar/code/destructor_code.rb |
lrama-0.6.10 | lib/lrama/grammar/code/destructor_code.rb |