X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fstats%2Fnpar.c;h=73db1ad0b369fbe63889931220d1403d4f0ba97e;hb=ced729f41f90e56a7c8ec12f6497f61c9b73b779;hp=a36715e65e4d7ee96cd8a940ce95db38708c5bc1;hpb=5f53ffc9e8e493bb9a0959a9442d839f76fa39ce;p=pspp-builds.git diff --git a/src/language/stats/npar.c b/src/language/stats/npar.c index a36715e6..73db1ad0 100644 --- a/src/language/stats/npar.c +++ b/src/language/stats/npar.c @@ -158,7 +158,7 @@ parse_npar_tests (struct lexer *lexer, struct dataset *ds, struct cmd_npar_tests memset (npt->a_statistics, 0, sizeof npt->a_statistics); for (;;) { - if (lex_match_hyphenated_word (lexer, "COCHRAN")) + if (lex_match_id (lexer, "COCHRAN")) { npt->cochran++; switch (npar_cochran (lexer, ds, nps)) @@ -174,7 +174,7 @@ parse_npar_tests (struct lexer *lexer, struct dataset *ds, struct cmd_npar_tests NOT_REACHED (); } } - else if (lex_match_hyphenated_word (lexer, "FRIEDMAN")) + else if (lex_match_id (lexer, "FRIEDMAN")) { npt->friedman++; switch (npar_friedman (lexer, ds, nps)) @@ -190,7 +190,7 @@ parse_npar_tests (struct lexer *lexer, struct dataset *ds, struct cmd_npar_tests NOT_REACHED (); } } - else if (lex_match_hyphenated_word (lexer, "KENDALL")) + else if (lex_match_id (lexer, "KENDALL")) { npt->kendall++; switch (npar_kendall (lexer, ds, nps)) @@ -206,7 +206,7 @@ parse_npar_tests (struct lexer *lexer, struct dataset *ds, struct cmd_npar_tests NOT_REACHED (); } } - else if (lex_match_hyphenated_word (lexer, "RUNS")) + else if (lex_match_id (lexer, "RUNS")) { npt->runs++; switch (npar_runs (lexer, ds, nps)) @@ -222,9 +222,9 @@ parse_npar_tests (struct lexer *lexer, struct dataset *ds, struct cmd_npar_tests NOT_REACHED (); } } - else if (lex_match_hyphenated_word (lexer, "CHISQUARE")) + else if (lex_match_id (lexer, "CHISQUARE")) { - lex_match (lexer, '='); + lex_match (lexer, T_EQUALS); npt->chisquare++; switch (npar_chisquare (lexer, ds, nps)) { @@ -239,9 +239,9 @@ parse_npar_tests (struct lexer *lexer, struct dataset *ds, struct cmd_npar_tests NOT_REACHED (); } } - else if (lex_match_hyphenated_word (lexer, "BINOMIAL")) + else if (lex_match_id (lexer, "BINOMIAL")) { - lex_match (lexer, '='); + lex_match (lexer, T_EQUALS); npt->binomial++; switch (npar_binomial (lexer, ds, nps)) { @@ -259,7 +259,7 @@ parse_npar_tests (struct lexer *lexer, struct dataset *ds, struct cmd_npar_tests else if (lex_match_hyphenated_word (lexer, "K-W") || lex_match_hyphenated_word (lexer, "KRUSKAL-WALLIS")) { - lex_match (lexer, '='); + lex_match (lexer, T_EQUALS); npt->kruskal_wallis++; switch (npar_kruskal_wallis (lexer, ds, nps)) { @@ -277,7 +277,7 @@ parse_npar_tests (struct lexer *lexer, struct dataset *ds, struct cmd_npar_tests else if (lex_match_hyphenated_word (lexer, "M-W") || lex_match_hyphenated_word (lexer, "MANN-WHITNEY")) { - lex_match (lexer, '='); + lex_match (lexer, T_EQUALS); npt->mann_whitney++; switch (npar_mann_whitney (lexer, ds, nps)) { @@ -292,9 +292,9 @@ parse_npar_tests (struct lexer *lexer, struct dataset *ds, struct cmd_npar_tests NOT_REACHED (); } } - else if (lex_match_hyphenated_word (lexer, "WILCOXON")) + else if (lex_match_id (lexer, "WILCOXON")) { - lex_match (lexer, '='); + lex_match (lexer, T_EQUALS); npt->wilcoxon++; switch (npar_wilcoxon (lexer, ds, nps)) { @@ -309,9 +309,9 @@ parse_npar_tests (struct lexer *lexer, struct dataset *ds, struct cmd_npar_tests NOT_REACHED (); } } - else if (lex_match_hyphenated_word (lexer, "SIGN")) + else if (lex_match_id (lexer, "SIGN")) { - lex_match (lexer, '='); + lex_match (lexer, T_EQUALS); npt->sign++; switch (npar_sign (lexer, ds, nps)) { @@ -326,36 +326,36 @@ parse_npar_tests (struct lexer *lexer, struct dataset *ds, struct cmd_npar_tests NOT_REACHED (); } } - else if (lex_match_hyphenated_word (lexer, "MISSING")) + else if (lex_match_id (lexer, "MISSING")) { - lex_match (lexer, '='); + lex_match (lexer, T_EQUALS); npt->missing++; if (npt->missing > 1) { msg (SE, _("The %s subcommand may be given only once."), "MISSING"); goto lossage; } - while (lex_token (lexer) != '/' && lex_token (lexer) != '.') + while (lex_token (lexer) != T_SLASH && lex_token (lexer) != T_ENDCMD) { - if (lex_match_hyphenated_word (lexer, "ANALYSIS")) + if (lex_match_id (lexer, "ANALYSIS")) npt->miss = MISS_ANALYSIS; - else if (lex_match_hyphenated_word (lexer, "LISTWISE")) + else if (lex_match_id (lexer, "LISTWISE")) npt->miss = MISS_LISTWISE; - else if (lex_match_hyphenated_word (lexer, "INCLUDE")) + else if (lex_match_id (lexer, "INCLUDE")) nps->filter = MV_SYSTEM; - else if (lex_match_hyphenated_word (lexer, "EXCLUDE")) + else if (lex_match_id (lexer, "EXCLUDE")) nps->filter = MV_ANY; else { lex_error (lexer, NULL); goto lossage; } - lex_match (lexer, ','); + lex_match (lexer, T_COMMA); } } - else if (lex_match_hyphenated_word (lexer, "METHOD")) + else if (lex_match_id (lexer, "METHOD")) { - lex_match (lexer, '='); + lex_match (lexer, T_EQUALS); npt->method++; if (npt->method > 1) { @@ -375,15 +375,15 @@ parse_npar_tests (struct lexer *lexer, struct dataset *ds, struct cmd_npar_tests NOT_REACHED (); } } - else if (lex_match_hyphenated_word (lexer, "STATISTICS")) + else if (lex_match_id (lexer, "STATISTICS")) { - lex_match (lexer, '='); + lex_match (lexer, T_EQUALS); npt->statistics++; - while (lex_token (lexer) != '/' && lex_token (lexer) != '.') + while (lex_token (lexer) != T_SLASH && lex_token (lexer) != T_ENDCMD) { - if (lex_match_hyphenated_word (lexer, "DESCRIPTIVES")) + if (lex_match_id (lexer, "DESCRIPTIVES")) npt->a_statistics[NPAR_ST_DESCRIPTIVES] = 1; - else if (lex_match_hyphenated_word (lexer, "QUARTILES")) + else if (lex_match_id (lexer, "QUARTILES")) npt->a_statistics[NPAR_ST_QUARTILES] = 1; else if (lex_match (lexer, T_ALL)) npt->a_statistics[NPAR_ST_ALL] = 1; @@ -392,22 +392,22 @@ parse_npar_tests (struct lexer *lexer, struct dataset *ds, struct cmd_npar_tests lex_error (lexer, NULL); goto lossage; } - lex_match (lexer, ','); + lex_match (lexer, T_COMMA); } } else if ( settings_get_syntax () != COMPATIBLE && lex_match_id (lexer, "ALGORITHM")) { - lex_match (lexer, '='); + lex_match (lexer, T_EQUALS); if (lex_match_id (lexer, "COMPATIBLE")) settings_set_cmd_algorithm (COMPATIBLE); else if (lex_match_id (lexer, "ENHANCED")) settings_set_cmd_algorithm (ENHANCED); } - if (!lex_match (lexer, '/')) + if (!lex_match (lexer, T_SLASH)) break; } - if (lex_token (lexer) != '.') + if (lex_token (lexer) != T_ENDCMD) { lex_error (lexer, _("expecting end of command")); goto lossage; @@ -574,7 +574,7 @@ npar_runs (struct lexer *lexer, struct dataset *ds, nt->execute = runs_execute; nt->insert_variables = one_sample_insert_variables; - if ( lex_force_match (lexer, '(') ) + if ( lex_force_match (lexer, T_LPAREN) ) { if ( lex_match_id (lexer, "MEAN")) { @@ -600,8 +600,8 @@ npar_runs (struct lexer *lexer, struct dataset *ds, return 0; } - lex_force_match (lexer, ')'); - lex_force_match (lexer, '='); + lex_force_match (lexer, T_RPAREN); + lex_force_match (lexer, T_EQUALS); if (!parse_variables_const_pool (lexer, specs->pool, dataset_dict (ds), &tp->vars, &tp->n_vars, PV_NO_SCRATCH | PV_NO_DUPLICATE | PV_NUMERIC)) @@ -632,7 +632,7 @@ npar_friedman (struct lexer *lexer, struct dataset *ds, nt->execute = friedman_execute; nt->insert_variables = one_sample_insert_variables; - lex_match (lexer, '='); + lex_match (lexer, T_EQUALS); if (!parse_variables_const_pool (lexer, specs->pool, dataset_dict (ds), &ost->vars, &ost->n_vars, @@ -663,7 +663,7 @@ npar_kendall (struct lexer *lexer, struct dataset *ds, nt->execute = friedman_execute; nt->insert_variables = one_sample_insert_variables; - lex_match (lexer, '='); + lex_match (lexer, T_EQUALS); if (!parse_variables_const_pool (lexer, specs->pool, dataset_dict (ds), &ost->vars, &ost->n_vars, @@ -693,7 +693,7 @@ npar_cochran (struct lexer *lexer, struct dataset *ds, nt->execute = cochran_execute; nt->insert_variables = one_sample_insert_variables; - lex_match (lexer, '='); + lex_match (lexer, T_EQUALS); if (!parse_variables_const_pool (lexer, specs->pool, dataset_dict (ds), &ft->vars, &ft->n_vars, @@ -734,13 +734,13 @@ npar_chisquare (struct lexer *lexer, struct dataset *ds, cstp->ranged = false; - if ( lex_match (lexer, '(')) + if ( lex_match (lexer, T_LPAREN)) { cstp->ranged = true; if ( ! lex_force_num (lexer)) return 0; cstp->lo = lex_integer (lexer); lex_get (lexer); - lex_force_match (lexer, ','); + lex_force_match (lexer, T_COMMA); if (! lex_force_num (lexer) ) return 0; cstp->hi = lex_integer (lexer); if ( cstp->lo >= cstp->hi ) @@ -752,16 +752,16 @@ npar_chisquare (struct lexer *lexer, struct dataset *ds, return 0; } lex_get (lexer); - if (! lex_force_match (lexer, ')')) return 0; + if (! lex_force_match (lexer, T_RPAREN)) return 0; } cstp->n_expected = 0; cstp->expected = NULL; - if ( lex_match (lexer, '/') ) + if ( lex_match (lexer, T_SLASH) ) { if ( lex_match_id (lexer, "EXPECTED") ) { - lex_force_match (lexer, '='); + lex_force_match (lexer, T_EQUALS); if ( ! lex_match_id (lexer, "EQUAL") ) { double f; @@ -772,13 +772,13 @@ npar_chisquare (struct lexer *lexer, struct dataset *ds, n = 1; f = lex_number (lexer); lex_get (lexer); - if ( lex_match (lexer, '*')) + if ( lex_match (lexer, T_ASTERISK)) { n = f; f = lex_number (lexer); lex_get (lexer); } - lex_match (lexer, ','); + lex_match (lexer, T_COMMA); cstp->n_expected += n; cstp->expected = pool_realloc (specs->pool, @@ -794,7 +794,7 @@ npar_chisquare (struct lexer *lexer, struct dataset *ds, } } else - lex_put_back (lexer, '/'); + lex_put_back (lexer, T_SLASH); } if ( cstp->ranged && cstp->n_expected > 0 && @@ -826,6 +826,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; @@ -834,33 +835,33 @@ npar_binomial (struct lexer *lexer, struct dataset *ds, btp->p = 0.5; - if ( lex_match (lexer, '(') ) + if ( lex_match (lexer, T_LPAREN) ) { + equals = false; if ( lex_force_num (lexer) ) { btp->p = lex_number (lexer); lex_get (lexer); - lex_force_match (lexer, ')'); + lex_force_match (lexer, T_RPAREN); } else return 0; } else - /* Kludge: q2c swallows the '=' so put it back here */ - lex_put_back (lexer, '='); + equals = true; - if (lex_match (lexer, '=') ) + if (equals || lex_match (lexer, T_EQUALS) ) { if (parse_variables_const_pool (lexer, specs->pool, dataset_dict (ds), &tp->vars, &tp->n_vars, PV_NUMERIC | PV_NO_SCRATCH | PV_NO_DUPLICATE) ) { - if (lex_match (lexer, '(')) + if (lex_match (lexer, T_LPAREN)) { lex_force_num (lexer); btp->category1 = lex_number (lexer); lex_get (lexer); - if ( lex_match (lexer, ',')) + if ( lex_match (lexer, T_COMMA)) { if ( ! lex_force_num (lexer) ) return 2; btp->category2 = lex_number (lexer); @@ -871,7 +872,7 @@ npar_binomial (struct lexer *lexer, struct dataset *ds, btp->cutpoint = btp->category1; } - lex_force_match (lexer, ')'); + lex_force_match (lexer, T_RPAREN); } } else @@ -930,8 +931,8 @@ parse_two_sample_related_test (struct lexer *lexer, PV_NUMERIC | PV_NO_SCRATCH | PV_NO_DUPLICATE) ) return false; - paired = (lex_match (lexer, '(') && - lex_match_id (lexer, "PAIRED") && lex_match (lexer, ')')); + paired = (lex_match (lexer, T_LPAREN) && + lex_match_id (lexer, "PAIRED") && lex_match (lexer, T_RPAREN)); } @@ -1025,7 +1026,7 @@ parse_n_sample_related_test (struct lexer *lexer, nst->indep_var = parse_variable_const (lexer, dict); - if ( ! lex_force_match (lexer, '(')) + if ( ! lex_force_match (lexer, T_LPAREN)) return false; value_init (&nst->val1, var_get_width (nst->indep_var)); @@ -1035,7 +1036,7 @@ parse_n_sample_related_test (struct lexer *lexer, return false; } - lex_match (lexer, ','); + lex_match (lexer, T_COMMA); value_init (&nst->val2, var_get_width (nst->indep_var)); if ( ! parse_value (lexer, &nst->val2, var_get_width (nst->indep_var))) @@ -1044,7 +1045,7 @@ parse_n_sample_related_test (struct lexer *lexer, return false; } - if ( ! lex_force_match (lexer, ')')) + if ( ! lex_force_match (lexer, T_RPAREN)) return false; return true; @@ -1216,14 +1217,14 @@ npar_method (struct lexer *lexer, struct npar_specs *specs) { specs->timer = 5.0; - if ( lex_match (lexer, '(')) + if ( lex_match (lexer, T_LPAREN)) { if ( lex_force_num (lexer) ) { specs->timer = lex_number (lexer); lex_get (lexer); } - lex_force_match (lexer, ')'); + lex_force_match (lexer, T_RPAREN); } } }