pike.git/
src/
language.yacc
Branch:
Tag:
Non-build tags
All tags
No tags
2004-08-25
2004-08-25 14:16:20 by Henrik Grubbström (Grubba) <grubba@grubba.org>
019596b17343089b35a19f36b2f1701f2376de3a (
57
lines) (+
31
/-
26
)
[
Show
|
Annotate
]
Branch:
7.9
COPY_LINE_NUMBER_INFO() now checks the last arg by itself.
Rev: src/language.yacc:1.340
2:
|| This file is part of Pike. For copyright information see COPYRIGHT. || Pike is distributed under GPL, LGPL and MPL. See the file COPYING || for more information.
-
|| $Id: language.yacc,v 1.
339
2004/08/
16
16:
22:11
mast
Exp $
+
|| $Id: language.yacc,v 1.
340
2004/08/
25
14:
16:
20
grubba
Exp $
*/ %pure_parser
113:
/* This is the grammar definition of Pike. */ #include "global.h"
-
RCSID("$Id: language.yacc,v 1.
339
2004/08/
16
16:
22:11
mast
Exp $");
+
RCSID("$Id: language.yacc,v 1.
340
2004/08/
25
14:
16:
20
grubba
Exp $");
#ifdef HAVE_MEMORY_H #include <memory.h> #endif
573:
block_or_semi: block { $$ = check_node_hash(mknode(F_COMMA_EXPR,$1,mknode(F_RETURN,mkintnode(0),0)));
-
if ($1)
COPY_LINE_NUMBER_INFO
($$, $1);
+
COPY_LINE_NUMBER_INFO($$, $1);
} | ';' { $$ = NULL; } | TOK_LEX_EOF { yyerror("Expected ';'."); $$ = NULL; }
1123:
struct pike_type *s = compiler_pop_type(); $$ = mktypenode(s); free_type(s);
-
COPY_LINE_NUMBER_INFO
($$, $1);
+
COPY_LINE_NUMBER_INFO($$, $1);
free_node ($1); } ;
1133:
struct pike_type *s = compiler_pop_type(); $$ = mktypenode(s); free_type(s);
-
COPY_LINE_NUMBER_INFO
($$, $1);
+
COPY_LINE_NUMBER_INFO($$, $1);
free_node ($1); } ;
1677:
unuse_modules(Pike_compiler->num_used_modules - $<number>1); pop_local_variables($<number>2); Pike_compiler->compiler_frame->last_block_level=$<number>4;
-
if ($5)
COPY_LINE_NUMBER_INFO
($5, $3);
+
COPY_LINE_NUMBER_INFO($5, $3);
free_node ($3); $$=$5; }
1835:
/* FIXME: This won't be correct if the node happens to be shared. * That's an issue to be solved with shared nodes in general, * though. */
-
COPY_LINE_NUMBER_INFO
($$, $1);
+
COPY_LINE_NUMBER_INFO($$, $1);
} ;
2642:
mkcastnode(void_type_string, $8), mkcastnode(void_type_string, $9))); $$ = mkcastnode(void_type_string, $$);
-
COPY_LINE_NUMBER_INFO
($$, $3);
+
COPY_LINE_NUMBER_INFO($$, $3);
free_node ($3); pop_local_variables($<number>2); Pike_compiler->compiler_frame->last_block_level=$<number>4;
2702:
free_node($6); $$=$9; }
-
COPY_LINE_NUMBER_INFO
($$, $3);
+
COPY_LINE_NUMBER_INFO($$, $3);
free_node ($3); pop_local_variables($<number>2); Pike_compiler->compiler_frame->last_block_level=$<number>4;
2714:
TOK_WHILE '(' safe_comma_expr end_cond expected_semicolon { $$=mknode(F_DO,$3,$6);
-
COPY_LINE_NUMBER_INFO
($$, $2);
+
COPY_LINE_NUMBER_INFO($$, $2);
free_node ($2); Pike_compiler->compiler_frame->opt_flags |= OPT_CUSTOM_LABELS; }
2757:
{ $$=mknode(F_COMMA_EXPR, mkcastnode(void_type_string, $6), mknode(F_FOR,$8,mknode(':',$12,$10)));
-
COPY_LINE_NUMBER_INFO
($$, $3);
+
COPY_LINE_NUMBER_INFO($$, $3);
free_node ($3); pop_local_variables($<number>2); Pike_compiler->compiler_frame->last_block_level=$<number>4;
2779:
'(' safe_comma_expr end_cond statement { $$=mknode(F_FOR,$6,mknode(':',$8,NULL));
-
COPY_LINE_NUMBER_INFO
($$, $3);
+
COPY_LINE_NUMBER_INFO($$, $3);
free_node ($3); pop_local_variables($<number>2); Pike_compiler->compiler_frame->last_block_level=$<number>4;
2804:
'(' safe_comma_expr end_cond statement { $$=mknode(F_SWITCH,$6,$8);
-
COPY_LINE_NUMBER_INFO
($$, $3);
+
COPY_LINE_NUMBER_INFO($$, $3);
free_node ($3); pop_local_variables($<number>2); Pike_compiler->compiler_frame->last_block_level=$<number>4;
2898:
| open_bracket_with_line_info low_lvalue_list ']' '=' expr0 { $$=mknode(F_ASSIGN,$5,mknode(F_ARRAY_LVALUE,$2,0));
-
COPY_LINE_NUMBER_INFO
($$, $1);
+
COPY_LINE_NUMBER_INFO($$, $1);
free_node ($1); } | expr4 assign expr0 { $$=mknode($2,$1,$3); }
2907:
| open_bracket_with_line_info low_lvalue_list ']' assign expr0 { $$=mknode($4,mknode(F_ARRAY_LVALUE,$2,0),$5);
-
COPY_LINE_NUMBER_INFO
($$, $1);
+
COPY_LINE_NUMBER_INFO($$, $1);
free_node ($1); } | open_bracket_with_line_info low_lvalue_list ']' error
3145:
| expr4 open_paren_with_line_info expr_list ')' { $$=mkapplynode($1,$3);
-
COPY_LINE_NUMBER_INFO
($$, $2);
+
COPY_LINE_NUMBER_INFO($$, $2);
free_node ($2); } | expr4 open_paren_with_line_info error ')'
3176:
| expr4 open_bracket_with_line_info '*' ']' { $$=mknode(F_AUTO_MAP_MARKER, $1, 0);
-
COPY_LINE_NUMBER_INFO
($$, $2);
+
COPY_LINE_NUMBER_INFO($$, $2);
free_node ($2); } | expr4 open_bracket_with_line_info expr0 ']' { $$=mknode(F_INDEX,$1,$3);
-
COPY_LINE_NUMBER_INFO
($$, $2);
+
COPY_LINE_NUMBER_INFO($$, $2);
free_node ($2); } | expr4 open_bracket_with_line_info comma_expr_or_zero expected_dot_dot comma_expr_or_maxint ']' { $$=mknode(F_RANGE,$1,mknode(F_ARG_LIST,$3,$5));
-
COPY_LINE_NUMBER_INFO
($$, $2);
+
COPY_LINE_NUMBER_INFO($$, $2);
free_node ($2); } | expr4 open_bracket_with_line_info error ']'
3211:
| expr4 open_bracket_with_line_info error ')' {$$=$1; yyerror("Missing ']'."); free_node ($2);} | open_paren_with_line_info comma_expr2 ')'
-
{$$=$2; COPY_LINE_NUMBER_INFO
($$, $1); free_node ($1);}
+
{$$=$2; COPY_LINE_NUMBER_INFO($$, $1); free_node ($1);}
| open_paren_with_line_info '{' expr_list close_brace_or_missing ')' { $$=mkefuncallnode("aggregate",$3);
-
COPY_LINE_NUMBER_INFO
($$, $1);
+
COPY_LINE_NUMBER_INFO($$, $1);
free_node ($1); } | open_paren_with_line_info
3223:
m_expr_list close_bracket_or_missing ')' { $$=mkefuncallnode("aggregate_mapping",$3);
-
COPY_LINE_NUMBER_INFO
($$, $1);
+
COPY_LINE_NUMBER_INFO($$, $1);
free_node ($1); free_node ($2); } | TOK_MULTISET_START line_number_info expr_list TOK_MULTISET_END { $$=mkefuncallnode("aggregate_multiset",$3);
-
COPY_LINE_NUMBER_INFO
($$, $2);
+
COPY_LINE_NUMBER_INFO($$, $2);
free_node ($2); } | TOK_MULTISET_START line_number_info expr_list ')' { yyerror("Missing '>'."); $$=mkefuncallnode("aggregate_multiset",$3);
-
COPY_LINE_NUMBER_INFO
($$, $2);
+
COPY_LINE_NUMBER_INFO($$, $2);
free_node ($2); } | open_paren_with_line_info error ')' { $$=$1; yyerrok; }
3263:
| expr4 TOK_ARROW line_number_info magic_identifier { $$=mknode(F_ARROW,$1,$4);
-
COPY_LINE_NUMBER_INFO
($$, $3);
+
COPY_LINE_NUMBER_INFO($$, $3);
free_node ($3); } | expr4 TOK_ARROW line_number_info error {$$=$1; free_node ($3);}
3748:
lvalue: expr4 | open_bracket_with_line_info low_lvalue_list ']'
-
{
$$=mknode(F_ARRAY_LVALUE, $2,0); COPY_LINE_NUMBER_INFO
($$, $1); free_node
($1); }
+
{
+
$$=mknode(F_ARRAY_LVALUE, $2,0);
+
COPY_LINE_NUMBER_INFO($$, $1);
+
free_node($1);
+
}
| type6 TOK_IDENTIFIER { int id = add_local_name($2->u.sval.u.string,compiler_pop_type(),0);