diff --git a/src/lexer.mll b/src/lexer.mll
index dd2c96a3ce755ac3c37b22cbcced4571fa685f36..c9c732b0ff8e5136766503dbdf467dc02e9504e3 100644
--- a/src/lexer.mll
+++ b/src/lexer.mll
@@ -146,6 +146,8 @@ rule token = parse
       { newline lexbuf; token lexbuf }
   | space+  
       { token lexbuf }
+  | '_'
+      { UNDERSCORE }
   | lident as id  
       { try Hashtbl.find keywords id with Not_found -> LIDENT id }
   | uident as id  
diff --git a/src/parser.mly b/src/parser.mly
index 6b41b388177393c9ad3a54309fbd4cab1da325a7..a4228f7cf6f300aa024d9bcdec1b38c831e1256e 100644
--- a/src/parser.mly
+++ b/src/parser.mly
@@ -101,7 +101,8 @@
 %token QUOTE RAISE RAISES READS REAL REC REF RETURNS RIGHTB RIGHTBRIGHTB
 %token RIGHTPAR RIGHTSQ 
 %token SEMICOLON SLASH 
-%token THEN THEORY TIMES TRUE TRY TYPE UNIT USES VARIANT VOID WHILE WITH WRITES
+%token THEN THEORY TIMES TRUE TRY TYPE UNDERSCORE
+%token UNIT USES VARIANT VOID WHILE WITH WRITES
 
 /* Precedences */