X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fstats%2Fnpar.c;h=3f2bae298ef45669cd6331f896c160d0988ff465;hb=49239dc60d3bfe5a29b6f08b176783dd72804d91;hp=6adeca46cd0acd58a59dafd878f55bb16d6b3d72;hpb=848c950e47bf9912c91edf9aae9b3b6be21a2c01;p=pspp-builds.git diff --git a/src/language/stats/npar.c b/src/language/stats/npar.c index 6adeca46..3f2bae29 100644 --- a/src/language/stats/npar.c +++ b/src/language/stats/npar.c @@ -235,6 +235,8 @@ parse_npar_tests (struct lexer *lexer, struct dataset *ds, struct cmd_npar_tests case 2: lex_error (lexer, NULL); goto lossage; + case 3: + continue; default: NOT_REACHED (); } @@ -720,7 +722,7 @@ npar_chisquare (struct lexer *lexer, struct dataset *ds, struct chisquare_test *cstp = pool_alloc (specs->pool, sizeof (*cstp)); struct one_sample_test *tp = &cstp->parent; struct npar_test *nt = &tp->parent; - + int retval = 1; nt->execute = chisquare_execute; nt->insert_variables = one_sample_insert_variables; @@ -794,7 +796,7 @@ npar_chisquare (struct lexer *lexer, struct dataset *ds, } } else - lex_put_back (lexer, T_SLASH); + retval = 3; } if ( cstp->ranged && cstp->n_expected > 0 && @@ -815,7 +817,7 @@ npar_chisquare (struct lexer *lexer, struct dataset *ds, specs->test[specs->n_tests - 1] = nt; - return 1; + return retval; } @@ -826,6 +828,7 @@ npar_binomial (struct lexer *lexer, struct dataset *ds, struct binomial_test *btp = pool_alloc (specs->pool, sizeof (*btp)); struct one_sample_test *tp = &btp->parent; struct npar_test *nt = &tp->parent; + bool equals; nt->execute = binomial_execute; nt->insert_variables = one_sample_insert_variables; @@ -836,6 +839,7 @@ npar_binomial (struct lexer *lexer, struct dataset *ds, if ( lex_match (lexer, T_LPAREN) ) { + equals = false; if ( lex_force_num (lexer) ) { btp->p = lex_number (lexer); @@ -846,10 +850,9 @@ npar_binomial (struct lexer *lexer, struct dataset *ds, return 0; } else - /* Kludge: q2c swallows the '=' so put it back here */ - lex_put_back (lexer, T_EQUALS); + equals = true; - if (lex_match (lexer, T_EQUALS) ) + if (equals || lex_match (lexer, T_EQUALS) ) { if (parse_variables_const_pool (lexer, specs->pool, dataset_dict (ds), &tp->vars, &tp->n_vars,