ADT
ast-experimental
Last change
on this file since cb69fba was dfa4360, checked in by Thierry Delisle <tdelisle@…>, 6 years ago |
Added several tests for generators
|
-
Property mode
set to
100644
|
File size:
2.4 KB
|
Line | |
---|
1 | //// Cfo rall Ver sion
|
---|
2 | 1.0 .0 C opyr ight (C)
|
---|
3 | 201 7 Un iver sity of
|
---|
4 | Wate rloo //// The con
|
---|
5 | tent s of thi s fi le a
|
---|
6 | re c over ed u nder the
|
---|
7 | lic ence agr eeme nt i
|
---|
8 | n th e// file "LI CENC
|
---|
9 | E" d istr ibut ed w ith
|
---|
10 | Cfor all. //// fmt Line
|
---|
11 | s.cc --/ /// Auth or
|
---|
12 | : P eter A.
|
---|
13 | Buhr // C reat ed O n
|
---|
14 | : Su n Se p 17 21:
|
---|
15 | 56:1 5 20 17// Las t Mo
|
---|
16 | difi ed B y : Pete r A.
|
---|
17 | Buh r// Last Mod ifie
|
---|
18 | d On : F ri M ar 2 2 13
|
---|
19 | :41: 03 2 019/ / Up date
|
---|
20 | Cou nt : 33/ /#in
|
---|
21 | clud e <f stre am.h fa>#
|
---|
22 | incl ude <cor outi ne.h
|
---|
23 | fa>c orou tine For mat
|
---|
24 | { ch ar c h;
|
---|
25 | // used for com muni
|
---|
26 | cati on i nt g , b;
|
---|
27 | / / gl obal bec
|
---|
28 | ause use d in des truc
|
---|
29 | tor} ;voi d ?{ }( F orma
|
---|
30 | t & fmt ) { r esum
|
---|
31 | e( f mt ) ; /
|
---|
32 | / st art coro utin e}vo
|
---|
33 | id ^ ?{}( For mat & fm
|
---|
34 | t ) { if ( fm t.g
|
---|
35 | != 0 || fmt. b != 0 )
|
---|
36 | sou t | nl;} void mai
|
---|
37 | n( F orma t & fmt ) {
|
---|
38 | for ( ;; ) {
|
---|
39 | // for as many cha
|
---|
40 | ract ers for ( f mt.g
|
---|
41 | = 0 ; fm t.g < 5; fmt
|
---|
42 | .g + = 1 ) { // grou
|
---|
43 | ps o f 5 bloc ks for
|
---|
44 | ( f mt.b = 0 ; fm t.b
|
---|
45 | < 4; fmt .b + = 1 ) {
|
---|
46 | // b lock s of 4 c hara
|
---|
47 | cter s for ( ; ; )
|
---|
48 | { // f or n ewli
|
---|
49 | ne c hara cter s su
|
---|
50 | spen d; i f ( fmt.
|
---|
51 | ch ! = '\ n' ) bre ak;
|
---|
52 | // igno re n ewli ne
|
---|
53 | } // f or so ut |
|
---|
54 | fmt .ch; / / pr
|
---|
55 | int char acte r } //
|
---|
56 | for s out | " ";
|
---|
57 | / / pr int bloc
|
---|
58 | k se para tor } / / fo
|
---|
59 | r s out | nl ;
|
---|
60 | // pri nt g roup sep
|
---|
61 | arat or } // for} //
|
---|
62 | main void prt ( Fo rmat
|
---|
63 | & f mt, char ch ) {
|
---|
64 | f mt.c h = ch; r
|
---|
65 | esum e( f mt ) ;} / / pr
|
---|
66 | tint mai n() { Fo rmat
|
---|
67 | fmt ; ch ar c h; f or (
|
---|
68 | ;; ) { sin | c h;
|
---|
69 | // r ead one
|
---|
70 | char acte r if ( eof
|
---|
71 | ( si n ) ) br eak;
|
---|
72 | / / eo f ? prt ( fm
|
---|
73 | t, c h ); } / / fo r} /
|
---|
74 | / ma in// Loc al V aria
|
---|
75 | bles : // // t ab-w idth
|
---|
76 | : 4 //// com pile -com
|
---|
77 | mand : "c fa f mtLi nes.
|
---|
78 | cfa" /// / En d: / /
|
---|
Note:
See
TracBrowser
for help on using the repository browser.