main.cc
changeset 1014 a61f8f58f612
parent 1012 1f2af384fb1f
--- a/main.cc	Wed May 11 19:38:31 2016 +0100
+++ b/main.cc	Fri May 13 12:18:50 2016 +0100
@@ -122,6 +122,7 @@
   printf("        as well as REF_TO in ARRAYs and STRUCTs      (a non-standard extension!)\n");
   printf(" -a : allow use of non-literals in array size limits (a non-standard extension!)\n");
   printf(" -i : allow POUs with no in out and inout parameters (a non-standard extension!)\n");
+  printf(" -b : allow functions returning VOID                 (a non-standard extension!)\n");
   printf(" -e : disable generation of implicit EN and ENO parameters.\n");
   printf(" -c : create conversion functions for enumerated data types\n");
   printf(" -O : options for output (code generation) stage. Available options for %s are...\n", cmd);
@@ -145,6 +146,7 @@
   int path_len;
 
   /* Default values for the command line options... */
+  runtime_options.allow_void_datatype     = false; /* disable: allow declaration of functions returning VOID  */
   runtime_options.allow_missing_var_in    = false; /* disable: allow definition and invocation of POUs with no input, output and in_out parameters! */
   runtime_options.disable_implicit_en_eno = false; /* disable: do not generate EN and ENO parameters */
   runtime_options.pre_parsing             = false; /* disable: allow use of forward references (run pre-parsing phase before the definitive parsing phase that builds the AST) */
@@ -163,7 +165,7 @@
   /******************************************/
   /*   Parse command line options...        */
   /******************************************/
-  while ((optres = getopt(argc, argv, ":nehvfplsrRaicI:T:O:")) != -1) {
+  while ((optres = getopt(argc, argv, ":nehvfplsrRabicI:T:O:")) != -1) {
     switch(optres) {
     case 'h':
       printusage(argv[0]);
@@ -179,6 +181,7 @@
               runtime_options.ref_nonstand_extensions  = true;  break;
     case 'r': runtime_options.ref_standard_extensions  = true;  break;
     case 'a': runtime_options.nonliteral_in_array_size = true;  break;
+    case 'b': runtime_options.allow_void_datatype      = true;  break;
     case 'i': runtime_options.allow_missing_var_in     = true;  break;
     case 'c': runtime_options.conversion_functions     = true;  break;
     case 'n': runtime_options.nested_comments          = true;  break;