summaryrefslogtreecommitdiffstats
path: root/yacc/reader.c
diff options
context:
space:
mode:
authorDamien Doligez <damien.doligez-inria.fr>2005-03-24 17:20:54 +0000
committerDamien Doligez <damien.doligez-inria.fr>2005-03-24 17:20:54 +0000
commite6007f6057d1d4e68a5618f232953344b683a168 (patch)
treeee5baa59e5eb0ebc4354bd215bd3c682986bf632 /yacc/reader.c
parent958bd6c49292afa23e5fee51770c45d1f8499faa (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.c6
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;