class BCDice::CommonCommand::UpperDice::Parser
Constants
- Racc_arg
- Racc_debug_parser
- Racc_token_to_s_table
Public Class Methods
parse(source)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 20 def self.parse(source) new.parse(source) end
Public Instance Methods
parse(source)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 24 def parse(source) @lexer = Lexer.new(source) do_parse() rescue ParseError nil end
Private Instance Methods
_reduce_1(val, _values, result)
click to toggle source
reduce 0 omitted
# File lib/bcdice/common_command/upper_dice/parser.rb, line 230 def _reduce_1(val, _values, result) result = UpperDice::Node::Command.new( secret: val[0], notations: val[1], modifier: val[2], cmp_op: val[3][:cmp_op], target_number: val[3][:target] ) result end
_reduce_10(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 298 def _reduce_10(val, _values, result) result = Arithmetic::Node::BinaryOp.new(val[0], :+, val[2]) result end
_reduce_11(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 303 def _reduce_11(val, _values, result) result = Arithmetic::Node::BinaryOp.new(val[0], :-, val[2]) result end
_reduce_12(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 308 def _reduce_12(val, _values, result) result = {} result end
_reduce_13(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 313 def _reduce_13(val, _values, result) cmp_op, target = val raise ParseError unless cmp_op result = {cmp_op: cmp_op, target: target} result end
_reduce_14(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 322 def _reduce_14(val, _values, result) result = val[1] result end
_reduce_15(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 327 def _reduce_15(val, _values, result) result = val[1] result end
_reduce_16(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 332 def _reduce_16(val, _values, result) notations = val[0] notations.push(val[2]) result = notations result end
_reduce_17(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 340 def _reduce_17(val, _values, result) result = [val[0]] result end
_reduce_18(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 345 def _reduce_18(val, _values, result) times = val[0] sides = val[2] result = UpperDice::Node::Notation.new(times, sides) result end
_reduce_19(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 353 def _reduce_19(val, _values, result) result = Arithmetic::Node::BinaryOp.new(val[0], :+, val[2]) result end
_reduce_2(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 242 def _reduce_2(val, _values, result) result = UpperDice::Node::Command.new( secret: val[0], notations: val[1], modifier: val[3], cmp_op: val[4][:cmp_op], target_number: val[4][:target], reroll_threshold: val[2] ) result end
_reduce_20(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 358 def _reduce_20(val, _values, result) result = Arithmetic::Node::BinaryOp.new(val[0], :-, val[2]) result end
_reduce_22(val, _values, result)
click to toggle source
reduce 21 omitted
# File lib/bcdice/common_command/upper_dice/parser.rb, line 365 def _reduce_22(val, _values, result) result = Arithmetic::Node::BinaryOp.new(val[0], :*, val[2]) result end
_reduce_23(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 370 def _reduce_23(val, _values, result) divied_class = val[3] result = divied_class.new(val[0], val[2]) result end
_reduce_25(val, _values, result)
click to toggle source
reduce 24 omitted
# File lib/bcdice/common_command/upper_dice/parser.rb, line 379 def _reduce_25(val, _values, result) result = Arithmetic::Node::DivideWithGameSystemDefault result end
_reduce_26(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 384 def _reduce_26(val, _values, result) result = Arithmetic::Node::DivideWithCeil result end
_reduce_27(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 389 def _reduce_27(val, _values, result) result = Arithmetic::Node::DivideWithCeil result end
_reduce_28(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 394 def _reduce_28(val, _values, result) result = Arithmetic::Node::DivideWithRound result end
_reduce_29(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 399 def _reduce_29(val, _values, result) result = Arithmetic::Node::DivideWithFloor result end
_reduce_3(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 255 def _reduce_3(val, _values, result) result = UpperDice::Node::Command.new( secret: val[0], notations: val[1], modifier: val[2], cmp_op: val[3][:cmp_op], target_number: val[3][:target], reroll_threshold: val[4] ) result end
_reduce_30(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 404 def _reduce_30(val, _values, result) result = val[1] result end
_reduce_31(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 409 def _reduce_31(val, _values, result) result = Arithmetic::Node::Negative.new(val[1]) result end
_reduce_33(val, _values, result)
click to toggle source
reduce 32 omitted
# File lib/bcdice/common_command/upper_dice/parser.rb, line 416 def _reduce_33(val, _values, result) result = val[1] result end
_reduce_34(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 421 def _reduce_34(val, _values, result) result = Arithmetic::Node::Number.new(val[0]) result end
_reduce_4(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 268 def _reduce_4(val, _values, result) result = false result end
_reduce_5(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 273 def _reduce_5(val, _values, result) result = true result end
_reduce_6(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 278 def _reduce_6(val, _values, result) result = Arithmetic::Node::Number.new(0) result end
_reduce_7(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 283 def _reduce_7(val, _values, result) result = val[0] result end
_reduce_8(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 288 def _reduce_8(val, _values, result) result = val[1] result end
_reduce_9(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 293 def _reduce_9(val, _values, result) result = Arithmetic::Node::Negative.new(val[1]) result end
_reduce_none(val, _values, result)
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 426 def _reduce_none(val, _values, result) val[0] end
next_token()
click to toggle source
# File lib/bcdice/common_command/upper_dice/parser.rb, line 33 def next_token @lexer.next_token end