ruby-changes:59590
From: Hiroshi <ko1@a...>
Date: Wed, 1 Jan 2020 07:47:08 +0900 (JST)
Subject: [ruby-changes:59590] a6864f6d2f (master): Removed the old executables of racc
https://git.ruby-lang.org/ruby.git/commit/?id=a6864f6d2f From a6864f6d2f39bcd1ff04516591cc18d4027ab186 Mon Sep 17 00:00:00 2001 From: Hiroshi SHIBATA <hsbt@r...> Date: Wed, 1 Jan 2020 07:42:42 +0900 Subject: Removed the old executables of racc [ruby-core:93516][Feature #15982] https://github.com/ruby/racc/pull/123 diff --git a/bin/racc2y b/bin/racc2y deleted file mode 100755 index a1e4352..0000000 --- a/bin/racc2y +++ /dev/null @@ -1,27 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/#L0 -#!/usr/bin/env ruby -# -# This file was generated by RubyGems. -# -# The application 'racc' is installed as part of a gem, and -# this file is here to facilitate running it. -# - -require 'rubygems' - -version = ">= 0.a" - -if ARGV.first - str = ARGV.first - str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding - if str =~ /\A_(.*)_\z/ and Gem::Version.correct?($1) then - version = $1 - ARGV.shift - end -end - -if Gem.respond_to?(:activate_bin_path) -load Gem.activate_bin_path('racc', 'racc2y', version) -else -gem "racc", version -load Gem.bin_path("racc", "racc2y", version) -end diff --git a/bin/y2racc b/bin/y2racc deleted file mode 100755 index 023615f..0000000 --- a/bin/y2racc +++ /dev/null @@ -1,27 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/#L0 -#!/usr/bin/env ruby -# -# This file was generated by RubyGems. -# -# The application 'racc' is installed as part of a gem, and -# this file is here to facilitate running it. -# - -require 'rubygems' - -version = ">= 0.a" - -if ARGV.first - str = ARGV.first - str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding - if str =~ /\A_(.*)_\z/ and Gem::Version.correct?($1) then - version = $1 - ARGV.shift - end -end - -if Gem.respond_to?(:activate_bin_path) -load Gem.activate_bin_path('racc', 'y2racc', version) -else -gem "racc", version -load Gem.bin_path("racc", "y2racc", version) -end diff --git a/libexec/racc2y b/libexec/racc2y deleted file mode 100755 index f88d73e..0000000 --- a/libexec/racc2y +++ /dev/null @@ -1,195 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/#L0 -#!/usr/local/bin/ruby -# -# $Id$ -# -# Copyright (c) 1999-2006 Minero Aoki -# -# This program is feee software. -# You can distribute/modify this program under the terms of -# the GNU LGPL, Lesser General Public License version 2.1. -# For details of the LGPL, see the file "COPYING". -# - -require 'racc/grammarfileparser' -require 'racc/info' -require 'optparse' - -def main - @with_action = true - with_header = false - with_inner = false - with_footer = false - output = nil - parser = OptionParser.new - parser.banner = "Usage: #{File.basename($0)} [-AHIF] [-oFILENAME] GRAMMARFILE" - parser.on('-o', '--output=FILENAME', 'output file name [<input>.yacc]') {|name| - output = name - } - parser.on('-A', '--without-action', 'Does not include actions.') { - @with_action = false - } - parser.on('-H', '--with-header', 'Includes header part.') { - with_header = true - } - parser.on('-I', '--with-inner', 'Includes inner part.') { - with_inner = true - } - parser.on('-F', '--with-footer', 'Includes footer part.') { - with_footer = true - } - parser.on('--version', 'Prints version and quit.') { - puts "racc2y version #{Racc::Version}" - exit 0 - } - parser.on('--copyright', 'Prints copyright and quit.') { - puts Racc::Copyright - exit 0 - } - parser.on('--help', 'Prints this message and quit.') { - puts parser.help - exit 1 - } - begin - parser.parse! - rescue OptionParser::ParseError => err - $stderr.puts err.message - $stderr.puts parser.help - exit 1 - end - if ARGV.empty? - $stderr.puts "no input file" - exit 1 - end - unless ARGV.size == 1 - $stderr.puts "too many inputs" - exit 1 - end - input = ARGV[0] - - begin - result = Racc::GrammarFileParser.parse_file(input) - result.grammar.init - File.open(output || "#{input}.yacc", 'w') {|f| - f.puts "/* generated from #{input} */" - if with_header - f.puts - f.puts '%{' - print_user_codes f, result.params.header - f.puts '%}' - end - f.puts - print_terminals f, result.grammar - f.puts - print_precedence_table f, precedence_table(result.grammar) - f.puts - f.puts '%%' - print_grammar f, result.grammar - f.puts '%%' - if with_inner - f.puts '/*---- inner ----*/' - print_user_codes f, result.params.inner - end - if with_footer - f.puts '/*---- footer ----*/' - print_user_codes f, result.params.footer - end - } - rescue SystemCallError => err - $stderr.puts err.message - exit 1 - end -end - -def print_terminals(f, grammar) - init_indent = '%token'.size - f.print '%token' - columns = init_indent - grammar.symboltable.each_terminal do |t| - next unless t.terminal? - next if t.dummy? - next if t == grammar.symboltable.anchor - next if t == grammar.symboltable.error - unless t.value.kind_of?(String) - if columns > 60 - f.puts - f.print ' ' * init_indent - columns = init_indent - end - columns += f.write(" #{yacc_symbol(t)}") - end - end - f.puts -end - -def precedence_table(grammar) - table = [] - grammar.symboltable.select {|sym| sym.precedence }.each do |sym| - (table[sym.prec] ||= [sym.assoc]).push sym - end - table.compact -end - -def print_precedence_table(f, table) - return if table.empty? - f.puts '/* precedance table */' - table.each do |syms| - assoc = syms.shift - f.printf '%%%-8s ', assoc.to_s.downcase - f.puts syms.map {|s| yacc_symbol(s) }.join(' ') - end - f.puts -end - -def print_grammar(f, grammar) - prev_target = nil - indent = 10 - embactions = [] - grammar.each do |rule| - if rule.target.dummy? - embactions.push rule.action unless rule.action.empty? - next - end - if rule.target == prev_target - f.print ' ' * indent, '|' - else - prev_target = rule.target - f.printf "\n%-10s:", yacc_symbol(prev_target) - end - rule.symbols.each do |s| - if s.dummy? # target of dummy rule for embedded action - f.puts - print_action f, embactions.shift, indent - f.print ' ' * (indent + 1) - else - f.print ' ', yacc_symbol(s) - end - end - if rule.specified_prec - f.print ' %prec ', yacc_symbol(rule.specified_prec) - end - f.puts - unless rule.action.empty? - print_action f, rule.action, indent - end - end -end - -def print_action(f, action, indent) - return unless @with_action - f.print ' ' * (indent + 4), "{\n" - f.print ' ' * (indent + 6), action.source.text.strip, "\n" - f.print ' ' * (indent + 4) , "}\n" -end - -def print_user_codes(f, srcs) - return if srcs.empty? - srcs.each do |src| - f.puts src.text - end -end - -def yacc_symbol(s) - s.to_s.gsub('"', "'") -end - -main diff --git a/libexec/y2racc b/libexec/y2racc deleted file mode 100755 index 7933f94..0000000 --- a/libexec/y2racc +++ /dev/null @@ -1,339 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/#L0 -#!/usr/local/bin/ruby -# -# $Id$ -# -# Copyright (c) 1999-2006 Minero Aoki -# -# This program is free software. -# You can distribute/modify this program under the terms of -# the GNU LGPL, Lesser General Public License version 2.1. -# For details of the GNU LGPL, see the file "COPYING". -# - -require 'racc/info' -require 'strscan' -require 'forwardable' -require 'optparse' - -def main - @with_action = true - @with_header = false - @with_usercode = false - cname = 'MyParser' - input = nil - output = nil - parser = OptionParser.new - parser.banner = "Usage: #{File.basename($0)} [-Ahu] [-c <classname>] [-o <filename>] <input>" - parser.on('-o', '--output=FILENAME', 'output file name [<input>.racc]') {|name| - output = name - } - parser.on('-c', '--classname=NAME', "Name of the parser class. [#{cname}]") {|name| - cname = name - } - parser.on('-A', '--without-action', 'Does not include actions.') { - @with_action = false - } - parser.on('-h', '--with-header', 'Includes header (%{...%}).') { - @with_header = true - } - parser.on('-u', '--with-user-code', 'Includes user code.') { - @with_usercode = true - } - parser.on('--version', 'Prints version and quit.') { - puts "y2racc version #{Racc::Version}" - exit 0 - } - parser.on('--copyright', 'Prints copyright and quit.') { - puts Racc::Copyright - exit 0 - } - parser.on('--help', 'Prints this message and quit.') { - puts parser.help - exit 1 - } - begin - parser.parse! - rescue OptionParser::ParseError => err - $stderr.puts err.message - $stderr.puts parser.help - exit 1 - end - if ARGV.empty? - $stderr.puts 'no input' - exit 1 - end - if ARGV.size > 1 - $stderr.puts 'too many input' - exit 1 - end - input = ARGV[0] - - begin - result = YaccFileParser.parse_file(input) - File.open(output || "#{input}.racc", 'w') {|f| - convert cname, result, f - } - rescue SystemCallError => err - $stderr.puts err.message - exit 1 - end -end - -def convert(classname, result, f) - init_indent = 'token'.size - f.puts %<# Converted from "#{result.filename}" by y2racc version #{Racc::Version}> - f.puts - f.puts "class #{classname}" - unless result.terminals.empty? - f.puts - f.print 'token' - columns = init_indent - result.terminals.each do |t| - if columns > 60 - f.puts - f.print ' ' * init_indent - columns = init_indent - end - columns += f.write(" #{t}") - end - f.puts - end - unless result.precedence_table.empty? - f.puts - f.puts 'preclow' - result.precedence_table.each do |assoc, toks| - f.printf " %-8s %s\n", assoc, toks.join(' ') unless toks.empty? - end - f.puts 'prechigh' - end - if result.start - f.puts - f.puts "start #{@start}" - end - - f.puts - f.puts 'rule' - texts = @with_action ? result.grammar : result.grammar_with (... truncated) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/