diff options
author | Damien Doligez <damien.doligez-inria.fr> | 2005-03-24 17:20:54 +0000 |
---|---|---|
committer | Damien Doligez <damien.doligez-inria.fr> | 2005-03-24 17:20:54 +0000 |
commit | e6007f6057d1d4e68a5618f232953344b683a168 (patch) | |
tree | ee5baa59e5eb0ebc4354bd215bd3c682986bf632 /yacc/reader.c | |
parent | 958bd6c49292afa23e5fee51770c45d1f8499faa (diff) |
fusion des changements jusqu'a 3.08.3
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6824 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'yacc/reader.c')
-rw-r--r-- | yacc/reader.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/yacc/reader.c b/yacc/reader.c index 400c4301e..f1ae6f87f 100644 --- a/yacc/reader.c +++ b/yacc/reader.c @@ -825,13 +825,17 @@ get_tag(void) register int i; register char *s; char *t_line = dup_line(); + long bracket_depth; cinc = 0; + bracket_depth = 0; while (1) { c = *++cptr; if (c == EOF) unexpected_EOF(); if (c == '\n') syntax_error(lineno, line, cptr); - if (c == '>' && cptr[-1] != '-') break; + if (c == '>' && 0 == bracket_depth && cptr[-1] != '-') break; + if (c == '[') ++ bracket_depth; + if (c == ']') -- bracket_depth; cachec(c); } ++cptr; |