Sigh. Well note: dummy = anyone still using C/C++ ... :))
Haha. Here we go with the idea. Boilerplate:

/////////////////////////////////////////////////////////
#import <flx.flxh>
body "#define main PROXY_MAIN";
proc main: int * &(charp) = "exit(main($1,$2));";
main(System::argc, System::_argv);

body cr"""
// USER PUTS PROGRAM HERE
#include <stdio.h>
int main(int argc, char *argv[])
{
  printf("Hello World argc=%d, argv[1]=%s\n",argc,
argc>1?argv[1]:"None");
  return 42;
}
// AND ENDING HERE
""";
/////////////////////////////////////////////////

Now the C/C++ programmer can run:

        flx myprog argument

at they're running C/C++ code as script .. i.e. no messing
around with gcc switches etc.

The PROXY_MAIN is needed for static linkage, so there aren't
two 'main' functions.

The 'cr' on the string is:

        c -- do not do any magic substitutions
          -- required so ? will work (otherwise you need ??
                because ?1 means generic type 1)
        r -- do not do any escapes
          -- required so \n will generate \n instead of newline

This should allow fully literal placement of any C/C++ code.

The boilerplate above could be made more transparent, but
the above works right now, so we'll keep it until we have
a more general system.


-- 
John Skaller <skaller at users dot sf dot net>
Felix, successor to C++: http://felix.sf.net

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to