]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/load_lexer.mll
Initial revision
[helm.git] / helm / DEVEL / lablgtk / lablgtk_20000829-0.1.0 / applications / radtest / load_lexer.mll
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/load_lexer.mll b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/load_lexer.mll
new file mode 100644 (file)
index 0000000..46aa5ac
--- /dev/null
@@ -0,0 +1,46 @@
+{
+open Load_parser
+} 
+
+rule token = parse
+  [ ' ' '\t' '\n']+     { token lexbuf }
+| "<window"             { WINDOW_START }
+| "</window>"           { WINDOW_END }
+| "name"                { NAME }
+|  '='                  { EQUAL }
+|  '>'                  { SUP }
+
+| "<" ['A'-'Z' 'a'-'z' '0'-'9' '_']+
+  {
+    let l = Lexing.lexeme lexbuf in
+    let s = String.sub l ~pos:1 ~len:(String.length l - 1) in
+    WIDGET_START s
+  }
+
+| "</" ['A'-'Z' 'a'-'z' '0'-'9' '_']+ '>'
+  {
+    let l = Lexing.lexeme lexbuf in
+    let s = String.sub l ~pos:2 ~len:(String.length l - 3) in
+    WIDGET_END s
+  }
+
+| '"' [^ '"']* '"'
+  {
+    let l = Lexing.lexeme lexbuf in
+    let s = String.sub l ~pos:1 ~len:(String.length l - 2) in
+    IDENT s
+  }
+
+| '\'' [^ '\'']* '\''
+  {
+    let l = Lexing.lexeme lexbuf in
+    let s = String.sub l ~pos:1 ~len:(String.length l - 2) in
+    IDENT s
+  }
+
+| ['A'-'Z' 'a'-'z' '0'-'9' '_' '.']+
+  {
+    let s = Lexing.lexeme lexbuf in IDENT s
+  }
+
+| eof               { EOF }