summaryrefslogtreecommitdiff
path: root/test/Lex/scanner.mll
diff options
context:
space:
mode:
Diffstat (limited to 'test/Lex/scanner.mll')
-rw-r--r--test/Lex/scanner.mll132
1 files changed, 0 insertions, 132 deletions
diff --git a/test/Lex/scanner.mll b/test/Lex/scanner.mll
deleted file mode 100644
index 131272fdd4..0000000000
--- a/test/Lex/scanner.mll
+++ /dev/null
@@ -1,132 +0,0 @@
-(***********************************************************************)
-(* *)
-(* Objective Caml *)
-(* *)
-(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
-(* *)
-(* Copyright 1996 Institut National de Recherche en Informatique et *)
-(* en Automatique. All rights reserved. This file is distributed *)
-(* under the terms of the Q Public License version 1.0. *)
-(* *)
-(***********************************************************************)
-
-(* $Id$ *)
-
-(* The lexical analyzer for lexer definitions. *)
-
-{
-open Syntax
-open Grammar
-open Scan_aux
-}
-
-rule main = parse
- [' ' '\010' '\013' '\009' ] +
- { main lexbuf }
- | "(*"
- { comment_depth := 1;
- comment lexbuf;
- main lexbuf }
- | (['A'-'Z' 'a'-'z'] | '_' ['A'-'Z' 'a'-'z' '\'' '0'-'9'])
- ( '_' ? ['A'-'Z' 'a'-'z' ''' '0'-'9'] ) *
- { match Lexing.lexeme lexbuf with
- "rule" -> Trule
- | "parse" -> Tparse
- | "and" -> Tand
- | "eof" -> Teof
- | s -> Tident s }
- | '"'
- { reset_string_buffer();
- string lexbuf;
- Tstring(get_stored_string()) }
- | "'"
- { Tchar(char lexbuf) }
- | '{'
- { let n1 = Lexing.lexeme_end lexbuf in
- brace_depth := 1;
- let n2 = action lexbuf in
- Taction(Location(n1, n2)) }
- | '=' { Tequal }
- | ";;" { Tend }
- | '|' { Tor }
- | '_' { Tunderscore }
- | "eof" { Teof }
- | '[' { Tlbracket }
- | ']' { Trbracket }
- | '*' { Tstar }
- | '?' { Tmaybe }
- | '+' { Tplus }
- | '(' { Tlparen }
- | ')' { Trparen }
- | '^' { Tcaret }
- | '-' { Tdash }
- | eof
- { raise(Lexical_error "unterminated lexer definition") }
- | _
- { raise(Lexical_error("illegal character " ^ Lexing.lexeme lexbuf)) }
-
-and action = parse
- '{'
- { incr brace_depth;
- action lexbuf }
- | '}'
- { decr brace_depth;
- if !brace_depth = 0 then Lexing.lexeme_start lexbuf else action lexbuf }
- | '"'
- { reset_string_buffer();
- string lexbuf;
- reset_string_buffer();
- action lexbuf }
- | '\''
- { let _ = char lexbuf in action lexbuf }
- | "(*"
- { comment_depth := 1;
- comment lexbuf;
- action lexbuf }
- | eof
- { raise (Lexical_error "unterminated action") }
- | _
- { action lexbuf }
-
-and string = parse
- '"'
- { () }
- | '\\' [' ' '\010' '\013' '\009' '\026' '\012'] +
- { string lexbuf }
- | '\\' ['\\' '"' 'n' 't' 'b' 'r']
- { store_string_char(char_for_backslash(Lexing.lexeme_char lexbuf 1));
- string lexbuf }
- | '\\' ['0'-'9'] ['0'-'9'] ['0'-'9']
- { store_string_char(char_for_decimal_code lexbuf 1);
- string lexbuf }
- | eof
- { raise(Lexical_error "unterminated string") }
- | _
- { store_string_char(Lexing.lexeme_char lexbuf 0);
- string lexbuf }
-
-and char = parse
- [^ '\\'] "'"
- { Lexing.lexeme_char lexbuf 0 }
- | '\\' ['\\' '\'' 'n' 't' 'b' 'r'] "'"
- { char_for_backslash (Lexing.lexeme_char lexbuf 1) }
- | '\\' ['0'-'9'] ['0'-'9'] ['0'-'9'] "'"
- { char_for_decimal_code lexbuf 1 }
- | _
- { raise(Lexical_error "bad character constant") }
-
-and comment = parse
- "(*"
- { incr comment_depth; comment lexbuf }
- | "*)"
- { decr comment_depth;
- if !comment_depth = 0 then () else comment lexbuf }
- | '"'
- { reset_string_buffer();
- string lexbuf;
- reset_string_buffer();
- comment lexbuf }
- | eof
- { raise(Lexical_error "unterminated comment") }
- | _
- { comment lexbuf }