Changing --no-early-type-checking to --no-type-checking
authorChristopher L. Conway <christopherleeconway@gmail.com>
Wed, 20 Oct 2010 21:49:34 +0000 (21:49 +0000)
committerChristopher L. Conway <christopherleeconway@gmail.com>
Wed, 20 Oct 2010 21:49:34 +0000 (21:49 +0000)
Disabling type checking when --no-checking is given (Fixes: #221)

src/main/getopt.cpp
src/main/main.cpp
src/main/usage.h

index 57aa84a576793e57c8cc34e835cb0f6af0d9a8cc..5ddeced5d06e7e863ff79f7605d496a4aae924f2 100644 (file)
@@ -128,7 +128,7 @@ static struct option cmdlineOptions[] = {
   { "no-interactive", no_argument   , NULL, NO_INTERACTIVE },
   { "produce-models", no_argument   , NULL, PRODUCE_MODELS},
   { "produce-assignments", no_argument, NULL, PRODUCE_ASSIGNMENTS},
-  { "no-early-type-checking", no_argument, NULL, NO_EARLY_TYPE_CHECKING},
+  { "no-type-checking", no_argument, NULL, NO_EARLY_TYPE_CHECKING},
   { NULL         , no_argument      , NULL, '\0'        }
 };/* if you add things to the above, please remember to update usage.h! */
 
index fd7c1b303b312009759b33818d22d477a52575da..8f790c21139eb76770bb586c4d24ccf93bcde522 100644 (file)
@@ -123,15 +123,18 @@ int runCvc4(int argc, char* argv[]) {
   const bool inputFromStdin =
     firstArgIndex >= argc || !strcmp("-", argv[firstArgIndex]);
 
-  // if we're reading from stdin, default to interactive mode
-  // [chris 10/20/10] The expected behavior of interactive is
-  // different from the expected behavior of file input from
-  // stdin, due to EOL escapes in interactive mode
-
+  // if we're reading from stdin on a TTY, default to interactive mode
   if(!options.interactiveSetByUser) {
     options.interactive = inputFromStdin && isatty(fileno(stdin));
   }
 
+  /* Early type checking can be turned off by --no-type-checking OR
+     --no-checking. We're assuming that earlyTypeChecking is not
+     explicitly set by the user. */
+  if(options.earlyTypeChecking) {
+    options.earlyTypeChecking = options.semanticChecks;
+  }
+
   // Create the expression manager
   ExprManager exprMgr(options.earlyTypeChecking);
 
index ed35e76e8dc72da761b10ad7f17d6502cd45040a..7affc254cdb20ac419b04ce285a37ddad8a362d4 100644 (file)
@@ -38,7 +38,8 @@ CVC4 options:\n\
    --show-config          show CVC4 static configuration\n\
    --segv-nospin          don't spin on segfault waiting for gdb\n\
    --no-checking          disable semantic checks in the parser\n\
-   --strict-parsing       fail on inputs that are not strictly conformant (SMT2 only)\n\
+   --no-type-checking     disable type checking [default in non-debug builds]\n\
+   --strict-parsing       fail on non-conformant inputs (SMT2 only)\n\
    --verbose | -v         increase verbosity (repeatable)\n\
    --quiet | -q           decrease verbosity (repeatable)\n\
    --trace | -t           tracing for something (e.g. --trace pushpop)\n\
@@ -51,8 +52,7 @@ CVC4 options:\n\
    --no-interactive       do not run interactively\n\
    --produce-models       support the get-value command\n\
    --produce-assignments  support the get-assignment command\n\
-   --lazy-definition-expansion expand define-fun lazily\n\
-   --no-early-type-checking don't typecheck at Expr creation [non-DEBUG builds never do]\n";
+   --lazy-definition-expansion expand define-fun lazily\n";
 
 }/* CVC4::main namespace */
 }/* CVC4 namespace */