2
0
Эх сурвалжийг харах

added OpInterval + IntInterval hack.

Nicolas Cannasse 20 жил өмнө
parent
commit
09535fd9ea
1 өөрчлөгдсөн 5 нэмэгдсэн , 2 устгасан
  1. 5 2
      lexer.mll

+ 5 - 2
lexer.mll

@@ -129,6 +129,10 @@ rule token = parse
 	| '.' ['0'-'9']+ { mk lexbuf (Const (Float (lexeme lexbuf))) }
 	| ['0'-'9']+ ['e' 'E'] ['+' '-']? ['0'-'9']+ { mk lexbuf (Const (Float (lexeme lexbuf))) }
 	| ['0'-'9']+ '.' ['0'-'9']* ['e' 'E'] ['+' '-']? ['0'-'9']+ { mk lexbuf (Const (Float (lexeme lexbuf))) }
+	| ['0'-'9']+ "..." { 
+			let s = lexeme lexbuf in
+			mk lexbuf (IntInterval (String.sub s 0 (String.length s - 3)))
+		}
 	| "//" [^'\n' '\r']*  {
 			let s = lexeme lexbuf in
 			mk lexbuf (CommentLine (String.sub s 2 ((String.length s)-2)))
@@ -157,8 +161,7 @@ rule token = parse
 	| "||" { mk lexbuf (Binop OpBoolOr) }
 	| "<<" { mk lexbuf (Binop OpShl) }
 	| "->" { mk lexbuf Arrow }
-(*//| ">>" { mk lexbuf (Binop OpShr) } *)
-(*//| ">>>" { mk lexbuf (Binop OpUShr) } *)
+	| "..." { mk lexbuf (Binop OpInterval) }
 	| "!" { mk lexbuf (Unop Not) }
 	| "<" { mk lexbuf (Binop OpLt) }
 	| ">" { mk lexbuf (Binop OpGt) }