source: proto/RE/output/re_debug.py @ 3410

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

Delete out-of-date library copy

File size: 3.3 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# (at)pbs_debug - Parallel bit stream debug statements.
14#
15#----------------------------------------------------------------------------
16
17import sys
18import bitutil
19
20u8data = ""
21lgth = 0
22
23class Basis_bits():
24        bit_0 = 0
25        bit_1 = 0
26        bit_2 = 0
27        bit_3 = 0 
28        bit_4 = 0
29        bit_5 = 0
30        bit_6 = 0
31        bit_7 = 0 
32 
33class Lex():
34
35        cc0 = (0)
36        cc1 = (0)
37        cc2 = (0)
38        cc3 = (0)
39        cc4 = (0)
40        cc5 = (0)
41        cc6 = (0)
42        cc7 = (0)
43        LF = (0) 
44
45def Classify_bytes(basis_bits,lex):
46@cc_code
47        return lex
48
49def Demo(u8data, lex):
50
51        global lgth
52        lgth = len(u8data)
53        m0=0
54        m1=0
55        m2=0
56        m3=0
57        m4=0
58        m5=0
59        m6=0
60        m7=0
61        m8=0
62        m9=0
63        m10=0
64        m11=0
65        m12=0
66        m13=0
67        m0=~0
68        m1 = m0
69        m0 = bitutil.Advance((m0 & lex.cc1))
70        m0 = bitutil.MatchStar(m0, lex.cc0)
71        m0 = bitutil.Advance((m0 & lex.cc5))
72        m0 = bitutil.Advance((m0 & lex.cc4))
73        m0 = bitutil.Advance((m0 & lex.cc4))
74        m4 = m0
75        m4 = bitutil.Advance((m4 & lex.cc2))
76        m0 = m4
77        m0 = bitutil.MatchStar(m0, lex.cc2)
78        m6 = m0
79        m6 = bitutil.Advance((m6 & lex.cc4))
80        m6 = bitutil.MatchStar(m6, lex.cc3)
81        m0 = (m0 | m6)
82        m10 = m1
83        m10 = bitutil.Advance((m10 & lex.cc6))
84        m1 = m10
85        m1 = bitutil.MatchStar(m1, lex.cc6)
86        m1 = bitutil.Advance((m1 & lex.cc7))
87        m12 = m1
88        m12 = bitutil.Advance((m12 & lex.cc6))
89        m1 = m12
90        m1 = bitutil.MatchStar(m1, lex.cc6)
91        m0 = (m0 | m1)
92        bitutil.print_aligned_streams([('       Input Data', u8data),
93        ('      lex.cc0', bitutil.bitstream2string(lex.cc0, lgth+1)),
94        ('      lex.cc1', bitutil.bitstream2string(lex.cc1, lgth+1)),
95        ('      lex.cc2', bitutil.bitstream2string(lex.cc2, lgth+1)),
96        ('      lex.cc3', bitutil.bitstream2string(lex.cc3, lgth+1)),
97        ('      lex.cc4', bitutil.bitstream2string(lex.cc4, lgth+1)),
98        ('      lex.cc5', bitutil.bitstream2string(lex.cc5, lgth+1)),
99        ('      lex.cc6', bitutil.bitstream2string(lex.cc6, lgth+1)),
100        ('      lex.cc7', bitutil.bitstream2string(lex.cc7, lgth+1)),
101        ('      m0', bitutil.bitstream2string(m0, lgth+1)),
102        ('      m1', bitutil.bitstream2string(m1, lgth+1)),
103        ('      m2', bitutil.bitstream2string(m2, lgth+1)),
104        ('      m3', bitutil.bitstream2string(m3, lgth+1)),
105        ('      m4', bitutil.bitstream2string(m4, lgth+1)),
106        ('      m5', bitutil.bitstream2string(m5, lgth+1)),
107        ('      m6', bitutil.bitstream2string(m6, lgth+1)),
108        ('      m7', bitutil.bitstream2string(m7, lgth+1)),
109        ('      m8', bitutil.bitstream2string(m8, lgth+1)),
110        ('      m9', bitutil.bitstream2string(m9, lgth+1)),
111        ('      m10', bitutil.bitstream2string(m10, lgth+1)),
112        ('      m11', bitutil.bitstream2string(m11, lgth+1)),
113        ('      m12', bitutil.bitstream2string(m12, lgth+1)),
114        ('      m13', bitutil.bitstream2string(m13, lgth+1))])
115        return
116
117if __name__ == "__main__":
118        import doctest
119        doctest.testmod()
120
121        if len(sys.argv) < 2:
122                sys.stderr.write("Usage: python " + __file__ + " <filename>" "\n")
123                sys.exit(2)
124
125        u8data = bitutil.readfile(sys.argv[1])
126        (bits, EOF_mask) = bitutil.transpose_streams(u8data)
127       
128        basis_bits = Basis_bits()
129        basis_bits.bit_0 = bits[0]
130        basis_bits.bit_1 = bits[1]
131        basis_bits.bit_2 = bits[2]
132        basis_bits.bit_3 = bits[3]
133        basis_bits.bit_4 = bits[4]
134        basis_bits.bit_5 = bits[5]
135        basis_bits.bit_6 = bits[6]
136        basis_bits.bit_7 = bits[7]
137       
138        lex = Lex()
139        Classify_bytes(basis_bits, lex)
140        Demo(u8data, lex)
Note: See TracBrowser for help on using the repository browser.