pike.git/
src/
language.yacc
Branch:
Tag:
Non-build tags
All tags
No tags
2001-06-30
2001-06-30 02:34:39 by Martin Stjernholm <mast@lysator.liu.se>
587c6ae8a338a416b43d723874f4aa45054c4ece (
22
lines) (+
17
/-
5
)
[
Show
|
Annotate
]
Branch:
7.9
Slightly more accurate line number tracking of function block start.
Rev: src/language.yacc:1.252
112:
/* This is the grammar definition of Pike. */ #include "global.h"
-
RCSID("$Id: language.yacc,v 1.
251
2001/06/30
01
:
32
:
42
mast Exp $");
+
RCSID("$Id: language.yacc,v 1.
252
2001/06/30
02
:
34
:
39
mast Exp $");
#ifdef HAVE_MEMORY_H #include <memory.h> #endif
543:
block_or_semi: block { $$ = check_node_hash(mknode(F_COMMA_EXPR,$1,mknode(F_RETURN,mkintnode(0),0)));
+
if ($1) $$->line_number = $1->line_number;
} | ';' { $$ = NULL; } | TOK_LEX_EOF { yyerror("Expected ';'."); $$ = NULL; }
820:
free_string(bad_arg_str); }
+
{
+
int l = $10->line_number;
+
char *f = $10->current_file;
if (check_args) { /* Prepend the arg checking code. */ $10 = mknode(F_COMMA_EXPR, mknode(F_POP_VALUE, check_args, NULL), $10); }
-
+
lex.current_line = l;
+
lex.current_file = f;
+
}
f=dooptcode(check_node_hash($4)->u.sval.u.string, check_node_hash($10),
1606:
else Pike_compiler->compiler_frame->last_block_level=$<number>2; }
+
{
+
$<number>$=lex.current_line;
+
}
statements end_block { unuse_modules(Pike_compiler->num_used_modules - $<number>1); pop_local_variables($<number>2); Pike_compiler->compiler_frame->last_block_level=$<number>3;
-
$$=
$4
;
+
if ($5) $5->line_number = $<number>4;
+
$$=
$5
;
} ;