-
Notifications
You must be signed in to change notification settings - Fork 18
/
automaton.gv
39 lines (39 loc) · 3.09 KB
/
automaton.gv
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
digraph automaton {
node [shape=record]
I0 [label=<<I>I</I><SUB>0</SUB><BR/><I>E'</I> → . <I>E</I><BR ALIGN="LEFT"/><I> E</I> → . <I>E</I> <B>+</B> <I>T</I><BR ALIGN="LEFT"/><I> E</I> → . <I>T</I><BR ALIGN="LEFT"/><I> T</I> → . <I>T</I> <B>*</B> <I>F</I><BR ALIGN="LEFT"/><I> T</I> → . <I>F</I><BR ALIGN="LEFT"/><I> F</I> → . <B>(</B> <I>E</I> <B>)</B><BR ALIGN="LEFT"/><I> F</I> → . <B>id</B><BR ALIGN="LEFT"/>>]
I1 [label=<<I>I</I><SUB>1</SUB><BR/><I>E'</I> → <I>E</I> .<BR ALIGN="LEFT"/><I> E</I> → <I>E</I> . <B>+</B> <I>T</I><BR ALIGN="LEFT"/>>]
I2 [label=<<I>I</I><SUB>2</SUB><BR/><I> F</I> → <B>id</B> .<BR ALIGN="LEFT"/>>]
I3 [label=<<I>I</I><SUB>3</SUB><BR/><I> E</I> → <I>T</I> .<BR ALIGN="LEFT"/><I> T</I> → <I>T</I> . <B>*</B> <I>F</I><BR ALIGN="LEFT"/>>]
I4 [label=<<I>I</I><SUB>4</SUB><BR/><I> T</I> → <I>F</I> .<BR ALIGN="LEFT"/>>]
I5 [label=<<I>I</I><SUB>5</SUB><BR/><I> F</I> → <B>(</B> . <I>E</I> <B>)</B><BR ALIGN="LEFT"/><I> E</I> → . <I>E</I> <B>+</B> <I>T</I><BR ALIGN="LEFT"/><I> E</I> → . <I>T</I><BR ALIGN="LEFT"/><I> T</I> → . <I>T</I> <B>*</B> <I>F</I><BR ALIGN="LEFT"/><I> T</I> → . <I>F</I><BR ALIGN="LEFT"/><I> F</I> → . <B>(</B> <I>E</I> <B>)</B><BR ALIGN="LEFT"/><I> F</I> → . <B>id</B><BR ALIGN="LEFT"/>>]
I6 [label=<<I>I</I><SUB>6</SUB><BR/><I> E</I> → <I>E</I> <B>+</B> . <I>T</I><BR ALIGN="LEFT"/><I> T</I> → . <I>T</I> <B>*</B> <I>F</I><BR ALIGN="LEFT"/><I> T</I> → . <I>F</I><BR ALIGN="LEFT"/><I> F</I> → . <B>(</B> <I>E</I> <B>)</B><BR ALIGN="LEFT"/><I> F</I> → . <B>id</B><BR ALIGN="LEFT"/>>]
I7 [label=<<I>I</I><SUB>7</SUB><BR/><I> T</I> → <I>T</I> <B>*</B> . <I>F</I><BR ALIGN="LEFT"/><I> F</I> → . <B>(</B> <I>E</I> <B>)</B><BR ALIGN="LEFT"/><I> F</I> → . <B>id</B><BR ALIGN="LEFT"/>>]
I8 [label=<<I>I</I><SUB>8</SUB><BR/><I> F</I> → <B>(</B> <I>E</I> . <B>)</B><BR ALIGN="LEFT"/><I> E</I> → <I>E</I> . <B>+</B> <I>T</I><BR ALIGN="LEFT"/>>]
I9 [label=<<I>I</I><SUB>9</SUB><BR/><I> E</I> → <I>E</I> <B>+</B> <I>T</I> .<BR ALIGN="LEFT"/><I> T</I> → <I>T</I> . <B>*</B> <I>F</I><BR ALIGN="LEFT"/>>]
I10 [label=<<I>I</I><SUB>10</SUB><BR/><I> T</I> → <I>T</I> <B>*</B> <I>F</I> .<BR ALIGN="LEFT"/>>]
I11 [label=<<I>I</I><SUB>11</SUB><BR/><I> F</I> → <B>(</B> <I>E</I> <B>)</B> .<BR ALIGN="LEFT"/>>]
I0 -> I2 [label=<<B>id</B>>]
I0 -> I5 [label=<<B>(</B>>]
I0 -> I1 [label=<<I>E</I>>]
I0 -> I3 [label=<<I>T</I>>]
I0 -> I4 [label=<<I>F</I>>]
I1 -> I6 [label=<<B>+</B>>]
acc [label=<<B>accept</B>> shape=none]
I1 -> acc [label="$"]
I3 -> I7 [label=<<B>*</B>>]
I5 -> I2 [label=<<B>id</B>>]
I5 -> I5 [label=<<B>(</B>>]
I5 -> I8 [label=<<I>E</I>>]
I5 -> I3 [label=<<I>T</I>>]
I5 -> I4 [label=<<I>F</I>>]
I6 -> I2 [label=<<B>id</B>>]
I6 -> I5 [label=<<B>(</B>>]
I6 -> I9 [label=<<I>T</I>>]
I6 -> I4 [label=<<I>F</I>>]
I7 -> I2 [label=<<B>id</B>>]
I7 -> I5 [label=<<B>(</B>>]
I7 -> I10 [label=<<I>F</I>>]
I8 -> I6 [label=<<B>+</B>>]
I8 -> I11 [label=<<B>)</B>>]
I9 -> I7 [label=<<B>*</B>>]
}