From 2fb1f4f1bfdae2fe65c02048380fe8b6e619483e Mon Sep 17 00:00:00 2001 From: Guillaume Melquiond Date: Wed, 5 Oct 2016 08:16:42 +0200 Subject: Revert "Move bullet detection from lexer to parser (bug #5102)." This reverts commit 466b7e69e49a5f4bba36b834a2e046f120ece07c. --- parsing/cLexer.ml4 | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'parsing/cLexer.ml4') diff --git a/parsing/cLexer.ml4 b/parsing/cLexer.ml4 index fcdc37c08..bec891f7f 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) -- cgit v1.2.3