source: proto/RE/output/re_pablo.py @ 3403

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

Delete out-of-date library copy

File size: 1.7 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
17#import sys
18#import bitutil
19
20
21class Basis_bits():
22        bit_0 = 0
23        bit_1 = 0
24        bit_2 = 0
25        bit_3 = 0 
26        bit_4 = 0
27        bit_5 = 0
28        bit_6 = 0
29        bit_7 = 0 
30 
31class Lex():
32
33        cc0 = (0)
34        cc1 = (0)
35        cc2 = (0)
36        cc3 = (0)
37        cc4 = (0)
38        cc5 = (0)
39        cc6 = (0)
40        cc7 = (0)
41        LF = (0) 
42
43class Output():
44        matches = (0)
45
46def Classify_bytes(basis_bits,lex):
47@cc_code
48
49def Demo(lex, output):
50        m0=0
51        m1=0
52        m2=0
53        m3=0
54        m4=0
55        m5=0
56        m6=0
57        m7=0
58        m8=0
59        m9=0
60        m10=0
61        m11=0
62        m12=0
63        m13=0
64        m0=~0
65        m1 = m0
66        m0 = pablo.Advance((m0 & lex.cc1))
67        m0 = pablo.MatchStar(m0, lex.cc0)
68        m0 = pablo.Advance((m0 & lex.cc5))
69        m0 = pablo.Advance((m0 & lex.cc4))
70        m0 = pablo.Advance((m0 & lex.cc4))
71        m4 = m0
72        m4 = pablo.Advance((m4 & lex.cc2))
73        m0 = m4
74        m0 = pablo.MatchStar(m0, lex.cc2)
75        m6 = m0
76        m6 = pablo.Advance((m6 & lex.cc4))
77        m6 = pablo.MatchStar(m6, lex.cc3)
78        m0 = (m0 | m6)
79        m10 = m1
80        m10 = pablo.Advance((m10 & lex.cc6))
81        m1 = m10
82        m1 = pablo.MatchStar(m1, lex.cc6)
83        m1 = pablo.Advance((m1 & lex.cc7))
84        m12 = m1
85        m12 = pablo.Advance((m12 & lex.cc6))
86        m1 = m12
87        m1 = pablo.MatchStar(m1, lex.cc6)
88        m0 = (m0 | m1)
89        output.matches = 0
90        all_matches = m0
91        if all_matches:
92                # Find the last match on each line and filter out all others
93                output.matches = pablo.MatchStar(all_matches, ~lex.LF) & lex.LF
94       
95def Main(u8data, lex, output):
96        Classify_bytes(basis_bits,lex)
97        Demo(lex,output)
98
Note: See TracBrowser for help on using the repository browser.