source: src/examples/prolog.c@ 2bae7307

ADT aaron-thesis arm-eh ast-experimental cleanup-dtors ctor deferred_resn demangler enum forall-pointer-decay gc_noraii jacob/cs343-translation jenkins-sandbox memory new-ast new-ast-unique-expr new-env no_list persistent-indexer pthread-emulation qualifiedEnum resolv-new string with_gc
Last change on this file since 2bae7307 was 843054c2, checked in by Peter A. Buhr <pabuhr@…>, 10 years ago

licencing: seventh groups of files

  • Property mode set to 100644
File size: 686 bytes
Line 
1// "./cfa prolog.c"
2
3extern "C" { extern int printf( const char *fmt, ... ); }
4
5void printResult( int x ) { printf( "int\n" ); }
6void printResult( double x ) { printf( "double\n" ); }
7void printResult( char * x ) { printf( "char*\n" ); }
8
9void is_arithmetic( int x ) {}
10void is_arithmetic( double x ) {}
11
12void is_integer( int x ) {}
13
14context ArithmeticType( type T ) {
15 void is_arithmetic( T );
16};
17
18context IntegralType( type T | ArithmeticType( T ) ) {
19 void is_integer( T );
20};
21
22forall( type T | IntegralType( T ) | { void printResult( T ); } )
23void hornclause( T param ) {
24 printResult( param );
25}
26
27int main() {
28 int x;
29 double x;
30 char * x;
31 hornclause( x );
32}
Note: See TracBrowser for help on using the repository browser.