summaryrefslogtreecommitdiff
path: root/test/racc/regress/namae
diff options
context:
space:
mode:
authorHiroshi SHIBATA <hsbt@ruby-lang.org>2019-05-13 21:25:22 +0900
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2019-06-19 18:17:25 +0900
commit1a2546c2be839baa7d0a50dc056d4d6987d26852 (patch)
tree19fef5d8b8d96452a51ab68e8093ea895192ca27 /test/racc/regress/namae
parentcbe06cd3501fdadd0e6e63094da2973484d70b0b (diff)
Backport racc-1.4.15 from upstream.
Diffstat (limited to 'test/racc/regress/namae')
-rw-r--r--test/racc/regress/namae634
1 files changed, 634 insertions, 0 deletions
diff --git a/test/racc/regress/namae b/test/racc/regress/namae
new file mode 100644
index 0000000000..a75d5e5f99
--- /dev/null
+++ b/test/racc/regress/namae
@@ -0,0 +1,634 @@
+#
+# DO NOT MODIFY!!!!
+# This file is automatically generated by Racc 1.4.14
+# from Racc grammer file "".
+#
+
+require 'racc/parser.rb'
+
+require 'singleton'
+require 'strscan'
+
+module Namae
+ class Parser < Racc::Parser
+
+module_eval(<<'...end namae.y/module_eval...', 'namae.y', 135)
+
+ include Singleton
+
+ attr_reader :options, :input
+
+ def initialize
+ @input, @options = StringScanner.new(''), {
+ :debug => false,
+ :prefer_comma_as_separator => false,
+ :comma => ',',
+ :stops => ',;',
+ :separator => /\s*(\band\b|\&|;)\s*/i,
+ :title => /\s*\b(sir|lord|count(ess)?|(gen|adm|col|maj|capt|cmdr|lt|sgt|cpl|pvt|prof|dr|md|ph\.?d)\.?)(\s+|$)/i,
+ :suffix => /\s*\b(JR|Jr|jr|SR|Sr|sr|[IVX]{2,})(\.|\b)/,
+ :appellation => /\s*\b((mrs?|ms|fr|hr)\.?|miss|herr|frau)(\s+|$)/i
+ }
+ end
+
+ def debug?
+ options[:debug] || ENV['DEBUG']
+ end
+
+ def separator
+ options[:separator]
+ end
+
+ def comma
+ options[:comma]
+ end
+
+ def stops
+ options[:stops]
+ end
+
+ def title
+ options[:title]
+ end
+
+ def suffix
+ options[:suffix]
+ end
+
+ def appellation
+ options[:appellation]
+ end
+
+ def prefer_comma_as_separator?
+ options[:prefer_comma_as_separator]
+ end
+
+ def parse(input)
+ parse!(input)
+ rescue => e
+ warn e.message if debug?
+ []
+ end
+
+ def parse!(string)
+ input.string = normalize(string)
+ reset
+ do_parse
+ end
+
+ def normalize(string)
+ string = string.strip
+ string
+ end
+
+ def reset
+ @commas, @words, @initials, @suffices, @yydebug = 0, 0, 0, 0, debug?
+ self
+ end
+
+ private
+
+ def stack
+ @vstack || @racc_vstack || []
+ end
+
+ def last_token
+ stack[-1]
+ end
+
+ def consume_separator
+ return next_token if seen_separator?
+ @commas, @words, @initials, @suffices = 0, 0, 0, 0
+ [:AND, :AND]
+ end
+
+ def consume_comma
+ @commas += 1
+ [:COMMA, :COMMA]
+ end
+
+ def consume_word(type, word)
+ @words += 1
+
+ case type
+ when :UWORD
+ @initials += 1 if word =~ /^[[:upper:]]+\b/
+ when :SUFFIX
+ @suffices += 1
+ end
+
+ [type, word]
+ end
+
+ def seen_separator?
+ !stack.empty? && last_token == :AND
+ end
+
+ def suffix?
+ !@suffices.zero? || will_see_suffix?
+ end
+
+ def will_see_suffix?
+ input.peek(8).to_s.strip.split(/\s+/)[0] =~ suffix
+ end
+
+ def will_see_initial?
+ input.peek(6).to_s.strip.split(/\s+/)[0] =~ /^[[:upper:]]+\b/
+ end
+
+ def seen_full_name?
+ prefer_comma_as_separator? && @words > 1 &&
+ (@initials > 0 || !will_see_initial?) && !will_see_suffix?
+ end
+
+ def next_token
+ case
+ when input.nil?, input.eos?
+ nil
+ when input.scan(separator)
+ consume_separator
+ when input.scan(/\s*#{comma}\s*/)
+ if @commas.zero? && !seen_full_name? || @commas == 1 && suffix?
+ consume_comma
+ else
+ consume_separator
+ end
+ when input.scan(/\s+/)
+ next_token
+ when input.scan(title)
+ consume_word(:TITLE, input.matched.strip)
+ when input.scan(suffix)
+ consume_word(:SUFFIX, input.matched.strip)
+ when input.scan(appellation)
+ [:APPELLATION, input.matched.strip]
+ when input.scan(/((\\\w+)?\{[^\}]*\})*[[:upper:]][^\s#{stops}]*/)
+ consume_word(:UWORD, input.matched)
+ when input.scan(/((\\\w+)?\{[^\}]*\})*[[:lower:]][^\s#{stops}]*/)
+ consume_word(:LWORD, input.matched)
+ when input.scan(/(\\\w+)?\{[^\}]*\}[^\s#{stops}]*/)
+ consume_word(:PWORD, input.matched)
+ when input.scan(/('[^'\n]+')|("[^"\n]+")/)
+ consume_word(:NICK, input.matched[1...-1])
+ else
+ raise ArgumentError,
+ "Failed to parse name #{input.string.inspect}: unmatched data at offset #{input.pos}"
+ end
+ end
+
+ def on_error(tid, value, stack)
+ raise ArgumentError,
+ "Failed to parse name: unexpected '#{value}' at #{stack.inspect}"
+ end
+
+# -*- racc -*-
+...end namae.y/module_eval...
+##### State transition tables begin ###
+
+racc_action_table = [
+ -39, 53, 52, 54, -40, 39, 62, -39, 39, -39,
+ -39, -40, 67, -40, -40, 66, 53, 52, 54, 32,
+ 59, 16, 58, -34, 53, 52, 54, -38, 17, -22,
+ 30, 39, 31, 45, -38, 53, 52, 54, 14, 12,
+ 15, 68, 39, 7, 8, 14, 12, 15, 58, 33,
+ 7, 8, 14, 22, 15, 24, 14, 22, 15, 24,
+ -19, -19, -19, 30, 42, 31, 30, 28, 31, -20,
+ -20, -20, 30, 46, 31, 53, 52, 54, 30, 28,
+ 31, 30, 28, 31, 30, 28, 31, -19, -19, -19,
+ 30, 28, 31, 14, 22, 15, 53, 52, 54, 39,
+ 58, 59, 39, 59, 39 ]
+
+racc_action_check = [
+ 14, 32, 32, 32, 15, 64, 44, 14, 32, 14,
+ 14, 15, 50, 15, 15, 49, 49, 49, 49, 11,
+ 50, 1, 70, 49, 45, 45, 45, 12, 1, 12,
+ 43, 45, 43, 27, 12, 62, 62, 62, 0, 0,
+ 0, 57, 62, 0, 0, 17, 17, 17, 60, 16,
+ 17, 17, 20, 20, 20, 20, 9, 9, 9, 9,
+ 22, 22, 22, 24, 24, 24, 25, 25, 25, 28,
+ 28, 28, 29, 29, 29, 73, 73, 73, 21, 21,
+ 21, 35, 35, 35, 41, 41, 41, 42, 42, 42,
+ 10, 10, 10, 5, 5, 5, 67, 67, 67, 61,
+ 37, 38, 40, 72, 23 ]
+
+racc_action_pointer = [
+ 35, 21, nil, nil, nil, 90, nil, nil, nil, 53,
+ 87, 17, 27, nil, 0, 4, 49, 42, nil, nil,
+ 49, 75, 57, 94, 60, 63, nil, 31, 66, 69,
+ nil, nil, -2, nil, nil, 78, nil, 91, 91, nil,
+ 92, 81, 84, 27, 4, 21, nil, nil, nil, 13,
+ 10, nil, nil, nil, nil, nil, nil, 32, nil, nil,
+ 39, 89, 32, nil, -5, nil, nil, 93, nil, nil,
+ 13, nil, 93, 72, nil ]
+
+racc_action_default = [
+ -1, -49, -2, -4, -5, -49, -8, -9, -10, -23,
+ -49, -49, -19, -28, -30, -31, -49, -49, -6, -7,
+ -49, -49, -38, -41, -49, -49, -29, -15, -22, -23,
+ -30, -31, -36, 75, -3, -49, -15, -45, -42, -43,
+ -41, -49, -22, -23, -14, -36, -21, -16, -24, -37,
+ -26, -32, -38, -39, -40, -14, -11, -46, -47, -44,
+ -45, -41, -36, -17, -49, -33, -35, -49, -48, -12,
+ -45, -18, -25, -27, -13 ]
+
+racc_goto_table = [
+ 3, 37, 26, 50, 56, 18, 2, 9, 47, 23,
+ 73, 64, 20, 26, 19, 27, 50, 3, 60, 1,
+ 23, 63, 26, 34, 9, nil, 36, 69, 21, 40,
+ 44, 43, 25, 50, nil, 72, 26, 74, 71, 70,
+ 55, nil, nil, 35, nil, nil, 61, 41, nil, 65,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, 65 ]
+
+racc_goto_check = [
+ 3, 8, 17, 16, 9, 3, 2, 7, 12, 3,
+ 14, 15, 7, 17, 4, 10, 16, 3, 8, 1,
+ 3, 12, 17, 2, 7, nil, 10, 9, 11, 10,
+ 10, 7, 11, 16, nil, 16, 17, 9, 12, 8,
+ 10, nil, nil, 11, nil, nil, 10, 11, nil, 3,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, 3 ]
+
+racc_goto_pointer = [
+ nil, 19, 6, 0, 9, nil, nil, 7, -22, -33,
+ 5, 23, -24, nil, -57, -38, -29, -7, nil ]
+
+racc_goto_default = [
+ nil, nil, nil, 51, 4, 5, 6, 29, nil, nil,
+ 11, 10, nil, 48, 49, nil, 38, 13, 57 ]
+
+racc_reduce_table = [
+ 0, 0, :racc_error,
+ 0, 12, :_reduce_1,
+ 1, 12, :_reduce_2,
+ 3, 12, :_reduce_3,
+ 1, 13, :_reduce_4,
+ 1, 13, :_reduce_none,
+ 2, 13, :_reduce_6,
+ 2, 13, :_reduce_7,
+ 1, 13, :_reduce_none,
+ 1, 16, :_reduce_9,
+ 1, 16, :_reduce_10,
+ 4, 15, :_reduce_11,
+ 5, 15, :_reduce_12,
+ 6, 15, :_reduce_13,
+ 3, 15, :_reduce_14,
+ 2, 15, :_reduce_15,
+ 3, 17, :_reduce_16,
+ 4, 17, :_reduce_17,
+ 5, 17, :_reduce_18,
+ 1, 22, :_reduce_none,
+ 2, 22, :_reduce_20,
+ 3, 22, :_reduce_21,
+ 1, 21, :_reduce_none,
+ 1, 21, :_reduce_none,
+ 1, 23, :_reduce_24,
+ 3, 23, :_reduce_25,
+ 1, 23, :_reduce_26,
+ 3, 23, :_reduce_27,
+ 1, 18, :_reduce_none,
+ 2, 18, :_reduce_29,
+ 1, 28, :_reduce_none,
+ 1, 28, :_reduce_none,
+ 1, 25, :_reduce_none,
+ 2, 25, :_reduce_33,
+ 0, 26, :_reduce_none,
+ 1, 26, :_reduce_none,
+ 0, 24, :_reduce_none,
+ 1, 24, :_reduce_none,
+ 1, 14, :_reduce_none,
+ 1, 14, :_reduce_none,
+ 1, 14, :_reduce_none,
+ 0, 19, :_reduce_none,
+ 1, 19, :_reduce_none,
+ 1, 27, :_reduce_none,
+ 2, 27, :_reduce_44,
+ 0, 20, :_reduce_none,
+ 1, 20, :_reduce_none,
+ 1, 29, :_reduce_none,
+ 2, 29, :_reduce_48 ]
+
+racc_reduce_n = 49
+
+racc_shift_n = 75
+
+racc_token_table = {
+ false => 0,
+ :error => 1,
+ :COMMA => 2,
+ :UWORD => 3,
+ :LWORD => 4,
+ :PWORD => 5,
+ :NICK => 6,
+ :AND => 7,
+ :APPELLATION => 8,
+ :TITLE => 9,
+ :SUFFIX => 10 }
+
+racc_nt_base = 11
+
+racc_use_result_var = true
+
+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 ]
+
+Racc_token_to_s_table = [
+ "$end",
+ "error",
+ "COMMA",
+ "UWORD",
+ "LWORD",
+ "PWORD",
+ "NICK",
+ "AND",
+ "APPELLATION",
+ "TITLE",
+ "SUFFIX",
+ "$start",
+ "names",
+ "name",
+ "word",
+ "display_order",
+ "honorific",
+ "sort_order",
+ "u_words",
+ "opt_suffices",
+ "opt_titles",
+ "last",
+ "von",
+ "first",
+ "opt_words",
+ "words",
+ "opt_comma",
+ "suffices",
+ "u_word",
+ "titles" ]
+
+Racc_debug_parser = false
+
+##### State transition tables end #####
+
+# reduce 0 omitted
+
+module_eval(<<'.,.,', 'namae.y', 39)
+ def _reduce_1(val, _values, result)
+ result = []
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'namae.y', 40)
+ def _reduce_2(val, _values, result)
+ result = [val[0]]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'namae.y', 41)
+ def _reduce_3(val, _values, result)
+ result = val[0] << val[2]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'namae.y', 43)
+ def _reduce_4(val, _values, result)
+ result = Name.new(:given => val[0])
+ result
+ end
+.,.,
+
+# reduce 5 omitted
+
+module_eval(<<'.,.,', 'namae.y', 45)
+ def _reduce_6(val, _values, result)
+ result = val[0].merge(:family => val[1])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'namae.y', 46)
+ def _reduce_7(val, _values, result)
+ result = val[1].merge(val[0])
+ result
+ end
+.,.,
+
+# reduce 8 omitted
+
+module_eval(<<'.,.,', 'namae.y', 49)
+ def _reduce_9(val, _values, result)
+ result = Name.new(:appellation => val[0])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'namae.y', 50)
+ def _reduce_10(val, _values, result)
+ result = Name.new(:title => val[0])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'namae.y', 54)
+ def _reduce_11(val, _values, result)
+ result = Name.new(:given => val[0], :family => val[1],
+ :suffix => val[2], :title => val[3])
+
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'namae.y', 59)
+ def _reduce_12(val, _values, result)
+ result = Name.new(:given => val[0], :nick => val[1],
+ :family => val[2], :suffix => val[3], :title => val[4])
+
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'namae.y', 64)
+ def _reduce_13(val, _values, result)
+ result = Name.new(:given => val[0], :nick => val[1],
+ :particle => val[2], :family => val[3],
+ :suffix => val[4], :title => val[5])
+
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'namae.y', 70)
+ def _reduce_14(val, _values, result)
+ result = Name.new(:given => val[0], :particle => val[1],
+ :family => val[2])
+
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'namae.y', 75)
+ def _reduce_15(val, _values, result)
+ result = Name.new(:particle => val[0], :family => val[1])
+
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'namae.y', 80)
+ def _reduce_16(val, _values, result)
+ result = Name.new({ :family => val[0], :suffix => val[2][0],
+ :given => val[2][1] }, !!val[2][0])
+
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'namae.y', 85)
+ def _reduce_17(val, _values, result)
+ result = Name.new({ :particle => val[0], :family => val[1],
+ :suffix => val[3][0], :given => val[3][1] }, !!val[3][0])
+
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'namae.y', 90)
+ def _reduce_18(val, _values, result)
+ result = Name.new({ :particle => val[0,2].join(' '), :family => val[2],
+ :suffix => val[4][0], :given => val[4][1] }, !!val[4][0])
+
+ result
+ end
+.,.,
+
+# reduce 19 omitted
+
+module_eval(<<'.,.,', 'namae.y', 96)
+ def _reduce_20(val, _values, result)
+ result = val.join(' ')
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'namae.y', 97)
+ def _reduce_21(val, _values, result)
+ result = val.join(' ')
+ result
+ end
+.,.,
+
+# reduce 22 omitted
+
+# reduce 23 omitted
+
+module_eval(<<'.,.,', 'namae.y', 101)
+ def _reduce_24(val, _values, result)
+ result = [nil,val[0]]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'namae.y', 102)
+ def _reduce_25(val, _values, result)
+ result = [val[2],val[0]]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'namae.y', 103)
+ def _reduce_26(val, _values, result)
+ result = [val[0],nil]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'namae.y', 104)
+ def _reduce_27(val, _values, result)
+ result = [val[0],val[2]]
+ result
+ end
+.,.,
+
+# reduce 28 omitted
+
+module_eval(<<'.,.,', 'namae.y', 107)
+ def _reduce_29(val, _values, result)
+ result = val.join(' ')
+ result
+ end
+.,.,
+
+# reduce 30 omitted
+
+# reduce 31 omitted
+
+# reduce 32 omitted
+
+module_eval(<<'.,.,', 'namae.y', 112)
+ def _reduce_33(val, _values, result)
+ result = val.join(' ')
+ result
+ end
+.,.,
+
+# reduce 34 omitted
+
+# reduce 35 omitted
+
+# reduce 36 omitted
+
+# reduce 37 omitted
+
+# reduce 38 omitted
+
+# reduce 39 omitted
+
+# reduce 40 omitted
+
+# reduce 41 omitted
+
+# reduce 42 omitted
+
+# reduce 43 omitted
+
+module_eval(<<'.,.,', 'namae.y', 122)
+ def _reduce_44(val, _values, result)
+ result = val.join(' ')
+ result
+ end
+.,.,
+
+# reduce 45 omitted
+
+# reduce 46 omitted
+
+# reduce 47 omitted
+
+module_eval(<<'.,.,', 'namae.y', 127)
+ def _reduce_48(val, _values, result)
+ result = val.join(' ')
+ result
+ end
+.,.,
+
+def _reduce_none(val, _values, result)
+ val[0]
+end
+
+ end # class Parser
+ end # module Namae