source: proto/RE2PBS/prototype.py @ 1149

Last change on this file since 1149 was 1149, checked in by ksherdy, 8 years ago

Add prototype

File size: 2.1 KB
Line 
1# -*- coding: utf-8 -*-
2#
3# prototype.py template
4#
5# Ken Herdy
6# April 20, 2010
7#
8#----------------------------------------------------------------------------
9#
10# (at)lex_strms - Lexical Item Streams.
11# (at)cc_code   - Character Class compiler equations.
12# (at)pbs_code  - Parallel bit stream equations.
13#
14#----------------------------------------------------------------------------
15
16u8data = ""
17lgth = 0
18
19class Basis_bits():
20        bit_0 = 0
21        bit_1 = 0
22        bit_2 = 0
23        bit_3 = 0 
24        bit_4 = 0
25        bit_5 = 0
26        bit_6 = 0
27        bit_7 = 0 
28 
29class Lex():
30        s35 = (0)
31        s48__57 = (0)
32        s120 = (0)
33        s38 = (0)
34        s59 = (0)
35
36
37def classify_bytes(bit):
38        lex = Lex()
39
40        temp1 = (basis_bits.bit_0 | basis_bits.bit_1)
41        temp2 = (basis_bits.bit_2 &~ basis_bits.bit_3)
42        temp3 = (temp2 &~ temp1)
43        temp4 = (basis_bits.bit_4 | basis_bits.bit_5)
44        temp5 = (basis_bits.bit_6 & basis_bits.bit_7)
45        temp6 = (temp5 &~ temp4)
46        lex.s35 = (temp3 & temp6)
47        temp7 = (basis_bits.bit_2 & basis_bits.bit_3)
48        temp8 = (temp7 &~ temp1)
49        temp9 = (basis_bits.bit_5 | basis_bits.bit_6)
50        temp10 = (basis_bits.bit_4 & temp9)
51        lex.s48__57 = (temp8 &~ temp10)
52        temp11 = (basis_bits.bit_1 &~ basis_bits.bit_0)
53        temp12 = (temp11 & temp7)
54        temp13 = (basis_bits.bit_4 &~ basis_bits.bit_5)
55        temp14 = (basis_bits.bit_6 | basis_bits.bit_7)
56        temp15 = (temp13 &~ temp14)
57        lex.s120 = (temp12 & temp15)
58        temp16 = (basis_bits.bit_5 &~ basis_bits.bit_4)
59        temp17 = (basis_bits.bit_6 &~ basis_bits.bit_7)
60        temp18 = (temp16 & temp17)
61        lex.s38 = (temp3 & temp18)
62        temp19 = (temp13 & temp5)
63        lex.s59 = (temp8 & temp19)
64
65        return lex
66
67def demo(u8data):
68        global lgth
69        lgth = len(u8data)
70       
71
72@pbs_debug
73
74        return
75
76if __name__ == "__main__":
77        import doctest
78        doctest.testmod()
79
80        if len(sys.argv) < 2:
81                sys.stderr.write("Usage: python " + __file__ + " <filename>" "\n")
82                sys.exit(2)
83
84        u8data = bitutil.readfile(sys.argv[1])
85        (bits, EOF_mask) = bitutil.transpose_streams(u8data)
86       
87        basis_bits.bit_0 = bits[0]
88        basis_bits.bit_1 = bits[1]
89        basis_bits.bit_2 = bits[2]
90        basis_bits.bit_3 = bits[3]
91        basis_bits.bit_4 = bits[4]
92        basis_bits.bit_5 = bits[5]
93        basis_bits.bit_6 = bits[6]
94        basis_bits.bit_7 = bits[7]
95       
96        lex = classify_bytes(basis_bits)
97        demo(u8data, lex)
Note: See TracBrowser for help on using the repository browser.