Skip to content

Commit b02076a

Browse files
committed
Uses defined states in generator tests
1 parent e924d00 commit b02076a

File tree

1 file changed

+18
-51
lines changed

1 file changed

+18
-51
lines changed

src/syntactes/tests/test_generator.py

Lines changed: 18 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -2,58 +2,24 @@
22

33
from syntactes._action import Action, ActionType
44
from syntactes._item import LR0Item
5-
from syntactes._state import LR0State
65
from syntactes.generator import LR0Generator, SLRGenerator
7-
from syntactes.tests.data import EOF, PLUS, E, T, grammar, rule_2, rule_3, rule_4, x
8-
9-
10-
def state_1():
11-
item_1 = LR0Item(grammar.starting_rule, 0) # S -> . E $
12-
item_2 = LR0Item(rule_2, 0) # E -> . T + E
13-
item_3 = LR0Item(rule_3, 0) # E -> . T
14-
item_4 = LR0Item(rule_4, 0) # T -> . x
15-
state = LR0State.from_items({item_1, item_2, item_3, item_4})
16-
state.set_number(1)
17-
return state
18-
19-
20-
def state_2():
21-
item_1 = LR0Item(grammar.starting_rule, 1) # S -> E . $
22-
state = LR0State.from_items({item_1})
23-
state.set_number(2)
24-
return state
25-
26-
27-
def state_3():
28-
item_1 = LR0Item(rule_2, 1) # E -> T . + E
29-
item_2 = LR0Item(rule_3, 1) # E -> T .
30-
state = LR0State.from_items({item_1, item_2})
31-
state.set_number(3)
32-
return state
33-
34-
35-
def state_4():
36-
item_1 = LR0Item(rule_2, 2) # E -> T + . E
37-
item_2 = LR0Item(rule_2, 0) # E -> . T + E
38-
item_3 = LR0Item(rule_3, 0) # E -> . T
39-
item_4 = LR0Item(rule_4, 0) # T -> . x
40-
state = LR0State.from_items({item_1, item_2, item_3, item_4})
41-
state.set_number(4)
42-
return state
43-
44-
45-
def state_5():
46-
item_1 = LR0Item(rule_4, 1) # T -> x .
47-
state = LR0State.from_items({item_1})
48-
state.set_number(5)
49-
return state
50-
51-
52-
def state_6():
53-
item_1 = LR0Item(rule_2, 3) # E -> T + E .
54-
state = LR0State.from_items({item_1})
55-
state.set_number(6)
56-
return state
6+
from syntactes.tests.data import (
7+
EOF,
8+
PLUS,
9+
E,
10+
T,
11+
grammar,
12+
rule_2,
13+
rule_3,
14+
rule_4,
15+
state_1,
16+
state_2,
17+
state_3,
18+
state_4,
19+
state_5,
20+
state_6,
21+
x,
22+
)
5723

5824

5925
def shift(state):
@@ -262,6 +228,7 @@ def test_state_6_token_plus(self):
262228
def test_state_6_token_x(self):
263229
self.assert_state_actions(reduce(rule_2))
264230

231+
265232
class TestLR0GeneratorGenerateInitialState(TestLR0Generator):
266233
def subject(self):
267234
return self.generator().generate().initial_state

0 commit comments

Comments
 (0)