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