source: translator/examples/iostream.h @ 42dcae7

ADTaaron-thesisarm-ehast-experimentalcleanup-dtorsctordeferred_resndemanglerenumforall-pointer-decaygc_noraiijacob/cs343-translationjenkins-sandboxmemorynew-astnew-ast-unique-exprnew-envno_listpersistent-indexerpthread-emulationqualifiedEnumresolv-newstringwith_gc
Last change on this file since 42dcae7 was 134b86a, checked in by Peter A. Buhr <pabuhr@…>, 10 years ago

add compiler flag to driver, update examples, fix unnamed bit fields

  • Property mode set to 100644
File size: 1.1 KB
Line 
1#ifndef IOSTREAM_H
2#define IOSTREAM_H
3
4typedef unsigned long streamsize_type;
5
6context ostream( dtype ostype ) {
7    ostype *write( ostype *, const char *, streamsize_type );
8    int fail( ostype * );
9};
10
11context writeable( type T ) {
12    forall( dtype ostype | ostream( ostype ) ) ostype * ?<<?( ostype *, T );
13};
14
15// implement writable for some intrinsic types
16
17forall( dtype ostype | ostream( ostype ) ) ostype * ?<<?( ostype *, char );
18forall( dtype ostype | ostream( ostype ) ) ostype * ?<<?( ostype *, int );
19forall( dtype ostype | ostream( ostype ) ) ostype * ?<<?( ostype *, double );
20forall( dtype ostype | ostream( ostype ) ) ostype * ?<<?( ostype *, const char * );
21
22
23context istream( dtype istype ) {
24    istype *read( istype *, char *, streamsize_type );
25    istype *unread( istype *, char );
26    int fail( istype * );
27    int eof( istype * );
28};
29
30context readable( type T ) {
31    forall( dtype istype | istream( istype ) ) istype * ?<<?( istype *, T );
32};
33
34forall( dtype istype | istream( istype ) )
35istype * ?>>?( istype *, char * );
36
37forall( dtype istype | istream( istype ) )
38istype * ?>>?( istype *, int * );
39
40#endif // IOSTREAM_H
Note: See TracBrowser for help on using the repository browser.