Mercurial > hg > octave-nkf
diff src/parse.y @ 1511:74f9e88a2c12
[project @ 1995-10-03 10:49:31 by jwe]
author | jwe |
---|---|
date | Tue, 03 Oct 1995 10:50:19 +0000 |
parents | 893b416bb919 |
children | c71ec9e06a84 |
line wrap: on
line diff
--- a/src/parse.y +++ b/src/parse.y @@ -157,6 +157,9 @@ static tree_index_expression *make_index_expression (tree_indirect_ref *indir, tree_argument_list *args); +// Maybe print a warning. Duh. +static void maybe_warn_missing_semi (tree_statement_list *); + #define ABORT_PARSE \ do \ { \ @@ -329,14 +332,21 @@ | comma_semi { $$ = 0; } | simple_list1 - { $$ = $1; } + { + maybe_warn_missing_semi ($1); + $$ = $1; + } + | simple_list1 comma_semi + { + maybe_warn_missing_semi ($1); + $$ = $1; + } | simple_list1 semi_comma { tree_statement *tmp = $1->rear (); tmp->set_print_flag (0); + $$ = $1; } - | simple_list1 comma_semi - { $$ = $1; } ; simple_list1 : statement @@ -350,9 +360,14 @@ tree_statement *tmp = $1->rear (); tmp->set_print_flag (0); $1->append ($3); + $$ = $1; } | simple_list1 comma_semi statement - { $1->append ($3); } + { + $1->append ($3); + maybe_warn_missing_semi ($1); + $$ = $1; + } ; semi_comma : ';' @@ -381,9 +396,14 @@ ; list : list1 - { $$ = $1; } + { + maybe_warn_missing_semi ($1); + $$ = $1; + } | list1 comma_nl_sep - { $$ = $1; } + { + $$ = $1; + } | list1 semi_sep { tree_statement *tmp = $1->rear (); @@ -397,12 +417,17 @@ $$ = new tree_statement_list ($1); } | list1 comma_nl_sep statement - { $1->append ($3); } + { + $1->append ($3); + maybe_warn_missing_semi ($1); + $$ = $1; + } | list1 semi_sep statement { tree_statement *tmp = $1->rear (); tmp->set_print_flag (0); $1->append ($3); + $$ = $1; } ; @@ -1661,3 +1686,16 @@ return retval; } + +static void +maybe_warn_missing_semi (tree_statement_list *t) +{ + if (defining_func && user_pref.warn_missing_semicolon) + { + tree_statement *tmp = t->rear(); + if (tmp->is_expression ()) + + warning ("missing semicolon near line %d, column %d", + tmp->line (), tmp->column ()); + } +}