Class: BCDice::Command::Parser
- Inherits:
-
Racc::Parser
- Object
- Racc::Parser
- BCDice::Command::Parser
- Defined in:
- lib/bcdice/command/parser.rb,
lib/bcdice/command/parser.rb
Overview
よくある形式のコマンドのパースを補助するクラス
Instance Method Summary collapse
-
#disable_modifier ⇒ BCDice::Command::Parser
修正値は受け付けないようにする.
-
#enable_critical ⇒ BCDice::Command::Parser
@によるクリティカル値の指定を許可する.
-
#enable_dollar ⇒ BCDice::Command::Parser
$による値の指定を許可する.
-
#enable_fumble ⇒ BCDice::Command::Parser
#によるファンブル値の指定を許可する.
-
#enable_question_target ⇒ BCDice::Command::Parser
目標値“?”の指定を許可する.
-
#initialize(*notations, round_type:) ⇒ Parser
constructor
A new instance of Parser.
- #parse(source) ⇒ BCDice::Command::Parsed?
-
#restrict_cmp_op_to(*ops) ⇒ BCDice::Command::Parser
使用できる比較演算子を制限する。 目標値未入力を許可する場合には
nil
を指定する。.
Constructor Details
#initialize(*notations, round_type:) ⇒ Parser
Returns a new instance of Parser.
40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/bcdice/command/parser.rb', line 40 def initialize(*notations, round_type:) super() @notations = notations @round_type = round_type @modifier = true @critical = false @fumble = false @dollar = false @allowed_cmp_op = [nil, :>=, :>, :<=, :<, :==, :!=] @question_target = false end |
Instance Method Details
#disable_modifier ⇒ BCDice::Command::Parser
修正値は受け付けないようにする
54 55 56 57 |
# File 'lib/bcdice/command/parser.rb', line 54 def disable_modifier @modifier = false self end |
#enable_critical ⇒ BCDice::Command::Parser
@によるクリティカル値の指定を許可する
61 62 63 64 |
# File 'lib/bcdice/command/parser.rb', line 61 def enable_critical @critical = true self end |
#enable_dollar ⇒ BCDice::Command::Parser
$による値の指定を許可する
75 76 77 78 |
# File 'lib/bcdice/command/parser.rb', line 75 def enable_dollar @dollar = true self end |
#enable_fumble ⇒ BCDice::Command::Parser
#によるファンブル値の指定を許可する
68 69 70 71 |
# File 'lib/bcdice/command/parser.rb', line 68 def enable_fumble @fumble = true self end |
#enable_question_target ⇒ BCDice::Command::Parser
目標値“?”の指定を許可する
91 92 93 94 |
# File 'lib/bcdice/command/parser.rb', line 91 def enable_question_target @question_target = true self end |
#parse(source) ⇒ BCDice::Command::Parsed?
98 99 100 101 102 103 |
# File 'lib/bcdice/command/parser.rb', line 98 def parse(source) @lexer = Lexer.new(source, @notations) do_parse() rescue ParseError, ZeroDivisionError nil end |
#restrict_cmp_op_to(*ops) ⇒ BCDice::Command::Parser
使用できる比較演算子を制限する。 目標値未入力を許可する場合にはnil
を指定する。
84 85 86 87 |
# File 'lib/bcdice/command/parser.rb', line 84 def restrict_cmp_op_to(*ops) @allowed_cmp_op = ops self end |