diff options
author | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2019-05-13 21:25:22 +0900 |
---|---|---|
committer | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2019-06-19 18:17:25 +0900 |
commit | 1a2546c2be839baa7d0a50dc056d4d6987d26852 (patch) | |
tree | 19fef5d8b8d96452a51ab68e8093ea895192ca27 /lib/racc/debugflags.rb | |
parent | cbe06cd3501fdadd0e6e63094da2973484d70b0b (diff) | |
download | ruby-1a2546c2be839baa7d0a50dc056d4d6987d26852.tar.gz |
Backport racc-1.4.15 from upstream.
Diffstat (limited to 'lib/racc/debugflags.rb')
-rw-r--r-- | lib/racc/debugflags.rb | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/lib/racc/debugflags.rb b/lib/racc/debugflags.rb new file mode 100644 index 0000000000..1b5d2fe54c --- /dev/null +++ b/lib/racc/debugflags.rb @@ -0,0 +1,59 @@ +# +# $Id: 74ff4369ce53c7f45cfc2644ce907785104ebf6e $ +# +# 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 LGPL, see the file "COPYING". +# + +module Racc + + class DebugFlags + def DebugFlags.parse_option_string(s) + parse = rule = token = state = la = prec = conf = false + s.split(//).each do |ch| + case ch + when 'p' then parse = true + when 'r' then rule = true + when 't' then token = true + when 's' then state = true + when 'l' then la = true + when 'c' then prec = true + when 'o' then conf = true + else + raise "unknown debug flag char: #{ch.inspect}" + end + end + new(parse, rule, token, state, la, prec, conf) + end + + def initialize(parse = false, rule = false, token = false, state = false, + la = false, prec = false, conf = false) + @parse = parse + @rule = rule + @token = token + @state = state + @la = la + @prec = prec + @any = (parse || rule || token || state || la || prec) + @status_logging = conf + end + + attr_reader :parse + attr_reader :rule + attr_reader :token + attr_reader :state + attr_reader :la + attr_reader :prec + + def any? + @any + end + + attr_reader :status_logging + end + +end |