source: proto/RE2PBS/compilable.py @ 1495

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

Add compiler template file.

File size: 2.5 KB
Line 
1# -*- coding: utf-8 -*-
2#
3# compilable.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
16class Basis_bits():
17        bit_0 = 0
18        bit_1 = 0
19        bit_2 = 0
20        bit_3 = 0 
21        bit_4 = 0
22        bit_5 = 0
23        bit_6 = 0
24        bit_7 = 0 
25 
26class Lex():
27        s35 = (0)
28        s48__57 = (0)
29        s120 = (0)
30        s38 = (0)
31        s59 = (0)
32 
33
34def Classify_bytes(basis_bits,lex):
35        temp1 = (basis_bits.bit_0 | basis_bits.bit_1)
36        temp2 = (basis_bits.bit_2 &~ basis_bits.bit_3)
37        temp3 = (temp2 &~ temp1)
38        temp4 = (basis_bits.bit_4 | basis_bits.bit_5)
39        temp5 = (basis_bits.bit_6 & basis_bits.bit_7)
40        temp6 = (temp5 &~ temp4)
41        lex.s35 = (temp3 & temp6)
42        temp7 = (basis_bits.bit_2 & basis_bits.bit_3)
43        temp8 = (temp7 &~ temp1)
44        temp9 = (basis_bits.bit_5 | basis_bits.bit_6)
45        temp10 = (basis_bits.bit_4 & temp9)
46        lex.s48__57 = (temp8 &~ temp10)
47        temp11 = (basis_bits.bit_1 &~ basis_bits.bit_0)
48        temp12 = (temp11 & temp7)
49        temp13 = (basis_bits.bit_4 &~ basis_bits.bit_5)
50        temp14 = (basis_bits.bit_6 | basis_bits.bit_7)
51        temp15 = (temp13 &~ temp14)
52        lex.s120 = (temp12 & temp15)
53        temp16 = (basis_bits.bit_5 &~ basis_bits.bit_4)
54        temp17 = (basis_bits.bit_6 &~ basis_bits.bit_7)
55        temp18 = (temp16 & temp17)
56        lex.s38 = (temp3 & temp18)
57        temp19 = (temp13 & temp5)
58        lex.s59 = (temp8 & temp19)
59
60        return lex
61
62def Demo(u8data, lex):
63        error_1_0 = (0)
64        cursor_1_0 = ((lex.s38) &~ (bitutil.Advance(lex.s38)))
65        error_1_1 = ((cursor_1_0) &~ (lex.s38))
66        cursor_1_1 = ((cursor_1_0) &~ (error_1_1))
67        cursor_1_2 = (bitutil.Advance(cursor_1_1))
68        error_1_2 = ((cursor_1_2) &~ (lex.s35))
69        cursor_1_3 = ((cursor_1_2) &~ (error_1_2))
70        cursor_1_4 = (bitutil.Advance(cursor_1_3))
71        error_1_3 = ((cursor_1_4) &~ (lex.s120))
72        cursor_1_5 = ((cursor_1_4) &~ (error_1_3))
73        cursor_1_6 = (bitutil.Advance(cursor_1_5))
74        error_1_4 = ((cursor_1_6) &~ (lex.s48__57))
75        cursor_1_7 = ((cursor_1_6) &~ (error_1_4))
76        cursor_1_8 = (bitutil.Advance(cursor_1_7))
77        cursor_1_9 = (bitutil.ScanThru(cursor_1_8,lex.s48__57))
78        error_1_5 = ((cursor_1_9) &~ (lex.s59))
79        cursor_1_10 = ((cursor_1_9) &~ (error_1_5))
80        cursor_1_11 = (bitutil.Advance(cursor_1_10))
81        error_1_6 = (error_1_0)
82        error_1_6 |= (error_1_1)
83        error_1_6 |= (error_1_2)
84        error_1_6 |= (error_1_3)
85        error_1_6 |= (error_1_4)
86        error_1_6 |= (error_1_5)
87
88        return
89
90def Main(basis_bits, lex):     
91        Classify_bytes(basis_bits, lex)
92        Demo(lex, scope1)
Note: See TracBrowser for help on using the repository browser.