lib/lrama/grammar/code/initial_action_code.rb in lrama-0.6.2 vs lib/lrama/grammar/code/initial_action_code.rb in lrama-0.6.3
- old
+ new
@@ -4,21 +4,27 @@
class InitialActionCode < Code
private
# * ($$) yylval
# * (@$) yylloc
+ # * ($:$) error
# * ($1) error
# * (@1) error
+ # * ($:1) error
def reference_to_c(ref)
case
when ref.type == :dollar && ref.name == "$" # $$
"yylval"
when ref.type == :at && ref.name == "$" # @$
"yylloc"
+ when ref.type == :index && ref.name == "$" # $:$
+ raise "$:#{ref.value} can not be used in initial_action."
when ref.type == :dollar # $n
raise "$#{ref.value} can not be used in initial_action."
when ref.type == :at # @n
raise "@#{ref.value} can not be used in initial_action."
+ when ref.type == :index # $:n
+ raise "$:#{ref.value} can not be used in initial_action."
else
raise "Unexpected. #{self}, #{ref}"
end
end
end