diff -r 242907849850 -r 76175defb87b main.cc --- a/main.cc Sat May 07 21:17:49 2016 +0100 +++ b/main.cc Sun May 08 20:01:15 2016 +0100 @@ -116,10 +116,12 @@ printf(" -p : allow use of forward references (a non-standard extension?)\n"); printf(" -l : use a relaxed datatype equivalence model (a non-standard extension?)\n"); printf(" -s : allow use of safe datatypes (SAFEBOOL, etc.) (defined in PLCOpen Safety)\n"); // PLCopen TC5 "Safety Software Technical Specification - Part 1" v1.0 + printf(" -n : allow use of nested comments (an IEC 61131-3 v3 feature)\n"); printf(" -r : allow use of references (REF_TO, REF, ^, NULL) (an IEC 61131-3 v3 feature)\n"); printf(" -R : allow use of REF_TO ANY datatypes (a non-standard extension!)\n"); 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(" -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); stage4_print_options(); @@ -141,14 +143,15 @@ int path_len; /* Default values for the command line options... */ - runtime_options.pre_parsing = false; /* allow use of forward references (run pre-parsing phase before the definitive parsing phase that builds the AST) */ - runtime_options.safe_extensions = false; /* allow use of SAFExxx datatypes */ - runtime_options.full_token_loc = false; /* error messages specify full token location */ - runtime_options.conversion_functions = false; /* Create a conversion function for derived datatype */ - runtime_options.nested_comments = false; /* Allow the use of nested comments. */ - runtime_options.ref_standard_extensions = false; /* Allow the use of REFerences (keywords REF_TO, REF, DREF, ^, NULL). */ - runtime_options.ref_nonstand_extensions = false; /* Allow the use of non-standard extensions to REF_TO datatypes: REF_TO ANY, and REF_TO in struct elements! */ - runtime_options.nonliteral_in_array_size= false; /* Allow the use of constant non-literals when specifying size of arrays (ARRAY [1..max] OF INT) */ + 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) */ + runtime_options.safe_extensions = false; /* disable: allow use of SAFExxx datatypes */ + runtime_options.full_token_loc = false; /* disable: error messages specify full token location */ + runtime_options.conversion_functions = false; /* disable: create a conversion function for derived datatype */ + runtime_options.nested_comments = false; /* disable: Allow the use of nested comments. */ + runtime_options.ref_standard_extensions = false; /* disable: Allow the use of REFerences (keywords REF_TO, REF, DREF, ^, NULL). */ + runtime_options.ref_nonstand_extensions = false; /* disable: Allow the use of non-standard extensions to REF_TO datatypes: REF_TO ANY, and REF_TO in struct elements! */ + runtime_options.nonliteral_in_array_size= false; /* disable: Allow the use of constant non-literals when specifying size of arrays (ARRAY [1..max] OF INT) */ runtime_options.includedir = NULL; /* Include directory, where included files will be searched for... */ /* Default values for the command line options... */ @@ -157,7 +160,7 @@ /******************************************/ /* Parse command line options... */ /******************************************/ - while ((optres = getopt(argc, argv, ":nhvfplsrRacI:T:O:")) != -1) { + while ((optres = getopt(argc, argv, ":nehvfplsrRacI:T:O:")) != -1) { switch(optres) { case 'h': printusage(argv[0]); @@ -175,6 +178,7 @@ case 'a': runtime_options.nonliteral_in_array_size = true; break; case 'c': runtime_options.conversion_functions = true; break; case 'n': runtime_options.nested_comments = true; break; + case 'e': runtime_options.disable_implicit_en_eno = true; break; case 'I': /* NOTE: To improve the usability under windows: * We delete last char's path if it ends with "\".