`unused variable` warning is reported when grammer definition includes `*` qualifier
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 45/100
Piste de recherche
Commencez par la grammaire utilisant le qualificateur * et le test.tab.rb généré, en particulier les méthodes _reduce_1 et _reduce_2 présentées dans le rapport. Reproduisez l’avertissement avec racc test.y, puis ruby -W test.tab.rb, et comparez les réductions générées avec et sans le qualificateur. C’est terminé lorsque la grammaire reproduite ne signale plus l’avertissement concernant result inutilisé.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Ruby reports unused variable warning for source file generated from the grammar definition includes * qualifier.
How to reproduce:
Give the source file geneated from the grammer definition below to Ruby with -W option.
class TestParser
options no_result_var
rule
root
: 'a' 'b'*
$ racc --version
racc version 1.8.1
$ racc test.y
$ ruby -W test.tab.rb
test.y:8: warning: assigned but unused variable - result
test.y:8: warning: assigned but unused variable - result
Ruby code below is geneated from the the above grammer definition.
#
# DO NOT MODIFY!!!!
# This file is automatically generated by Racc 1.8.1
# from Racc grammar file "test.y".
#
require 'racc/parser.rb'
class TestParser < Racc::Parser
##### State transition tables begin ###
racc_action_table = [
2, 3, 4, 6, 4 ]
racc_action_check = [
0, 1, 2, 3, 4 ]
racc_action_pointer = [
-2, 1, -1, 3, 1, nil, nil, nil ]
racc_action_default = [
-4, -4, -1, -4, -1, -3, 8, -2 ]
racc_goto_table = [
5, 1, 7 ]
racc_goto_check = [
2, 1, 2 ]
racc_goto_pointer = [
nil, 1, -2 ]
racc_goto_default = [
nil, nil, nil ]
racc_reduce_table = [
0, 0, :racc_error,
0, 6, :_reduce_1,
2, 6, :_reduce_2,
2, 5, :_reduce_none ]
racc_reduce_n = 4
racc_shift_n = 8
racc_token_table = {
false => 0,
:error => 1,
"a" => 2,
"b" => 3 }
racc_nt_base = 4
racc_use_result_var = false
Racc_arg = [
racc_action_table,
racc_action_check,
racc_action_default,
racc_action_pointer,
racc_goto_table,
racc_goto_check,
racc_goto_default,
racc_goto_pointer,
racc_nt_base,
racc_reduce_table,
racc_token_table,
racc_shift_n,
racc_reduce_n,
racc_use_result_var ]
Ractor.make_shareable(Racc_arg) if defined?(Ractor)
Racc_token_to_s_table = [
"$end",
"error",
"\"a\"",
"\"b\"",
"$start",
"root",
"\"-many@b\"" ]
Ractor.make_shareable(Racc_token_to_s_table) if defined?(Ractor)
Racc_debug_parser = false
##### State transition tables end #####
# reduce 0 omitted
module_eval(<<'.,.,', 'test.y', 7)
def _reduce_1(val, _values)
result = val[1] ? val[1].unshift(val[0]) : val
end
.,.,
module_eval(<<'.,.,', 'test.y', 7)
def _reduce_2(val, _values)
result = val[1] ? val[1].unshift(val[0]) : val
end
.,.,
# reduce 3 omitted
def _reduce_none(val, _values)
val[0]
end
end # class TestParser
- Langage dominant
- Yacc
- Étoiles
- 569
- Forks
- 95
- Merge moyen
- 12 h 11 min
- PR mergées (30 j)
- 1
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de ruby/racc
-
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 15/100
-
Split/fork off racc-compilerOuverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
-
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
-
Difficulté 3/5 1-2 jours Accessibilité débutants 42/100
Toutes les issues de ruby/racc
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Default-import note suggests `import * as process` for velt:process, which does not name the builtinOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
diagnostics good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 1 jour
-
category:runtime
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Re-enable -fno-lto testOuvertetests
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
rust-lang/rustc_codegen_gcc#993 ·
Les mainteneurs répondent en général sous 1 jour