diff options
author | Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr> | 2016-10-05 18:18:22 +0200 |
---|---|---|
committer | Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr> | 2016-10-05 18:18:22 +0200 |
commit | 2dcd8f2e82366bb3b0f51a42426ccdfbb00281dc (patch) | |
tree | 4e9a44599dec13e262538e70a6a60bcf3e5fa97e /parsing/cLexer.ml4 | |
parent | 01a448be0133872a686e613ab1034b4cb97cd666 (diff) | |
parent | 8114da3ba8a9b31ffe194e7f7f0239ecc2219b9c (diff) |
Merge branch 'v8.6'
Diffstat (limited to 'parsing/cLexer.ml4')
-rw-r--r-- | parsing/cLexer.ml4 | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/parsing/cLexer.ml4 b/parsing/cLexer.ml4 index 542f8f067..f19759470 100644 --- a/parsing/cLexer.ml4 +++ b/parsing/cLexer.ml4 @@ -479,6 +479,14 @@ let find_keyword loc id s = | None -> raise Not_found | Some c -> KEYWORD c +let process_sequence loc bp c cs = + let rec aux n cs = + match Stream.peek cs with + | Some c' when c == c' -> Stream.junk cs; aux (n+1) cs + | _ -> BULLET (String.make n c), set_loc_pos loc bp (Stream.count cs) + in + aux 1 cs + (* Must be a special token *) let process_chars loc bp c cs = let t = progress_from_byte loc None (-1) !token_tree cs c in @@ -544,6 +552,12 @@ let rec next_token loc = parser bp | _ -> () in (t, set_loc_pos loc bp ep) + | [< ' ('-'|'+'|'*' as c); s >] -> + let t,new_between_com = + if !between_com then process_sequence loc bp c s, true + else process_chars loc bp c s,false + in + comment_stop bp; between_com := new_between_com; t | [< ''?'; s >] ep -> let t = parse_after_qmark loc bp s in comment_stop bp; (t, set_loc_pos loc ep bp) |