source: docs/Working/re/scripts/streams.py @ 3488

Last change on this file since 3488 was 3488, checked in by cameron, 6 years ago

scripts

File size: 2.7 KB
RevLine 
[3488]1#
2# EuroPardemo.py
3
4
5import pablo
6
7import sys
8
9zero_ch = '.'
10
11
12class Basis_bits():     
13        bit_0 = 0
14        bit_1 = 0
15        bit_2 = 0
16        bit_3 = 0
17        bit_4 = 0
18        bit_5 = 0
19        bit_6 = 0
20        bit_7 = 0
21
22
23class Lex ():
24        CR = 0
25        LF = 0
26        HT = 0
27        SP = 0
28        CRLF = 0
29        RefStart = 0
30        Semicolon = 0 
31        Colon = 0
32        LAngle = 0
33        RAngle = 0
34        LBracket = 0
35        RBracket = 0
36        Exclam = 0
37        QMark = 0
38        Hyphen = 0
39        Equals = 0
40        SQuote = 0
41        DQuote = 0
42        Slash = 0
43        Hash = 0
44        Digit = 0
45        Hex = 0
46        WS = 0
47
48def do_lex(basis_bits, lex):
49        temp1 = (basis_bits.bit_1 &~ basis_bits.bit_0)
50        temp2 = (basis_bits.bit_2 | basis_bits.bit_3)
51        temp3 = (temp1 &~ temp2)
52        temp4 = (basis_bits.bit_4 | basis_bits.bit_5)
53        temp5 = (basis_bits.bit_6 | basis_bits.bit_7)
54        temp6 = (temp4 | temp5)
55        lex.at = (temp3 &~ temp6)
56        temp7 = (basis_bits.bit_0 | basis_bits.bit_1)
57        temp8 = (basis_bits.bit_2 & basis_bits.bit_3)
58        temp9 = (temp8 &~ temp7)
59        temp10 = (basis_bits.bit_5 | basis_bits.bit_6)
60        temp11 = (basis_bits.bit_4 & temp10)
61        lex.digit = (temp9 &~ temp11)
62        temp12 = (temp1 & basis_bits.bit_2)
63        temp13 = (basis_bits.bit_6 & basis_bits.bit_7)
64        temp14 = (basis_bits.bit_5 | temp13)
65        temp15 = (basis_bits.bit_4 & temp14)
66        temp16 = (~temp15)
67        temp17 = ((basis_bits.bit_3 & temp16)|(~(basis_bits.bit_3) & temp6))
68        lex.alpha = (temp12 & temp17)
69        temp18 = (basis_bits.bit_2 &~ basis_bits.bit_3)
70        temp19 = (temp1 & temp18)
71        temp20 = (basis_bits.bit_7 &~ basis_bits.bit_6)
72        temp21 = (temp20 &~ temp4)
73        lex.a = (temp19 & temp21)
74        temp22 = (temp1 & temp8)
75        temp23 = (basis_bits.bit_4 &~ basis_bits.bit_5)
76        temp24 = (basis_bits.bit_6 &~ basis_bits.bit_7)
77        temp25 = (temp23 & temp24)
78        lex.z = (temp22 & temp25)
79
80
81def latex_streams1(chardata):
82        lgth = len(chardata)
83        basis_bits = Basis_bits()
84        lex = Lex()
85        pablo.EOF_mask = pablo.transpose_streams(chardata, basis_bits)
86        do_lex(basis_bits, lex)
87        return pablo.latex_streams([('input data ', chardata[::-1]), 
88                              ('$B_7$', pablo.bitstream2string(basis_bits.bit_0, lgth, zero_ch)),
89                              ('$B_6$', pablo.bitstream2string(basis_bits.bit_1, lgth, zero_ch)),
90                              ('$B_5$', pablo.bitstream2string(basis_bits.bit_2, lgth, zero_ch)),
91                              ('$B_4$', pablo.bitstream2string(basis_bits.bit_3, lgth, zero_ch)),
92                              ('$B_3$', pablo.bitstream2string(basis_bits.bit_4, lgth, zero_ch)),
93                              ('$B_2$', pablo.bitstream2string(basis_bits.bit_5, lgth, zero_ch)),
94                              ('$B_1$', pablo.bitstream2string(basis_bits.bit_6, lgth, zero_ch)),
95                              ('$B_0$', pablo.bitstream2string(basis_bits.bit_7, lgth, zero_ch)),
96                              ('\\verb:[a]:', pablo.bitstream2string(lex.a, lgth, zero_ch)),
97                              ('\\verb:[z]:', pablo.bitstream2string(lex.z, lgth, zero_ch)),
98                              ('\\verb:[0-9]:', pablo.bitstream2string(lex.digit, lgth, zero_ch))])
99
100
101
102if __name__ == "__main__":
103        print latex_streams1(r"""a4534q--b29z---az---a4q--bca22z--""")
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
Note: See TracBrowser for help on using the repository browser.