Skip to content

Commit f15a9ee

Browse files
committed
chore: minor percentile parse improvements
1 parent 1e9ac10 commit f15a9ee

File tree

2 files changed

+7
-13
lines changed

2 files changed

+7
-13
lines changed

d20/diceast.py

+6-13
Original file line numberDiff line numberDiff line change
@@ -55,16 +55,9 @@ def dice_op(self, opsel):
5555
return SetOperator.new(*opsel)
5656

5757
def diceexpr(self, dice):
58-
reduced_dice = []
59-
for token in dice:
60-
if isinstance(token, Token):
61-
reduced_dice.append(token)
62-
else:
63-
reduced_dice.append(token.children[0])
64-
65-
if len(reduced_dice) == 1:
66-
return Dice(1, *reduced_dice)
67-
return Dice(*reduced_dice)
58+
if len(dice) == 1:
59+
return Dice(1, *dice)
60+
return Dice(*dice)
6861

6962
def selector(self, sel):
7063
return SetSelector(*sel)
@@ -423,12 +416,12 @@ class Dice(Node): # diceexpr
423416
def __init__(self, num, size):
424417
"""
425418
:type num: lark.Token or int
426-
:type size: lark.Token or int
419+
:type size: lark.Token or int or str
427420
"""
428421
super().__init__()
429422
self.num = int(num)
430-
if size.value == "%":
431-
self.size = size.value
423+
if str(size) == "%":
424+
self.size = str(size)
432425
else:
433426
self.size = int(size)
434427

tests/test_dice.py

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ def test_sane_totals():
3333
assert 1 <= r("1d20") <= 20
3434
assert 0 <= r("1d%") <= 90
3535
assert 0 <= r("1d%") % 10 <= 9
36+
assert r("1d%") % 10 == 0
3637
assert 3 <= r("4d6kh3") <= 18
3738
assert 1 <= r("(((1d6)))") <= 6
3839
assert 4 <= r("(1d4, 2+2, 3d6kl1)kh1") <= 6

0 commit comments

Comments
 (0)