# source:proto/pabloH/bigexample.pablo@5778

Last change on this file since 5778 was 4865, checked in by cameron, 4 years ago

Examples

File size: 6.4 KB
Line
1  not_ = (~basis7)
2  not_1 = (~basis5)
3  not_2 = (~basis3)
4  not_3 = (~basis2)
5  not_4 = (~basis1)
6  not_5 = (~basis0)
7  and_ = (basis6 & not_)
8  and_1 = (basis4 & not_1)
9  or_ = (basis2 | basis3)
10  not_6 = (~or_)
11  or_1 = (basis0 | basis1)
12  not_7 = (~or_1)
13  and_2 = (and_ & and_1)
14  or_2 = (or_ | or_1)
15  not_8 = (~or_2)
16  and_3 = (and_2 & not_8)
17  CC_a = and_3
18  LF = CC_a
19  not_9 = (~basis6)
20  and_4 = (basis7 & not_9)
21  and_5 = (basis4 & basis5)
22  and_6 = (and_4 & and_5)
23  and_7 = (and_6 & not_8)
24  CC_d = and_7
25  and_8 = (basis4 & not_8)
26  xor_ = (basis5 ^ basis6)
27  and_9 = (and_8 & xor_)
28  CC_a_d = and_9
29  if CC_d:
30    cr1 = Advance CC_d 1
31    and_10 = (LF & cr1)
32    crlf = and_10
33  else:
34    crlf = 000...
35  .
36  and_11 = (basis0 & basis1)
37  or_3 = (basis4 | basis5)
38  or_4 = (basis6 | basis7)
39  BC_c0_ff = and_11
40  and_21 = (basis0 & not_4)
41  BC_80_bf = and_21
42  if BC_c0_ff:
43    and_12 = (not_3 & and_11)
44    or_5 = (basis6 | or_3)
45    or_6 = (basis3 | or_5)
46    and_13 = (and_12 & or_6)
47    BC_c2_df = and_13
48    and_14 = (basis2 & not_2)
49    and_15 = (and_11 & and_14)
50    BC_e0_ef = and_15
51    not_10 = (~basis4)
52    and_16 = (basis2 & basis3)
53    and_17 = (and_11 & and_16)
54    and_18 = (not_10 & and_17)
55    not_11 = (~or_4)
56    not_12 = (~basis5)
57    and_19 = (basis5 & or_4)
58    not_13 = (~and_19)
59    and_20 = (and_18 & not_13)
60    BC_f0_f4 = and_20
61    u8suffix = BC_80_bf
62    if BC_c2_df:
64      u8scope22 = advance
65      or_7 = (basis4 | basis5)
66      not_14 = (~or_7)
67      and_22 = (and_ & not_14)
68      and_23 = (not_6 & and_11)
69      and_24 = (and_22 & and_23)
70      BC_c2 = and_24
72      and_25 = (basis5 & not_10)
73      and_26 = (and_4 & and_25)
74      and_27 = (not_6 & and_21)
75      and_28 = (and_26 & and_27)
76      BC_85 = and_28
77      and_29 = (advance1 & BC_85)
78      NEL = and_29
79    else:
80      u8scope22 = 000...
81      NEL = 000...
82    .
83    if BC_e0_ef:
85      u8scope32 = advance2
87      or_8 = (u8scope32 | advance3)
88      u8scope3X = or_8
89      or_9 = (basis4 | basis5)
90      not_15 = (~or_9)
91      and_30 = (and_ & not_15)
92      and_31 = (and_15 & and_30)
93      BC_e2 = and_31
95      or_10 = (basis6 | basis7)
96      not_16 = (~or_10)
97      or_11 = (or_9 | or_10)
98      not_17 = (~or_11)
99      and_32 = (not_6 & and_21)
100      and_33 = (not_17 & and_32)
101      BC_80 = and_33
102      and_34 = (advance4 & BC_80)
104      and_35 = (and_1 & not_9)
105      and_36 = (and_14 & and_21)
106      and_37 = (and_35 & and_36)
107      BC_a8_a9 = and_37
108      and_38 = (advance5 & BC_a8_a9)
109      LS_PS = and_38
110      and_39 = (and_15 & not_17)
111      BC_e0 = and_39
113      and_40 = (not_3 & and_21)
114      BC_80_9f = and_40
115      and_41 = (advance6 & BC_80_9f)
116      and_42 = (and_6 & and_15)
117      BC_ed = and_42
119      and_43 = (basis2 & and_21)
120      BC_a0_bf = and_43
121      and_44 = (advance7 & BC_a0_bf)
122      or_12 = (and_41 | and_44)
123      EX_invalid = or_12
124    else:
125      u8scope32 = 000...
126      u8scope3X = 000...
127      LS_PS = 000...
128      EX_invalid = 000...
129    .
130    if BC_f0_f4:
131      u8scope42 = Advance BC_f0_f4 1
132      u8scope43 = Advance u8scope42 1
133      u8scope44 = Advance u8scope43 1
134      or_13 = (u8scope42 | u8scope43)
135      u8scope4nonfinal = or_13
136      or_14 = (u8scope44 | u8scope4nonfinal)
137      u8scope4X = or_14
138      or_15 = (basis6 | basis7)
139      not_18 = (~or_15)
140      or_16 = (basis4 | basis5)
141      not_19 = (~or_16)
142      or_17 = (or_15 | or_16)
143      not_20 = (~or_17)
144      and_45 = (and_17 & not_20)
145      BC_f0 = and_45
147      and_46 = (not_6 & and_21)
148      BC_80_8f = and_46
149      and_47 = (advance8 & BC_80_8f)
150      and_48 = (basis5 & not_10)
151      and_49 = (not_18 & and_48)
152      and_50 = (and_17 & and_49)
153      BC_f4 = and_50
155      or_18 = (basis2 | basis3)
156      and_51 = (and_21 & or_18)
157      BC_90_bf = and_51
158      and_52 = (advance9 & BC_90_bf)
159      or_19 = (and_47 | and_52)
160      FX_invalid = or_19
161    else:
162      u8scope4nonfinal = 000...
163      u8scope4X = 000...
164      FX_invalid = 000...
165    .
166    or_20 = (u8scope3X | u8scope4X)
167    or_21 = (u8scope22 | or_20)
168    or_22 = (BC_c2_df | BC_e0_ef)
169    or_23 = (BC_f0_f4 | or_22)
170    xor_1 = (u8suffix ^ or_21)
171    or_24 = (EX_invalid | FX_invalid)
172    xor_2 = (BC_c0_ff ^ or_23)
173    or_25 = (xor_1 | or_24)
174    or_26 = (xor_2 | or_25)
175    u8invalid = or_26
176    not_21 = (~u8invalid)
177    u8valid = not_21
178    and_53 = (BC_c0_ff & u8valid)
179    valid_pfx = and_53
180    or_27 = (BC_c0_ff | u8scope32)
181    or_28 = (u8scope4nonfinal | or_27)
182    and_54 = (u8valid & or_28)
183    nonfinal = and_54
184    or_29 = (NEL | LS_PS)
185    NEL_LS_PS = or_29
186  else:
187    u8invalid = 000...
188    valid_pfx = 000...
189    nonfinal = 000...
190    NEL_LS_PS = 000...
191  .
192  or_30 = (CC_a_d | NEL_LS_PS)
193  or_31 = (basis2 | basis3)
194  CC_0_7f = not_5
195  not_22 = (~u8invalid)
196  and_55 = (CC_0_7f & not_22)
197  initial = (valid_pfx | and_55)
198  or_32 = (u8invalid | nonfinal)
199  final = (~or_32)
200  not_23 = (~crlf)
201  and_56 = (or_30 & not_23)
202  not_24 = (~and_56)
203  and_57 = (and_56 & not_23)
204  lf = and_57
205  BC_80_bf1 = and_21
206  not_25 = (~basis4)
207  or_33 = (basis6 | basis7)
208  not_26 = (~or_33)
209  or_34 = (basis4 | basis5)
210  not_27 = (~or_34)
211  and_58 = (basis2 & not_2)
212  or_35 = (or_33 | or_34)
213  not_28 = (~or_35)
214  and_59 = (and_58 & not_7)
215  and_60 = (not_28 & and_59)
216  CC_20 = and_60
217  and_61 = (basis1 & not_5)
218  and_62 = (and_4 & not_27)
219  and_63 = (and_58 & and_61)
220  and_64 = (and_62 & and_63)
221  CC_61 = and_64
222  and_65 = (and_ & not_27)
223  and_66 = (and_63 & and_65)
224  CC_62 = and_66
225  and_67 = (basis5 & not_25)
226  and_68 = (and_63 & and_67)
227  not_29 = (~basis6)
228  and_69 = (basis6 & basis7)
229  not_30 = (~and_69)
230  and_70 = (and_68 & not_30)
231  CC_64_66 = and_70
232  m = (CC_20 & not_24)
233  and_72 = (CC_61 & not_24)
234  and_73 = (CC_62 & not_24)
235  and_74 = (CC_64_66 & not_24)
237  test = adv
238  pending = adv
239  accum = adv
240  while test:
241    m1 = (and_72 & pending)
243    m2 = (and_73 & adv1)
244    m3 = (and_74 & pending)
245    alt = (m2 | m3)