Allow spaces after ; for separated rolls

This commit is contained in:
kad 2011-08-10 11:16:07 -06:00 committed by Brian S. Stephan
parent 50fbbbfedd
commit 93761df5ed
1 changed files with 5 additions and 4 deletions

View File

@ -31,14 +31,15 @@ class Dice(Module):
"""Roll simple or complex dice strings."""
tokens = ['NUMBER', 'TEXT']
literals = ['#', '/', '+', '-', 'd', ';']
tokens = ['NUMBER', 'TEXT', 'ROLLSEP']
literals = ['#', '/', '+', '-', 'd']
def build(self):
lex.lex(module=self)
yacc.yacc(module=self)
t_TEXT = r'\s+[^;]+'
t_ROLLSEP = r';\s*'
def t_NUMBER(self, t):
r'\d+'
@ -49,7 +50,7 @@ class Dice(Module):
t.lexer.skip(1)
precedence = (
('left', ';'),
('left', 'ROLLSEP'),
('left', '+', '-'),
('right', 'd'),
('left', '#'),
@ -141,7 +142,7 @@ class Dice(Module):
# have a comment that describes the roll
# Multiple roll strings can be chained with semicolon
'roll : roll ";" roll'
'roll : roll ROLLSEP roll'
global output
p[0] = p[1] + "; " + p[3]
output = p[0]