From 304f5ee23498f18c1b11f58d1e94fb9a496ee7af Mon Sep 17 00:00:00 2001 From: David Scott Date: Wed, 5 Nov 2014 17:52:43 +0000 Subject: [PATCH] Re-add xl config file lexer, from xen-api history Signed-off-by: David Scott --- src/xn_cfg_lexer.ml | 209 ------------------------------------------- src/xn_cfg_lexer.mll | 18 ++++ 2 files changed, 18 insertions(+), 209 deletions(-) delete mode 100644 src/xn_cfg_lexer.ml create mode 100644 src/xn_cfg_lexer.mll diff --git a/src/xn_cfg_lexer.ml b/src/xn_cfg_lexer.ml deleted file mode 100644 index f421c6915..000000000 --- a/src/xn_cfg_lexer.ml +++ /dev/null @@ -1,209 +0,0 @@ -# 1 "xn_cfg_lexer.mll" - - open Xn_cfg_parser - let unquote x = String.sub x 1 (String.length x - 2) - -# 7 "xn_cfg_lexer.ml" -let __ocaml_lex_tables = { - Lexing.lex_base = - "\000\000\244\255\245\255\001\000\246\255\247\255\248\255\249\255\ - \250\255\251\255\002\000\003\000\026\000\081\000\253\255\252\255\ - "; - Lexing.lex_backtrk = - "\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\001\000\000\000\255\255\255\255\ - "; - Lexing.lex_default = - "\255\255\000\000\000\000\003\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\010\000\011\000\255\255\255\255\000\000\000\000\ - "; - Lexing.lex_trans = - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\002\000\004\000\004\000\255\255\255\255\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \002\000\000\000\010\000\003\000\015\000\000\000\000\000\011\000\ - \000\000\000\000\014\000\000\000\009\000\000\000\000\000\000\000\ - \012\000\012\000\012\000\012\000\012\000\012\000\012\000\012\000\ - \012\000\012\000\000\000\005\000\000\000\006\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\012\000\012\000\012\000\012\000\012\000\012\000\ - \012\000\012\000\012\000\012\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\008\000\000\000\007\000\000\000\000\000\ - \000\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\ - \013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\ - \013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\ - \013\000\013\000\013\000\012\000\012\000\012\000\012\000\012\000\ - \012\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\ - \013\000\013\000\013\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\012\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \013\000\000\000\013\000\013\000\013\000\013\000\013\000\013\000\ - \013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\ - \013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\ - \013\000\013\000\013\000\013\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \001\000\255\255\255\255\255\255\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000"; - Lexing.lex_check = - "\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\000\000\000\000\003\000\010\000\011\000\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \000\000\255\255\000\000\000\000\010\000\255\255\255\255\000\000\ - \255\255\255\255\011\000\255\255\000\000\255\255\255\255\255\255\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\255\255\000\000\255\255\000\000\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\012\000\012\000\012\000\012\000\012\000\012\000\ - \012\000\012\000\012\000\012\000\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\000\000\255\255\000\000\255\255\255\255\ - \255\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\012\000\012\000\012\000\012\000\012\000\ - \012\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\ - \013\000\013\000\013\000\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\012\000\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \013\000\255\255\013\000\013\000\013\000\013\000\013\000\013\000\ - \013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\ - \013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\ - \013\000\013\000\013\000\013\000\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \000\000\003\000\010\000\011\000\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255"; - Lexing.lex_base_code = - ""; - Lexing.lex_backtrk_code = - ""; - Lexing.lex_default_code = - ""; - Lexing.lex_trans_code = - ""; - Lexing.lex_check_code = - ""; - Lexing.lex_code = - ""; -} - -let rec token lexbuf = - __ocaml_lex_token_rec lexbuf 0 -and __ocaml_lex_token_rec lexbuf __ocaml_lex_state = - match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with - | 0 -> -let -# 6 "xn_cfg_lexer.mll" - x -# 131 "xn_cfg_lexer.ml" -= Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in -# 6 "xn_cfg_lexer.mll" - ( IDENT x ) -# 135 "xn_cfg_lexer.ml" - - | 1 -> -let -# 7 "xn_cfg_lexer.mll" - x -# 141 "xn_cfg_lexer.ml" -= Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in -# 7 "xn_cfg_lexer.mll" - ( INT (int_of_string x) ) -# 145 "xn_cfg_lexer.ml" - - | 2 -> -let -# 8 "xn_cfg_lexer.mll" - x -# 151 "xn_cfg_lexer.ml" -= Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in -# 8 "xn_cfg_lexer.mll" - ( STRING (unquote x) ) -# 155 "xn_cfg_lexer.ml" - - | 3 -> -let -# 9 "xn_cfg_lexer.mll" - x -# 161 "xn_cfg_lexer.ml" -= Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in -# 9 "xn_cfg_lexer.mll" - ( STRING (unquote x) ) -# 165 "xn_cfg_lexer.ml" - - | 4 -> -# 10 "xn_cfg_lexer.mll" - ( COMMA ) -# 170 "xn_cfg_lexer.ml" - - | 5 -> -# 11 "xn_cfg_lexer.mll" - ( LBRACKET ) -# 175 "xn_cfg_lexer.ml" - - | 6 -> -# 12 "xn_cfg_lexer.mll" - ( RBRACKET ) -# 180 "xn_cfg_lexer.ml" - - | 7 -> -# 13 "xn_cfg_lexer.mll" - ( EQ ) -# 185 "xn_cfg_lexer.ml" - - | 8 -> -# 14 "xn_cfg_lexer.mll" - ( SEMICOLON ) -# 190 "xn_cfg_lexer.ml" - - | 9 -> -# 16 "xn_cfg_lexer.mll" - ( NEWLINE ) -# 195 "xn_cfg_lexer.ml" - - | 10 -> -# 17 "xn_cfg_lexer.mll" - ( token lexbuf ) -# 200 "xn_cfg_lexer.ml" - - | 11 -> -# 18 "xn_cfg_lexer.mll" - ( EOF ) -# 205 "xn_cfg_lexer.ml" - - | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_token_rec lexbuf __ocaml_lex_state - -;; - diff --git a/src/xn_cfg_lexer.mll b/src/xn_cfg_lexer.mll new file mode 100644 index 000000000..089ae4d37 --- /dev/null +++ b/src/xn_cfg_lexer.mll @@ -0,0 +1,18 @@ +{ + open Xn_cfg_parser + let unquote x = String.sub x 1 (String.length x - 2) +} +rule token = parse + ['a'-'z']['_''0'-'9''a'-'z']* as x { IDENT x } + | ['0'-'9']['0'-'9''a'-'f''x']* as x { INT (int_of_string x) } + | '\''([^'\'''\n']|'.')*'\'' as x { STRING (unquote x) } + | '"'([^'"''\n']|'.')*'"' as x { STRING (unquote x) } + | ',' { COMMA } + | '[' { LBRACKET } + | ']' { RBRACKET } + | '=' { EQ } + | ';' { SEMICOLON } + | '\n' + | '#'[^'\n']*'\n' { NEWLINE } + | [' ' '\t' ] { token lexbuf } + | eof { EOF }